aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_sharing
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_sharing')
-rw-r--r--apps/files_sharing/.l10nignore2
-rw-r--r--apps/files_sharing/appinfo/info.xml13
-rw-r--r--apps/files_sharing/appinfo/routes.php40
-rw-r--r--apps/files_sharing/composer/composer/autoload_classmap.php10
-rw-r--r--apps/files_sharing/composer/composer/autoload_static.php10
-rw-r--r--apps/files_sharing/css/404.css7
-rw-r--r--apps/files_sharing/css/icons.css5
-rw-r--r--apps/files_sharing/css/icons.css.map2
-rw-r--r--apps/files_sharing/css/icons.css.map.license2
-rw-r--r--apps/files_sharing/css/icons.scss31
-rw-r--r--apps/files_sharing/css/mobile.css1
-rw-r--r--apps/files_sharing/css/mobile.css.map1
-rw-r--r--apps/files_sharing/css/mobile.scss61
-rw-r--r--apps/files_sharing/css/public.css1
-rw-r--r--apps/files_sharing/css/public.css.map1
-rw-r--r--apps/files_sharing/css/public.scss274
-rw-r--r--apps/files_sharing/css/publicView.css1
-rw-r--r--apps/files_sharing/css/publicView.css.map1
-rw-r--r--apps/files_sharing/css/publicView.scss2
-rw-r--r--apps/files_sharing/img/app.svg2
-rw-r--r--apps/files_sharing/js/files_drop.js163
-rw-r--r--apps/files_sharing/js/public.js517
-rw-r--r--apps/files_sharing/js/public_note.js31
-rw-r--r--apps/files_sharing/js/templates.js43
-rw-r--r--apps/files_sharing/js/templates/files_drop.handlebars8
-rw-r--r--apps/files_sharing/l10n/ar.js439
-rw-r--r--apps/files_sharing/l10n/ar.json439
-rw-r--r--apps/files_sharing/l10n/ast.js294
-rw-r--r--apps/files_sharing/l10n/ast.json294
-rw-r--r--apps/files_sharing/l10n/az.js60
-rw-r--r--apps/files_sharing/l10n/az.json58
-rw-r--r--apps/files_sharing/l10n/bg.js191
-rw-r--r--apps/files_sharing/l10n/bg.json191
-rw-r--r--apps/files_sharing/l10n/bn_BD.js35
-rw-r--r--apps/files_sharing/l10n/bn_BD.json33
-rw-r--r--apps/files_sharing/l10n/bs.js11
-rw-r--r--apps/files_sharing/l10n/bs.json9
-rw-r--r--apps/files_sharing/l10n/ca.js380
-rw-r--r--apps/files_sharing/l10n/ca.json380
-rw-r--r--apps/files_sharing/l10n/cs.js375
-rw-r--r--apps/files_sharing/l10n/cs.json375
-rw-r--r--apps/files_sharing/l10n/cy_GB.js10
-rw-r--r--apps/files_sharing/l10n/cy_GB.json8
-rw-r--r--apps/files_sharing/l10n/da.js371
-rw-r--r--apps/files_sharing/l10n/da.json371
-rw-r--r--apps/files_sharing/l10n/de.js413
-rw-r--r--apps/files_sharing/l10n/de.json413
-rw-r--r--apps/files_sharing/l10n/de_DE.js410
-rw-r--r--apps/files_sharing/l10n/de_DE.json410
-rw-r--r--apps/files_sharing/l10n/el.js207
-rw-r--r--apps/files_sharing/l10n/el.json207
-rw-r--r--apps/files_sharing/l10n/en_GB.js386
-rw-r--r--apps/files_sharing/l10n/en_GB.json386
-rw-r--r--apps/files_sharing/l10n/eo.js209
-rw-r--r--apps/files_sharing/l10n/eo.json207
-rw-r--r--apps/files_sharing/l10n/es.js414
-rw-r--r--apps/files_sharing/l10n/es.json414
-rw-r--r--apps/files_sharing/l10n/es_419.js138
-rw-r--r--apps/files_sharing/l10n/es_419.json136
-rw-r--r--apps/files_sharing/l10n/es_AR.js148
-rw-r--r--apps/files_sharing/l10n/es_AR.json146
-rw-r--r--apps/files_sharing/l10n/es_CL.js138
-rw-r--r--apps/files_sharing/l10n/es_CL.json136
-rw-r--r--apps/files_sharing/l10n/es_CO.js143
-rw-r--r--apps/files_sharing/l10n/es_CO.json141
-rw-r--r--apps/files_sharing/l10n/es_CR.js138
-rw-r--r--apps/files_sharing/l10n/es_CR.json136
-rw-r--r--apps/files_sharing/l10n/es_DO.js144
-rw-r--r--apps/files_sharing/l10n/es_DO.json142
-rw-r--r--apps/files_sharing/l10n/es_EC.js185
-rw-r--r--apps/files_sharing/l10n/es_EC.json185
-rw-r--r--apps/files_sharing/l10n/es_GT.js138
-rw-r--r--apps/files_sharing/l10n/es_GT.json136
-rw-r--r--apps/files_sharing/l10n/es_HN.js136
-rw-r--r--apps/files_sharing/l10n/es_HN.json134
-rw-r--r--apps/files_sharing/l10n/es_MX.js299
-rw-r--r--apps/files_sharing/l10n/es_MX.json299
-rw-r--r--apps/files_sharing/l10n/es_NI.js135
-rw-r--r--apps/files_sharing/l10n/es_NI.json133
-rw-r--r--apps/files_sharing/l10n/es_PA.js135
-rw-r--r--apps/files_sharing/l10n/es_PA.json133
-rw-r--r--apps/files_sharing/l10n/es_PE.js138
-rw-r--r--apps/files_sharing/l10n/es_PE.json136
-rw-r--r--apps/files_sharing/l10n/es_PR.js135
-rw-r--r--apps/files_sharing/l10n/es_PR.json133
-rw-r--r--apps/files_sharing/l10n/es_PY.js136
-rw-r--r--apps/files_sharing/l10n/es_PY.json134
-rw-r--r--apps/files_sharing/l10n/es_SV.js138
-rw-r--r--apps/files_sharing/l10n/es_SV.json136
-rw-r--r--apps/files_sharing/l10n/es_UY.js138
-rw-r--r--apps/files_sharing/l10n/es_UY.json136
-rw-r--r--apps/files_sharing/l10n/et_EE.js405
-rw-r--r--apps/files_sharing/l10n/et_EE.json405
-rw-r--r--apps/files_sharing/l10n/eu.js358
-rw-r--r--apps/files_sharing/l10n/eu.json358
-rw-r--r--apps/files_sharing/l10n/fa.js266
-rw-r--r--apps/files_sharing/l10n/fa.json266
-rw-r--r--apps/files_sharing/l10n/fi.js244
-rw-r--r--apps/files_sharing/l10n/fi.json244
-rw-r--r--apps/files_sharing/l10n/fr.js381
-rw-r--r--apps/files_sharing/l10n/fr.json381
-rw-r--r--apps/files_sharing/l10n/ga.js442
-rw-r--r--apps/files_sharing/l10n/ga.json440
-rw-r--r--apps/files_sharing/l10n/gl.js391
-rw-r--r--apps/files_sharing/l10n/gl.json391
-rw-r--r--apps/files_sharing/l10n/he.js234
-rw-r--r--apps/files_sharing/l10n/he.json232
-rw-r--r--apps/files_sharing/l10n/hr.js246
-rw-r--r--apps/files_sharing/l10n/hr.json244
-rw-r--r--apps/files_sharing/l10n/hu.js242
-rw-r--r--apps/files_sharing/l10n/hu.json242
-rw-r--r--apps/files_sharing/l10n/hy.js10
-rw-r--r--apps/files_sharing/l10n/hy.json8
-rw-r--r--apps/files_sharing/l10n/ia.js15
-rw-r--r--apps/files_sharing/l10n/ia.json13
-rw-r--r--apps/files_sharing/l10n/id.js69
-rw-r--r--apps/files_sharing/l10n/id.json67
-rw-r--r--apps/files_sharing/l10n/is.js325
-rw-r--r--apps/files_sharing/l10n/is.json325
-rw-r--r--apps/files_sharing/l10n/it.js381
-rw-r--r--apps/files_sharing/l10n/it.json381
-rw-r--r--apps/files_sharing/l10n/ja.js371
-rw-r--r--apps/files_sharing/l10n/ja.json371
-rw-r--r--apps/files_sharing/l10n/ka.js209
-rw-r--r--apps/files_sharing/l10n/ka.json209
-rw-r--r--apps/files_sharing/l10n/ka_GE.js135
-rw-r--r--apps/files_sharing/l10n/ka_GE.json133
-rw-r--r--apps/files_sharing/l10n/km.js27
-rw-r--r--apps/files_sharing/l10n/km.json25
-rw-r--r--apps/files_sharing/l10n/kn.js10
-rw-r--r--apps/files_sharing/l10n/kn.json8
-rw-r--r--apps/files_sharing/l10n/ko.js361
-rw-r--r--apps/files_sharing/l10n/ko.json361
-rw-r--r--apps/files_sharing/l10n/lb.js16
-rw-r--r--apps/files_sharing/l10n/lb.json14
-rw-r--r--apps/files_sharing/l10n/lo.js6
-rw-r--r--apps/files_sharing/l10n/lo.json4
-rw-r--r--apps/files_sharing/l10n/lt_LT.js228
-rw-r--r--apps/files_sharing/l10n/lt_LT.json228
-rw-r--r--apps/files_sharing/l10n/lv.js206
-rw-r--r--apps/files_sharing/l10n/lv.json204
-rw-r--r--apps/files_sharing/l10n/mk.js366
-rw-r--r--apps/files_sharing/l10n/mk.json366
-rw-r--r--apps/files_sharing/l10n/mn.js13
-rw-r--r--apps/files_sharing/l10n/mn.json11
-rw-r--r--apps/files_sharing/l10n/ms_MY.js13
-rw-r--r--apps/files_sharing/l10n/ms_MY.json11
-rw-r--r--apps/files_sharing/l10n/nb.js314
-rw-r--r--apps/files_sharing/l10n/nb.json314
-rw-r--r--apps/files_sharing/l10n/nl.js375
-rw-r--r--apps/files_sharing/l10n/nl.json375
-rw-r--r--apps/files_sharing/l10n/nn_NO.js24
-rw-r--r--apps/files_sharing/l10n/nn_NO.json22
-rw-r--r--apps/files_sharing/l10n/oc.js72
-rw-r--r--apps/files_sharing/l10n/oc.json70
-rw-r--r--apps/files_sharing/l10n/pl.js376
-rw-r--r--apps/files_sharing/l10n/pl.json376
-rw-r--r--apps/files_sharing/l10n/pt_BR.js446
-rw-r--r--apps/files_sharing/l10n/pt_BR.json446
-rw-r--r--apps/files_sharing/l10n/pt_PT.js169
-rw-r--r--apps/files_sharing/l10n/pt_PT.json167
-rw-r--r--apps/files_sharing/l10n/ro.js216
-rw-r--r--apps/files_sharing/l10n/ro.json214
-rw-r--r--apps/files_sharing/l10n/ru.js373
-rw-r--r--apps/files_sharing/l10n/ru.json373
-rw-r--r--apps/files_sharing/l10n/sc.js179
-rw-r--r--apps/files_sharing/l10n/sc.json179
-rw-r--r--apps/files_sharing/l10n/sk.js389
-rw-r--r--apps/files_sharing/l10n/sk.json389
-rw-r--r--apps/files_sharing/l10n/sl.js223
-rw-r--r--apps/files_sharing/l10n/sl.json223
-rw-r--r--apps/files_sharing/l10n/sq.js144
-rw-r--r--apps/files_sharing/l10n/sq.json142
-rw-r--r--apps/files_sharing/l10n/sr.js377
-rw-r--r--apps/files_sharing/l10n/sr.json377
-rw-r--r--apps/files_sharing/l10n/sr@latin.js56
-rw-r--r--apps/files_sharing/l10n/sr@latin.json54
-rw-r--r--apps/files_sharing/l10n/sv.js374
-rw-r--r--apps/files_sharing/l10n/sv.json374
-rw-r--r--apps/files_sharing/l10n/sw.js441
-rw-r--r--apps/files_sharing/l10n/sw.json439
-rw-r--r--apps/files_sharing/l10n/tr.js389
-rw-r--r--apps/files_sharing/l10n/tr.json389
-rw-r--r--apps/files_sharing/l10n/ug.js384
-rw-r--r--apps/files_sharing/l10n/ug.json384
-rw-r--r--apps/files_sharing/l10n/uk.js393
-rw-r--r--apps/files_sharing/l10n/uk.json393
-rw-r--r--apps/files_sharing/l10n/ur_PK.js10
-rw-r--r--apps/files_sharing/l10n/ur_PK.json8
-rw-r--r--apps/files_sharing/l10n/vi.js203
-rw-r--r--apps/files_sharing/l10n/vi.json203
-rw-r--r--apps/files_sharing/l10n/zh_CN.js401
-rw-r--r--apps/files_sharing/l10n/zh_CN.json401
-rw-r--r--apps/files_sharing/l10n/zh_HK.js388
-rw-r--r--apps/files_sharing/l10n/zh_HK.json388
-rw-r--r--apps/files_sharing/l10n/zh_TW.js518
-rw-r--r--apps/files_sharing/l10n/zh_TW.json518
-rw-r--r--apps/files_sharing/lib/Activity/Filter.php36
-rw-r--r--apps/files_sharing/lib/Activity/Providers/Base.php77
-rw-r--r--apps/files_sharing/lib/Activity/Providers/Downloads.php39
-rw-r--r--apps/files_sharing/lib/Activity/Providers/Groups.php34
-rw-r--r--apps/files_sharing/lib/Activity/Providers/PublicLinks.php23
-rw-r--r--apps/files_sharing/lib/Activity/Providers/RemoteShares.php24
-rw-r--r--apps/files_sharing/lib/Activity/Providers/Users.php25
-rw-r--r--apps/files_sharing/lib/Activity/Settings/PublicLinks.php27
-rw-r--r--apps/files_sharing/lib/Activity/Settings/PublicLinksUpload.php67
-rw-r--r--apps/files_sharing/lib/Activity/Settings/RemoteShare.php28
-rw-r--r--apps/files_sharing/lib/Activity/Settings/ShareActivitySettings.php33
-rw-r--r--apps/files_sharing/lib/Activity/Settings/Shared.php28
-rw-r--r--apps/files_sharing/lib/AppInfo/Application.php131
-rw-r--r--apps/files_sharing/lib/BackgroundJob/FederatedSharesDiscoverJob.php28
-rw-r--r--apps/files_sharing/lib/Cache.php54
-rw-r--r--apps/files_sharing/lib/Capabilities.php75
-rw-r--r--apps/files_sharing/lib/Collaboration/ShareRecipientSorter.php36
-rw-r--r--apps/files_sharing/lib/Command/CleanupRemoteStorages.php43
-rw-r--r--apps/files_sharing/lib/Command/DeleteOrphanShares.php32
-rw-r--r--apps/files_sharing/lib/Command/ExiprationNotification.php51
-rw-r--r--apps/files_sharing/lib/Command/FixShareOwners.php65
-rw-r--r--apps/files_sharing/lib/Command/ListShares.php161
-rw-r--r--apps/files_sharing/lib/Config/ConfigLexicon.php41
-rw-r--r--apps/files_sharing/lib/Controller/AcceptController.php50
-rw-r--r--apps/files_sharing/lib/Controller/DeletedShareAPIController.php107
-rw-r--r--apps/files_sharing/lib/Controller/ExternalSharesController.php97
-rw-r--r--apps/files_sharing/lib/Controller/PublicPreviewController.php95
-rw-r--r--apps/files_sharing/lib/Controller/RemoteController.php61
-rw-r--r--apps/files_sharing/lib/Controller/SettingsController.php52
-rw-r--r--apps/files_sharing/lib/Controller/ShareAPIController.php998
-rw-r--r--apps/files_sharing/lib/Controller/ShareController.php295
-rw-r--r--apps/files_sharing/lib/Controller/ShareInfoController.php49
-rw-r--r--apps/files_sharing/lib/Controller/ShareesAPIController.php88
-rw-r--r--apps/files_sharing/lib/DefaultPublicShareTemplateProvider.php380
-rw-r--r--apps/files_sharing/lib/DeleteOrphanedSharesJob.php81
-rw-r--r--apps/files_sharing/lib/Event/BeforeTemplateRenderedEvent.php35
-rw-r--r--apps/files_sharing/lib/Event/ShareLinkAccessedEvent.php44
-rw-r--r--apps/files_sharing/lib/Event/ShareMountedEvent.php27
-rw-r--r--apps/files_sharing/lib/Exceptions/BrokenPath.php23
-rw-r--r--apps/files_sharing/lib/Exceptions/S2SException.php22
-rw-r--r--apps/files_sharing/lib/Exceptions/SharingRightsException.php22
-rw-r--r--apps/files_sharing/lib/ExpireSharesJob.php54
-rw-r--r--apps/files_sharing/lib/External/Cache.php41
-rw-r--r--apps/files_sharing/lib/External/Manager.php293
-rw-r--r--apps/files_sharing/lib/External/Mount.php42
-rw-r--r--apps/files_sharing/lib/External/MountProvider.php49
-rw-r--r--apps/files_sharing/lib/External/Scanner.php34
-rw-r--r--apps/files_sharing/lib/External/Storage.php155
-rw-r--r--apps/files_sharing/lib/External/Watcher.php22
-rw-r--r--apps/files_sharing/lib/Helper.php52
-rw-r--r--apps/files_sharing/lib/Hooks.php35
-rw-r--r--apps/files_sharing/lib/ISharedMountPoint.php19
-rw-r--r--apps/files_sharing/lib/ISharedStorage.php26
-rw-r--r--apps/files_sharing/lib/Listener/BeforeDirectFileDownloadListener.php48
-rw-r--r--apps/files_sharing/lib/Listener/BeforeNodeReadListener.php189
-rw-r--r--apps/files_sharing/lib/Listener/BeforeZipCreatedListener.php59
-rw-r--r--apps/files_sharing/lib/Listener/LoadAdditionalListener.php24
-rw-r--r--apps/files_sharing/lib/Listener/LoadPublicFileRequestAuthListener.php61
-rw-r--r--apps/files_sharing/lib/Listener/LoadSidebarListener.php40
-rw-r--r--apps/files_sharing/lib/Listener/ShareInteractionListener.php22
-rw-r--r--apps/files_sharing/lib/Listener/UserAddedToGroupListener.php34
-rw-r--r--apps/files_sharing/lib/Listener/UserShareAcceptanceListener.php39
-rw-r--r--apps/files_sharing/lib/Middleware/OCSShareAPIMiddleware.php37
-rw-r--r--apps/files_sharing/lib/Middleware/ShareInfoMiddleware.php31
-rw-r--r--apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php71
-rw-r--r--apps/files_sharing/lib/Migration/OwncloudGuestShareType.php41
-rw-r--r--apps/files_sharing/lib/Migration/SetAcceptedStatus.php37
-rw-r--r--apps/files_sharing/lib/Migration/SetPasswordColumn.php36
-rw-r--r--apps/files_sharing/lib/Migration/Version11300Date20201120141438.php31
-rw-r--r--apps/files_sharing/lib/Migration/Version21000Date20201223143245.php22
-rw-r--r--apps/files_sharing/lib/Migration/Version22000Date20210216084241.php21
-rw-r--r--apps/files_sharing/lib/Migration/Version24000Date20220208195521.php21
-rw-r--r--apps/files_sharing/lib/Migration/Version24000Date20220404142216.php21
-rw-r--r--apps/files_sharing/lib/Migration/Version31000Date20240821142813.php43
-rw-r--r--apps/files_sharing/lib/MountProvider.php87
-rw-r--r--apps/files_sharing/lib/Notification/Listener.php46
-rw-r--r--apps/files_sharing/lib/Notification/Notifier.php76
-rw-r--r--apps/files_sharing/lib/OrphanHelper.php55
-rw-r--r--apps/files_sharing/lib/ResponseDefinitions.php85
-rw-r--r--apps/files_sharing/lib/Scanner.php32
-rw-r--r--apps/files_sharing/lib/Settings/Personal.php50
-rw-r--r--apps/files_sharing/lib/ShareBackend/File.php90
-rw-r--r--apps/files_sharing/lib/ShareBackend/Folder.php43
-rw-r--r--apps/files_sharing/lib/SharedMount.php114
-rw-r--r--apps/files_sharing/lib/SharedStorage.php269
-rw-r--r--apps/files_sharing/lib/SharesReminderJob.php307
-rw-r--r--apps/files_sharing/lib/Updater.php85
-rw-r--r--apps/files_sharing/lib/ViewOnly.php44
-rw-r--r--apps/files_sharing/openapi.json877
-rw-r--r--apps/files_sharing/openapi.json.license2
-rw-r--r--apps/files_sharing/src/actions/openInFilesAction.ts57
-rw-r--r--apps/files_sharing/src/actions/sharingStatusAction.scss37
-rw-r--r--apps/files_sharing/src/actions/sharingStatusAction.ts147
-rw-r--r--apps/files_sharing/src/additionalScripts.js26
-rw-r--r--apps/files_sharing/src/collaborationresourceshandler.js25
-rw-r--r--apps/files_sharing/src/components/ExternalShareAction.vue25
-rw-r--r--apps/files_sharing/src/components/FileListFilterAccount.vue138
-rw-r--r--apps/files_sharing/src/components/NewFileRequestDialog.vue468
-rw-r--r--apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogDatePassword.vue258
-rw-r--r--apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogFinish.vue236
-rw-r--r--apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogIntro.vue166
-rw-r--r--apps/files_sharing/src/components/PersonalSettings.vue23
-rw-r--r--apps/files_sharing/src/components/SelectShareFolderDialogue.vue30
-rw-r--r--apps/files_sharing/src/components/ShareExpiryTime.vue91
-rw-r--r--apps/files_sharing/src/components/SharingEntry.vue71
-rw-r--r--apps/files_sharing/src/components/SharingEntryInherited.vue35
-rw-r--r--apps/files_sharing/src/components/SharingEntryInternal.vue17
-rw-r--r--apps/files_sharing/src/components/SharingEntryLink.vue411
-rw-r--r--apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue32
-rw-r--r--apps/files_sharing/src/components/SharingEntrySimple.vue29
-rw-r--r--apps/files_sharing/src/components/SharingInput.vue258
-rw-r--r--apps/files_sharing/src/eventbus.d.ts15
-rw-r--r--apps/files_sharing/src/files_actions/acceptShareAction.spec.ts (renamed from apps/files_sharing/src/actions/acceptShareAction.spec.ts)68
-rw-r--r--apps/files_sharing/src/files_actions/acceptShareAction.ts (renamed from apps/files_sharing/src/actions/acceptShareAction.ts)23
-rw-r--r--apps/files_sharing/src/files_actions/openInFilesAction.spec.ts (renamed from apps/files_sharing/src/actions/openInFilesAction.spec.ts)34
-rw-r--r--apps/files_sharing/src/files_actions/openInFilesAction.ts50
-rw-r--r--apps/files_sharing/src/files_actions/rejectShareAction.spec.ts (renamed from apps/files_sharing/src/actions/rejectShareAction.spec.ts)71
-rw-r--r--apps/files_sharing/src/files_actions/rejectShareAction.ts (renamed from apps/files_sharing/src/actions/rejectShareAction.ts)28
-rw-r--r--apps/files_sharing/src/files_actions/restoreShareAction.spec.ts (renamed from apps/files_sharing/src/actions/restoreShareAction.spec.ts)65
-rw-r--r--apps/files_sharing/src/files_actions/restoreShareAction.ts (renamed from apps/files_sharing/src/actions/restoreShareAction.ts)23
-rw-r--r--apps/files_sharing/src/files_actions/sharingStatusAction.scss29
-rw-r--r--apps/files_sharing/src/files_actions/sharingStatusAction.ts144
-rw-r--r--apps/files_sharing/src/files_filters/AccountFilter.ts162
-rw-r--r--apps/files_sharing/src/files_headers/noteToRecipient.ts40
-rw-r--r--apps/files_sharing/src/files_newMenu/newFileRequest.ts42
-rw-r--r--apps/files_sharing/src/files_sharing_tab.js36
-rw-r--r--apps/files_sharing/src/files_views/publicFileDrop.ts60
-rw-r--r--apps/files_sharing/src/files_views/publicFileShare.ts66
-rw-r--r--apps/files_sharing/src/files_views/publicShare.ts28
-rw-r--r--apps/files_sharing/src/files_views/shares.spec.ts (renamed from apps/files_sharing/src/views/shares.spec.ts)74
-rw-r--r--apps/files_sharing/src/files_views/shares.ts (renamed from apps/files_sharing/src/views/shares.ts)88
-rw-r--r--apps/files_sharing/src/init-public.ts63
-rw-r--r--apps/files_sharing/src/init.ts51
-rw-r--r--apps/files_sharing/src/lib/SharePermissionsToolBox.js21
-rw-r--r--apps/files_sharing/src/lib/SharePermissionsToolBox.spec.js22
-rw-r--r--apps/files_sharing/src/main.ts26
-rw-r--r--apps/files_sharing/src/mixins/ShareDetails.js38
-rw-r--r--apps/files_sharing/src/mixins/ShareRequests.js36
-rw-r--r--apps/files_sharing/src/mixins/ShareTypes.js32
-rw-r--r--apps/files_sharing/src/mixins/SharesMixin.js205
-rw-r--r--apps/files_sharing/src/models/Share.ts (renamed from apps/files_sharing/src/models/Share.js)377
-rw-r--r--apps/files_sharing/src/personal-settings.js26
-rw-r--r--apps/files_sharing/src/public-nickname-handler.ts86
-rw-r--r--apps/files_sharing/src/router/index.ts76
-rw-r--r--apps/files_sharing/src/services/ConfigService.js341
-rw-r--r--apps/files_sharing/src/services/ConfigService.ts333
-rw-r--r--apps/files_sharing/src/services/ExternalLinkActions.js21
-rw-r--r--apps/files_sharing/src/services/ExternalShareActions.js23
-rw-r--r--apps/files_sharing/src/services/GuestNameValidity.ts45
-rw-r--r--apps/files_sharing/src/services/ShareSearch.js21
-rw-r--r--apps/files_sharing/src/services/SharingService.spec.ts268
-rw-r--r--apps/files_sharing/src/services/SharingService.ts125
-rw-r--r--apps/files_sharing/src/services/TabSections.js27
-rw-r--r--apps/files_sharing/src/services/TokenService.ts20
-rw-r--r--apps/files_sharing/src/services/logger.ts21
-rw-r--r--apps/files_sharing/src/share.js60
-rw-r--r--apps/files_sharing/src/sharebreadcrumbview.js27
-rw-r--r--apps/files_sharing/src/sharing.d.ts10
-rw-r--r--apps/files_sharing/src/style/sharebreadcrumb.scss25
-rw-r--r--apps/files_sharing/src/utils/AccountIcon.spec.ts40
-rw-r--r--apps/files_sharing/src/utils/AccountIcon.ts28
-rw-r--r--apps/files_sharing/src/utils/GeneratePassword.js61
-rw-r--r--apps/files_sharing/src/utils/GeneratePassword.ts66
-rw-r--r--apps/files_sharing/src/utils/NodeShareUtils.ts31
-rw-r--r--apps/files_sharing/src/utils/SharedWithMe.js30
-rw-r--r--apps/files_sharing/src/views/CollaborationView.vue53
-rw-r--r--apps/files_sharing/src/views/FilesHeaderNoteToRecipient.vue73
-rw-r--r--apps/files_sharing/src/views/FilesViewFileDropEmptyContent.vue136
-rw-r--r--apps/files_sharing/src/views/SharingDetailsTab.vue466
-rw-r--r--apps/files_sharing/src/views/SharingInherited.vue29
-rw-r--r--apps/files_sharing/src/views/SharingLinkList.vue52
-rw-r--r--apps/files_sharing/src/views/SharingList.vue39
-rw-r--r--apps/files_sharing/src/views/SharingTab.vue374
-rw-r--r--apps/files_sharing/templates/Settings/personal.php23
-rw-r--r--apps/files_sharing/templates/public.php136
-rw-r--r--apps/files_sharing/templates/sharenotfound.php23
-rw-r--r--apps/files_sharing/tests/ApiTest.php326
-rw-r--r--apps/files_sharing/tests/ApplicationTest.php72
-rw-r--r--apps/files_sharing/tests/CacheTest.php178
-rw-r--r--apps/files_sharing/tests/CapabilitiesTest.php117
-rw-r--r--apps/files_sharing/tests/Collaboration/ShareRecipientSorterTest.php164
-rw-r--r--apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php134
-rw-r--r--apps/files_sharing/tests/Command/FixShareOwnersTest.php117
-rw-r--r--apps/files_sharing/tests/Controller/ExternalShareControllerTest.php119
-rw-r--r--apps/files_sharing/tests/Controller/PublicPreviewControllerTest.php157
-rw-r--r--apps/files_sharing/tests/Controller/ShareAPIControllerTest.php2009
-rw-r--r--apps/files_sharing/tests/Controller/ShareControllerTest.php625
-rw-r--r--apps/files_sharing/tests/Controller/ShareInfoControllerTest.php56
-rw-r--r--apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php85
-rw-r--r--apps/files_sharing/tests/DeleteOrphanedSharesJobTest.php58
-rw-r--r--apps/files_sharing/tests/EncryptedSizePropagationTest.php46
-rw-r--r--apps/files_sharing/tests/EtagPropagationTest.php108
-rw-r--r--apps/files_sharing/tests/ExpireSharesJobTest.php59
-rw-r--r--apps/files_sharing/tests/External/CacheTest.php50
-rw-r--r--apps/files_sharing/tests/External/ManagerTest.php196
-rw-r--r--apps/files_sharing/tests/External/ScannerTest.php34
-rw-r--r--apps/files_sharing/tests/ExternalStorageTest.php48
-rw-r--r--apps/files_sharing/tests/GroupEtagPropagationTest.php41
-rw-r--r--apps/files_sharing/tests/HelperTest.php45
-rw-r--r--apps/files_sharing/tests/Listener/LoadAdditionalListenerTest.php120
-rw-r--r--apps/files_sharing/tests/LockingTest.php44
-rw-r--r--apps/files_sharing/tests/Middleware/OCSShareAPIMiddlewareTest.php33
-rw-r--r--apps/files_sharing/tests/Middleware/ShareInfoMiddlewareTest.php48
-rw-r--r--apps/files_sharing/tests/Middleware/SharingCheckMiddlewareTest.php61
-rw-r--r--apps/files_sharing/tests/Migration/SetPasswordColumnTest.php33
-rw-r--r--apps/files_sharing/tests/MountProviderTest.php155
-rw-r--r--apps/files_sharing/tests/PropagationTestCase.php37
-rw-r--r--apps/files_sharing/tests/ShareTest.php108
-rw-r--r--apps/files_sharing/tests/SharedMountTest.php130
-rw-r--r--apps/files_sharing/tests/SharedStorageTest.php205
-rw-r--r--apps/files_sharing/tests/SharesReminderJobTest.php193
-rw-r--r--apps/files_sharing/tests/SizePropagationTest.php39
-rw-r--r--apps/files_sharing/tests/TestCase.php129
-rw-r--r--apps/files_sharing/tests/UnshareChildrenTest.php46
-rw-r--r--apps/files_sharing/tests/UpdaterTest.php140
-rw-r--r--apps/files_sharing/tests/WatcherTest.php51
-rw-r--r--apps/files_sharing/tests/js/fileDropSpec.js98
-rw-r--r--apps/files_sharing/tests/js/publicAppSpec.js159
-rw-r--r--apps/files_sharing/tests/js/shareSpec.js343
416 files changed, 33299 insertions, 30312 deletions
diff --git a/apps/files_sharing/.l10nignore b/apps/files_sharing/.l10nignore
index e69de29bb2d..b3b1acfbfce 100644
--- a/apps/files_sharing/.l10nignore
+++ b/apps/files_sharing/.l10nignore
@@ -0,0 +1,2 @@
+# SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+# SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_sharing/appinfo/info.xml b/apps/files_sharing/appinfo/info.xml
index 02be48bdd15..03078b54040 100644
--- a/apps/files_sharing/appinfo/info.xml
+++ b/apps/files_sharing/appinfo/info.xml
@@ -1,4 +1,9 @@
<?xml version="1.0"?>
+<!--
+ - SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-FileCopyrightText: 2011-2016 owncloud, Inc.
+ - SPDX-License-Identifier: AGPL-3.0-only
+-->
<info xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd">
<id>files_sharing</id>
@@ -9,7 +14,7 @@
Turning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation.
</description>
- <version>1.22.0</version>
+ <version>1.24.0</version>
<licence>agpl</licence>
<author>Michael Gapczynski</author>
<author>Bjoern Schiessle</author>
@@ -22,12 +27,13 @@ Turning the feature off removes shared files and folders on the server for all s
<category>social</category>
<bugs>https://github.com/nextcloud/server/issues</bugs>
<dependencies>
- <nextcloud min-version="30" max-version="30"/>
+ <nextcloud min-version="32" max-version="32"/>
</dependencies>
<background-jobs>
<job>OCA\Files_Sharing\DeleteOrphanedSharesJob</job>
<job>OCA\Files_Sharing\ExpireSharesJob</job>
+ <job>OCA\Files_Sharing\SharesReminderJob</job>
<job>OCA\Files_Sharing\BackgroundJob\FederatedSharesDiscoverJob</job>
</background-jobs>
@@ -43,6 +49,8 @@ Turning the feature off removes shared files and folders on the server for all s
<command>OCA\Files_Sharing\Command\CleanupRemoteStorages</command>
<command>OCA\Files_Sharing\Command\ExiprationNotification</command>
<command>OCA\Files_Sharing\Command\DeleteOrphanShares</command>
+ <command>OCA\Files_Sharing\Command\FixShareOwners</command>
+ <command>OCA\Files_Sharing\Command\ListShares</command>
</commands>
<settings>
@@ -54,6 +62,7 @@ Turning the feature off removes shared files and folders on the server for all s
<setting>OCA\Files_Sharing\Activity\Settings\Shared</setting>
<setting>OCA\Files_Sharing\Activity\Settings\RemoteShare</setting>
<setting>OCA\Files_Sharing\Activity\Settings\PublicLinks</setting>
+ <setting>OCA\Files_Sharing\Activity\Settings\PublicLinksUpload</setting>
</settings>
<filters>
diff --git a/apps/files_sharing/appinfo/routes.php b/apps/files_sharing/appinfo/routes.php
index 7b6334b480b..f9e10ebb106 100644
--- a/apps/files_sharing/appinfo/routes.php
+++ b/apps/files_sharing/appinfo/routes.php
@@ -1,30 +1,9 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Maxence Lange <maxence@artificial-owl.com>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Hinrich Mahler <nextcloud@mahlerhome.de>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
return [
'resources' => [
@@ -62,12 +41,6 @@ return [
'verb' => 'GET',
'root' => '',
],
-
- [
- 'name' => 'externalShares#testRemote',
- 'url' => '/testremote',
- 'verb' => 'GET'
- ],
[
'name' => 'PublicPreview#getPreview',
'url' => '/publicpreview/{token}',
@@ -139,6 +112,11 @@ return [
'verb' => 'DELETE',
],
[
+ 'name' => 'ShareAPI#sendShareEmail',
+ 'url' => '/api/v1/shares/{id}/send-email',
+ 'verb' => 'POST',
+ ],
+ [
'name' => 'ShareAPI#acceptShare',
'url' => '/api/v1/shares/pending/{id}',
'verb' => 'POST',
diff --git a/apps/files_sharing/composer/composer/autoload_classmap.php b/apps/files_sharing/composer/composer/autoload_classmap.php
index 142e1367917..92751ead730 100644
--- a/apps/files_sharing/composer/composer/autoload_classmap.php
+++ b/apps/files_sharing/composer/composer/autoload_classmap.php
@@ -15,6 +15,7 @@ return array(
'OCA\\Files_Sharing\\Activity\\Providers\\RemoteShares' => $baseDir . '/../lib/Activity/Providers/RemoteShares.php',
'OCA\\Files_Sharing\\Activity\\Providers\\Users' => $baseDir . '/../lib/Activity/Providers/Users.php',
'OCA\\Files_Sharing\\Activity\\Settings\\PublicLinks' => $baseDir . '/../lib/Activity/Settings/PublicLinks.php',
+ 'OCA\\Files_Sharing\\Activity\\Settings\\PublicLinksUpload' => $baseDir . '/../lib/Activity/Settings/PublicLinksUpload.php',
'OCA\\Files_Sharing\\Activity\\Settings\\RemoteShare' => $baseDir . '/../lib/Activity/Settings/RemoteShare.php',
'OCA\\Files_Sharing\\Activity\\Settings\\ShareActivitySettings' => $baseDir . '/../lib/Activity/Settings/ShareActivitySettings.php',
'OCA\\Files_Sharing\\Activity\\Settings\\Shared' => $baseDir . '/../lib/Activity/Settings/Shared.php',
@@ -26,6 +27,9 @@ return array(
'OCA\\Files_Sharing\\Command\\CleanupRemoteStorages' => $baseDir . '/../lib/Command/CleanupRemoteStorages.php',
'OCA\\Files_Sharing\\Command\\DeleteOrphanShares' => $baseDir . '/../lib/Command/DeleteOrphanShares.php',
'OCA\\Files_Sharing\\Command\\ExiprationNotification' => $baseDir . '/../lib/Command/ExiprationNotification.php',
+ 'OCA\\Files_Sharing\\Command\\FixShareOwners' => $baseDir . '/../lib/Command/FixShareOwners.php',
+ 'OCA\\Files_Sharing\\Command\\ListShares' => $baseDir . '/../lib/Command/ListShares.php',
+ 'OCA\\Files_Sharing\\Config\\ConfigLexicon' => $baseDir . '/../lib/Config/ConfigLexicon.php',
'OCA\\Files_Sharing\\Controller\\AcceptController' => $baseDir . '/../lib/Controller/AcceptController.php',
'OCA\\Files_Sharing\\Controller\\DeletedShareAPIController' => $baseDir . '/../lib/Controller/DeletedShareAPIController.php',
'OCA\\Files_Sharing\\Controller\\ExternalSharesController' => $baseDir . '/../lib/Controller/ExternalSharesController.php',
@@ -56,7 +60,11 @@ return array(
'OCA\\Files_Sharing\\Hooks' => $baseDir . '/../lib/Hooks.php',
'OCA\\Files_Sharing\\ISharedMountPoint' => $baseDir . '/../lib/ISharedMountPoint.php',
'OCA\\Files_Sharing\\ISharedStorage' => $baseDir . '/../lib/ISharedStorage.php',
+ 'OCA\\Files_Sharing\\Listener\\BeforeDirectFileDownloadListener' => $baseDir . '/../lib/Listener/BeforeDirectFileDownloadListener.php',
+ 'OCA\\Files_Sharing\\Listener\\BeforeNodeReadListener' => $baseDir . '/../lib/Listener/BeforeNodeReadListener.php',
+ 'OCA\\Files_Sharing\\Listener\\BeforeZipCreatedListener' => $baseDir . '/../lib/Listener/BeforeZipCreatedListener.php',
'OCA\\Files_Sharing\\Listener\\LoadAdditionalListener' => $baseDir . '/../lib/Listener/LoadAdditionalListener.php',
+ 'OCA\\Files_Sharing\\Listener\\LoadPublicFileRequestAuthListener' => $baseDir . '/../lib/Listener/LoadPublicFileRequestAuthListener.php',
'OCA\\Files_Sharing\\Listener\\LoadSidebarListener' => $baseDir . '/../lib/Listener/LoadSidebarListener.php',
'OCA\\Files_Sharing\\Listener\\ShareInteractionListener' => $baseDir . '/../lib/Listener/ShareInteractionListener.php',
'OCA\\Files_Sharing\\Listener\\UserAddedToGroupListener' => $baseDir . '/../lib/Listener/UserAddedToGroupListener.php',
@@ -72,6 +80,7 @@ return array(
'OCA\\Files_Sharing\\Migration\\Version22000Date20210216084241' => $baseDir . '/../lib/Migration/Version22000Date20210216084241.php',
'OCA\\Files_Sharing\\Migration\\Version24000Date20220208195521' => $baseDir . '/../lib/Migration/Version24000Date20220208195521.php',
'OCA\\Files_Sharing\\Migration\\Version24000Date20220404142216' => $baseDir . '/../lib/Migration/Version24000Date20220404142216.php',
+ 'OCA\\Files_Sharing\\Migration\\Version31000Date20240821142813' => $baseDir . '/../lib/Migration/Version31000Date20240821142813.php',
'OCA\\Files_Sharing\\MountProvider' => $baseDir . '/../lib/MountProvider.php',
'OCA\\Files_Sharing\\Notification\\Listener' => $baseDir . '/../lib/Notification/Listener.php',
'OCA\\Files_Sharing\\Notification\\Notifier' => $baseDir . '/../lib/Notification/Notifier.php',
@@ -83,6 +92,7 @@ return array(
'OCA\\Files_Sharing\\ShareBackend\\Folder' => $baseDir . '/../lib/ShareBackend/Folder.php',
'OCA\\Files_Sharing\\SharedMount' => $baseDir . '/../lib/SharedMount.php',
'OCA\\Files_Sharing\\SharedStorage' => $baseDir . '/../lib/SharedStorage.php',
+ 'OCA\\Files_Sharing\\SharesReminderJob' => $baseDir . '/../lib/SharesReminderJob.php',
'OCA\\Files_Sharing\\Updater' => $baseDir . '/../lib/Updater.php',
'OCA\\Files_Sharing\\ViewOnly' => $baseDir . '/../lib/ViewOnly.php',
);
diff --git a/apps/files_sharing/composer/composer/autoload_static.php b/apps/files_sharing/composer/composer/autoload_static.php
index 087c7d4cd86..6ca952007a1 100644
--- a/apps/files_sharing/composer/composer/autoload_static.php
+++ b/apps/files_sharing/composer/composer/autoload_static.php
@@ -30,6 +30,7 @@ class ComposerStaticInitFiles_Sharing
'OCA\\Files_Sharing\\Activity\\Providers\\RemoteShares' => __DIR__ . '/..' . '/../lib/Activity/Providers/RemoteShares.php',
'OCA\\Files_Sharing\\Activity\\Providers\\Users' => __DIR__ . '/..' . '/../lib/Activity/Providers/Users.php',
'OCA\\Files_Sharing\\Activity\\Settings\\PublicLinks' => __DIR__ . '/..' . '/../lib/Activity/Settings/PublicLinks.php',
+ 'OCA\\Files_Sharing\\Activity\\Settings\\PublicLinksUpload' => __DIR__ . '/..' . '/../lib/Activity/Settings/PublicLinksUpload.php',
'OCA\\Files_Sharing\\Activity\\Settings\\RemoteShare' => __DIR__ . '/..' . '/../lib/Activity/Settings/RemoteShare.php',
'OCA\\Files_Sharing\\Activity\\Settings\\ShareActivitySettings' => __DIR__ . '/..' . '/../lib/Activity/Settings/ShareActivitySettings.php',
'OCA\\Files_Sharing\\Activity\\Settings\\Shared' => __DIR__ . '/..' . '/../lib/Activity/Settings/Shared.php',
@@ -41,6 +42,9 @@ class ComposerStaticInitFiles_Sharing
'OCA\\Files_Sharing\\Command\\CleanupRemoteStorages' => __DIR__ . '/..' . '/../lib/Command/CleanupRemoteStorages.php',
'OCA\\Files_Sharing\\Command\\DeleteOrphanShares' => __DIR__ . '/..' . '/../lib/Command/DeleteOrphanShares.php',
'OCA\\Files_Sharing\\Command\\ExiprationNotification' => __DIR__ . '/..' . '/../lib/Command/ExiprationNotification.php',
+ 'OCA\\Files_Sharing\\Command\\FixShareOwners' => __DIR__ . '/..' . '/../lib/Command/FixShareOwners.php',
+ 'OCA\\Files_Sharing\\Command\\ListShares' => __DIR__ . '/..' . '/../lib/Command/ListShares.php',
+ 'OCA\\Files_Sharing\\Config\\ConfigLexicon' => __DIR__ . '/..' . '/../lib/Config/ConfigLexicon.php',
'OCA\\Files_Sharing\\Controller\\AcceptController' => __DIR__ . '/..' . '/../lib/Controller/AcceptController.php',
'OCA\\Files_Sharing\\Controller\\DeletedShareAPIController' => __DIR__ . '/..' . '/../lib/Controller/DeletedShareAPIController.php',
'OCA\\Files_Sharing\\Controller\\ExternalSharesController' => __DIR__ . '/..' . '/../lib/Controller/ExternalSharesController.php',
@@ -71,7 +75,11 @@ class ComposerStaticInitFiles_Sharing
'OCA\\Files_Sharing\\Hooks' => __DIR__ . '/..' . '/../lib/Hooks.php',
'OCA\\Files_Sharing\\ISharedMountPoint' => __DIR__ . '/..' . '/../lib/ISharedMountPoint.php',
'OCA\\Files_Sharing\\ISharedStorage' => __DIR__ . '/..' . '/../lib/ISharedStorage.php',
+ 'OCA\\Files_Sharing\\Listener\\BeforeDirectFileDownloadListener' => __DIR__ . '/..' . '/../lib/Listener/BeforeDirectFileDownloadListener.php',
+ 'OCA\\Files_Sharing\\Listener\\BeforeNodeReadListener' => __DIR__ . '/..' . '/../lib/Listener/BeforeNodeReadListener.php',
+ 'OCA\\Files_Sharing\\Listener\\BeforeZipCreatedListener' => __DIR__ . '/..' . '/../lib/Listener/BeforeZipCreatedListener.php',
'OCA\\Files_Sharing\\Listener\\LoadAdditionalListener' => __DIR__ . '/..' . '/../lib/Listener/LoadAdditionalListener.php',
+ 'OCA\\Files_Sharing\\Listener\\LoadPublicFileRequestAuthListener' => __DIR__ . '/..' . '/../lib/Listener/LoadPublicFileRequestAuthListener.php',
'OCA\\Files_Sharing\\Listener\\LoadSidebarListener' => __DIR__ . '/..' . '/../lib/Listener/LoadSidebarListener.php',
'OCA\\Files_Sharing\\Listener\\ShareInteractionListener' => __DIR__ . '/..' . '/../lib/Listener/ShareInteractionListener.php',
'OCA\\Files_Sharing\\Listener\\UserAddedToGroupListener' => __DIR__ . '/..' . '/../lib/Listener/UserAddedToGroupListener.php',
@@ -87,6 +95,7 @@ class ComposerStaticInitFiles_Sharing
'OCA\\Files_Sharing\\Migration\\Version22000Date20210216084241' => __DIR__ . '/..' . '/../lib/Migration/Version22000Date20210216084241.php',
'OCA\\Files_Sharing\\Migration\\Version24000Date20220208195521' => __DIR__ . '/..' . '/../lib/Migration/Version24000Date20220208195521.php',
'OCA\\Files_Sharing\\Migration\\Version24000Date20220404142216' => __DIR__ . '/..' . '/../lib/Migration/Version24000Date20220404142216.php',
+ 'OCA\\Files_Sharing\\Migration\\Version31000Date20240821142813' => __DIR__ . '/..' . '/../lib/Migration/Version31000Date20240821142813.php',
'OCA\\Files_Sharing\\MountProvider' => __DIR__ . '/..' . '/../lib/MountProvider.php',
'OCA\\Files_Sharing\\Notification\\Listener' => __DIR__ . '/..' . '/../lib/Notification/Listener.php',
'OCA\\Files_Sharing\\Notification\\Notifier' => __DIR__ . '/..' . '/../lib/Notification/Notifier.php',
@@ -98,6 +107,7 @@ class ComposerStaticInitFiles_Sharing
'OCA\\Files_Sharing\\ShareBackend\\Folder' => __DIR__ . '/..' . '/../lib/ShareBackend/Folder.php',
'OCA\\Files_Sharing\\SharedMount' => __DIR__ . '/..' . '/../lib/SharedMount.php',
'OCA\\Files_Sharing\\SharedStorage' => __DIR__ . '/..' . '/../lib/SharedStorage.php',
+ 'OCA\\Files_Sharing\\SharesReminderJob' => __DIR__ . '/..' . '/../lib/SharesReminderJob.php',
'OCA\\Files_Sharing\\Updater' => __DIR__ . '/..' . '/../lib/Updater.php',
'OCA\\Files_Sharing\\ViewOnly' => __DIR__ . '/..' . '/../lib/ViewOnly.php',
);
diff --git a/apps/files_sharing/css/404.css b/apps/files_sharing/css/404.css
index 2ed81df3b86..7542c7cfae1 100644
--- a/apps/files_sharing/css/404.css
+++ b/apps/files_sharing/css/404.css
@@ -1,6 +1,9 @@
-
+/**
+ * SPDX-FileCopyrightText: 2013 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
#body-login .error-broken-link{
- text-align:left;color:#fff;
+ text-align:start;color:#fff;
}
#body-login .error-broken-link ul{
diff --git a/apps/files_sharing/css/icons.css b/apps/files_sharing/css/icons.css
index 72966bd1594..3a81b66561f 100644
--- a/apps/files_sharing/css/icons.css
+++ b/apps/files_sharing/css/icons.css
@@ -1 +1,4 @@
-.icon-room{background-image:var(--icon-talk-dark)}.icon-circle{background-image:var(--icon-circles-dark)}.icon-guests{background-image:var(--icon-user-dark)}/*# sourceMappingURL=icons.css.map */
+/*!
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */.icon-room{background-image:var(--icon-talk-dark)}.icon-circle{background-image:var(--icon-circles-dark)}.icon-guests{background-image:var(--icon-user-dark)}/*# sourceMappingURL=icons.css.map */
diff --git a/apps/files_sharing/css/icons.css.map b/apps/files_sharing/css/icons.css.map
index 5c8233c1143..8a0933ead82 100644
--- a/apps/files_sharing/css/icons.css.map
+++ b/apps/files_sharing/css/icons.css.map
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["icons.scss"],"names":[],"mappings":"AAyBA,WACC,uCAED,aACC,0CAED,aACC","file":"icons.css"} \ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["icons.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA,GAQA,WACC,uCAGD,aACC,0CAGD,aACC","file":"icons.css"} \ No newline at end of file
diff --git a/apps/files_sharing/css/icons.css.map.license b/apps/files_sharing/css/icons.css.map.license
new file mode 100644
index 00000000000..cbd71b0f672
--- /dev/null
+++ b/apps/files_sharing/css/icons.css.map.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_sharing/css/icons.scss b/apps/files_sharing/css/icons.scss
index 21bd1bde019..6dcbd14d478 100644
--- a/apps/files_sharing/css/icons.scss
+++ b/apps/files_sharing/css/icons.scss
@@ -1,34 +1,19 @@
-/**
- * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+/*!
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
-@use 'variables';
-@import 'functions';
-// This is the icons used in the sharing ui (multiselect)
+// This is the icons used in the sharing ui (SharingInput component)
+// loaded by apps/files_sharing/lib/Listener/LoadAdditionalListener.php
+
.icon-room {
background-image: var(--icon-talk-dark);
}
+
.icon-circle {
background-image: var(--icon-circles-dark);
}
+
.icon-guests {
background-image: var(--icon-user-dark);
} \ No newline at end of file
diff --git a/apps/files_sharing/css/mobile.css b/apps/files_sharing/css/mobile.css
deleted file mode 100644
index c6e560ef001..00000000000
--- a/apps/files_sharing/css/mobile.css
+++ /dev/null
@@ -1 +0,0 @@
-@media only screen and (max-width: 1024px){#header.share-file{position:absolute !important}table th.column-size,table td.filesize,table th.column-mtime,table td.date{display:none}table td.filename .nametext{max-width:75% !important}#imgframe{width:100%;padding:0}#imgframe .publicpreview{margin-top:32px}.files-fileList a.action img{padding:0 6px 0 12px}.files-fileList a.action:not(.menuitem) span{display:none}.nametext{width:60%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#header .menutoggle{padding-right:14px;background-position:center}.note{padding:0 20px}.emptycontent{margin-top:10vh}}/*# sourceMappingURL=mobile.css.map */
diff --git a/apps/files_sharing/css/mobile.css.map b/apps/files_sharing/css/mobile.css.map
deleted file mode 100644
index 2fab5000f7a..00000000000
--- a/apps/files_sharing/css/mobile.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sourceRoot":"","sources":["mobile.scss"],"names":[],"mappings":"AAEA,2CAGA,mBACC,6BAID,2EAIC,aAID,4BACC,yBAID,UACC,WACA,UAGD,yBACC,gBAID,6BACC,qBAGD,6CACC,aAID,UACC,UACA,mBACA,gBACA,uBAGD,oBACI,mBACA,2BAEJ,MACC,eAGD,cACC","file":"mobile.css"} \ No newline at end of file
diff --git a/apps/files_sharing/css/mobile.scss b/apps/files_sharing/css/mobile.scss
deleted file mode 100644
index 5800bf6755f..00000000000
--- a/apps/files_sharing/css/mobile.scss
+++ /dev/null
@@ -1,61 +0,0 @@
-@use 'variables';
-
-@media only screen and (max-width: variables.$breakpoint-mobile) {
-
-/* make header scroll up for single shares, more view of content on small screens */
-#header.share-file {
- position: absolute !important;
-}
-
-/* hide size and date columns */
-table th.column-size,
-table td.filesize,
-table th.column-mtime,
-table td.date {
- display: none;
-}
-
-/* restrict length of displayed filename to prevent overflow */
-table td.filename .nametext {
- max-width: 75% !important;
-}
-
-/* on mobile, show single shared image at full width without margin */
-#imgframe {
- width: 100%;
- padding: 0;
-}
-/* some margin for the file type icon */
-#imgframe .publicpreview {
- margin-top: 32px;
-}
-
-/* some padding for better clickability */
-.files-fileList a.action img {
- padding: 0 6px 0 12px;
-}
-/* hide text of the actions on mobile */
-.files-fileList a.action:not(.menuitem) span {
- display: none;
-}
-
-/* ellipsis on file names */
-.nametext {
- width: 60%;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-#header .menutoggle {
- padding-right: 14px;
- background-position: center;
-}
-.note {
- padding: 0 20px;
-}
-
-.emptycontent {
- margin-top: 10vh;
-}
-}
diff --git a/apps/files_sharing/css/public.css b/apps/files_sharing/css/public.css
deleted file mode 100644
index 7b4f8756cfd..00000000000
--- a/apps/files_sharing/css/public.css
+++ /dev/null
@@ -1 +0,0 @@
-#preview{text-align:center}#preview .notCreatable{display:none}#noPreview{display:none;padding-top:80px}#imgframe{height:75%;padding-bottom:32px;padding-top:32px;width:80%;margin:0 auto}#imgframe #viewer{height:100%;width:100%}#imgframe img{max-height:calc(100vh - var(--header-height) - 65px - 200px - 16px) !important;max-width:100% !important;width:unset !important}#imgframe :not(#viewer) img{min-width:100px}#imgframe video{max-height:calc(100vh - var(--header-height) - 65px - 200px - 16px)}#imgframe .plyr:fullscreen video{max-height:unset}#imgframe audio{display:block;margin-left:auto;margin-right:auto}#imgframe #viewer[data-handler=audios]{margin-top:400px}#imgframe .plyr{top:0px !important}#imgframe .text-preview{display:inline-block;position:relative;text-align:left;white-space:pre-wrap;overflow-y:scroll;height:auto;min-height:200px;max-height:800px}#imgframe .ellipsis{font-size:1.2em}#imgframe .viewer__file{height:100%;width:100%}#imgframe .plyr{max-height:100%}.app-files_sharing #app-content footer{position:sticky !important}thead{left:0 !important}#data-upload-form{position:relative;right:0;height:32px;overflow:hidden;padding:0;float:right;display:inline;margin:0}.directDownload #downloadFile{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90%;display:inline-block;margin-left:auto;margin-right:auto;margin-top:16px}.download-size{opacity:.5}#details{display:inline-flex}#details button,#details input,#details .button{margin:0 5px;line-height:normal}#details button:hover,#details input:hover,#details .button:hover{border-color:rgba(0,0,0,.3) !important}#public-upload .avatardiv{margin:0 auto}.emptycontent.has-note{margin-top:5vh}#public-upload .emptycontent h2{margin:10px 0 5px 0}#public-upload .emptycontent h2+p{margin-bottom:30px}#public-upload .emptycontent .icon-folder{height:16px;width:16px;background-size:16px;display:inline-block;vertical-align:text-top;margin-bottom:0;margin-right:5px;opacity:1}#public-upload .emptycontent #displayavatar .icon-folder{height:48px;width:48px;background-size:48px}#public-upload .emptycontent .button{display:inline-block;height:auto;width:auto;background-size:16px;background-position:16px;opacity:.7;font-size:20px;line-height:initial;margin:20px;padding:10px 20px;padding-left:42px}#public-upload .emptycontent ul{width:230px;margin:5px auto 5vh;text-align:left}#public-upload .emptycontent li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:7px 0}#public-upload .emptycontent li img{margin-right:5px;position:relative;top:2px}#drop-upload-progress-indicator span.icon-loading-small{padding-left:18px;margin-right:7px}#drop-uploaded-files li #drop-upload-name{float:left;max-width:180px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#drop-uploaded-files li #drop-upload-status{float:right}.disclaimer,.note{margin:0 auto 30px;max-width:400px;text-align:left}#note-content{padding:5px;display:inline-block;width:350px}#note-content .content{overflow:auto;max-height:200px}#show-terms-dialog{cursor:pointer;font-weight:bold}@media only screen and (min-width: 1025px){#body-public .header-right #header-actions-menu>ul>li#download{display:none}}@media only screen and (max-width: 1024px){#body-public .header-right #header-primary-action{display:none}}/*# sourceMappingURL=public.css.map */
diff --git a/apps/files_sharing/css/public.css.map b/apps/files_sharing/css/public.css.map
deleted file mode 100644
index f193eeff05c..00000000000
--- a/apps/files_sharing/css/public.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sourceRoot":"","sources":["public.scss"],"names":[],"mappings":"AAMA,SACC,kBAGD,uBACC,aAGD,WACC,aACA,iBAGD,UACC,WACA,oBACA,iBACA,UACA,cAGD,kBACC,YACA,WAGD,cACC,+EACA,0BACA,uBAGD,4BACI,gBAGJ,gBACC,oEAGD,iCACI,iBAGJ,gBACC,cACA,iBACA,kBAGD,uCAEI,iBAGJ,gBACI,mBAGJ,wBACC,qBACA,kBACA,gBACA,qBACA,kBACA,YACA,iBACA,iBAGD,oBACC,gBAGD,wBACC,YACA,WAGD,gBACC,gBAID,uCACC,2BAID,MACC,kBAGD,kBACC,kBACA,QACA,YACA,gBACA,UACA,YACA,eACA,SAID,8BACC,mBACA,gBACA,uBACA,cACA,qBACA,iBACA,kBACA,gBAGD,eACC,WAID,SACC,oBAED,gDAGC,aACA,mBAED,kEAIC,uCAGD,0BACC,cAIA,uBACC,eAIF,gCACC,oBAGD,kCACC,mBAGD,0CACC,YACA,WACA,qBACA,qBACA,wBACA,gBACA,iBACA,UAGD,yDACC,YACA,WACA,qBAGD,qCACC,qBACA,YACA,WACA,qBACA,yBACA,WACA,eACA,oBACA,YACA,kBACA,kBAGD,gCACC,YACA,oBACA,gBAGD,gCACC,gBACA,uBACA,mBACA,cAGD,oCACC,iBACA,kBACA,QAGD,wDACC,kBACA,iBAGD,0CACC,WACA,gBACA,uBACA,mBACA,gBAGD,4CACC,YAGD,kBAEC,mBACA,gBACA,gBAGD,cACC,YACA,qBACA,YACA,uBACC,cACA,iBAIF,mBACC,eACA,iBAKD,2CAII,+DACC,cAQL,2CAGG,kDACC","file":"public.css"} \ No newline at end of file
diff --git a/apps/files_sharing/css/public.scss b/apps/files_sharing/css/public.scss
deleted file mode 100644
index ded68fc46b1..00000000000
--- a/apps/files_sharing/css/public.scss
+++ /dev/null
@@ -1,274 +0,0 @@
-@use 'variables';
-
-$footer-height: 65px;
-$footer-padding-height: 16px;
-$download-button-section-height: 200px;
-
-#preview {
- text-align: center;
-}
-
-#preview .notCreatable {
- display: none;
-}
-
-#noPreview {
- display:none;
- padding-top:80px;
-}
-
-#imgframe {
- height:75%;
- padding-bottom:32px;
- padding-top:32px;
- width:80%;
- margin:0 auto;
-}
-
-#imgframe #viewer {
- height: 100%;
- width: 100%;
-}
-
-#imgframe img {
- max-height: calc(100vh - var(--header-height) - #{$footer-height} - #{$download-button-section-height} - #{$footer-padding-height}) !important;
- max-width: 100% !important;
- width: unset !important;
-}
-
-#imgframe :not(#viewer) img {
- min-width: 100px;
-}
-
-#imgframe video {
- max-height: calc(100vh - var(--header-height) - #{$footer-height} - #{$download-button-section-height} - #{$footer-padding-height});
-}
-
-#imgframe .plyr:fullscreen video {
- max-height: unset;
-}
-
-#imgframe audio {
- display: block;
- margin-left: auto;
- margin-right: auto;
-}
-
-#imgframe #viewer[data-handler=audios] {
- // for speed settings
- margin-top: 400px;
-}
-
-#imgframe .plyr {
- top: 0px !important;
-}
-
-#imgframe .text-preview {
- display: inline-block;
- position: relative;
- text-align: left;
- white-space: pre-wrap;
- overflow-y: scroll;
- height: auto;
- min-height: 200px;
- max-height: 800px;
-}
-
-#imgframe .ellipsis {
- font-size: 1.2em;
-}
-
-#imgframe .viewer__file {
- height: 100%;
- width: 100%;
-}
-
-#imgframe .plyr {
- max-height: 100%;
-}
-
-
-.app-files_sharing #app-content footer {
- position: sticky !important;
-}
-
-/* fix multiselect bar offset on shared page */
-thead {
- left: 0 !important;
-}
-
-#data-upload-form {
- position: relative;
- right: 0;
- height: 32px;
- overflow: hidden;
- padding: 0;
- float: right;
- display: inline;
- margin: 0;
-}
-
-/* keep long file names in one line to not overflow download button on mobile */
-.directDownload #downloadFile {
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- max-width: 90%;
- display: inline-block;
- margin-left: auto;
- margin-right: auto;
- margin-top: 16px;
-}
-
-.download-size {
- opacity: .5;
-}
-
-/* header buttons */
-#details {
- display: inline-flex;
-}
-#details button,
-#details input,
-#details .button {
- margin: 0 5px;
- line-height: normal;
-}
-#details button:hover,
-#details input:hover,
-#details .button:hover {
- /* No */
- border-color: rgba(0,0,0,0.3) !important;
-}
-
-#public-upload .avatardiv {
- margin: 0 auto;
-}
-
-.emptycontent {
- &.has-note {
- margin-top: 5vh;
- }
-}
-
-#public-upload .emptycontent h2 {
- margin: 10px 0 5px 0;
-}
-
-#public-upload .emptycontent h2+p {
- margin-bottom: 30px;
-}
-
-#public-upload .emptycontent .icon-folder {
- height: 16px;
- width: 16px;
- background-size: 16px;
- display: inline-block;
- vertical-align: text-top;
- margin-bottom: 0;
- margin-right: 5px;
- opacity: 1;
-}
-
-#public-upload .emptycontent #displayavatar .icon-folder {
- height: 48px;
- width: 48px;
- background-size: 48px;
-}
-
-#public-upload .emptycontent .button {
- display: inline-block;
- height: auto;
- width: auto;
- background-size: 16px;
- background-position: 16px;
- opacity: .7;
- font-size: 20px;
- line-height: initial;
- margin: 20px;
- padding: 10px 20px;
- padding-left: 42px;
-}
-
-#public-upload .emptycontent ul {
- width: 230px;
- margin: 5px auto 5vh;
- text-align: left;
-}
-
-#public-upload .emptycontent li {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- padding: 7px 0;
-}
-
-#public-upload .emptycontent li img {
- margin-right: 5px;
- position: relative;
- top: 2px;
-}
-
-#drop-upload-progress-indicator span.icon-loading-small {
- padding-left: 18px;
- margin-right: 7px;
-}
-
-#drop-uploaded-files li #drop-upload-name {
- float: left;
- max-width: 180px;
- text-overflow: ellipsis;
- white-space: nowrap;
- overflow: hidden;
-}
-
-#drop-uploaded-files li #drop-upload-status {
- float: right;
-}
-
-.disclaimer,
-.note {
- margin: 0 auto 30px;
- max-width: 400px;
- text-align: left;
-}
-
-#note-content {
- padding: 5px;
- display:inline-block;
- width: 350px;
- .content {
- overflow: auto;
- max-height: 200px;
- }
-}
-
-#show-terms-dialog {
- cursor: pointer;
- font-weight: bold;
-}
-
-// hide the download entry on the menu
-// on public share when NOT on mobile
-@media only screen and (min-width: variables.$breakpoint-mobile + 1) {
- #body-public {
- .header-right {
- #header-actions-menu {
- > ul > li#download {
- display: none;
- }
- }
- }
- }
-}
-
-// hide the primary on public share on mobile
-@media only screen and (max-width: variables.$breakpoint-mobile) {
- #body-public {
- .header-right {
- #header-primary-action {
- display: none;
- }
- }
- }
-}
diff --git a/apps/files_sharing/css/publicView.css b/apps/files_sharing/css/publicView.css
deleted file mode 100644
index f30d7b84728..00000000000
--- a/apps/files_sharing/css/publicView.css
+++ /dev/null
@@ -1 +0,0 @@
-#preview{text-align:center}#preview .notCreatable{display:none}#noPreview{display:none;padding-top:80px}#imgframe{height:75%;padding-bottom:32px;padding-top:32px;width:80%;margin:0 auto}#imgframe #viewer{height:100%;width:100%}#imgframe img{max-height:calc(100vh - var(--header-height) - 65px - 200px - 16px) !important;max-width:100% !important;width:unset !important}#imgframe :not(#viewer) img{min-width:100px}#imgframe video{max-height:calc(100vh - var(--header-height) - 65px - 200px - 16px)}#imgframe .plyr:fullscreen video{max-height:unset}#imgframe audio{display:block;margin-left:auto;margin-right:auto}#imgframe #viewer[data-handler=audios]{margin-top:400px}#imgframe .plyr{top:0px !important}#imgframe .text-preview{display:inline-block;position:relative;text-align:left;white-space:pre-wrap;overflow-y:scroll;height:auto;min-height:200px;max-height:800px}#imgframe .ellipsis{font-size:1.2em}#imgframe .viewer__file{height:100%;width:100%}#imgframe .plyr{max-height:100%}.app-files_sharing #app-content footer{position:sticky !important}thead{left:0 !important}#data-upload-form{position:relative;right:0;height:32px;overflow:hidden;padding:0;float:right;display:inline;margin:0}.directDownload #downloadFile{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90%;display:inline-block;margin-left:auto;margin-right:auto;margin-top:16px}.download-size{opacity:.5}#details{display:inline-flex}#details button,#details input,#details .button{margin:0 5px;line-height:normal}#details button:hover,#details input:hover,#details .button:hover{border-color:rgba(0,0,0,.3) !important}#public-upload .avatardiv{margin:0 auto}.emptycontent.has-note{margin-top:5vh}#public-upload .emptycontent h2{margin:10px 0 5px 0}#public-upload .emptycontent h2+p{margin-bottom:30px}#public-upload .emptycontent .icon-folder{height:16px;width:16px;background-size:16px;display:inline-block;vertical-align:text-top;margin-bottom:0;margin-right:5px;opacity:1}#public-upload .emptycontent #displayavatar .icon-folder{height:48px;width:48px;background-size:48px}#public-upload .emptycontent .button{display:inline-block;height:auto;width:auto;background-size:16px;background-position:16px;opacity:.7;font-size:20px;line-height:initial;margin:20px;padding:10px 20px;padding-left:42px}#public-upload .emptycontent ul{width:230px;margin:5px auto 5vh;text-align:left}#public-upload .emptycontent li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:7px 0}#public-upload .emptycontent li img{margin-right:5px;position:relative;top:2px}#drop-upload-progress-indicator span.icon-loading-small{padding-left:18px;margin-right:7px}#drop-uploaded-files li #drop-upload-name{float:left;max-width:180px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#drop-uploaded-files li #drop-upload-status{float:right}.disclaimer,.note{margin:0 auto 30px;max-width:400px;text-align:left}#note-content{padding:5px;display:inline-block;width:350px}#note-content .content{overflow:auto;max-height:200px}#show-terms-dialog{cursor:pointer;font-weight:bold}@media only screen and (min-width: 1025px){#body-public .header-right #header-actions-menu>ul>li#download{display:none}}@media only screen and (max-width: 1024px){#body-public .header-right #header-primary-action{display:none}}@media only screen and (max-width: 1024px){#header.share-file{position:absolute !important}table th.column-size,table td.filesize,table th.column-mtime,table td.date{display:none}table td.filename .nametext{max-width:75% !important}#imgframe{width:100%;padding:0}#imgframe .publicpreview{margin-top:32px}.files-fileList a.action img{padding:0 6px 0 12px}.files-fileList a.action:not(.menuitem) span{display:none}.nametext{width:60%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#header .menutoggle{padding-right:14px;background-position:center}.note{padding:0 20px}.emptycontent{margin-top:10vh}}/*# sourceMappingURL=publicView.css.map */
diff --git a/apps/files_sharing/css/publicView.css.map b/apps/files_sharing/css/publicView.css.map
deleted file mode 100644
index 91e34b4c92d..00000000000
--- a/apps/files_sharing/css/publicView.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sourceRoot":"","sources":["public.scss","mobile.scss"],"names":[],"mappings":"AAMA,SACC,kBAGD,uBACC,aAGD,WACC,aACA,iBAGD,UACC,WACA,oBACA,iBACA,UACA,cAGD,kBACC,YACA,WAGD,cACC,+EACA,0BACA,uBAGD,4BACI,gBAGJ,gBACC,oEAGD,iCACI,iBAGJ,gBACC,cACA,iBACA,kBAGD,uCAEI,iBAGJ,gBACI,mBAGJ,wBACC,qBACA,kBACA,gBACA,qBACA,kBACA,YACA,iBACA,iBAGD,oBACC,gBAGD,wBACC,YACA,WAGD,gBACC,gBAID,uCACC,2BAID,MACC,kBAGD,kBACC,kBACA,QACA,YACA,gBACA,UACA,YACA,eACA,SAID,8BACC,mBACA,gBACA,uBACA,cACA,qBACA,iBACA,kBACA,gBAGD,eACC,WAID,SACC,oBAED,gDAGC,aACA,mBAED,kEAIC,uCAGD,0BACC,cAIA,uBACC,eAIF,gCACC,oBAGD,kCACC,mBAGD,0CACC,YACA,WACA,qBACA,qBACA,wBACA,gBACA,iBACA,UAGD,yDACC,YACA,WACA,qBAGD,qCACC,qBACA,YACA,WACA,qBACA,yBACA,WACA,eACA,oBACA,YACA,kBACA,kBAGD,gCACC,YACA,oBACA,gBAGD,gCACC,gBACA,uBACA,mBACA,cAGD,oCACC,iBACA,kBACA,QAGD,wDACC,kBACA,iBAGD,0CACC,WACA,gBACA,uBACA,mBACA,gBAGD,4CACC,YAGD,kBAEC,mBACA,gBACA,gBAGD,cACC,YACA,qBACA,YACA,uBACC,cACA,iBAIF,mBACC,eACA,iBAKD,2CAII,+DACC,cAQL,2CAGG,kDACC,cC3QJ,2CAGA,mBACC,6BAID,2EAIC,aAID,4BACC,yBAID,UACC,WACA,UAGD,yBACC,gBAID,6BACC,qBAGD,6CACC,aAID,UACC,UACA,mBACA,gBACA,uBAGD,oBACI,mBACA,2BAEJ,MACC,eAGD,cACC","file":"publicView.css"} \ No newline at end of file
diff --git a/apps/files_sharing/css/publicView.scss b/apps/files_sharing/css/publicView.scss
deleted file mode 100644
index 398fd1b0a37..00000000000
--- a/apps/files_sharing/css/publicView.scss
+++ /dev/null
@@ -1,2 +0,0 @@
-@import 'public.scss';
-@import 'mobile.scss';
diff --git a/apps/files_sharing/img/app.svg b/apps/files_sharing/img/app.svg
index ad0fea0633a..cf1cb307f36 100644
--- a/apps/files_sharing/img/app.svg
+++ b/apps/files_sharing/img/app.svg
@@ -1 +1 @@
-<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M12.228 1a2.457 2.457 0 0 0-2.46 2.454c0 .075.01.15.016.224L5.05 6.092a2.445 2.445 0 0 0-1.596-.586A2.453 2.453 0 0 0 1 7.96a2.453 2.453 0 0 0 2.454 2.455 2.45 2.45 0 0 0 1.46-.477l4.865 2.474c-.004.044-.01.09-.01.134a2.457 2.457 0 1 0 .804-1.818l-4.696-2.4c.02-.123.035-.25.035-.378 0-.072-.01-.144-.015-.214l4.74-2.414A2.457 2.457 0 1 0 12.228.99z" fill="#fff"/></svg>
+<svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 -960 960 960" width="20px" fill="#fff"><path d="M708-432v-84h-84v-72h84v-84h72v84h84v72h-84v84h-72Zm-324-48q-60 0-102-42t-42-102q0-60 42-102t102-42q60 0 102 42t42 102q0 60-42 102t-102 42ZM96-192v-92q0-25.78 12.5-47.39T143-366q55-32 116-49t125-17q64 0 125 17t116 49q22 13 34.5 34.61T672-284v92H96Z"/></svg> \ No newline at end of file
diff --git a/apps/files_sharing/js/files_drop.js b/apps/files_sharing/js/files_drop.js
deleted file mode 100644
index 5215cfc5b54..00000000000
--- a/apps/files_sharing/js/files_drop.js
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
- *
- * This file is licensed under the Affero General Public License version 3
- * or later.
- *
- * See the COPYING-README file.
- *
- */
-
-(function ($) {
-
- var Drop = {
- /** @type {Function} **/
- _template: undefined,
-
- /** @type {boolean} */
- _uploading: false,
-
- addFileToUpload: function(e, data) {
- var errors = [];
- var output = this.template();
-
- var filesClient = new OC.Files.Client({
- host: OC.getHost(),
- port: OC.getPort(),
- // note: password not be required, the endpoint
- // will recognize previous validation from the session
- root: OC.getRootPath() + '/public.php/dav/files/' + $('#sharingToken').val() + '/',
- useHTTPS: OC.getProtocol() === 'https'
- });
-
- // We only process one file at a time 🤷‍♀️
- var name = data.files[0].name;
- // removing unwanted characters
- name = name.replace(/["'#%`]/gm, '');
-
- try {
- // FIXME: not so elegant... need to refactor that method to return a value
- Files.isFileNameValid(name);
- }
- catch (errorMessage) {
- OC.Notification.show(errorMessage, {type: 'error'});
- return false;
- }
- var base = OC.getProtocol() + '://' + OC.getHost();
- data.url = base + OC.getRootPath() + '/public.php/dav/files/' + $('#sharingToken').val() + '/' + encodeURI(name);
-
- data.multipart = false;
-
- if (!data.headers) {
- data.headers = {};
- }
-
- $('#drop-upload-done-indicator').addClass('hidden');
- $('#drop-upload-progress-indicator').removeClass('hidden');
-
- $('#drop-uploaded-files').append(output({isUploading: true, name: data.files[0].name}));
- data.submit();
-
- return true;
- },
-
- updateFileItem: function (fileName, fileItem) {
- $('#drop-uploaded-files li[data-name="' + fileName + '"]').replaceWith(fileItem);
- },
-
- initialize: function () {
- $(document).bind('drop dragover', function (e) {
- // Prevent the default browser drop action:
- e.preventDefault();
- });
- var output = this.template();
- var self = this;
- $('#public-upload').fileupload({
- type: 'PUT',
- dropZone: $('#public-upload'),
- sequentialUploads: true,
- start: function(e) {
- self._uploading = true;
- },
- stop: function(e) {
- self._uploading = false;
- },
- add: function(e, data) {
- Drop.addFileToUpload(e, data);
- $('#drop-upload-status').text(t('files_sharing', 'Waiting…'));
- //we return true to keep trying to upload next file even
- //if addFileToUpload did not like the previous one
- return true;
- },
- done: function(e, data) {
- // Created
- var mimeTypeUrl = OC.MimeType.getIconUrl(data.files[0].type);
- var fileItem = output({isUploading: false, iconSrc: mimeTypeUrl, name: data.files[0].name});
- Drop.updateFileItem(data.files[0].name, fileItem);
- },
- fail: function(e, data) {
- OC.Notification.showTemporary(OC.L10N.translate(
- 'files_sharing',
- 'Could not upload "{filename}"',
- {filename: data.files[0].name}
- ));
- $('#drop-upload-status').text(t('files_sharing', 'error'));
- var errorIconSrc = OC.imagePath('core', 'actions/error.svg');
- var fileItem = output({isUploading: false, iconSrc: errorIconSrc, name: data.files[0].name});
- Drop.updateFileItem(data.files[0].name, fileItem);
- },
- progressall: function (e, data) {
- var progress = parseInt(data.loaded / data.total * 100, 10);
- if(progress === 100) {
- $('#drop-upload-done-indicator').removeClass('hidden');
- $('#drop-upload-progress-indicator').addClass('hidden');
- } else {
- $('#drop-upload-done-indicator').addClass('hidden');
- $('#drop-upload-progress-indicator').removeClass('hidden');
- }
- },
- progress: function (e, data) {
- var progress = parseInt(data.loaded / data.total * 100, 10);
- if(progress === 100) {
- $('#drop-upload-progress-bar').val(100);
- $('#drop-upload-status').text(t('files_sharing', 'finished'));
- } else {
- $('#drop-upload-progress-bar').val(progress);
- $('#drop-upload-status').text(progress + '%');
- }
- },
- });
- $('#public-upload .button.icon-upload').click(function(e) {
- e.preventDefault();
- $('#public-upload .emptycontent input').focus().trigger('click');
- });
- window.onbeforeunload = function() {
- return self.confirmBeforeUnload();
- }
- },
-
- /**
- * @returns {Function} from Handlebars
- * @private
- */
- template: function () {
- return OCA.Sharing.Templates['files_drop'];
- },
-
- confirmBeforeUnload: function() {
- if (this._uploading) {
- return t('files', 'This will stop your current uploads.')
- }
- },
- };
-
- OCA.FilesSharingDrop = Drop;
-
- window.addEventListener('DOMContentLoaded', function() {
- if($('#upload-only-interface').val() === "1") {
- $('.avatardiv').avatar($('#sharingUserId').val(), 128, true);
- }
-
- OCA.FilesSharingDrop.initialize();
- });
-})(jQuery);
diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js
deleted file mode 100644
index d26cecd02ee..00000000000
--- a/apps/files_sharing/js/public.js
+++ /dev/null
@@ -1,517 +0,0 @@
-/*
- * Copyright (c) 2014
- * @copyright Copyright (c) 2016, Björn Schießle <bjoern@schiessle.org>
- *
- * This file is licensed under the Affero General Public License version 3
- * or later.
- *
- * See the COPYING-README file.
- *
- */
-
-/* global FileActions, Files, FileList */
-/* global dragOptions, folderDropOptions */
-if (!OCA.Sharing) {
- OCA.Sharing = {};
-}
-if (!OCA.Files) {
- OCA.Files = {};
-}
-/**
- * @namespace
- */
-OCA.Sharing.PublicApp = {
- _initialized: false,
-
- /**
- * Initializes the public share app.
- *
- * @param $el container
- */
- initialize: function ($el) {
- var self = this;
- var fileActions;
- if (this._initialized) {
- return;
- }
- fileActions = new OCA.Files.FileActions();
- // default actions
- fileActions.registerDefaultActions();
- // regular actions
- fileActions.merge(OCA.Files.fileActions);
-
- // in case apps would decide to register file actions later,
- // replace the global object with this one
- OCA.Files.fileActions = fileActions;
-
- this._initialized = true;
- var urlParams = OC.Util.History.parseUrlQuery();
- this.initialDir = urlParams.path || '/';
-
- var token = $('#sharingToken').val();
- var hideDownload = $('#hideDownload').val();
-
- // Prevent all right-click options if hideDownload is enabled
- if (hideDownload === 'true') {
- window.oncontextmenu = function(event) {
- event.preventDefault();
- event.stopPropagation();
- return false;
- };
- }
-
- // file list mode ?
- if ($el.find('.files-filestable').length) {
- // Toggle for grid view
- this.$showGridView = $('input#showgridview');
- this.$showGridView.on('change', _.bind(this._onGridviewChange, this));
-
- var filesClient = new OC.Files.Client({
- host: OC.getHost(),
- port: OC.getPort(),
- // note: password not be required, the endpoint
- // will recognize previous validation from the session
- root: OC.getRootPath() + '/public.php/dav/files/' + token + '/',
- useHTTPS: OC.getProtocol() === 'https'
- });
-
- this.fileList = new OCA.Files.FileList(
- $el,
- {
- id: 'files.public',
- dragOptions: dragOptions,
- folderDropOptions: folderDropOptions,
- fileActions: fileActions,
- detailsViewEnabled: false,
- filesClient: filesClient,
- enableUpload: true,
- multiSelectMenu: [
- {
- name: 'copyMove',
- displayName: t('files', 'Move or copy'),
- iconClass: 'icon-external',
- },
- {
- name: 'download',
- displayName: t('files', 'Download'),
- iconClass: 'icon-download',
- },
- {
- name: 'delete',
- displayName: t('files', 'Delete'),
- iconClass: 'icon-delete',
- }
- ]
- }
- );
- if (hideDownload === 'true') {
- this.fileList._allowSelection = false;
- }
- this.files = OCA.Files.Files;
- this.files.initialize();
- // TODO: move to PublicFileList.initialize() once
- // the code was split into a separate class
- OC.Plugins.attach('OCA.Sharing.PublicFileList', this.fileList);
- }
-
- var mimetype = $('#mimetype').val();
- var mimetypeIcon = $('#mimetypeIcon').val();
- mimetypeIcon = mimetypeIcon.substring(0, mimetypeIcon.length - 3);
- mimetypeIcon = mimetypeIcon + 'svg';
-
- var previewSupported = $('#previewSupported').val();
-
- if (typeof FileActions !== 'undefined') {
- // Show file preview if previewer is available, images are already handled by the template
- if (mimetype.substr(0, mimetype.indexOf('/')) !== 'image' && $('.publicpreview').length === 0) {
- // Trigger default action if not download TODO
- var spec = FileActions.getDefaultFileAction(mimetype, 'file', OC.PERMISSION_READ);
- if (spec && spec.action) {
- spec.action($('#filename').val());
- }
- }
- }
-
- // dynamically load image previews
- var bottomMargin = 350;
- var previewWidth = $(window).width();
- var previewHeight = $(window).height() - bottomMargin;
- previewHeight = Math.max(200, previewHeight);
- var params = {
- x: Math.ceil(previewWidth * window.devicePixelRatio),
- y: Math.ceil(previewHeight * window.devicePixelRatio),
- a: 'true',
- file: encodeURIComponent(this.initialDir + $('#filename').val()),
- scalingup: 0
- };
-
- var imgcontainer = $('<img class="publicpreview" alt="">');
- if (hideDownload === 'false') {
- imgcontainer = $('<a href="' + $('#previewURL').val() + '" target="_blank"></a>').append(imgcontainer);
- }
- var img = imgcontainer.hasClass('publicpreview')? imgcontainer: imgcontainer.find('.publicpreview');
- img.css({
- 'max-width': previewWidth,
- 'max-height': previewHeight
- });
-
- if (OCA.Viewer && OCA.Viewer.mimetypes.includes(mimetype)
- && (mimetype.startsWith('image/') || mimetype.startsWith('video/') || mimetype.startsWith('audio'))) {
- OCA.Viewer.setRootElement('#imgframe')
- OCA.Viewer.open({ path: '/' })
- } else if (mimetype.substr(0, mimetype.indexOf('/')) === 'text' && window.btoa) {
- if (OC.appswebroots['files_texteditor'] !== undefined ||
- OC.appswebroots['text'] !== undefined) {
- // the text editor handles the previewing
- return;
- }
- // Undocumented Url to public WebDAV endpoint
- var url = parent.location.protocol + '//' + location.host + OC.linkTo('', 'public.php/dav/files/'+ token);
- $.ajax({
- url: url,
- headers: {
- Range: 'bytes=0-10000'
- }
- }).then(function (data) {
- self._showTextPreview(data, previewHeight);
- });
- } else if ((previewSupported === 'true' && mimetype.substr(0, mimetype.indexOf('/')) !== 'video') ||
- mimetype.substr(0, mimetype.indexOf('/')) === 'image' &&
- mimetype !== 'image/svg+xml') {
- img.attr('src', OC.generateUrl('/apps/files_sharing/publicpreview/' + token + '?' + OC.buildQueryString(params)));
- imgcontainer.appendTo('#imgframe');
- } else if (mimetype.substr(0, mimetype.indexOf('/')) !== 'video') {
- img.attr('src', mimetypeIcon);
- img.attr('width', 128);
- // "#imgframe" is either empty or it contains an audio preview that
- // the icon should appear before, so the container should be
- // prepended to the frame.
- imgcontainer.prependTo('#imgframe');
- } else if (previewSupported === 'true') {
- $('#imgframe > video').attr('poster', OC.generateUrl('/apps/files_sharing/publicpreview/' + token + '?' + OC.buildQueryString(params)));
- }
-
- if (this.fileList) {
- // TODO: move this to a separate PublicFileList class that extends OCA.Files.FileList (+ unit tests)
- this.fileList.getDownloadUrl = function (filename, dir, isDir) {
- var path = dir || this.getCurrentDirectory();
- if (_.isArray(filename)) {
- filename = JSON.stringify(filename);
- }
- var params = {
- path: path
- };
- if (filename) {
- params.files = filename;
- }
- return OC.generateUrl('/s/' + token + '/download') + '?' + OC.buildQueryString(params);
- };
-
- this.fileList._createRow = function(fileData) {
- var $tr = OCA.Files.FileList.prototype._createRow.apply(this, arguments);
- if (hideDownload === 'true') {
- this.fileActions.currentFile = $tr.find('td');
-
- // Remove the link. This means that files without a default action fail hard
- $tr.find('a.name').attr('href', '#');
-
- delete this.fileActions.actions.all.Download;
- }
- return $tr;
- };
-
- this.fileList.isSelectedDownloadable = function () {
- return hideDownload !== 'true';
- };
-
- this.fileList.getUploadUrl = function(fileName, dir) {
- if (_.isUndefined(dir)) {
- dir = this.getCurrentDirectory();
- }
-
- var pathSections = dir.split('/');
- if (!_.isUndefined(fileName)) {
- pathSections.push(fileName);
- }
- var encodedPath = '';
- _.each(pathSections, function(section) {
- if (section !== '') {
- encodedPath += '/' + encodeURIComponent(section);
- }
- });
- var base = '';
-
- if (!this._uploader.isXHRUpload()) {
- // also add auth in URL due to POST workaround
- base = OC.getProtocol() + '://' + token + '@' + OC.getHost() + (OC.getPort() ? ':' + OC.getPort() : '');
- }
-
- // encodedPath starts with a leading slash
- return base + OC.getRootPath() + '/public.php/dav/files/' + token + encodedPath;
- };
-
- this.fileList.getAjaxUrl = function (action, params) {
- params = params || {};
- params.t = token;
- return OC.filePath('files_sharing', 'ajax', action + '.php') + '?' + OC.buildQueryString(params);
- };
-
- this.fileList.linkTo = function (dir) {
- return OC.generateUrl('/s/' + token + '') + '?' + OC.buildQueryString({path: dir});
- };
-
- this.fileList.generatePreviewUrl = function (urlSpec) {
- urlSpec = urlSpec || {};
- if (!urlSpec.x) {
- urlSpec.x = this.$table.data('preview-x') || 250;
- }
- if (!urlSpec.y) {
- urlSpec.y = this.$table.data('preview-y') || 250;
- }
- urlSpec.x *= window.devicePixelRatio;
- urlSpec.y *= window.devicePixelRatio;
- urlSpec.x = Math.ceil(urlSpec.x);
- urlSpec.y = Math.ceil(urlSpec.y);
- var token = $('#dirToken').val();
- return OC.generateUrl('/apps/files_sharing/publicpreview/' + token + '?' + OC.buildQueryString(urlSpec));
- };
-
- this.fileList.updateEmptyContent = function() {
- this.$el.find('.emptycontent .uploadmessage').text(
- t('files_sharing', 'You can upload into this folder')
- );
- OCA.Files.FileList.prototype.updateEmptyContent.apply(this, arguments);
- };
-
- this.fileList._uploader.on('fileuploadadd', function(e, data) {
- if (!data.headers) {
- data.headers = {};
- }
-
- data.headers.Authorization = 'Basic ' + btoa(token + ':');
- });
-
- // do not allow sharing from the public page
- delete this.fileList.fileActions.actions.all.Share;
-
- this.fileList.changeDirectory(this.initialDir || '/', false, true);
-
- // URL history handling
- this.fileList.$el.on('changeDirectory', _.bind(this._onDirectoryChanged, this));
- OC.Util.History.addOnPopStateHandler(_.bind(this._onUrlChanged, this));
-
- $('#download').click(function (e) {
- e.preventDefault();
- OC.redirect(FileList.getDownloadUrl());
- });
-
- if (hideDownload === 'true') {
- this.fileList.$el.find('.summary').find('td:first-child').remove();
- }
- }
-
- $(document).on('click', '#directLink', function () {
- $(this).focus();
- $(this).select();
- });
-
- $('.save-form').submit(function (event) {
- event.preventDefault();
-
- var remote = $(this).find('#remote_address').val();
- var token = $('#sharingToken').val();
- var owner = $('#save-external-share').data('owner');
- var ownerDisplayName = $('#save-external-share').data('owner-display-name');
- var name = $('#save-external-share').data('name');
- var isProtected = $('#save-external-share').data('protected') ? 1 : 0;
- OCA.Sharing.PublicApp._createFederatedShare(remote, token, owner, ownerDisplayName, name, isProtected);
- });
-
- $('#remote_address').on("keyup paste", function() {
- if ($(this).val() === '' || $('#save-external-share > .icon.icon-loading-small').length > 0) {
- $('#save-button-confirm').prop('disabled', true);
- } else {
- $('#save-button-confirm').prop('disabled', false);
- }
- });
-
- self._bindShowTermsAction();
-
- // legacy
- window.FileList = this.fileList;
- },
-
- /**
- * Binds the click action for the "terms of service" action.
- * Shows an OC info dialog on click.
- *
- * @private
- */
- _bindShowTermsAction: function() {
- $('#show-terms-dialog').on('click', function() {
- OC.dialogs.info($('#disclaimerText').val(), t('files_sharing', 'Terms of service'));
- });
- },
-
- _showTextPreview: function (data, previewHeight) {
- var textDiv = $('<div></div>').addClass('text-preview');
- textDiv.text(data);
- textDiv.appendTo('#imgframe');
- var divHeight = textDiv.height();
- if (data.length > 999) {
- var ellipsis = $('<div></div>').addClass('ellipsis');
- ellipsis.html('(&#133;)');
- ellipsis.appendTo('#imgframe');
- }
- if (divHeight > previewHeight) {
- textDiv.height(previewHeight);
- }
- },
-
- /**
- * Toggle showing gridview by default or not
- *
- * @returns {undefined}
- */
- _onGridviewChange: function() {
- const isGridView = this.$showGridView.is(':checked');
- this.$showGridView.next('#view-toggle')
- .removeClass('icon-toggle-filelist icon-toggle-pictures')
- .addClass(isGridView ? 'icon-toggle-filelist' : 'icon-toggle-pictures')
- this.$showGridView.next('#view-toggle').attr(
- 'title',
- isGridView ? t('files', 'Show list view') : t('files', 'Show grid view'),
- )
-
- if (this.fileList) {
- this.fileList.setGridView(isGridView);
- }
- },
-
- _onDirectoryChanged: function (e) {
- OC.Util.History.pushState({
- // arghhhh, why is this not called "dir" !?
- path: e.dir
- });
- },
-
- _onUrlChanged: function (params) {
- this.fileList.changeDirectory(params.path || params.dir, false, true);
- },
-
-
- /**
- * fall back to old behaviour where we redirect the user to his server to mount
- * the public link instead of creating a dedicated federated share
- *
- * @param {any} remote -
- * @param {any} token -
- * @param {any} owner -
- * @param {any} ownerDisplayName -
- * @param {any} name -
- * @param {any} isProtected -
- * @private
- */
- _legacyCreateFederatedShare: function (remote, token, owner, ownerDisplayName, name, isProtected) {
-
- var self = this;
- var location = window.location.protocol + '//' + window.location.host + OC.getRootPath();
-
- if(remote.substr(-1) !== '/') {
- remote += '/'
- }
-
- var url = remote + 'index.php/apps/files#' + 'remote=' + encodeURIComponent(location) // our location is the remote for the other server
- + "&token=" + encodeURIComponent(token) + "&owner=" + encodeURIComponent(owner) +"&ownerDisplayName=" + encodeURIComponent(ownerDisplayName) + "&name=" + encodeURIComponent(name) + "&protected=" + isProtected;
-
-
- if (remote.indexOf('://') > 0) {
- OC.redirect(url);
- } else {
- // if no protocol is specified, we automatically detect it by testing https and http
- // this check needs to happen on the server due to the Content Security Policy directive
- $.get(OC.generateUrl('apps/files_sharing/testremote'), {remote: remote}).then(function (protocol) {
- if (protocol !== 'http' && protocol !== 'https') {
- self._toggleLoading();
- OC.dialogs.alert(t('files_sharing', 'No compatible server found at {remote}', {remote: remote}),
- t('files_sharing', 'Invalid server URL'));
- } else {
- OC.redirect(protocol + '://' + url);
- }
- });
- }
- },
-
- _toggleLoading: function() {
- var loading = $('#save-external-share > .icon.icon-loading-small').length === 0;
- if (loading) {
- $('#save-external-share > .icon-external')
- .removeClass("icon-external")
- .addClass("icon-loading-small");
- $('#save-external-share #save-button-confirm').prop("disabled", true);
-
- } else {
- $('#save-external-share > .icon-loading-small')
- .addClass("icon-external")
- .removeClass("icon-loading-small");
- $('#save-external-share #save-button-confirm').prop("disabled", false);
-
- }
- },
-
- _createFederatedShare: function (remote, token, owner, ownerDisplayName, name, isProtected) {
- var self = this;
-
- this._toggleLoading();
-
- if (remote.indexOf('@') === -1) {
- this._legacyCreateFederatedShare(remote, token, owner, ownerDisplayName, name, isProtected);
- return;
- }
-
- $.post(
- OC.generateUrl('/apps/federatedfilesharing/createFederatedShare'),
- {
- 'shareWith': remote,
- 'token': token
- }
- ).done(
- function (data) {
- var url = data.remoteUrl;
-
- if (url.indexOf('://') > 0) {
- OC.redirect(url);
- } else {
- OC.redirect('http://' + url);
- }
- }
- ).fail(
- function (jqXHR) {
- OC.dialogs.alert(JSON.parse(jqXHR.responseText).message,
- t('files_sharing', 'Failed to add the public link to your Nextcloud'));
- self._toggleLoading();
- }
- );
- }
-};
-
-window.addEventListener('DOMContentLoaded', function () {
- // FIXME: replace with OC.Plugins.register()
- if (window.TESTING) {
- return;
- }
-
- var App = OCA.Sharing.PublicApp;
- // defer app init, to give a chance to plugins to register file actions
- _.defer(function () {
- App.initialize($('#preview'));
- });
-
- if (window.Files) {
- // HACK: for oc-dialogs previews that depends on Files:
- Files.generatePreviewUrl = function (urlSpec) {
- return App.fileList.generatePreviewUrl(urlSpec);
- };
- }
-
-});
diff --git a/apps/files_sharing/js/public_note.js b/apps/files_sharing/js/public_note.js
deleted file mode 100644
index 96646d63eb4..00000000000
--- a/apps/files_sharing/js/public_note.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
- *
- * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
- window.addEventListener('DOMContentLoaded', function() {
- var noteElmt = document.getElementById('notemenu')
- if (noteElmt) {
- var noteHtml = noteElmt.outerHTML
- $(noteHtml).insertBefore('#header-primary-action');
- $('#notemenu').removeClass('hidden');
- OC.registerMenu($('#notemenu .menutoggle'), $('#notemenu .menu'))
- }
- }) \ No newline at end of file
diff --git a/apps/files_sharing/js/templates.js b/apps/files_sharing/js/templates.js
deleted file mode 100644
index 07fd6ad6c42..00000000000
--- a/apps/files_sharing/js/templates.js
+++ /dev/null
@@ -1,43 +0,0 @@
-(function() {
- var template = Handlebars.template, templates = OCA.Sharing.Templates = OCA.Sharing.Templates || {};
-templates['files_drop'] = template({"1":function(container,depth0,helpers,partials,data) {
- var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {
- if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
- return parent[propertyName];
- }
- return undefined
- };
-
- return " <div id=\"drop-upload-name\">"
- + container.escapeExpression(((helper = (helper = lookupProperty(helpers,"name") || (depth0 != null ? lookupProperty(depth0,"name") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"name","hash":{},"data":data,"loc":{"start":{"line":3,"column":29},"end":{"line":3,"column":37}}}) : helper)))
- + "</div><div id=\"drop-upload-status\"></div>\n <progress id=\"drop-upload-progress-bar\" value=\"0\" max=\"100\"></progress>\n";
-},"3":function(container,depth0,helpers,partials,data) {
- var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {
- if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
- return parent[propertyName];
- }
- return undefined
- };
-
- return " <img src=\""
- + alias4(((helper = (helper = lookupProperty(helpers,"iconSrc") || (depth0 != null ? lookupProperty(depth0,"iconSrc") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"iconSrc","hash":{},"data":data,"loc":{"start":{"line":6,"column":12},"end":{"line":6,"column":23}}}) : helper)))
- + "\"/> "
- + alias4(((helper = (helper = lookupProperty(helpers,"name") || (depth0 != null ? lookupProperty(depth0,"name") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"name","hash":{},"data":data,"loc":{"start":{"line":6,"column":27},"end":{"line":6,"column":35}}}) : helper)))
- + "\n";
-},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) {
- var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {
- if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
- return parent[propertyName];
- }
- return undefined
- };
-
- return "<li title=\""
- + alias4(((helper = (helper = lookupProperty(helpers,"name") || (depth0 != null ? lookupProperty(depth0,"name") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"name","hash":{},"data":data,"loc":{"start":{"line":1,"column":11},"end":{"line":1,"column":19}}}) : helper)))
- + "\" data-name=\""
- + alias4(((helper = (helper = lookupProperty(helpers,"name") || (depth0 != null ? lookupProperty(depth0,"name") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"name","hash":{},"data":data,"loc":{"start":{"line":1,"column":32},"end":{"line":1,"column":40}}}) : helper)))
- + "\">\n"
- + ((stack1 = lookupProperty(helpers,"if").call(alias1,(depth0 != null ? lookupProperty(depth0,"isUploading") : depth0),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data,"loc":{"start":{"line":2,"column":1},"end":{"line":7,"column":8}}})) != null ? stack1 : "")
- + "</li>\n";
-},"useData":true});
-})(); \ No newline at end of file
diff --git a/apps/files_sharing/js/templates/files_drop.handlebars b/apps/files_sharing/js/templates/files_drop.handlebars
deleted file mode 100644
index 4128c920cb9..00000000000
--- a/apps/files_sharing/js/templates/files_drop.handlebars
+++ /dev/null
@@ -1,8 +0,0 @@
-<li title="{{name}}" data-name="{{name}}">
- {{#if isUploading}}
- <div id="drop-upload-name">{{name}}</div><div id="drop-upload-status"></div>
- <progress id="drop-upload-progress-bar" value="0" max="100"></progress>
- {{else}}
- <img src="{{iconSrc}}"/> {{name}}
- {{/if}}
-</li>
diff --git a/apps/files_sharing/l10n/ar.js b/apps/files_sharing/l10n/ar.js
index 86e28b8b301..53a7f237bc2 100644
--- a/apps/files_sharing/l10n/ar.js
+++ b/apps/files_sharing/l10n/ar.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "قيد الانتظار…",
- "error" : "خطأ",
- "finished" : "تمّ",
- "This will stop your current uploads." : "سيؤدي هذا لإيقاف رفع الملفات الحالية.",
- "Move or copy" : "أنقُل أو انسَخ",
- "Download" : "تحميل",
- "Delete" : "حذف",
- "You can upload into this folder" : "بإمكانك رفع الملفات إلى هذا المجلد",
- "Terms of service" : "شروط الخدمة",
- "Show list view" : "أظهِِر عرض القائمة list view",
- "Show grid view" : "أظهِِر عرض الصناديق grid view",
- "No compatible server found at {remote}" : "لم يتم العثور على خادوم متوافق في {remote}",
- "Invalid server URL" : "عنوان الرابط للخادوم غير صالح",
- "Failed to add the public link to your Nextcloud" : "فشل في إضافة الرابط العام إلى الخادوم السحابي الخاص بك",
"File shares" : "مشاركات الملفات",
"Downloaded via public link" : "تمّ تنزيله عبر رابط عام",
"Downloaded by {email}" : "تمّ التنزيل بواسطة {email}",
@@ -39,22 +25,22 @@ OC.L10N.register(
"You shared {file} as public link" : "لقد شاركت أنت {file} كرابط عام",
"You removed public link for {file}" : "لقد أزلت الرابط العام لـ {file}",
"Public link expired for {file}" : "إنتهت صلاحية الرابط العام لـ {file}",
- "{actor} shared {file} as public link" : "قام {actor} بمشاركة {ملف} كرابط عام",
+ "{actor} shared {file} as public link" : "قام {actor} بمشاركة {file} كرابط عام",
"{actor} removed public link for {file}" : "قام {actor} بإزالة الرابط العام لـ {file}",
"Public link of {actor} for {file} expired" : "انتهت صلاحية الرابط العام لـ {actor} لـ {file}",
- "{user} accepted the remote share" : "وافق {user} على المشاركة القصيّة remote",
- "{user} declined the remote share" : "رفض {user} المشاركة القصيّة remote",
- "You received a new remote share {file} from {user}" : "لقد تلقيت أنت مشاركة قصيّة remote جديدة {file} من {user}",
- "{user} accepted the remote share of {file}" : "وافق {user} على المشاركة القصيّة لـ {file} ",
- "{user} declined the remote share of {file}" : "رفض {user} المشاركة القصيّة لـ {file}",
+ "{user} accepted the remote share" : "وافق {user} على المشاركة البعيدة remote",
+ "{user} declined the remote share" : "رفض {user} المشاركة البعيدة remote",
+ "You received a new remote share {file} from {user}" : "لقد تلقيت أنت مشاركة بعيدة remote جديدة {file} من {user}",
+ "{user} accepted the remote share of {file}" : "وافق {user} على المشاركة البعيدة لـ {file} ",
+ "{user} declined the remote share of {file}" : "رفض {user} المشاركة البعيدة لـ {file}",
"{user} unshared {file} from you" : "ألغى {user} مشاركة {file} معك",
"Shared with {user}" : "تمّت المشاركة مع {user}",
- "Removed share for {user}" : "تمّت إزالة المشاركة مع {user}",
+ "Removed share for {user}" : "تمّت إزالة المشاركة لـ {user}",
"You removed yourself" : "قمت بإزالة نفسك",
"{actor} removed themselves" : "أزال {actor} أنفسهم",
"{actor} shared with {user}" : "قام {actor} بالمشاركة مع {user}",
"{actor} removed share for {user}" : "أزال {actor} المشاركة مع {user}",
- "Shared by {actor}" : "تمّت مشاركته مِن قِبَل {actor}",
+ "Shared by {actor}" : "تمّت مشاركته بواسطة {actor}",
"{actor} removed share" : "قام {actor} بإزالة المشاركة",
"Share for {user} expired" : "إنتَهَت صلاحية المشاركة مع {user}",
"Share expired" : "إنتَهَت صلاحية المشاركة",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "إنتَهَت صلاحية مشاركة الملف {file} مع {user}",
"Share for file {file} expired" : "إنتَهَت صلاحية المشاركة للملف {file}",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "تمّ <strong>تنزيل</strong> ملف أو مجلد مشترك عن طريق البريد أو الرابط العام",
- "A file or folder was shared from <strong>another server</strong>" : "تمّت مشاركة ملف أو مجلد من <strong>خادومٍ آخر</strong>",
- "Files" : "الملفّات",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "تمّ رفع <strong>ملفات</strong> إلى مجلد مشترك عبر الإيميل أو عبر رابط عمومي",
+ "A file or folder was shared from <strong>another server</strong>" : "تمّت مشاركة ملف أو مجلد من خادم آخر</strong>",
+ "Sharing" : "المشاركة",
"A file or folder has been <strong>shared</strong>" : "تمّت <strong>مشاركة </strong> ملف أو مجلد",
"Shared link" : "رابط المشاركة",
"Wrong share ID, share does not exist" : "خطأ في مُعرِّف المشاركة sahre ID. المشاركة غير موجودة",
@@ -78,34 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "يرجى تحديد مسار ملف أو مجلد",
"Wrong path, file/folder does not exist" : "مسار الملف أو المجلد غير موجود",
"Could not create share" : "لا يمكن انشاء مشاركة",
- "Invalid permissions" : "الأذونات لا تكفي",
- "Invalid date, date format must be YYYY-MM-DD" : "تاريخ غير صحيح. يجب أن يكون تنسيق التاريخ خانتين لليوم و خانتين للشهر و أربع خانات للسنة",
- "Please specify a valid account to share with" : "رجاءً، حدِّد حساباً صحيحاً للمشاركة معه",
- "Group sharing is disabled by the administrator" : "مشاركة المجموعة معطّلة من قِبَل المُشرِف",
+ "Please specify a valid account to share with" : "رجاءً، قم بتحديد حساب صحيح للمشاركة معه",
+ "Group sharing is disabled by the administrator" : "مشاركة المجموعة معطّلة من قِبَل مسؤول النظام",
"Please specify a valid group" : "يرجى تحديد مجموعة صحيحة",
- "Public link sharing is disabled by the administrator" : "المشاركة عن طريق الروابط العامة معطّلة من قِبَل المُشرف",
- "Public upload disabled by the administrator" : "عمليات الرفع العامة معطّلة من قِبَل المُشرف",
- "Public upload is only possible for publicly shared folders" : "عمليات الرفع العامة مسموحة فقط في المجلدات المُشارَكة",
+ "Public link sharing is disabled by the administrator" : "المشاركة عن طريق الروابط العامة معطّلة من قِبَل مسؤول النظام",
+ "Please specify a valid email address" : "من فضلك، عيٍّن عنواناً صحيحاً للبريد الإلكتروني",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "مشاركة %s لارسال كلمة المرور من قبل تطبيق \"المحادثة Talk\" نكست كلاود فشلت بسبب عدم تفعيل التطبيق.",
- "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "فشلت مشاركة %1$s لأن الخلفية لا تسمح بالمشاركة من النوع %2$s",
- "Please specify a valid federated account ID" : "رجاءً، حدِّد مُعرِّفاً صحيحاً لحساب اتحادي federated account ID",
- "Please specify a valid federated group ID" : "رجاءً عيّن مُعرِّفاً صحيحاً لمجموعة اتحادية federated group ID",
- "You cannot share to a Circle if the app is not enabled" : "لا يمكن المشاركة مع الدوائر Circles اذا كان تطبيقها معطّلاً",
- "Please specify a valid circle" : "يُرجى ادخال دائرة Circle صحيحة",
+ "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "فشلت مشاركة %1$s لأن الخادم لا يسمح بالمشاركة من النوع %2$s",
+ "Please specify a valid federated account ID" : "يرجى تحديد معرف صحيح لحساب السحابة الموحدة",
+ "Please specify a valid federated group ID" : "يرجى تعيين معرف صحيح لمجموعة السحابة الموحدة",
+ "You cannot share to a Team if the app is not enabled" : "لا يمكنك المشاركة مع فريق إذا لم يكن التطبيق مُمكّناً",
+ "Please specify a valid team" : "من فضلك، قم بتحديد فريق صحيح",
"Sharing %s failed because the back end does not support room shares" : "فشلت مشاركة %s لأن الخلفية back end لا تدعم مشاركات الغُرَف room shares",
- "Sharing %s failed because the back end does not support ScienceMesh shares" : " المشاركة %s فشلت بسبب أن الخادوم لا يدعم مشاركات ScienceMesh",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : " المشاركة %s فشلت بسبب أن الخادم لا يدعم مشاركات ScienceMesh",
"Unknown share type" : "نوع مشاركة غير معروف",
"Not a directory" : "ليس مُجلّداً صحيحاً",
"Could not lock node" : "تعذّر قَفْل lock النقطة node",
- "Could not lock path" : "تعذّر قَفْل lock المسار path",
- "Wrong or no update parameter given" : "خطأ أو لم يتم تقديم بارامتر للتحديث update paramete",
+ "Public upload is only possible for publicly shared folders" : "عمليات الرفع العامة مسموحة فقط في المجلدات المشاركة",
"Share must at least have READ or CREATE permissions" : "يجب أن تمتلك المشاركة أذونات الإنشاء CREATE و القراءة READ على الأقل",
"Share must have READ permission if UPDATE or DELETE permission is set" : "يجب أن تمتلك المشاركة إذن القراءة READ إذا كانت أذونات UPDATE أو DELETE مُعيّنة ",
+ "Public upload disabled by the administrator" : "عمليات الرفع العامة معطّلة من قِبَل مسؤول النظام",
+ "Could not lock path" : "تعذّر قَفْل lock المسار path",
+ "no sharing rights on this item" : "لا توجد حقوق مشاركة في هذا العنصر",
+ "You are not allowed to edit incoming shares" : "أنت غير مسموحٍ لك بتعديل المشاركات الواردة",
+ "Wrong or no update parameter given" : "خطأ أو لم يتم تقديم مدخلات التحديث update paramete",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"عملية إرسال كلمة المرور بواسطة تطبيق نكست كلاود للمحادثة Talk\" من أجل مشاركة ملف أو مُجلّد لم تُنفّذ بسبب أن التطبيق غير مُفعّل",
+ "Custom share link tokens have been disabled by the administrator" : "أَمَارَات روابط المشاركة المخصصة تمّ تعطيلها من قِبَل المشرف",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "الأَمَارَات يجب أن تحوي حرفاً واحداً 1 على الأقل ويجب أن تحوي فقط حروفاً أو أرقاماً أو شَرْطَات.",
+ "Invalid date. Format must be YYYY-MM-DD" : "التاريخ غير صحيح. يجب أن يكون على الصيغة YYYY-MM-DD",
+ "No sharing rights on this item" : "لا توجد حقوق مشاركة في هذا العنصر",
+ "Invalid share attributes provided: \"%s\"" : "خصائص المشاركة المعطاة غير صحيحة: \"%s\"",
+ "You are not allowed to send mail notifications" : "أنت غير مسموحٍ لك بإرسال إشعارات الإيميل",
+ "No mail notification configured for this share type" : "لا توجد إشعارات بريد مهيّأة لهذا النوع من المشاركات ",
+ "Wrong password" : "كلمة المرور غير صحيحة",
+ "Error while sending mail notification" : "حدث خطأ أثناء إرسال إشعار بإيميل",
+ "Failed to generate a unique token" : "تعذّر توليد أَمَارَة مُميّزة",
+ "This share does not exist or is no longer available" : "هذه المشاركة غير موجودة أو لم تعد متاحة الآن",
"shared by %s" : "تمّت مشاركته مِن قبل %s",
- "Download all files" : "تنزيل كافة الملفات",
- "Direct link" : "رابط مباشر",
+ "Download" : "تنزيل",
"Add to your %s" : "أضاف إليك %s",
+ "Direct link" : "رابط مباشر",
"Share API is disabled" : "المشاركة عبر واجهة برمجة التطبيقات API مُعطّلة",
"File sharing" : "مشاركة الملفات",
"Share will expire tomorrow" : "المشاركة ستنتهي صلاحيتها غداً",
@@ -114,133 +113,260 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "لقد تلقيت أنت {share} كمشاركة ضمن المجموعة {group} من قِبَل {user}",
"Accept" : "قبول",
"Decline" : "رفض",
- "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "يُمكِّن هذا التطبيق الأشخاص من مشاركة الملفات داخل نكست كلاود. عند تمكينه، يُمكِّن المشرف تحديد المجموعات التي يمكنها مشاركة الملفات. يمكن للأشخاص المعنيين بعد ذلك مشاركة الملفات والمجلدات مع حسابات ومجموعات أخرى داخل نكست كلاود. بالإضافة إلى ذلك، إذا قام المشرف بتمكين ميزة رابط المشاركة، فيمكن استخدام رابط خارجي لمشاركة الملفات مع أشخاص آخرين خارج نكست كلاود. يمكن للمشرفين أيضًا فرض كلمات المرور و تواريخ انتهاء الصلاحية و تمكين المشاركة من خادوم إلى خادوم عبر روابط المشاركة؛ بالإضافة إلى المشاركة من الأجهزة المحمولة. بالمقابل، يؤدي تعطيل التطبيق إلى إزالة الملفات والمجلدات المشتركة على الخادوم لدي جميع مستلمي المشاركة، و كذلك على عملاء المزامنة و تطبيقات الأجهزة المحمولة. \nللمزيد من المعلومات، أنظُر توثيق نكست كلاود.",
- "Sharing" : "المشاركة",
- "Accept shares from other accounts and groups by default" : "إقبَل المشاركات من حسابات و مجموعات أخرى بشكل تلقائي ",
+ "Remember to upload the files to %s" : "لا تنس رفع الملفات إلى %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "نود أن نذكرك بأنك لم تقم حتى الآن بتحميل أيّ ملفات إلى المجلد المشترك.",
+ "Open \"%s\"" : "إفتَح \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "يُمكِّن هذا التطبيق الأشخاص من مشاركة الملفات داخل نكست كلاود. عند تمكينه، يُمكِّن المدير تحديد المجموعات التي يمكنها مشاركة الملفات. يمكن للأشخاص المعنيين بعد ذلك مشاركة الملفات والمجلدات مع حسابات ومجموعات أخرى داخل نكست كلاود. بالإضافة إلى ذلك، إذا قام المدير بتمكين ميزة رابط المشاركة، فيمكن استخدام رابط خارجي لمشاركة الملفات مع أشخاص آخرين خارج نكست كلاود. يمكن للمديرين أيضًا فرض كلمات المرور و تواريخ انتهاء الصلاحية و تمكين المشاركة من خادم إلى خادم عبر روابط المشاركة؛ بالإضافة إلى المشاركة من الأجهزة المحمولة. بالمقابل، يؤدي تعطيل التطبيق إلى إزالة الملفات والمجلدات المشتركة على الخادم لدي جميع مستلمي المشاركة، و كذلك على عملاء المزامنة و تطبيقات الأجهزة المحمولة. \nللمزيد من المعلومات، أنظُر توثيق نكست كلاود.",
+ "People" : "الأشخاص",
+ "Filter accounts" : "تصفية الحسابات",
+ "The request will expire on {date} at midnight and will be password protected." : "سوف تنتهي صلاحية الطلب في {date} عند منتصف الليل، و سيكون محميّاً بكلمة مرور.",
+ "The request will expire on {date} at midnight." : "سوف تنتهي صلاحية الطلب في {date} عند منتصف الليل.",
+ "The request will be password protected." : "سوف يكون الطلب محميّاً بكلمة مرور.",
+ "When should the request expire?" : "متى يجب أن تنتهي صلاحية الطلب؟",
+ "Set a submission expiration date" : "تعيين وقت انتهاء صلاحية الإرسال",
+ "Expiration date" : "تاريخ إنتهاء صلاحية المشاركة",
+ "Select a date" : "إختر تاريخاً",
+ "Your administrator has enforced a {count} days expiration policy." : "قام مسؤول النظام بفرض سياسة {count} أيام لانتهاء الصلاحية.",
+ "What password should be used for the request?" : "هل يجب استعمال كلمة مرور لهذا الطلب؟",
+ "Set a password" : "تعيين كلمة المرور",
+ "Password" : "كلمة المرور",
+ "Enter a valid password" : "أدخِل كلمة مرور صحيحة",
+ "Generate a new password" : "توليد كلمة مرور جديدة",
+ "Your administrator has enforced a password protection." : "مسؤول النظام قام بفرض الحماية عن طريق كلمة المرور.",
+ "Automatically copying failed, please copy the share link manually" : "تعذّر النسخ التلقائي. قم رجاءً بنسخ رابط المشاركة يدويّاً",
+ "Link copied" : "تمّ نسخ الرابط",
+ "Email already added" : "الإيميل سبقت إضافته سلفاً",
+ "Invalid email address" : "عنوان الإيميل غير صحيح",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["عنوان الإيميل التالي غير صحيح: {emails}","عنوان الإيميل التالي غير صحيح: {emails}","عنوان الإيميل التالي غير صحيح: {emails}","عناوين الإيميل التالية غير صحيحة: {emails}","عناوين الإيميل التالية غير صحيحة: {emails}","عناوين الإيميل التالية غير صحيحة: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} عنوان بريد إلكتروني مضاف مسبقاً","{count} عنوان بريد إلكتروني مضاف مسبقاً","{count} عناوين بريد إلكتروني مضافة مسبقاً","{count} عناوين بريد إلكتروني مضافة مسبقاً","{count} عناوين بريد إلكتروني مضافة مسبقاً","{count} عناوين بريد إلكتروني مضافة مسبقاً"],
+ "_{count} email address added_::_{count} email addresses added_" : ["تمت إضافة {count} عنوان بريد إلكتروني ","تم إضافة {count} عنوان بريد إلكتروني ","تم إضافة {count} عناوين بريد إلكتروني ","تمت إضافة {count} عناوين بريد إلكتروني ","تمت إضافة {count} عناوين بريد إلكتروني ","تمت إضافة {count} عناوين بريد إلكتروني "],
+ "You can now share the link below to allow people to upload files to your directory." : "يمكنك الآن مشاركة الرابط أدناه للسماح للأشخاص برفع الملفات إلى دليلك.",
+ "Share link" : "رابط المشاركة",
+ "Copy" : "إنسَخ",
+ "Send link via email" : "إرسال رابط عبر الإيميل",
+ "Enter an email address or paste a list" : "أدخِل عنوان إيميل أو إلصِق قائمةً",
+ "Remove email" : "حذف البريد الإلكتروني",
+ "Select a destination" : "اختر وجهة",
+ "Select" : "تحديد",
+ "What are you requesting?" : "ماذا تطلب؟",
+ "Request subject" : "موضوع الطلب",
+ "Birthday party photos, History assignment…" : "صور حفلات الميلاد، أو تاريخ المهام...",
+ "Where should these files go?" : "أين يجب أن يتم نقل هذه الملفات؟",
+ "Upload destination" : "وجهة رفع الملفات",
+ "Revert to default" : "عُد إلى التلقائي",
+ "The uploaded files are visible only to you unless you choose to share them." : "الملفات المرفوعة تكون ظاهرة لك فقط إلا إذا قررت مشاركتها",
+ "Add a note" : "إضافة ملاحظة",
+ "Note for recipient" : "ملاحظة للمستلم",
+ "Add a note to help people understand what you are requesting." : "إضافة ملاحظة لتوضح للآخرين ما تطلبه",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "يمكنك إضافة روابط أو تاريخ أو أي معلومات أخرى من شأنها أن تساعد المستلم على فهم ما تطلبه.",
+ "Close" : "إغلاق",
+ "_Send email and close_::_Send {count} emails and close_" : ["أرسِل {count} إيميل ثم أغلِق","أرسِل الإيميل ثم أغلِق","أرسِل {count} إيميل ثم أغلِق","أرسِل {count} إيميلات ثم أغلِق","أرسِل {count} إيميلات ثم أغلِق","أرسِل {count} إيميلات ثم أغلِق"],
+ "Please select a folder, you cannot share the root directory." : "من فضلك، إختر مجلداً. لا يمكنك مشاركة المجلد الجذر.",
+ "File request created" : "تمّ إنشاء طلب لملف",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["تمّ إنشاء طلب للملف، و تمّ إرسال {count} إيميل","تمّ إنشاء طلب للملف، و تمّ إرسال الإيميل","تمّ إنشاء طلب للملف، و تمّ إرسال {count} إيميل","تمّ إنشاء طلب للملف، و تمّ إرسال {count} إيميلات","تمّ إنشاء طلب للملف، و تمّ إرسال {count} إيميلات","تمّ إنشاء طلب للملف، و تمّ إرسال {count} إيميلات"],
+ "Error creating the share: {errorMessage}" : "خطأ في إنشاء المشاركة: {errorMessage}",
+ "Error creating the share" : "خطأ في إنشاء المشاركة",
+ "Error sending emails: {errorMessage}" : "حدث خطأ في إرسال الإيميلات: {errorMessage}",
+ "Error sending emails" : "حدث خطأ في إرسال الإيميلات",
+ "Create a file request" : "إنشاء طلب لملف",
+ "Collect files from others even if they do not have an account." : "قم بجمع الملفات من الآخرين حتى لو لم يكونوا يملكون حسابات مسجلة",
+ "To ensure you can receive files, verify you have enough storage available." : "لضمان استلامك للملفات، تحقَّق من كفاية حصتك التخزينية.",
+ "File request" : "طلب الملف",
+ "Previous step" : "الخطوة السابقة",
+ "Cancel" : "إلغاء",
+ "Cancel the file request creation" : "إلغاء عملية إنشاء طلب الملف",
+ "Close without sending emails" : "أغلِق بدون إرسال إيميلات",
+ "Continue" : "متابعة",
"Error while toggling options" : "خطأ أثناء تبديل الخيارات",
- "Set default folder for accepted shares" : "تعيين المجلد الافتراضي للمشاركات المقبولة",
- "Reset" : "إعادة التعيين",
- "Reset folder to system default" : "إعادة تعيين المجلد إلى افتراضات النظام",
- "Choose a default folder for accepted shares" : "إختَر مجلداً افتراضياً لقبول المشاركات",
+ "Accept shares from other accounts and groups by default" : "قبول المشاركات من الحسابات والمجموعات الأخرى تلقائياً وبشكل افتراضي",
+ "Choose a default folder for accepted shares" : "إختر مجلداً افتراضياً لقبول المشاركات",
"Invalid path selected" : "المسار المُحدَّد غير صحيح",
"Unknown error" : "خطأ غير معروف",
- "Open Sharing Details" : "إفتَح تفاصل المشاركة",
+ "Set default folder for accepted shares" : "تعيين المجلد الافتراضي للمشاركات المقبولة",
+ "Reset" : "إعادة تعيين",
+ "Reset folder to system default" : "إعادة تعيين المجلد إلى افتراضات النظام",
+ "Share Expiration" : "تاريخ انتهاء صلاحية المشاركة",
"group" : "مجموعة",
"conversation" : "محادثة",
"remote" : "قَصِيٌّ remote",
"remote group" : "مجموعة قَصِيّة remote",
"guest" : "ضيف",
+ "by {initiator}" : "من قِبَل{initiator}",
"Shared with the group {user} by {owner}" : "تمّت مشاركته مع المجموعة {user} من قِبَل {owner}",
"Shared with the conversation {user} by {owner}" : "تمّت مشاركته مع المحادثة {user} من قِبَل {owner}",
"Shared with {user} by {owner}" : "تمّت مشاركته مع {user} من قِبَل {owner}",
- "Added by {initiator}" : "تمّت الإضافةمن قِبَل {initator}",
+ "Open Sharing Details" : "فتح تفاصيل المشاركة",
+ "Added by {initiator}" : "تمّت الإضافةمن قِبَل {initiator}",
"Via “{folder}”" : "عبر “{folder}”",
"Unshare" : "إلغاء المشاركة",
- "Internal link" : "رابط داخلي",
"Cannot copy, please copy the link manually" : "يتعذّر النسخ. يُرجى نسخ الرابط يدويًا",
- "Copy internal link to clipboard" : "إنسَخ رابطاً داخليّاً إلى الحافظة",
- "Only works for people with access to this folder" : "يعمل فقط عند الأشخاص الذين يمكنهم الوصول إلى هذا المجلد",
- "Only works for people with access to this file" : "يعمل فقط عند الأشخاص الذين يمكنهم الوصول إلى هذا الملف",
- "Link copied" : "تمّ نَسْخ الرابط",
- "Please enter the following required information before creating the share" : "الرجاء إدخال المعلومات المطلوبة التالية قبل إنشاء المشاركة",
- "Password protection (enforced)" : "الحماية بكلمة مرور (إلزامي)",
- "Password protection" : "الحماية بكلمة مرور",
- "Enter a password" : "إدخِل كلمة المرور",
- "Expiration date (enforced)" : "تاريخ انتهاء الصلاحية (إلزامي)",
- "Enter a date" : "أدخِل تاريخاً",
- "Create share" : "إنشاء مشاركة",
- "Cancel" : "إلغاء",
- "Customize link" : "خصِّص الرابط",
- "Generate QR code" : "توليد كود \"كيو آر\" QR",
- "Add another link" : "أضِف رابطاً آخر",
- "Create a new share link" : "أنشِيءْ رابط مشاركة جديد",
+ "Copy internal link" : "إنسخ الرابط الداخلي",
+ "Internal link" : "رابط داخلي",
"{shareWith} by {initiator}" : "{shareWith} مِن قِبَل {initiator}",
- "Shared via link by {initiator}" : "تمّت المشاركة عبر رابط من قِبَل {initator}",
+ "Shared via link by {initiator}" : "تمّت المشاركة عبر رابط من قِبَل {initiator}",
+ "File request ({label})" : "طلب الملف ({label})",
"Mail share ({label})" : "مشاركة البريد ({label})",
"Share link ({label})" : "رابط المشاركة ({label})",
+ "Mail share" : "مشاركة الإيميل",
"Share link ({index})" : "رابط المشاركة ({index})",
- "Share link" : "رابط المشاركة",
+ "Create public link" : "إنشاء رابط عمومي",
"Actions for \"{title}\"" : "إجراءات لـ \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "إنسَخ الرابط العام لـ \"{title}\" إلى الحافظة",
"Error, please enter proper password and/or expiration date" : "خطأ؛ يرجى إدخال كلمة المرور الصحيحة أو تاريخ انتهاء الصلاحية",
"Link share created" : "تمّ إنشاء رابط مشاركة",
"Error while creating the share" : "خطأ أثناء إنشاء المشاركة",
+ "Please enter the following required information before creating the share" : "الرجاء إدخال المعلومات المطلوبة التالية قبل إنشاء المشاركة",
+ "Password protection (enforced)" : "الحماية بكلمة مرور (إلزامي)",
+ "Password protection" : "الحماية بكلمة مرور",
+ "Enter a password" : "إدخِل كلمة المرور",
+ "Enable link expiration (enforced)" : "تمكين انتهاء صلاحية الرابط (مُفعَّل)",
+ "Enable link expiration" : "تمكين انتهاء صلاحية الرابط",
+ "Enter expiration date (enforced)" : "أدخِل تاريخ انتهاء الصلاحية (مُفعَّل)",
+ "Enter expiration date" : "أدخِل تاريخ انتهاء الصلاحية",
+ "Create share" : "إنشاء مشاركة",
+ "Customize link" : "تخصيص الرابط",
+ "Generate QR code" : "توليد رمز استجابة سريعة QR",
+ "Add another link" : "إضافة رابط آخر",
+ "Create a new share link" : "إنشاء رابط مشاركة جديد",
"Quick share options, the current selected is \"{selectedOption}\"" : "خيارات المشاركة السريعة. الاختيار الحالي هو \"{selectedOption}\"",
"View only" : "للعرض فقط",
"Can edit" : "يمكنه التعديل",
- "File drop" : "اسقاط الملف",
- "Custom permissions" : "أذُونَات مخصصة",
- "Search for share recipients" : "البحث عن مُستَلِمِي المشاركة",
- "No recommendations. Start typing." : "لا توجد توصيات. إبدأ الكتابة.",
+ "Custom permissions" : "أذونات مخصصة",
"Resharing is not allowed" : "لا يسمح بإعادة المشاركة",
"Name or email …" : "الاسم أو الإيميل …",
- "Name, email, or Federated Cloud ID …" : "الاسم أو الإيميل أو المُعرّف السحابي الاتحادي Federated Cloud ID",
+ "Name, email, or Federated Cloud ID …" : "الاسم أو البريد أو المعرف السحابي الموحد",
"Searching …" : "البحث جارٍ …",
"No elements found." : "لم يتم العثور على أي عناصر",
- "Search globally" : "بحث عام",
+ "Search everywhere" : "البحث الشامل",
"Guest" : "ضيف",
"Group" : "المجموعة",
"Email" : "البريد الإلكتروني",
"Team" : "الفريق",
"Talk conversation" : "المحادثات",
- "Deck board" : "الرُّقْعَة Deck",
+ "Deck board" : "لوحة البطاقات",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "على {server}",
+ "Enter external recipients" : "إدخال مُستَلِمين خارجيين",
+ "Search for internal recipients" : "البحث عن مُستَلِمين خارجيين",
+ "Note from" : "ملاحظة من",
+ "Note:" : "ملاحظة:",
+ "File drop" : "إسقاط الملف",
+ "Upload files to {foldername}." : "رفع الملفات إلى {foldername}.",
+ "By uploading files, you agree to the terms of service." : "بمجرد رفعك للملفات، أنت تعتبر موافقاً على شروط الخدمة.",
+ "View terms of service" : "عرض شروط الخدمة",
+ "Terms of service" : "شروط الخدمة",
+ "Share with email {email}" : "مشاركة مع صاحب البريد الإلكتروني {email}",
+ "Share with group" : "شارِك مع مجموعة",
+ "Share in conversation" : "شارِك في محادثة",
+ "Share with {user} on remote server {server}" : "مشاركة مع المستخدِم {user} على خادم البعيد {server}",
+ "Share with remote group" : "شارِك مع مجموعة قَصِيّة",
+ "Share with guest" : "شارِك مع ضيف",
+ "Update share" : "تحديث المشاركة",
+ "Save share" : "حفظ المشاركة",
+ "Read" : "قراءة",
+ "Create" : "إنشاء ",
+ "Edit" : "تعديل",
+ "Share" : "مشاركة",
+ "Delete" : "حذف",
+ "Password field cannot be empty" : "خانة كلمة المرور يجب ألّا تكون فارغةً",
+ "Replace current password" : "استبدال كلمة المرور الحالية",
+ "Failed to generate a new token" : "تعذّر توليد أَمَارَة جديدة",
"Allow upload and editing" : "السماح بالرفع و التعديل",
- "Allow editing" : "إسمَح بالتعدل",
+ "Allow editing" : "السماح بالتعديل",
"Upload only" : "رفع فقط",
"Advanced settings" : "الإعدادات المتقدمة",
- "Share label" : "لاصق label المشاركة",
+ "Share label" : "علامة رابط المشاركة",
+ "Share link token" : "أَمَارَة رابط المشاركة",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "عيّن أَمَارَة رابط المشارَكة العامة على شيء يسهل تذكره أو أنشئ أَمَارَة جديدة. لا يُنصح باستعمال أَمَارَة يمكن تخمينها للمشارَكات التي تحتوي على معلومات حساسة.",
+ "Generating…" : "توليد ...",
+ "Generate new token" : "توليد أَمَارَة جديدة",
"Set password" : "تعيين كلمة المرور",
- "Password" : "كلمة المرور",
"Password expires {passwordExpirationTime}" : "صلاحية كلمة المرور تنتهي في {passwordExpirationTime}",
"Password expired" : "كلمة المرور إنتهت صلاحيتها",
- "Video verification" : "التحقُّق من الفيديو",
+ "Video verification" : "التحقق بواسطة الفيديو",
+ "Expiration date (enforced)" : "تاريخ انتهاء الصلاحية (إلزامي)",
"Set expiration date" : "تعيين تاريخ إنتهاء الصلاحية",
- "Expiration date" : "تاريخ إنتهاء صلاحية المشاركة",
"Hide download" : "إخفاء التنزيل",
- "Allow download" : "إسمَح بالتنزيل",
+ "Allow download and sync" : "السماح بالتنزيل و المزامنة",
"Note to recipient" : "ملاحظة للمستلم",
- "Enter a note for the share recipient" : "أدخل ملاحظةً لمُستلِم المُشارَكة",
- "Read" : "إقرأ",
- "Create" : "أنشِيء",
- "Edit" : "تعديل",
- "Share" : "مُشارَكة",
+ "Enter a note for the share recipient" : "أدخل ملاحظة لمستلم المشاركة",
+ "Show files in grid view" : "عرض الملفات في وضعية الشبكة",
"Delete share" : "حذف المشاركة",
- "Share with {userName}" : "شارِك مع {userName}",
- "Share with email {email}" : "مشاركة مع صاحب البريد الإلكتروني {email}",
- "Share with group" : "شارِك مع مجموعة",
- "Share in conversation" : "شارِك في محادثة",
- "Share with {user} on remote server {server}" : "مشاركة مع المستخدِم {user} على الخادوم القَصِي {server}",
- "Share with remote group" : "شارِك مع مجموعة قَصِيّة",
- "Share with guest" : "شارِك مع ضيف",
- "Update share" : "تحديث المشاركة",
- "Save share" : "حفظ المشاركة",
"Others with access" : "الآخرون الذين لديهم حق الوصول",
"No other accounts with access found" : "لا يوجد أي أشخاص آخرين يمكنهم الوصول إلى هذا الملف",
"Toggle list of others with access to this directory" : "تعطيل/تفعيل قائمة الآخرين الذين لديهم حق الوصول إلى هذا الدليل",
"Toggle list of others with access to this file" : "تعطيل/تفعيل قائمة الآخرين الذين لديهم حق الوصول إلى هذا الملف",
"Unable to fetch inherited shares" : "تعذّر جلب المشاركات الموروثة inherited shares",
+ "Link shares" : "ربط المشاركات",
+ "Shares" : "مشاركات",
"Unable to load the shares list" : "تعذّر تحميل قائمة المشاركات",
"Expires {relativetime}" : "تنتهي الصلاحية في {relativetime}",
"this share just expired." : "صلاحية هذه المشاركة إنتَهَت للتَّوّ.",
"Shared with you by {owner}" : "تمّت مشاركته معك من قِبَل {owner}",
- "_Accept share_::_Accept shares_" : ["قبول المشاركات","قبول المشاركة","قبول المشاركات","قبول المشاركات","قبول المشاركات","إقبَل المشاركات"],
+ "Internal shares" : "مشاركات داخلية",
+ "Internal shares explanation" : "شرح المشاركات الداخلية",
+ "External shares" : "مشاركات خارجية",
+ "External shares explanation" : "شرح مشاركات خارجية",
+ "Additional shares" : "مشاركات إضافية",
+ "Additional shares explanation" : "شرح مشاركات إضافية",
+ "Link to a file" : "رابط إلى ملف",
+ "_Accept share_::_Accept shares_" : ["قبول المشاركات","قبول المشاركة","قبول المشاركات","قبول المشاركات","قبول المشاركات","قبول المشاركات"],
"Open in Files" : "إفتَح في \"الملفات\"",
"_Reject share_::_Reject shares_" : ["رفض المشاركات","رفض المشاركة","رفض المشاركات","رفض المشاركات","رفض المشاركات","أرفُض المشاركات"],
"_Restore share_::_Restore shares_" : ["استعادة المشاركات","استعادة المشاركة","استعادة المشاركات","استعادة المشاركات","استعادة المشاركات","إستعادة المشاركات"],
- "Shared" : "مُشارَكة",
- "Shared multiple times with different people" : "تمّت مشاركته عدة مرات مع أشخاص متعددين",
+ "Shared" : "مشاركة",
"Shared by {ownerDisplayName}" : "تمّت مشاركته من قِبَل {ownerDisplayName}",
- "Show sharing options" : "أعرُض خيارات المشاركة",
- "Link to a file" : "رابط إلى ملف",
- "Error creating the share: {errorMessage}" : "خطأ في إنشاء المشاركة: {errorMessage}",
- "Error creating the share" : "خطأ في إنشاء المشاركة",
+ "Shared multiple times with different people" : "تمّت مشاركته عدة مرات مع أشخاص متعددين",
+ "Shared with others" : "قمت بمشاركته مع آخرين",
+ "Create file request" : "إنشاء طلب ملف",
+ "Upload files to {foldername}" : "رفع الملفات إلى{foldername}",
+ "Public file share" : "مشاركة ملفات عامة",
+ "Publicly shared file." : "ملفات مشتركة عامة.",
+ "No file" : "لا يوجد ملف",
+ "The file shared with you will show up here" : "الملفات المشتركة معك سوف تظهر هنا",
+ "Public share" : "مشاركة عامة",
+ "Publicly shared files." : "ملفات مشتركة عامة.",
+ "No files" : "لا ملفات",
+ "Files and folders shared with you will show up here" : "الملفات و المجلدات المشتركة معك ستظهر هنا",
+ "Overview of shared files." : "إستعراض الملفات المُشَارَكَة",
+ "No shares" : "لا توجد مشاركات",
+ "Files and folders you shared or have been shared with you will show up here" : "الملفات و المجلدات التي شاركتها مع آخرين أو شاركها آخرون معك ستظهر هنا",
+ "Shared with you" : "تمت مشاركته معك",
+ "List of files that are shared with you." : "قائمة بالملفات التي تمّت مُشارَكتها معك.",
+ "Nothing shared with you yet" : "لم تتمّ مشاركة شيء معك حتى الآن",
+ "Files and folders others shared with you will show up here" : "الملفات و المجلدات التي شاركها آخرون معك ستظهر هنا",
+ "List of files that you shared with others." : "قائمة بالملفات التي شاركتها أنت مع الآخرين.",
+ "Nothing shared yet" : "لا توجد مشاركة حتى الآن",
+ "Files and folders you shared will show up here" : "الملفات و المجلدات التي شاركتها أنت مع آخرين ستظهر هنا",
+ "Shared by link" : "تمت مشاركته عبر رابط",
+ "List of files that are shared by link." : "قائمة بالملفات التي تمّت مشاركتها عبر رابط.",
+ "No shared links" : "لا توجد روابط لمشاركات",
+ "Files and folders you shared by link will show up here" : "الملفات و المجلدات التي شاركتها أنت مع آخرين عن طريق رابط ستظهر هنا",
+ "File requests" : "طلبات الملفات",
+ "List of file requests." : "قائمة طلبات الملفات.",
+ "No file requests" : "لا توجد أي طلبات للملفات",
+ "File requests you have created will show up here" : "طلبات الملفات التي أنشأتها سيتم عرضها هنا",
+ "Deleted shares" : "مشاركات محذوفة",
+ "List of shares you left." : "قائمة بالمشاركات التي قمت بإلغائها",
+ "No deleted shares" : "لا توجد أي مشاركات محذوفة",
+ "Shares you have left will show up here" : "المشاركات التي ألغيتها ستظهر هنا",
+ "Pending shares" : "مشاركات بانتظار الموافقة",
+ "List of unapproved shares." : "قائمة بالمشاركات بانتظار الموافقة.",
+ "No pending shares" : "لا توجد مشاركات بانتظار الموافقة",
+ "Shares you have received but not approved will show up here" : "المشاركات التي تلقيت دعواتها لكنك لم توافق عليها ستظهر هنا",
"Error updating the share: {errorMessage}" : "خطأ في تعديل المشاركة: {errorMessage}",
"Error updating the share" : "خطأ في تحديث المشاركة",
"File \"{path}\" has been unshared" : "الملف \"{path}\" تمّ إلغاء مشاركته",
"Folder \"{path}\" has been unshared" : "المجلّد \"{path}\" تمّ إلغاء مشاركته",
- "Share {propertyName} saved" : "المُشارَكة {propertyName} تمّ حفظها",
+ "Could not update share" : "يتعذّر تحديث المشاركة",
+ "Share saved" : "تمّ حفظ المشاركة",
+ "Share expiry date saved" : "تمّ حفظ تاريخ انتهاء صلاحية المشاركة",
+ "Share hide-download state saved" : "تمّ حفظ حالة إخفاء تنزيل المشاركة",
+ "Share label saved" : "تمّ حفظ عنوان المشاركة",
+ "Share note for recipient saved" : "تمّ حفظ ملاحظة المشاركة الموجهة إلى المستلم",
+ "Share password saved" : "تمّ حفظ كلمة مرور المشاركة",
+ "Share permissions saved" : "تمّ حفظ إذونات المشاركة",
+ "Upload files to {folder}" : "رفع ملفات إلى {folder}",
+ "{ownerDisplayName} shared a folder with you." : "قام {ownerDisplayName} بمشاركة مجلد معك.",
"Shared by" : "تمّت مشاركته من قِبَل",
"Shared with" : "تمّت مشاركته مع",
"Password created successfully" : "تمّ إنشاء كلمة المرور بنجاح",
@@ -249,73 +375,52 @@ OC.L10N.register(
"Shared with you and {circle} by {owner}" : "تمّت مشاركته معك و مع الدائرة {circle} من قِبَل {owner}",
"Shared with you and the conversation {conversation} by {owner}" : "تمّت مشاركته معك و مع المحادثة {conversation} من قِبَل {owner}",
"Shared with you in a conversation by {owner}" : "تمّت مشاركته معك في محادثة من قِبَل {owner}",
- "Shares" : "مُشارَكات",
- "Overview of shared files." : "إستعراض الملفات المُشَارَكَة",
- "No shares" : "لا تُوجد مُشارَكات",
- "Files and folders you shared or have been shared with you will show up here" : "الملفات و المجلدات التي شاركتها مع آخرين أو شاركها آخرون معك ستظهر هنا",
- "Shared with you" : "تمّت مُشارَكَته معك",
- "List of files that are shared with you." : "قائمة بالملفات التي تمّت مُشارَكتها معك.",
- "Nothing shared with you yet" : "لم تتمّ مُشارَكة شيء معك حتى الآن",
- "Files and folders others shared with you will show up here" : "الملفات و المجلدات التي شاركها آخرون معك ستظهر هنا",
- "Shared with others" : "قمت بمشاركته مع آخرين",
- "List of files that you shared with others." : "قائمة بالملفات التي شاركتها أنت مع الآخرين.",
- "Nothing shared yet" : "لا توجد مشاركة حتى الآن",
- "Files and folders you shared will show up here" : "الملفات و المجلدات التي شاركتها أنت مع آخرين ستظهر هنا",
- "Shared by link" : "مُشارَكَات عبر الرابط",
- "List of files that are shared by link." : "قائمة بالملفات التي تمّت مشاركتها عبر رابط.",
- "No shared links" : "لا توجد روابط لمُشارَكات",
- "Files and folders you shared by link will show up here" : "الملفات و المجلدات التي شاركتها أنت مع آخرين عن طريق رابط ستظهر هنا",
- "Deleted shares" : "مشاركات محذوفة",
- "List of shares you left." : "قائمة بالمشاركات التي ألغَيْتَها",
- "No deleted shares" : "لا توجد أيّ مُشارَكاتٍ محذوفة",
- "Shares you have left will show up here" : "المشاركات التي ألغَيْتَها أنت ستظهر هنا",
- "Pending shares" : "مشاركات مُعلَّقة",
- "List of unapproved shares." : "قائمة بالمُشارَكات المُعلّقة أي التي لم تتم الموافقة عليها.",
- "No pending shares" : "لا توجد مشاركات معلقة",
- "Shares you have received but not approved will show up here" : "المشاركات التي تلقَّيْتَ دعواتها لكنك لم توافق بعدُ عليها ستظهر هنا",
+ "Share not found" : "مشاركة غير موجودة",
+ "Back to %s" : "عودة إلى %s",
+ "Add to your Nextcloud" : "إضافة إلى حسابك على نكست كلاود",
+ "Waiting…" : "قيد الانتظار…",
+ "error" : "خطأ",
+ "finished" : "تمّ",
+ "This will stop your current uploads." : "سيؤدي هذا لإيقاف رفع الملفات الحالية.",
+ "Move or copy" : "أنقُل أو انسَخ",
+ "You can upload into this folder" : "بإمكانك رفع الملفات إلى هذا المجلد",
+ "Show list view" : "أظهِِر عرض القائمة list view",
+ "Show grid view" : "أظهِِر عرض الصناديق grid view",
+ "No compatible server found at {remote}" : "لم يتم العثور على خادم متوافق في {remote}",
+ "Invalid server URL" : "عنوان الرابط للخادم غير صالح",
+ "Failed to add the public link to your Nextcloud" : "فشل في إضافة الرابط العام إلى الخادم السحابي الخاص بك",
+ "You are not allowed to edit link shares that you don't own" : "أنت غير مسموحٍ لك بتعديل مشاركات الروابط التي لا تملكها",
+ "Download all files" : "تنزيل كافة الملفات",
+ "Link copied to clipboard" : "تمّ نسخ الرابط إلى الحافظة",
+ "_1 email address already added_::_{count} email addresses already added_" : ["{count} عنوان إيميل سبقت إضافته سلفاً","1 عنوان إيميل سبقت إضافته سلفاً","{count} عنوان إيميل سبقت إضافته سلفاً","{count} عناوين إيميل سبقت إضافتهت سلفاً","{count} عناوين إيميل سبقت إضافتها سلفاً","{count} عناوين إيميل سبقت إضافتها سلفاً"],
+ "_1 email address added_::_{count} email addresses added_" : ["{count} عنوان إيميل تمت إضافته","1 عنوان إيميل تمت إضافته","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها"],
+ "Copy to clipboard" : "نسخ الرابط إلى الحافظة",
+ "Copy internal link to clipboard" : "إنسَخ رابطاً داخليّاً إلى الحافظة",
+ "Only works for people with access to this folder" : "يعمل فقط عند الأشخاص الذين يمكنهم الوصول إلى هذا المجلد",
+ "Only works for people with access to this file" : "يعمل فقط عند الأشخاص الذين يمكنهم الوصول إلى هذا الملف",
+ "Copy public link of \"{title}\" to clipboard" : "إنسَخ الرابط العام لـ \"{title}\" إلى الحافظة",
+ "Search globally" : "بحث عام",
+ "Search for share recipients" : "إضافة أشخاص لاستلام المشاركة",
+ "No recommendations. Start typing." : "لا توجد توصيات. إبدأ الكتابة.",
+ "To upload files, you need to provide your name first." : "لرفع الملفات، يجب أن تكتب اسمك أوّلاً.",
+ "Enter your name" : "أدخِل اسمك",
+ "Submit name" : "إرسال الاسم",
+ "Share with {userName}" : "شارِك مع {userName}",
+ "Show sharing options" : "عرض خيارات المشاركة",
"Share note" : "ملاحظة عن المشاركة",
"Upload files to %s" : "رَفْعُ ملفات إلى %s",
+ "%s shared a folder with you." : "قام %s بمشاركة مجلد معك.",
"Note" : "ملاحظة",
- "Select or drop files" : "إختَر أو أفلِت ملفات",
- "Uploading files" : "رَفْعُ الملفات جارٍ ...",
+ "Select or drop files" : "إختر أو أفلِت ملفات",
+ "Uploading files" : "رفع الملفات جارٍ...",
"Uploaded files:" : "تمّ رَفْعُ ملفاتٍ:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "برفع الملفات ، فإنك توافق على %1$s شروط الخدمة %2$s.",
- "Add to your Nextcloud" : "أضِف إلى حسابك على نكست كلاود",
- "Files and folders others share with you will show up here" : "الملفات والمجلدات التي يشاركها الآخرون معك ستظهر هنا ",
- "Files and folders you share will show up here" : "الملفات و المجلدات التي تشاركها أنت مع آخرين ستظهر هنا ",
- "Files and folders you share by link will show up here" : "الملفات و المجلدات التي تُشارِكها أنت مع آخرين عبر روابط ستظهر هنا ",
- "Shares you deleted will show up here" : "المشاركات التي قمت أنت بحذفها ستظهر هنا ",
- "Shares you have received but not confirmed will show up here" : "المشاركات التي تلقيتَ دعوتها لكنك لم تؤكد رغبتك في استلامها بعدُ ستظهر هنا ",
- "Shares will show up here" : "المشاركات ستظهر هنا",
- "Restore" : "إستعادة ",
- "Something happened. Unable to restore the share." : "حدث أمرٌ ما. لا يمكن استعادة المشاركة",
- "Something happened. Unable to accept the share." : "حدث أمرٌ ما. لا يمكن قبول المشاركة",
- "Something happened. Unable to reject the share." : "حدث أمرٌ ما. لا يمكن رفض المشاركة",
- "No expiration date set" : "تاريخ نهاية صلاحية المشاركة لم يتمّ تعيينه",
- "Please specify a valid user" : "يرجى تحديد مستخدم صحيح",
- "Please specify a valid federated user ID" : "رجاءً عيّن مُعرِّفاً صحيحاً لمستخدم اتحادي federated user ID",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "يتيح هذا التطبيق للمستخدمين مشاركة الملفات داخل نكست كلاود. عند تمكينه، يمكن للمشرف اختيار المجموعات التي يمكنها مشاركة الملفات. يمكن للمستخدمين المُخوَّلِين مشاركة الملفات والمجلدات مع مستخدمين و مجموعات أخرى داخل نكست كلاود. بالإضافة إلى ذلك، إذا قام المشرف بتمكين ميزة المشاركة عبر الروابط، فيمكن استعمال رابط خارجي لمشاركة الملفات مع مستخدمين آخرين خارج نكست كلاود. يمكن للمسؤولين أيضًا فرض كلمات المرور و تواريخ انتهاء الصلاحية و تمكين مشاركة خادوم لخادوم عبر روابط المشاركة. بالإضافة إلى المشاركة من الأجهزة المحمولة.\nيؤدي إيقاف تشغيل الميزة إلى إزالة الملفات والمجلدات المُشارَكة على الخادوم لجميع مستلمي المشاركة، وكذلك على عملاء المزامنة و تطبيقات الأجهزة المحمولة. المزيد من التعليمات، في صفحات توثيق نكست كلاود.",
- "Accept user and group shares by default" : "قبول مشاركات المستخدم والمجموعة بشكل افتراضي",
- "Read only" : "للقراءة فقط",
- "File drop (upload only)" : "إفلات ملف (للرفع فقط)",
- "Upload" : "إرفَع",
- "Bundled permissions" : "أذونات مُجمّعة",
- "Only works for users with access to this folder" : "صالحٌ فقط للمستخدمين الذين لديهم حق الوصول إلى هذا المجلد",
- "Only works for users with access to this file" : "صالحٌ فقط للمستخدمين الذين لديهم حق الوصول إلى هذا الملف",
- "Circle" : "الدائرة ",
- "Update" : "تحديث",
- "Share with " : "شَارِك مع",
- "No other users with access found" : "لم يتم العثور على مستخدمين آخرين لهم حق الوصول",
- "No entries found in this folder" : "لا يوجد مدخلات في هذا المجلد ",
"Name" : "الاسم",
- "Share time" : "وقت المشاركة",
- "Sorry, this link does not seem to work anymore." : "عذراً، يبدو أن هذا الرابط لم يعد يعمل.",
- "Reasons might be:" : "الأسباب الممكنة :",
- "the item was removed" : "تمّ حذف العنصر ",
- "the link expired" : "إنتَهَت صلاحية الرابط",
- "sharing is disabled" : "المُشارَكة مُعطّلة",
- "For more info, please ask the person who sent this link." : "لمزيد من المعلومات، يرجى سؤال الشخص الذي أرسل هذا الرابط",
- "Share with remote" : "شارِك مع موقعٍ قَصِي",
- "Share with" : "شارِكه مع"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "استَعمِل هذه الطريقة لمشاركة الملفات مع الأفراد أو الفرق داخل مؤسستك. إذا كان المستلم لديه بالفعل حق الوصول إلى المشاركة ولكنه لا يستطيع تحديد موقعها، فيمكنك إرسال رابط المشاركة الداخلي إليه لتسهيل وصوله إليها.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "استَعمِل هذه الطريقة لمشاركة الملفات مع الأفراد أو المؤسسات خارج مؤسستك. يمكن مشاركة الملفات والمجلدات عبر روابط المشاركة العامة وعناوين البريد الإلكتروني. يمكنك أيضًا المشاركة مع حسابات نكست كلاود الأخرى المستضافة على خوادم مختلفة باستخدام مُعرِّف سحابتها الاتحاديّة.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "المشاركات التي لا تشكل جزءاً من المشاركات الداخلية أو الخارجية تُعد مُشارَكات من تطبيقات أو مصادر أخرى.",
+ "Share with accounts and teams" : "المشاركة مع حسابات وفِرَق",
+ "Email, federated cloud id" : "بريد إلكتروني، مُعرِّف سحابة اتحاديّة",
+ "Filename must not be empty." : "يجب ألّا يكون اسم الملف فارغاً."
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
diff --git a/apps/files_sharing/l10n/ar.json b/apps/files_sharing/l10n/ar.json
index ea97b4fa9e2..0d48a4911f0 100644
--- a/apps/files_sharing/l10n/ar.json
+++ b/apps/files_sharing/l10n/ar.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "قيد الانتظار…",
- "error" : "خطأ",
- "finished" : "تمّ",
- "This will stop your current uploads." : "سيؤدي هذا لإيقاف رفع الملفات الحالية.",
- "Move or copy" : "أنقُل أو انسَخ",
- "Download" : "تحميل",
- "Delete" : "حذف",
- "You can upload into this folder" : "بإمكانك رفع الملفات إلى هذا المجلد",
- "Terms of service" : "شروط الخدمة",
- "Show list view" : "أظهِِر عرض القائمة list view",
- "Show grid view" : "أظهِِر عرض الصناديق grid view",
- "No compatible server found at {remote}" : "لم يتم العثور على خادوم متوافق في {remote}",
- "Invalid server URL" : "عنوان الرابط للخادوم غير صالح",
- "Failed to add the public link to your Nextcloud" : "فشل في إضافة الرابط العام إلى الخادوم السحابي الخاص بك",
"File shares" : "مشاركات الملفات",
"Downloaded via public link" : "تمّ تنزيله عبر رابط عام",
"Downloaded by {email}" : "تمّ التنزيل بواسطة {email}",
@@ -37,22 +23,22 @@
"You shared {file} as public link" : "لقد شاركت أنت {file} كرابط عام",
"You removed public link for {file}" : "لقد أزلت الرابط العام لـ {file}",
"Public link expired for {file}" : "إنتهت صلاحية الرابط العام لـ {file}",
- "{actor} shared {file} as public link" : "قام {actor} بمشاركة {ملف} كرابط عام",
+ "{actor} shared {file} as public link" : "قام {actor} بمشاركة {file} كرابط عام",
"{actor} removed public link for {file}" : "قام {actor} بإزالة الرابط العام لـ {file}",
"Public link of {actor} for {file} expired" : "انتهت صلاحية الرابط العام لـ {actor} لـ {file}",
- "{user} accepted the remote share" : "وافق {user} على المشاركة القصيّة remote",
- "{user} declined the remote share" : "رفض {user} المشاركة القصيّة remote",
- "You received a new remote share {file} from {user}" : "لقد تلقيت أنت مشاركة قصيّة remote جديدة {file} من {user}",
- "{user} accepted the remote share of {file}" : "وافق {user} على المشاركة القصيّة لـ {file} ",
- "{user} declined the remote share of {file}" : "رفض {user} المشاركة القصيّة لـ {file}",
+ "{user} accepted the remote share" : "وافق {user} على المشاركة البعيدة remote",
+ "{user} declined the remote share" : "رفض {user} المشاركة البعيدة remote",
+ "You received a new remote share {file} from {user}" : "لقد تلقيت أنت مشاركة بعيدة remote جديدة {file} من {user}",
+ "{user} accepted the remote share of {file}" : "وافق {user} على المشاركة البعيدة لـ {file} ",
+ "{user} declined the remote share of {file}" : "رفض {user} المشاركة البعيدة لـ {file}",
"{user} unshared {file} from you" : "ألغى {user} مشاركة {file} معك",
"Shared with {user}" : "تمّت المشاركة مع {user}",
- "Removed share for {user}" : "تمّت إزالة المشاركة مع {user}",
+ "Removed share for {user}" : "تمّت إزالة المشاركة لـ {user}",
"You removed yourself" : "قمت بإزالة نفسك",
"{actor} removed themselves" : "أزال {actor} أنفسهم",
"{actor} shared with {user}" : "قام {actor} بالمشاركة مع {user}",
"{actor} removed share for {user}" : "أزال {actor} المشاركة مع {user}",
- "Shared by {actor}" : "تمّت مشاركته مِن قِبَل {actor}",
+ "Shared by {actor}" : "تمّت مشاركته بواسطة {actor}",
"{actor} removed share" : "قام {actor} بإزالة المشاركة",
"Share for {user} expired" : "إنتَهَت صلاحية المشاركة مع {user}",
"Share expired" : "إنتَهَت صلاحية المشاركة",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "إنتَهَت صلاحية مشاركة الملف {file} مع {user}",
"Share for file {file} expired" : "إنتَهَت صلاحية المشاركة للملف {file}",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "تمّ <strong>تنزيل</strong> ملف أو مجلد مشترك عن طريق البريد أو الرابط العام",
- "A file or folder was shared from <strong>another server</strong>" : "تمّت مشاركة ملف أو مجلد من <strong>خادومٍ آخر</strong>",
- "Files" : "الملفّات",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "تمّ رفع <strong>ملفات</strong> إلى مجلد مشترك عبر الإيميل أو عبر رابط عمومي",
+ "A file or folder was shared from <strong>another server</strong>" : "تمّت مشاركة ملف أو مجلد من خادم آخر</strong>",
+ "Sharing" : "المشاركة",
"A file or folder has been <strong>shared</strong>" : "تمّت <strong>مشاركة </strong> ملف أو مجلد",
"Shared link" : "رابط المشاركة",
"Wrong share ID, share does not exist" : "خطأ في مُعرِّف المشاركة sahre ID. المشاركة غير موجودة",
@@ -76,34 +63,46 @@
"Please specify a file or folder path" : "يرجى تحديد مسار ملف أو مجلد",
"Wrong path, file/folder does not exist" : "مسار الملف أو المجلد غير موجود",
"Could not create share" : "لا يمكن انشاء مشاركة",
- "Invalid permissions" : "الأذونات لا تكفي",
- "Invalid date, date format must be YYYY-MM-DD" : "تاريخ غير صحيح. يجب أن يكون تنسيق التاريخ خانتين لليوم و خانتين للشهر و أربع خانات للسنة",
- "Please specify a valid account to share with" : "رجاءً، حدِّد حساباً صحيحاً للمشاركة معه",
- "Group sharing is disabled by the administrator" : "مشاركة المجموعة معطّلة من قِبَل المُشرِف",
+ "Please specify a valid account to share with" : "رجاءً، قم بتحديد حساب صحيح للمشاركة معه",
+ "Group sharing is disabled by the administrator" : "مشاركة المجموعة معطّلة من قِبَل مسؤول النظام",
"Please specify a valid group" : "يرجى تحديد مجموعة صحيحة",
- "Public link sharing is disabled by the administrator" : "المشاركة عن طريق الروابط العامة معطّلة من قِبَل المُشرف",
- "Public upload disabled by the administrator" : "عمليات الرفع العامة معطّلة من قِبَل المُشرف",
- "Public upload is only possible for publicly shared folders" : "عمليات الرفع العامة مسموحة فقط في المجلدات المُشارَكة",
+ "Public link sharing is disabled by the administrator" : "المشاركة عن طريق الروابط العامة معطّلة من قِبَل مسؤول النظام",
+ "Please specify a valid email address" : "من فضلك، عيٍّن عنواناً صحيحاً للبريد الإلكتروني",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "مشاركة %s لارسال كلمة المرور من قبل تطبيق \"المحادثة Talk\" نكست كلاود فشلت بسبب عدم تفعيل التطبيق.",
- "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "فشلت مشاركة %1$s لأن الخلفية لا تسمح بالمشاركة من النوع %2$s",
- "Please specify a valid federated account ID" : "رجاءً، حدِّد مُعرِّفاً صحيحاً لحساب اتحادي federated account ID",
- "Please specify a valid federated group ID" : "رجاءً عيّن مُعرِّفاً صحيحاً لمجموعة اتحادية federated group ID",
- "You cannot share to a Circle if the app is not enabled" : "لا يمكن المشاركة مع الدوائر Circles اذا كان تطبيقها معطّلاً",
- "Please specify a valid circle" : "يُرجى ادخال دائرة Circle صحيحة",
+ "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "فشلت مشاركة %1$s لأن الخادم لا يسمح بالمشاركة من النوع %2$s",
+ "Please specify a valid federated account ID" : "يرجى تحديد معرف صحيح لحساب السحابة الموحدة",
+ "Please specify a valid federated group ID" : "يرجى تعيين معرف صحيح لمجموعة السحابة الموحدة",
+ "You cannot share to a Team if the app is not enabled" : "لا يمكنك المشاركة مع فريق إذا لم يكن التطبيق مُمكّناً",
+ "Please specify a valid team" : "من فضلك، قم بتحديد فريق صحيح",
"Sharing %s failed because the back end does not support room shares" : "فشلت مشاركة %s لأن الخلفية back end لا تدعم مشاركات الغُرَف room shares",
- "Sharing %s failed because the back end does not support ScienceMesh shares" : " المشاركة %s فشلت بسبب أن الخادوم لا يدعم مشاركات ScienceMesh",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : " المشاركة %s فشلت بسبب أن الخادم لا يدعم مشاركات ScienceMesh",
"Unknown share type" : "نوع مشاركة غير معروف",
"Not a directory" : "ليس مُجلّداً صحيحاً",
"Could not lock node" : "تعذّر قَفْل lock النقطة node",
- "Could not lock path" : "تعذّر قَفْل lock المسار path",
- "Wrong or no update parameter given" : "خطأ أو لم يتم تقديم بارامتر للتحديث update paramete",
+ "Public upload is only possible for publicly shared folders" : "عمليات الرفع العامة مسموحة فقط في المجلدات المشاركة",
"Share must at least have READ or CREATE permissions" : "يجب أن تمتلك المشاركة أذونات الإنشاء CREATE و القراءة READ على الأقل",
"Share must have READ permission if UPDATE or DELETE permission is set" : "يجب أن تمتلك المشاركة إذن القراءة READ إذا كانت أذونات UPDATE أو DELETE مُعيّنة ",
+ "Public upload disabled by the administrator" : "عمليات الرفع العامة معطّلة من قِبَل مسؤول النظام",
+ "Could not lock path" : "تعذّر قَفْل lock المسار path",
+ "no sharing rights on this item" : "لا توجد حقوق مشاركة في هذا العنصر",
+ "You are not allowed to edit incoming shares" : "أنت غير مسموحٍ لك بتعديل المشاركات الواردة",
+ "Wrong or no update parameter given" : "خطأ أو لم يتم تقديم مدخلات التحديث update paramete",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"عملية إرسال كلمة المرور بواسطة تطبيق نكست كلاود للمحادثة Talk\" من أجل مشاركة ملف أو مُجلّد لم تُنفّذ بسبب أن التطبيق غير مُفعّل",
+ "Custom share link tokens have been disabled by the administrator" : "أَمَارَات روابط المشاركة المخصصة تمّ تعطيلها من قِبَل المشرف",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "الأَمَارَات يجب أن تحوي حرفاً واحداً 1 على الأقل ويجب أن تحوي فقط حروفاً أو أرقاماً أو شَرْطَات.",
+ "Invalid date. Format must be YYYY-MM-DD" : "التاريخ غير صحيح. يجب أن يكون على الصيغة YYYY-MM-DD",
+ "No sharing rights on this item" : "لا توجد حقوق مشاركة في هذا العنصر",
+ "Invalid share attributes provided: \"%s\"" : "خصائص المشاركة المعطاة غير صحيحة: \"%s\"",
+ "You are not allowed to send mail notifications" : "أنت غير مسموحٍ لك بإرسال إشعارات الإيميل",
+ "No mail notification configured for this share type" : "لا توجد إشعارات بريد مهيّأة لهذا النوع من المشاركات ",
+ "Wrong password" : "كلمة المرور غير صحيحة",
+ "Error while sending mail notification" : "حدث خطأ أثناء إرسال إشعار بإيميل",
+ "Failed to generate a unique token" : "تعذّر توليد أَمَارَة مُميّزة",
+ "This share does not exist or is no longer available" : "هذه المشاركة غير موجودة أو لم تعد متاحة الآن",
"shared by %s" : "تمّت مشاركته مِن قبل %s",
- "Download all files" : "تنزيل كافة الملفات",
- "Direct link" : "رابط مباشر",
+ "Download" : "تنزيل",
"Add to your %s" : "أضاف إليك %s",
+ "Direct link" : "رابط مباشر",
"Share API is disabled" : "المشاركة عبر واجهة برمجة التطبيقات API مُعطّلة",
"File sharing" : "مشاركة الملفات",
"Share will expire tomorrow" : "المشاركة ستنتهي صلاحيتها غداً",
@@ -112,133 +111,260 @@
"You received {share} to group {group} as a share by {user}" : "لقد تلقيت أنت {share} كمشاركة ضمن المجموعة {group} من قِبَل {user}",
"Accept" : "قبول",
"Decline" : "رفض",
- "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "يُمكِّن هذا التطبيق الأشخاص من مشاركة الملفات داخل نكست كلاود. عند تمكينه، يُمكِّن المشرف تحديد المجموعات التي يمكنها مشاركة الملفات. يمكن للأشخاص المعنيين بعد ذلك مشاركة الملفات والمجلدات مع حسابات ومجموعات أخرى داخل نكست كلاود. بالإضافة إلى ذلك، إذا قام المشرف بتمكين ميزة رابط المشاركة، فيمكن استخدام رابط خارجي لمشاركة الملفات مع أشخاص آخرين خارج نكست كلاود. يمكن للمشرفين أيضًا فرض كلمات المرور و تواريخ انتهاء الصلاحية و تمكين المشاركة من خادوم إلى خادوم عبر روابط المشاركة؛ بالإضافة إلى المشاركة من الأجهزة المحمولة. بالمقابل، يؤدي تعطيل التطبيق إلى إزالة الملفات والمجلدات المشتركة على الخادوم لدي جميع مستلمي المشاركة، و كذلك على عملاء المزامنة و تطبيقات الأجهزة المحمولة. \nللمزيد من المعلومات، أنظُر توثيق نكست كلاود.",
- "Sharing" : "المشاركة",
- "Accept shares from other accounts and groups by default" : "إقبَل المشاركات من حسابات و مجموعات أخرى بشكل تلقائي ",
+ "Remember to upload the files to %s" : "لا تنس رفع الملفات إلى %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "نود أن نذكرك بأنك لم تقم حتى الآن بتحميل أيّ ملفات إلى المجلد المشترك.",
+ "Open \"%s\"" : "إفتَح \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "يُمكِّن هذا التطبيق الأشخاص من مشاركة الملفات داخل نكست كلاود. عند تمكينه، يُمكِّن المدير تحديد المجموعات التي يمكنها مشاركة الملفات. يمكن للأشخاص المعنيين بعد ذلك مشاركة الملفات والمجلدات مع حسابات ومجموعات أخرى داخل نكست كلاود. بالإضافة إلى ذلك، إذا قام المدير بتمكين ميزة رابط المشاركة، فيمكن استخدام رابط خارجي لمشاركة الملفات مع أشخاص آخرين خارج نكست كلاود. يمكن للمديرين أيضًا فرض كلمات المرور و تواريخ انتهاء الصلاحية و تمكين المشاركة من خادم إلى خادم عبر روابط المشاركة؛ بالإضافة إلى المشاركة من الأجهزة المحمولة. بالمقابل، يؤدي تعطيل التطبيق إلى إزالة الملفات والمجلدات المشتركة على الخادم لدي جميع مستلمي المشاركة، و كذلك على عملاء المزامنة و تطبيقات الأجهزة المحمولة. \nللمزيد من المعلومات، أنظُر توثيق نكست كلاود.",
+ "People" : "الأشخاص",
+ "Filter accounts" : "تصفية الحسابات",
+ "The request will expire on {date} at midnight and will be password protected." : "سوف تنتهي صلاحية الطلب في {date} عند منتصف الليل، و سيكون محميّاً بكلمة مرور.",
+ "The request will expire on {date} at midnight." : "سوف تنتهي صلاحية الطلب في {date} عند منتصف الليل.",
+ "The request will be password protected." : "سوف يكون الطلب محميّاً بكلمة مرور.",
+ "When should the request expire?" : "متى يجب أن تنتهي صلاحية الطلب؟",
+ "Set a submission expiration date" : "تعيين وقت انتهاء صلاحية الإرسال",
+ "Expiration date" : "تاريخ إنتهاء صلاحية المشاركة",
+ "Select a date" : "إختر تاريخاً",
+ "Your administrator has enforced a {count} days expiration policy." : "قام مسؤول النظام بفرض سياسة {count} أيام لانتهاء الصلاحية.",
+ "What password should be used for the request?" : "هل يجب استعمال كلمة مرور لهذا الطلب؟",
+ "Set a password" : "تعيين كلمة المرور",
+ "Password" : "كلمة المرور",
+ "Enter a valid password" : "أدخِل كلمة مرور صحيحة",
+ "Generate a new password" : "توليد كلمة مرور جديدة",
+ "Your administrator has enforced a password protection." : "مسؤول النظام قام بفرض الحماية عن طريق كلمة المرور.",
+ "Automatically copying failed, please copy the share link manually" : "تعذّر النسخ التلقائي. قم رجاءً بنسخ رابط المشاركة يدويّاً",
+ "Link copied" : "تمّ نسخ الرابط",
+ "Email already added" : "الإيميل سبقت إضافته سلفاً",
+ "Invalid email address" : "عنوان الإيميل غير صحيح",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["عنوان الإيميل التالي غير صحيح: {emails}","عنوان الإيميل التالي غير صحيح: {emails}","عنوان الإيميل التالي غير صحيح: {emails}","عناوين الإيميل التالية غير صحيحة: {emails}","عناوين الإيميل التالية غير صحيحة: {emails}","عناوين الإيميل التالية غير صحيحة: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} عنوان بريد إلكتروني مضاف مسبقاً","{count} عنوان بريد إلكتروني مضاف مسبقاً","{count} عناوين بريد إلكتروني مضافة مسبقاً","{count} عناوين بريد إلكتروني مضافة مسبقاً","{count} عناوين بريد إلكتروني مضافة مسبقاً","{count} عناوين بريد إلكتروني مضافة مسبقاً"],
+ "_{count} email address added_::_{count} email addresses added_" : ["تمت إضافة {count} عنوان بريد إلكتروني ","تم إضافة {count} عنوان بريد إلكتروني ","تم إضافة {count} عناوين بريد إلكتروني ","تمت إضافة {count} عناوين بريد إلكتروني ","تمت إضافة {count} عناوين بريد إلكتروني ","تمت إضافة {count} عناوين بريد إلكتروني "],
+ "You can now share the link below to allow people to upload files to your directory." : "يمكنك الآن مشاركة الرابط أدناه للسماح للأشخاص برفع الملفات إلى دليلك.",
+ "Share link" : "رابط المشاركة",
+ "Copy" : "إنسَخ",
+ "Send link via email" : "إرسال رابط عبر الإيميل",
+ "Enter an email address or paste a list" : "أدخِل عنوان إيميل أو إلصِق قائمةً",
+ "Remove email" : "حذف البريد الإلكتروني",
+ "Select a destination" : "اختر وجهة",
+ "Select" : "تحديد",
+ "What are you requesting?" : "ماذا تطلب؟",
+ "Request subject" : "موضوع الطلب",
+ "Birthday party photos, History assignment…" : "صور حفلات الميلاد، أو تاريخ المهام...",
+ "Where should these files go?" : "أين يجب أن يتم نقل هذه الملفات؟",
+ "Upload destination" : "وجهة رفع الملفات",
+ "Revert to default" : "عُد إلى التلقائي",
+ "The uploaded files are visible only to you unless you choose to share them." : "الملفات المرفوعة تكون ظاهرة لك فقط إلا إذا قررت مشاركتها",
+ "Add a note" : "إضافة ملاحظة",
+ "Note for recipient" : "ملاحظة للمستلم",
+ "Add a note to help people understand what you are requesting." : "إضافة ملاحظة لتوضح للآخرين ما تطلبه",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "يمكنك إضافة روابط أو تاريخ أو أي معلومات أخرى من شأنها أن تساعد المستلم على فهم ما تطلبه.",
+ "Close" : "إغلاق",
+ "_Send email and close_::_Send {count} emails and close_" : ["أرسِل {count} إيميل ثم أغلِق","أرسِل الإيميل ثم أغلِق","أرسِل {count} إيميل ثم أغلِق","أرسِل {count} إيميلات ثم أغلِق","أرسِل {count} إيميلات ثم أغلِق","أرسِل {count} إيميلات ثم أغلِق"],
+ "Please select a folder, you cannot share the root directory." : "من فضلك، إختر مجلداً. لا يمكنك مشاركة المجلد الجذر.",
+ "File request created" : "تمّ إنشاء طلب لملف",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["تمّ إنشاء طلب للملف، و تمّ إرسال {count} إيميل","تمّ إنشاء طلب للملف، و تمّ إرسال الإيميل","تمّ إنشاء طلب للملف، و تمّ إرسال {count} إيميل","تمّ إنشاء طلب للملف، و تمّ إرسال {count} إيميلات","تمّ إنشاء طلب للملف، و تمّ إرسال {count} إيميلات","تمّ إنشاء طلب للملف، و تمّ إرسال {count} إيميلات"],
+ "Error creating the share: {errorMessage}" : "خطأ في إنشاء المشاركة: {errorMessage}",
+ "Error creating the share" : "خطأ في إنشاء المشاركة",
+ "Error sending emails: {errorMessage}" : "حدث خطأ في إرسال الإيميلات: {errorMessage}",
+ "Error sending emails" : "حدث خطأ في إرسال الإيميلات",
+ "Create a file request" : "إنشاء طلب لملف",
+ "Collect files from others even if they do not have an account." : "قم بجمع الملفات من الآخرين حتى لو لم يكونوا يملكون حسابات مسجلة",
+ "To ensure you can receive files, verify you have enough storage available." : "لضمان استلامك للملفات، تحقَّق من كفاية حصتك التخزينية.",
+ "File request" : "طلب الملف",
+ "Previous step" : "الخطوة السابقة",
+ "Cancel" : "إلغاء",
+ "Cancel the file request creation" : "إلغاء عملية إنشاء طلب الملف",
+ "Close without sending emails" : "أغلِق بدون إرسال إيميلات",
+ "Continue" : "متابعة",
"Error while toggling options" : "خطأ أثناء تبديل الخيارات",
- "Set default folder for accepted shares" : "تعيين المجلد الافتراضي للمشاركات المقبولة",
- "Reset" : "إعادة التعيين",
- "Reset folder to system default" : "إعادة تعيين المجلد إلى افتراضات النظام",
- "Choose a default folder for accepted shares" : "إختَر مجلداً افتراضياً لقبول المشاركات",
+ "Accept shares from other accounts and groups by default" : "قبول المشاركات من الحسابات والمجموعات الأخرى تلقائياً وبشكل افتراضي",
+ "Choose a default folder for accepted shares" : "إختر مجلداً افتراضياً لقبول المشاركات",
"Invalid path selected" : "المسار المُحدَّد غير صحيح",
"Unknown error" : "خطأ غير معروف",
- "Open Sharing Details" : "إفتَح تفاصل المشاركة",
+ "Set default folder for accepted shares" : "تعيين المجلد الافتراضي للمشاركات المقبولة",
+ "Reset" : "إعادة تعيين",
+ "Reset folder to system default" : "إعادة تعيين المجلد إلى افتراضات النظام",
+ "Share Expiration" : "تاريخ انتهاء صلاحية المشاركة",
"group" : "مجموعة",
"conversation" : "محادثة",
"remote" : "قَصِيٌّ remote",
"remote group" : "مجموعة قَصِيّة remote",
"guest" : "ضيف",
+ "by {initiator}" : "من قِبَل{initiator}",
"Shared with the group {user} by {owner}" : "تمّت مشاركته مع المجموعة {user} من قِبَل {owner}",
"Shared with the conversation {user} by {owner}" : "تمّت مشاركته مع المحادثة {user} من قِبَل {owner}",
"Shared with {user} by {owner}" : "تمّت مشاركته مع {user} من قِبَل {owner}",
- "Added by {initiator}" : "تمّت الإضافةمن قِبَل {initator}",
+ "Open Sharing Details" : "فتح تفاصيل المشاركة",
+ "Added by {initiator}" : "تمّت الإضافةمن قِبَل {initiator}",
"Via “{folder}”" : "عبر “{folder}”",
"Unshare" : "إلغاء المشاركة",
- "Internal link" : "رابط داخلي",
"Cannot copy, please copy the link manually" : "يتعذّر النسخ. يُرجى نسخ الرابط يدويًا",
- "Copy internal link to clipboard" : "إنسَخ رابطاً داخليّاً إلى الحافظة",
- "Only works for people with access to this folder" : "يعمل فقط عند الأشخاص الذين يمكنهم الوصول إلى هذا المجلد",
- "Only works for people with access to this file" : "يعمل فقط عند الأشخاص الذين يمكنهم الوصول إلى هذا الملف",
- "Link copied" : "تمّ نَسْخ الرابط",
- "Please enter the following required information before creating the share" : "الرجاء إدخال المعلومات المطلوبة التالية قبل إنشاء المشاركة",
- "Password protection (enforced)" : "الحماية بكلمة مرور (إلزامي)",
- "Password protection" : "الحماية بكلمة مرور",
- "Enter a password" : "إدخِل كلمة المرور",
- "Expiration date (enforced)" : "تاريخ انتهاء الصلاحية (إلزامي)",
- "Enter a date" : "أدخِل تاريخاً",
- "Create share" : "إنشاء مشاركة",
- "Cancel" : "إلغاء",
- "Customize link" : "خصِّص الرابط",
- "Generate QR code" : "توليد كود \"كيو آر\" QR",
- "Add another link" : "أضِف رابطاً آخر",
- "Create a new share link" : "أنشِيءْ رابط مشاركة جديد",
+ "Copy internal link" : "إنسخ الرابط الداخلي",
+ "Internal link" : "رابط داخلي",
"{shareWith} by {initiator}" : "{shareWith} مِن قِبَل {initiator}",
- "Shared via link by {initiator}" : "تمّت المشاركة عبر رابط من قِبَل {initator}",
+ "Shared via link by {initiator}" : "تمّت المشاركة عبر رابط من قِبَل {initiator}",
+ "File request ({label})" : "طلب الملف ({label})",
"Mail share ({label})" : "مشاركة البريد ({label})",
"Share link ({label})" : "رابط المشاركة ({label})",
+ "Mail share" : "مشاركة الإيميل",
"Share link ({index})" : "رابط المشاركة ({index})",
- "Share link" : "رابط المشاركة",
+ "Create public link" : "إنشاء رابط عمومي",
"Actions for \"{title}\"" : "إجراءات لـ \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "إنسَخ الرابط العام لـ \"{title}\" إلى الحافظة",
"Error, please enter proper password and/or expiration date" : "خطأ؛ يرجى إدخال كلمة المرور الصحيحة أو تاريخ انتهاء الصلاحية",
"Link share created" : "تمّ إنشاء رابط مشاركة",
"Error while creating the share" : "خطأ أثناء إنشاء المشاركة",
+ "Please enter the following required information before creating the share" : "الرجاء إدخال المعلومات المطلوبة التالية قبل إنشاء المشاركة",
+ "Password protection (enforced)" : "الحماية بكلمة مرور (إلزامي)",
+ "Password protection" : "الحماية بكلمة مرور",
+ "Enter a password" : "إدخِل كلمة المرور",
+ "Enable link expiration (enforced)" : "تمكين انتهاء صلاحية الرابط (مُفعَّل)",
+ "Enable link expiration" : "تمكين انتهاء صلاحية الرابط",
+ "Enter expiration date (enforced)" : "أدخِل تاريخ انتهاء الصلاحية (مُفعَّل)",
+ "Enter expiration date" : "أدخِل تاريخ انتهاء الصلاحية",
+ "Create share" : "إنشاء مشاركة",
+ "Customize link" : "تخصيص الرابط",
+ "Generate QR code" : "توليد رمز استجابة سريعة QR",
+ "Add another link" : "إضافة رابط آخر",
+ "Create a new share link" : "إنشاء رابط مشاركة جديد",
"Quick share options, the current selected is \"{selectedOption}\"" : "خيارات المشاركة السريعة. الاختيار الحالي هو \"{selectedOption}\"",
"View only" : "للعرض فقط",
"Can edit" : "يمكنه التعديل",
- "File drop" : "اسقاط الملف",
- "Custom permissions" : "أذُونَات مخصصة",
- "Search for share recipients" : "البحث عن مُستَلِمِي المشاركة",
- "No recommendations. Start typing." : "لا توجد توصيات. إبدأ الكتابة.",
+ "Custom permissions" : "أذونات مخصصة",
"Resharing is not allowed" : "لا يسمح بإعادة المشاركة",
"Name or email …" : "الاسم أو الإيميل …",
- "Name, email, or Federated Cloud ID …" : "الاسم أو الإيميل أو المُعرّف السحابي الاتحادي Federated Cloud ID",
+ "Name, email, or Federated Cloud ID …" : "الاسم أو البريد أو المعرف السحابي الموحد",
"Searching …" : "البحث جارٍ …",
"No elements found." : "لم يتم العثور على أي عناصر",
- "Search globally" : "بحث عام",
+ "Search everywhere" : "البحث الشامل",
"Guest" : "ضيف",
"Group" : "المجموعة",
"Email" : "البريد الإلكتروني",
"Team" : "الفريق",
"Talk conversation" : "المحادثات",
- "Deck board" : "الرُّقْعَة Deck",
+ "Deck board" : "لوحة البطاقات",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "على {server}",
+ "Enter external recipients" : "إدخال مُستَلِمين خارجيين",
+ "Search for internal recipients" : "البحث عن مُستَلِمين خارجيين",
+ "Note from" : "ملاحظة من",
+ "Note:" : "ملاحظة:",
+ "File drop" : "إسقاط الملف",
+ "Upload files to {foldername}." : "رفع الملفات إلى {foldername}.",
+ "By uploading files, you agree to the terms of service." : "بمجرد رفعك للملفات، أنت تعتبر موافقاً على شروط الخدمة.",
+ "View terms of service" : "عرض شروط الخدمة",
+ "Terms of service" : "شروط الخدمة",
+ "Share with email {email}" : "مشاركة مع صاحب البريد الإلكتروني {email}",
+ "Share with group" : "شارِك مع مجموعة",
+ "Share in conversation" : "شارِك في محادثة",
+ "Share with {user} on remote server {server}" : "مشاركة مع المستخدِم {user} على خادم البعيد {server}",
+ "Share with remote group" : "شارِك مع مجموعة قَصِيّة",
+ "Share with guest" : "شارِك مع ضيف",
+ "Update share" : "تحديث المشاركة",
+ "Save share" : "حفظ المشاركة",
+ "Read" : "قراءة",
+ "Create" : "إنشاء ",
+ "Edit" : "تعديل",
+ "Share" : "مشاركة",
+ "Delete" : "حذف",
+ "Password field cannot be empty" : "خانة كلمة المرور يجب ألّا تكون فارغةً",
+ "Replace current password" : "استبدال كلمة المرور الحالية",
+ "Failed to generate a new token" : "تعذّر توليد أَمَارَة جديدة",
"Allow upload and editing" : "السماح بالرفع و التعديل",
- "Allow editing" : "إسمَح بالتعدل",
+ "Allow editing" : "السماح بالتعديل",
"Upload only" : "رفع فقط",
"Advanced settings" : "الإعدادات المتقدمة",
- "Share label" : "لاصق label المشاركة",
+ "Share label" : "علامة رابط المشاركة",
+ "Share link token" : "أَمَارَة رابط المشاركة",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "عيّن أَمَارَة رابط المشارَكة العامة على شيء يسهل تذكره أو أنشئ أَمَارَة جديدة. لا يُنصح باستعمال أَمَارَة يمكن تخمينها للمشارَكات التي تحتوي على معلومات حساسة.",
+ "Generating…" : "توليد ...",
+ "Generate new token" : "توليد أَمَارَة جديدة",
"Set password" : "تعيين كلمة المرور",
- "Password" : "كلمة المرور",
"Password expires {passwordExpirationTime}" : "صلاحية كلمة المرور تنتهي في {passwordExpirationTime}",
"Password expired" : "كلمة المرور إنتهت صلاحيتها",
- "Video verification" : "التحقُّق من الفيديو",
+ "Video verification" : "التحقق بواسطة الفيديو",
+ "Expiration date (enforced)" : "تاريخ انتهاء الصلاحية (إلزامي)",
"Set expiration date" : "تعيين تاريخ إنتهاء الصلاحية",
- "Expiration date" : "تاريخ إنتهاء صلاحية المشاركة",
"Hide download" : "إخفاء التنزيل",
- "Allow download" : "إسمَح بالتنزيل",
+ "Allow download and sync" : "السماح بالتنزيل و المزامنة",
"Note to recipient" : "ملاحظة للمستلم",
- "Enter a note for the share recipient" : "أدخل ملاحظةً لمُستلِم المُشارَكة",
- "Read" : "إقرأ",
- "Create" : "أنشِيء",
- "Edit" : "تعديل",
- "Share" : "مُشارَكة",
+ "Enter a note for the share recipient" : "أدخل ملاحظة لمستلم المشاركة",
+ "Show files in grid view" : "عرض الملفات في وضعية الشبكة",
"Delete share" : "حذف المشاركة",
- "Share with {userName}" : "شارِك مع {userName}",
- "Share with email {email}" : "مشاركة مع صاحب البريد الإلكتروني {email}",
- "Share with group" : "شارِك مع مجموعة",
- "Share in conversation" : "شارِك في محادثة",
- "Share with {user} on remote server {server}" : "مشاركة مع المستخدِم {user} على الخادوم القَصِي {server}",
- "Share with remote group" : "شارِك مع مجموعة قَصِيّة",
- "Share with guest" : "شارِك مع ضيف",
- "Update share" : "تحديث المشاركة",
- "Save share" : "حفظ المشاركة",
"Others with access" : "الآخرون الذين لديهم حق الوصول",
"No other accounts with access found" : "لا يوجد أي أشخاص آخرين يمكنهم الوصول إلى هذا الملف",
"Toggle list of others with access to this directory" : "تعطيل/تفعيل قائمة الآخرين الذين لديهم حق الوصول إلى هذا الدليل",
"Toggle list of others with access to this file" : "تعطيل/تفعيل قائمة الآخرين الذين لديهم حق الوصول إلى هذا الملف",
"Unable to fetch inherited shares" : "تعذّر جلب المشاركات الموروثة inherited shares",
+ "Link shares" : "ربط المشاركات",
+ "Shares" : "مشاركات",
"Unable to load the shares list" : "تعذّر تحميل قائمة المشاركات",
"Expires {relativetime}" : "تنتهي الصلاحية في {relativetime}",
"this share just expired." : "صلاحية هذه المشاركة إنتَهَت للتَّوّ.",
"Shared with you by {owner}" : "تمّت مشاركته معك من قِبَل {owner}",
- "_Accept share_::_Accept shares_" : ["قبول المشاركات","قبول المشاركة","قبول المشاركات","قبول المشاركات","قبول المشاركات","إقبَل المشاركات"],
+ "Internal shares" : "مشاركات داخلية",
+ "Internal shares explanation" : "شرح المشاركات الداخلية",
+ "External shares" : "مشاركات خارجية",
+ "External shares explanation" : "شرح مشاركات خارجية",
+ "Additional shares" : "مشاركات إضافية",
+ "Additional shares explanation" : "شرح مشاركات إضافية",
+ "Link to a file" : "رابط إلى ملف",
+ "_Accept share_::_Accept shares_" : ["قبول المشاركات","قبول المشاركة","قبول المشاركات","قبول المشاركات","قبول المشاركات","قبول المشاركات"],
"Open in Files" : "إفتَح في \"الملفات\"",
"_Reject share_::_Reject shares_" : ["رفض المشاركات","رفض المشاركة","رفض المشاركات","رفض المشاركات","رفض المشاركات","أرفُض المشاركات"],
"_Restore share_::_Restore shares_" : ["استعادة المشاركات","استعادة المشاركة","استعادة المشاركات","استعادة المشاركات","استعادة المشاركات","إستعادة المشاركات"],
- "Shared" : "مُشارَكة",
- "Shared multiple times with different people" : "تمّت مشاركته عدة مرات مع أشخاص متعددين",
+ "Shared" : "مشاركة",
"Shared by {ownerDisplayName}" : "تمّت مشاركته من قِبَل {ownerDisplayName}",
- "Show sharing options" : "أعرُض خيارات المشاركة",
- "Link to a file" : "رابط إلى ملف",
- "Error creating the share: {errorMessage}" : "خطأ في إنشاء المشاركة: {errorMessage}",
- "Error creating the share" : "خطأ في إنشاء المشاركة",
+ "Shared multiple times with different people" : "تمّت مشاركته عدة مرات مع أشخاص متعددين",
+ "Shared with others" : "قمت بمشاركته مع آخرين",
+ "Create file request" : "إنشاء طلب ملف",
+ "Upload files to {foldername}" : "رفع الملفات إلى{foldername}",
+ "Public file share" : "مشاركة ملفات عامة",
+ "Publicly shared file." : "ملفات مشتركة عامة.",
+ "No file" : "لا يوجد ملف",
+ "The file shared with you will show up here" : "الملفات المشتركة معك سوف تظهر هنا",
+ "Public share" : "مشاركة عامة",
+ "Publicly shared files." : "ملفات مشتركة عامة.",
+ "No files" : "لا ملفات",
+ "Files and folders shared with you will show up here" : "الملفات و المجلدات المشتركة معك ستظهر هنا",
+ "Overview of shared files." : "إستعراض الملفات المُشَارَكَة",
+ "No shares" : "لا توجد مشاركات",
+ "Files and folders you shared or have been shared with you will show up here" : "الملفات و المجلدات التي شاركتها مع آخرين أو شاركها آخرون معك ستظهر هنا",
+ "Shared with you" : "تمت مشاركته معك",
+ "List of files that are shared with you." : "قائمة بالملفات التي تمّت مُشارَكتها معك.",
+ "Nothing shared with you yet" : "لم تتمّ مشاركة شيء معك حتى الآن",
+ "Files and folders others shared with you will show up here" : "الملفات و المجلدات التي شاركها آخرون معك ستظهر هنا",
+ "List of files that you shared with others." : "قائمة بالملفات التي شاركتها أنت مع الآخرين.",
+ "Nothing shared yet" : "لا توجد مشاركة حتى الآن",
+ "Files and folders you shared will show up here" : "الملفات و المجلدات التي شاركتها أنت مع آخرين ستظهر هنا",
+ "Shared by link" : "تمت مشاركته عبر رابط",
+ "List of files that are shared by link." : "قائمة بالملفات التي تمّت مشاركتها عبر رابط.",
+ "No shared links" : "لا توجد روابط لمشاركات",
+ "Files and folders you shared by link will show up here" : "الملفات و المجلدات التي شاركتها أنت مع آخرين عن طريق رابط ستظهر هنا",
+ "File requests" : "طلبات الملفات",
+ "List of file requests." : "قائمة طلبات الملفات.",
+ "No file requests" : "لا توجد أي طلبات للملفات",
+ "File requests you have created will show up here" : "طلبات الملفات التي أنشأتها سيتم عرضها هنا",
+ "Deleted shares" : "مشاركات محذوفة",
+ "List of shares you left." : "قائمة بالمشاركات التي قمت بإلغائها",
+ "No deleted shares" : "لا توجد أي مشاركات محذوفة",
+ "Shares you have left will show up here" : "المشاركات التي ألغيتها ستظهر هنا",
+ "Pending shares" : "مشاركات بانتظار الموافقة",
+ "List of unapproved shares." : "قائمة بالمشاركات بانتظار الموافقة.",
+ "No pending shares" : "لا توجد مشاركات بانتظار الموافقة",
+ "Shares you have received but not approved will show up here" : "المشاركات التي تلقيت دعواتها لكنك لم توافق عليها ستظهر هنا",
"Error updating the share: {errorMessage}" : "خطأ في تعديل المشاركة: {errorMessage}",
"Error updating the share" : "خطأ في تحديث المشاركة",
"File \"{path}\" has been unshared" : "الملف \"{path}\" تمّ إلغاء مشاركته",
"Folder \"{path}\" has been unshared" : "المجلّد \"{path}\" تمّ إلغاء مشاركته",
- "Share {propertyName} saved" : "المُشارَكة {propertyName} تمّ حفظها",
+ "Could not update share" : "يتعذّر تحديث المشاركة",
+ "Share saved" : "تمّ حفظ المشاركة",
+ "Share expiry date saved" : "تمّ حفظ تاريخ انتهاء صلاحية المشاركة",
+ "Share hide-download state saved" : "تمّ حفظ حالة إخفاء تنزيل المشاركة",
+ "Share label saved" : "تمّ حفظ عنوان المشاركة",
+ "Share note for recipient saved" : "تمّ حفظ ملاحظة المشاركة الموجهة إلى المستلم",
+ "Share password saved" : "تمّ حفظ كلمة مرور المشاركة",
+ "Share permissions saved" : "تمّ حفظ إذونات المشاركة",
+ "Upload files to {folder}" : "رفع ملفات إلى {folder}",
+ "{ownerDisplayName} shared a folder with you." : "قام {ownerDisplayName} بمشاركة مجلد معك.",
"Shared by" : "تمّت مشاركته من قِبَل",
"Shared with" : "تمّت مشاركته مع",
"Password created successfully" : "تمّ إنشاء كلمة المرور بنجاح",
@@ -247,73 +373,52 @@
"Shared with you and {circle} by {owner}" : "تمّت مشاركته معك و مع الدائرة {circle} من قِبَل {owner}",
"Shared with you and the conversation {conversation} by {owner}" : "تمّت مشاركته معك و مع المحادثة {conversation} من قِبَل {owner}",
"Shared with you in a conversation by {owner}" : "تمّت مشاركته معك في محادثة من قِبَل {owner}",
- "Shares" : "مُشارَكات",
- "Overview of shared files." : "إستعراض الملفات المُشَارَكَة",
- "No shares" : "لا تُوجد مُشارَكات",
- "Files and folders you shared or have been shared with you will show up here" : "الملفات و المجلدات التي شاركتها مع آخرين أو شاركها آخرون معك ستظهر هنا",
- "Shared with you" : "تمّت مُشارَكَته معك",
- "List of files that are shared with you." : "قائمة بالملفات التي تمّت مُشارَكتها معك.",
- "Nothing shared with you yet" : "لم تتمّ مُشارَكة شيء معك حتى الآن",
- "Files and folders others shared with you will show up here" : "الملفات و المجلدات التي شاركها آخرون معك ستظهر هنا",
- "Shared with others" : "قمت بمشاركته مع آخرين",
- "List of files that you shared with others." : "قائمة بالملفات التي شاركتها أنت مع الآخرين.",
- "Nothing shared yet" : "لا توجد مشاركة حتى الآن",
- "Files and folders you shared will show up here" : "الملفات و المجلدات التي شاركتها أنت مع آخرين ستظهر هنا",
- "Shared by link" : "مُشارَكَات عبر الرابط",
- "List of files that are shared by link." : "قائمة بالملفات التي تمّت مشاركتها عبر رابط.",
- "No shared links" : "لا توجد روابط لمُشارَكات",
- "Files and folders you shared by link will show up here" : "الملفات و المجلدات التي شاركتها أنت مع آخرين عن طريق رابط ستظهر هنا",
- "Deleted shares" : "مشاركات محذوفة",
- "List of shares you left." : "قائمة بالمشاركات التي ألغَيْتَها",
- "No deleted shares" : "لا توجد أيّ مُشارَكاتٍ محذوفة",
- "Shares you have left will show up here" : "المشاركات التي ألغَيْتَها أنت ستظهر هنا",
- "Pending shares" : "مشاركات مُعلَّقة",
- "List of unapproved shares." : "قائمة بالمُشارَكات المُعلّقة أي التي لم تتم الموافقة عليها.",
- "No pending shares" : "لا توجد مشاركات معلقة",
- "Shares you have received but not approved will show up here" : "المشاركات التي تلقَّيْتَ دعواتها لكنك لم توافق بعدُ عليها ستظهر هنا",
+ "Share not found" : "مشاركة غير موجودة",
+ "Back to %s" : "عودة إلى %s",
+ "Add to your Nextcloud" : "إضافة إلى حسابك على نكست كلاود",
+ "Waiting…" : "قيد الانتظار…",
+ "error" : "خطأ",
+ "finished" : "تمّ",
+ "This will stop your current uploads." : "سيؤدي هذا لإيقاف رفع الملفات الحالية.",
+ "Move or copy" : "أنقُل أو انسَخ",
+ "You can upload into this folder" : "بإمكانك رفع الملفات إلى هذا المجلد",
+ "Show list view" : "أظهِِر عرض القائمة list view",
+ "Show grid view" : "أظهِِر عرض الصناديق grid view",
+ "No compatible server found at {remote}" : "لم يتم العثور على خادم متوافق في {remote}",
+ "Invalid server URL" : "عنوان الرابط للخادم غير صالح",
+ "Failed to add the public link to your Nextcloud" : "فشل في إضافة الرابط العام إلى الخادم السحابي الخاص بك",
+ "You are not allowed to edit link shares that you don't own" : "أنت غير مسموحٍ لك بتعديل مشاركات الروابط التي لا تملكها",
+ "Download all files" : "تنزيل كافة الملفات",
+ "Link copied to clipboard" : "تمّ نسخ الرابط إلى الحافظة",
+ "_1 email address already added_::_{count} email addresses already added_" : ["{count} عنوان إيميل سبقت إضافته سلفاً","1 عنوان إيميل سبقت إضافته سلفاً","{count} عنوان إيميل سبقت إضافته سلفاً","{count} عناوين إيميل سبقت إضافتهت سلفاً","{count} عناوين إيميل سبقت إضافتها سلفاً","{count} عناوين إيميل سبقت إضافتها سلفاً"],
+ "_1 email address added_::_{count} email addresses added_" : ["{count} عنوان إيميل تمت إضافته","1 عنوان إيميل تمت إضافته","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها"],
+ "Copy to clipboard" : "نسخ الرابط إلى الحافظة",
+ "Copy internal link to clipboard" : "إنسَخ رابطاً داخليّاً إلى الحافظة",
+ "Only works for people with access to this folder" : "يعمل فقط عند الأشخاص الذين يمكنهم الوصول إلى هذا المجلد",
+ "Only works for people with access to this file" : "يعمل فقط عند الأشخاص الذين يمكنهم الوصول إلى هذا الملف",
+ "Copy public link of \"{title}\" to clipboard" : "إنسَخ الرابط العام لـ \"{title}\" إلى الحافظة",
+ "Search globally" : "بحث عام",
+ "Search for share recipients" : "إضافة أشخاص لاستلام المشاركة",
+ "No recommendations. Start typing." : "لا توجد توصيات. إبدأ الكتابة.",
+ "To upload files, you need to provide your name first." : "لرفع الملفات، يجب أن تكتب اسمك أوّلاً.",
+ "Enter your name" : "أدخِل اسمك",
+ "Submit name" : "إرسال الاسم",
+ "Share with {userName}" : "شارِك مع {userName}",
+ "Show sharing options" : "عرض خيارات المشاركة",
"Share note" : "ملاحظة عن المشاركة",
"Upload files to %s" : "رَفْعُ ملفات إلى %s",
+ "%s shared a folder with you." : "قام %s بمشاركة مجلد معك.",
"Note" : "ملاحظة",
- "Select or drop files" : "إختَر أو أفلِت ملفات",
- "Uploading files" : "رَفْعُ الملفات جارٍ ...",
+ "Select or drop files" : "إختر أو أفلِت ملفات",
+ "Uploading files" : "رفع الملفات جارٍ...",
"Uploaded files:" : "تمّ رَفْعُ ملفاتٍ:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "برفع الملفات ، فإنك توافق على %1$s شروط الخدمة %2$s.",
- "Add to your Nextcloud" : "أضِف إلى حسابك على نكست كلاود",
- "Files and folders others share with you will show up here" : "الملفات والمجلدات التي يشاركها الآخرون معك ستظهر هنا ",
- "Files and folders you share will show up here" : "الملفات و المجلدات التي تشاركها أنت مع آخرين ستظهر هنا ",
- "Files and folders you share by link will show up here" : "الملفات و المجلدات التي تُشارِكها أنت مع آخرين عبر روابط ستظهر هنا ",
- "Shares you deleted will show up here" : "المشاركات التي قمت أنت بحذفها ستظهر هنا ",
- "Shares you have received but not confirmed will show up here" : "المشاركات التي تلقيتَ دعوتها لكنك لم تؤكد رغبتك في استلامها بعدُ ستظهر هنا ",
- "Shares will show up here" : "المشاركات ستظهر هنا",
- "Restore" : "إستعادة ",
- "Something happened. Unable to restore the share." : "حدث أمرٌ ما. لا يمكن استعادة المشاركة",
- "Something happened. Unable to accept the share." : "حدث أمرٌ ما. لا يمكن قبول المشاركة",
- "Something happened. Unable to reject the share." : "حدث أمرٌ ما. لا يمكن رفض المشاركة",
- "No expiration date set" : "تاريخ نهاية صلاحية المشاركة لم يتمّ تعيينه",
- "Please specify a valid user" : "يرجى تحديد مستخدم صحيح",
- "Please specify a valid federated user ID" : "رجاءً عيّن مُعرِّفاً صحيحاً لمستخدم اتحادي federated user ID",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "يتيح هذا التطبيق للمستخدمين مشاركة الملفات داخل نكست كلاود. عند تمكينه، يمكن للمشرف اختيار المجموعات التي يمكنها مشاركة الملفات. يمكن للمستخدمين المُخوَّلِين مشاركة الملفات والمجلدات مع مستخدمين و مجموعات أخرى داخل نكست كلاود. بالإضافة إلى ذلك، إذا قام المشرف بتمكين ميزة المشاركة عبر الروابط، فيمكن استعمال رابط خارجي لمشاركة الملفات مع مستخدمين آخرين خارج نكست كلاود. يمكن للمسؤولين أيضًا فرض كلمات المرور و تواريخ انتهاء الصلاحية و تمكين مشاركة خادوم لخادوم عبر روابط المشاركة. بالإضافة إلى المشاركة من الأجهزة المحمولة.\nيؤدي إيقاف تشغيل الميزة إلى إزالة الملفات والمجلدات المُشارَكة على الخادوم لجميع مستلمي المشاركة، وكذلك على عملاء المزامنة و تطبيقات الأجهزة المحمولة. المزيد من التعليمات، في صفحات توثيق نكست كلاود.",
- "Accept user and group shares by default" : "قبول مشاركات المستخدم والمجموعة بشكل افتراضي",
- "Read only" : "للقراءة فقط",
- "File drop (upload only)" : "إفلات ملف (للرفع فقط)",
- "Upload" : "إرفَع",
- "Bundled permissions" : "أذونات مُجمّعة",
- "Only works for users with access to this folder" : "صالحٌ فقط للمستخدمين الذين لديهم حق الوصول إلى هذا المجلد",
- "Only works for users with access to this file" : "صالحٌ فقط للمستخدمين الذين لديهم حق الوصول إلى هذا الملف",
- "Circle" : "الدائرة ",
- "Update" : "تحديث",
- "Share with " : "شَارِك مع",
- "No other users with access found" : "لم يتم العثور على مستخدمين آخرين لهم حق الوصول",
- "No entries found in this folder" : "لا يوجد مدخلات في هذا المجلد ",
"Name" : "الاسم",
- "Share time" : "وقت المشاركة",
- "Sorry, this link does not seem to work anymore." : "عذراً، يبدو أن هذا الرابط لم يعد يعمل.",
- "Reasons might be:" : "الأسباب الممكنة :",
- "the item was removed" : "تمّ حذف العنصر ",
- "the link expired" : "إنتَهَت صلاحية الرابط",
- "sharing is disabled" : "المُشارَكة مُعطّلة",
- "For more info, please ask the person who sent this link." : "لمزيد من المعلومات، يرجى سؤال الشخص الذي أرسل هذا الرابط",
- "Share with remote" : "شارِك مع موقعٍ قَصِي",
- "Share with" : "شارِكه مع"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "استَعمِل هذه الطريقة لمشاركة الملفات مع الأفراد أو الفرق داخل مؤسستك. إذا كان المستلم لديه بالفعل حق الوصول إلى المشاركة ولكنه لا يستطيع تحديد موقعها، فيمكنك إرسال رابط المشاركة الداخلي إليه لتسهيل وصوله إليها.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "استَعمِل هذه الطريقة لمشاركة الملفات مع الأفراد أو المؤسسات خارج مؤسستك. يمكن مشاركة الملفات والمجلدات عبر روابط المشاركة العامة وعناوين البريد الإلكتروني. يمكنك أيضًا المشاركة مع حسابات نكست كلاود الأخرى المستضافة على خوادم مختلفة باستخدام مُعرِّف سحابتها الاتحاديّة.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "المشاركات التي لا تشكل جزءاً من المشاركات الداخلية أو الخارجية تُعد مُشارَكات من تطبيقات أو مصادر أخرى.",
+ "Share with accounts and teams" : "المشاركة مع حسابات وفِرَق",
+ "Email, federated cloud id" : "بريد إلكتروني، مُعرِّف سحابة اتحاديّة",
+ "Filename must not be empty." : "يجب ألّا يكون اسم الملف فارغاً."
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ast.js b/apps/files_sharing/l10n/ast.js
index 1d1d1f61876..1943ff7be23 100644
--- a/apps/files_sharing/l10n/ast.js
+++ b/apps/files_sharing/l10n/ast.js
@@ -1,30 +1,26 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Esperando…",
- "error" : "error",
- "finished" : "finó",
- "This will stop your current uploads." : "Esta aición va parar les xubes actuales.",
- "Move or copy" : "Mover o copiar",
- "Download" : "Baxar",
- "Delete" : "Desaniciar",
- "You can upload into this folder" : "Pues xubir conteníu a esta carpeta",
- "Terms of service" : "Términos del serviciu",
- "Show list view" : "Amosar la vista en llista",
- "Show grid view" : "Amosar la vista en rexáu",
- "No compatible server found at {remote}" : "Nun s'atopó nengún sirvidor compatible en «{remote}»",
- "Invalid server URL" : "La URL del sirvidor ye inválida",
- "Failed to add the public link to your Nextcloud" : "Nun se pue amestar l'enllaz públicu a esta instancia de Nextcloud",
+ "File shares" : "Ficheros compartíos",
"Downloaded via public link" : "Elementu baxáu per enllaz públicu",
"Downloaded by {email}" : "Elementu baxáu por «{email}»",
+ "{file} downloaded via public link" : "Baxóse l'elementu «{file}» per enllaz públicu",
"{email} downloaded {file}" : "{email} baxó «{file}»",
"Shared with group {group}" : "Compartióse col grupu «{group}»",
+ "Removed share for group {group}" : "Quitóse l'elementu compartíu del grupu «{group}»",
"{actor} shared with group {group}" : "{actor} compartió col grupu «{group}»",
+ "{actor} removed share for group {group}" : "{actor} quitó l'elementu compartíu del grupu «{group}»",
+ "Share for group {group} expired" : "L'elementu compartíu del grupu «{group}»",
"You shared {file} with group {group}" : "Compartiesti «{file}» col grupu «{group}»",
"You removed group {group} from {file}" : "Quitesti'l grupu «{group}» del ficheru «{file}»",
"{actor} shared {file} with group {group}" : "{actor} compartió «{file}» col grupu «{group}»",
"{actor} removed group {group} from {file}" : "{actor} quitó'l grupu «{group}» de: {}",
+ "Share for file {file} with group {group} expired" : "El ficheru compartíu «{file}» col grupu «{group}» caudcó",
+ "Shared as public link" : "Compartióse como enllaz públicu",
+ "Removed public link" : "Quitóse l'enllaz públicu",
"Public link expired" : "L'enllaz públicu caducó",
+ "{actor} shared as public link" : "{actor} compartió como enllaz públicu",
+ "{actor} removed public link" : "{actor} quitó l'enllaz públicu",
"Public link of {actor} expired" : "L'enllaz públicu de «{actor}» caducó",
"You shared {file} as public link" : "Compartió «{file}» como enllaz públicu",
"You removed public link for {file}" : "Quitó l'enllaz públicu de: {file}",
@@ -34,65 +30,153 @@ OC.L10N.register(
"Public link of {actor} for {file} expired" : "L'enllaz públicu de {actor} pa «{file}» caducó",
"{user} accepted the remote share" : "{user} aceptó la compartición remota",
"{user} declined the remote share" : "{user} refugó la compartición remota",
+ "You received a new remote share {file} from {user}" : "Recibiesti un elementu compartíu nuevu «{file}» de: {user}",
+ "{user} accepted the remote share of {file}" : "{user} aceptó l'elementu compartíu remotu de: {file}",
+ "{user} declined the remote share of {file}" : "{user} refugó l'elementu compartíu remotu de: {file}",
"{user} unshared {file} from you" : "{user} dexó de compartir «{file}» contigo",
+ "Shared with {user}" : "Elementu compartíu con {user}",
+ "Removed share for {user}" : "Quitóse l'elementu compartíu pa {user}",
+ "You removed yourself" : "Quitéstite",
+ "{actor} removed themselves" : "{actor} quitóse a sigo mesmu",
"{actor} shared with {user}" : "{actor} compartió con {user}",
"{actor} removed share for {user}" : "{actor} quitó la compartición de: {user}",
+ "Shared by {actor}" : "Elementu compartíu por {actor}",
"{actor} removed share" : "{actor} quitó la compartición",
+ "Share for {user} expired" : "L'elementu compartíu pa {user} caducó",
"Share expired" : "La compartición caducó",
"You shared {file} with {user}" : "Compartiesti «{file}» con {user}",
- "You removed {user} from {file}" : "Quitesti a {member} de: {circle}",
+ "You removed {user} from {file}" : "Quitesti a {user} de: {file}",
+ "You removed yourself from {file}" : "Quitéstite de: {file}",
+ "{actor} removed themselves from {file}" : "{actor} quitóse de: {file}",
+ "{actor} shared {file} with {user}" : "{actor} compartió «{file}» con {user}",
+ "{actor} removed {user} from {file}" : "{actor} quitó a {user} de: {file}",
"{actor} shared {file} with you" : "{actor} compartió «{file}» contigo",
- "Files" : "Ficheros",
+ "{actor} removed you from the share named {file}" : "{actor} quitóte del elementu compartíu col nome «{file}»",
+ "Share for file {file} with {user} expired" : "L'elementu compartíu {file} con {user} caducó",
+ "Share for file {file} expired" : "L'elementu compartíu {file} caducó",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "<strong>Baxóse</strong> un ficheru o una carpeta compartíos per corréu electrónicu o enllaz públicu",
+ "A file or folder was shared from <strong>another server</strong>" : "Compartióse un ficheru o una carpeta d'<strong>otru sirvidor</strong>",
+ "Sharing" : "Compartición",
"A file or folder has been <strong>shared</strong>" : "<strong>Compartióse</strong> un ficheru o una carpeta",
"Shared link" : "Enllaz compartíu",
+ "Wrong share ID, share does not exist" : "La ID del elementu compartíu ye incorreuta, l'elementu nun esiste",
"Could not delete share" : "Nun se pudo desaniciar la compartición",
"Please specify a file or folder path" : "Especifica'l camín d'un ficheru o una carpeta",
+ "Wrong path, file/folder does not exist" : "El camín ye incorreutu, el ficheru/carpeta nun esiste",
"Could not create share" : "Nun se pudo crear la compartición",
- "Invalid permissions" : "Los permisos son inválidos",
- "Invalid date, date format must be YYYY-MM-DD" : "La data ye inválida, el so formatu ha ser AAAA-MM-DD",
"Please specify a valid account to share with" : "Especifica una cuenta válida cola que compartir",
+ "Group sharing is disabled by the administrator" : "L'alministración desactivó la compartición grupal",
"Please specify a valid group" : "Especifica un grupu válidu",
"Public link sharing is disabled by the administrator" : "L'alministración desactivó al compartición d'enllaces públicos",
- "Public upload disabled by the administrator" : "L'alministración desactivó la xuba pública",
- "Public upload is only possible for publicly shared folders" : "La xuba pública namás ye posible pa les carpetes compartíes públicamente",
- "Please specify a valid circle" : "Especifica un círculu válidu",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nun se pudo compartir «%s» unviando la contraseña per Nextcloud Talk porque qu'esta aplicación nun ta activada",
+ "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Nun se pudo compartir «%1$s» porque'l backend nun permite los elementos compartíos del tipu «%2$s»",
+ "Please specify a valid federated account ID" : "Especifica una ID de cuenta federada válida",
+ "Please specify a valid federated group ID" : "Especifica una ID de grupu federáu válida",
+ "Sharing %s failed because the back end does not support room shares" : "Nun se pudo compartir «%s» porque'l backend nun ye compatible coles comparticiones con sales",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Nun se pudo compartir «%s» porque nun ye compatible coles comparticiones de ScienceMesh",
+ "Unknown share type" : "Tipu de compartición desconocida",
"Not a directory" : "Nun ye un direutoriu",
"Could not lock node" : "Nun se pudo bloquiar el noyu",
+ "Public upload is only possible for publicly shared folders" : "La xuba pública namás ye posible pa les carpetes compartíes públicamente",
+ "Share must at least have READ or CREATE permissions" : "L'elementu compartíu ha tener polo menos los permisos READ o CREATE",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "L'elementu compartíu ha tener el permisu READ si s'afitaron los permisos UPDATE o DELETE",
+ "Public upload disabled by the administrator" : "L'alministración desactivó la xuba pública",
"Could not lock path" : "Nun se pudo bloquiar el camín",
- "Download all files" : "Baxar tolos ficheros",
+ "You are not allowed to edit incoming shares" : "Nun tienes permisu pa editar les comparticiones entrantes",
+ "Wrong or no update parameter given" : "Apurrióse un parámetru d'anovamientu incorreutu o nun s'apurrió",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nun se pudo unviar la contraseña per Talk pa compartir un ficheru o una carpeta porque esta aplicación nun ta activada.",
+ "Wrong password" : "La contraseña ye incorreuta",
+ "shared by %s" : "elementu compartíu por %s",
+ "Download" : "Baxar",
+ "Add to your %s" : "Amestar a «%s»",
"Direct link" : "Enllaz direutu",
"Share API is disabled" : "L'API de compartición ta desactivada",
"File sharing" : "Compartición de ficheros",
"Share will expire tomorrow" : "La compartición va caducar mañana",
+ "Your share of {node} will expire tomorrow" : "El to elementu compartíu de «{node}» va caducar mañana",
+ "You received {share} as a share by {user}" : "Recibiesti «{share}» como elementu comaprtíu de: {user}",
+ "You received {share} to group {group} as a share by {user}" : "Recibiesti «{share}» al grupu {group} como elementu comaprtíu de: {user}",
"Accept" : "Aceptar",
"Decline" : "Refugar",
- "Sharing" : "Compartición",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permite a les persones compartir ficheros en Nextcloud. Si s'activa, l'alministración pue escoyer los grupos que puen compartir ficheros. Les persones con permisu puen compartir ficheros y carpetes con otres persones y grupos de Nextclouod. Amás, si l'alministración activa la función de compartir enllaces, puen usase enllaces esternos pa compartir ficheros con otres persones fuera de Nextcloud. L'alministración tamién pue aplicar contraseñes, dates de caducidá y activar l'usu compartíu ente sirvidores pente enllaces d'usu compartíu, amás de l'usu compartíu dende preseos móviles.\nSi se desactiva la función, desaníciense los ficheros y carpetes compartíos del sirvidor pa tolos destinatarios y tamién pa los veceros de sincronización y les aplicaciones pa móviles. Tienes más información disponible na documentación de Nextcloud.",
+ "People" : "Persones",
+ "Expiration date" : "Data de caducidá",
+ "Password" : "Contraseña",
+ "Link copied" : "Copióse l'enllaz",
+ "Invalid email address" : "La direición de corréu electrónicu ye inválida",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Les direición de corréu siguiente nun ye válida: {emails}","Les direiciones de corréu siguientes nun son válides: {emails}"],
+ "Share link" : "Compartir l'enllaz",
+ "Copy" : "Copiar",
+ "Select" : "Seleicionar",
+ "What are you requesting?" : "¿Qué tas solicitando?",
+ "Where should these files go?" : "¿A ónde habríen dir estos ficheros?",
+ "Note for recipient" : "Nota pal destinatariu",
+ "Add a note to help people understand what you are requesting." : "Amiesta una nota p'ayudar a otros a entender qué tas solicitando.",
+ "Close" : "Zarrar",
+ "Please select a folder, you cannot share the root directory." : "Seleiciona una carpeta. Nun pues compartir el direutoriu raigañu.",
+ "File request created" : "Creóse la solicitú de ficheru",
+ "Error creating the share: {errorMessage}" : "Hebo un error al crear la compartición: {errorMessage}",
+ "Error creating the share" : "Hebo un error al crear la compartición",
+ "Error sending emails: {errorMessage}" : "Hebo un error al unviar los mensaxes: {errorMessage}",
+ "Error sending emails" : "Hebo un error al unviar los mensaxes",
+ "Create a file request" : "Crear una solicitú de ficheru",
+ "Collect files from others even if they do not have an account." : "Coleiciona los ficheros d'otros magar que nun tengan una cuenta.",
+ "To ensure you can receive files, verify you have enough storage available." : "P'asegura de que pues recibir ficheros, verifica que tienes abondu almacenamientu disponibles.",
+ "File request" : "Solicitú de ficheru",
+ "Previous step" : "Pasu anterior",
+ "Cancel" : "Encaboxar",
+ "Cancel the file request creation" : "Encaboxar la creación de la solciitú de ficheru",
+ "Continue" : "Siguir",
"Error while toggling options" : "Hebo un error mentanto s'alternaba les opciones",
- "Reset" : "Reafitar",
+ "Accept shares from other accounts and groups by default" : "Aceptar elementos compartíos d'otres cuentes y grupos por defeutu",
+ "Choose a default folder for accepted shares" : "Escueyi una carpeta predeterminada pa los elementos compartíos aceptaos",
"Invalid path selected" : "Seleicionóse un camín inválidu",
"Unknown error" : "Error desconocíu",
+ "Set default folder for accepted shares" : "Afitar la carpeta predeterminada pa los elementos compartíos aceptaos",
+ "Reset" : "Reafitar",
+ "Reset folder to system default" : "Reafitar la configuración de la carpeta",
"group" : "grupu",
"conversation" : "conversación",
+ "remote" : "remota",
"remote group" : "grupu remotu",
"guest" : "convidáu",
+ "Shared with the group {user} by {owner}" : "{owner} compartió l'elementu col grupu «{user}»",
+ "Shared with the conversation {user} by {owner}" : "{owner} compartió l'elementu cola conversación «{user}»",
+ "Shared with {user} by {owner}" : "{owner} compartió l'elementu con «{user}»",
+ "Open Sharing Details" : "Abrir los detalles de la compartición",
+ "Added by {initiator}" : "{initiator} amestó l'elementu",
"Via “{folder}”" : "Per «{folder}»",
"Unshare" : "Dexar de compartir",
- "Internal link" : "Enllaz internu",
"Cannot copy, please copy the link manually" : "Nun se pue copiar. Copia l'enllaz manualmente",
- "Copy internal link to clipboard" : "Copiar l'enllaz internu nel cartafueyu",
- "Link copied" : "Copióse l'enllaz",
+ "Copy internal link" : "Copiar l'enllaz internu",
+ "Internal link" : "Enllaz internu",
+ "{shareWith} by {initiator}" : "«{shareWith}» por {initiator}",
+ "Shared via link by {initiator}" : "{initiator} compartío l'elementu per enllaz",
+ "File request ({label})" : "Solicitú de ficheru ({label})",
+ "Mail share ({label})" : "Unviar l'elementu compartíu per corréu electrónicu ({label})",
+ "Share link ({label})" : "Compartir l'enllaz ({label})",
+ "Mail share" : "Unviar la compartición per corréu",
+ "Share link ({index})" : "Compartir l'enllaz ({index})",
+ "Actions for \"{title}\"" : "Aiciones pa: {title}",
+ "Error, please enter proper password and/or expiration date" : "Error, introduz la contraseña y/o la data de caducidá correutos",
+ "Link share created" : "Creóse l'enlla d'usu compartíu",
+ "Error while creating the share" : "Hebo un error mentanto se creaba la compartición",
+ "Please enter the following required information before creating the share" : "Instroduz la información siguiente riquida enantes de crear l'elementu compartíu",
+ "Password protection (enforced)" : "Proteición con contraseña (obligatoria)",
"Password protection" : "Proteición con contraseña",
"Enter a password" : "Introduz una contraseña",
- "Enter a date" : "Introduz una data",
- "Cancel" : "Encaboxar",
+ "Create share" : "Crear l'elementu compartíu",
+ "Customize link" : "Personalizar l'enllaz",
+ "Generate QR code" : "Xenerar un códigu QR",
"Add another link" : "Amestar otru enllaz",
- "Share link" : "Compartir l'enllaz",
- "Actions for \"{title}\"" : "Aiciones pa: {title}",
- "Copy public link of \"{title}\" to clipboard" : "Copiar l'enllaz públicu de «{title}» nel cartafueyu",
- "Error while creating the share" : "Hebo un error mentanto se creaba la compartición",
+ "Create a new share link" : "Creaer un enllaz d'usu compartíu",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Opciones de compartición rápida, la opción seleicionada anguaño ye «selectedOption}»",
"View only" : "Ver namás",
"Can edit" : "Pue editar",
- "No recommendations. Start typing." : "Nun hai nenguna recomendación. Comienza a escribir",
+ "Custom permissions" : "Personlizar los permisos",
+ "Resharing is not allowed" : "Nun se pue volver compartir",
+ "Name or email …" : "Nome o direición de corréu electrónicu…",
+ "Name, email, or Federated Cloud ID …" : "Nome, direición de corréu electrónicu o ID de nube federada…",
"Searching …" : "Buscando…",
"No elements found." : "Nun s'atopó nengún elementu.",
"Guest" : "Convidáu",
@@ -100,40 +184,59 @@ OC.L10N.register(
"Email" : "Corréu electrónicu",
"Team" : "Equipu",
"Talk conversation" : "Conversación de Talk",
+ "Deck board" : "Mesa de tarxetes",
+ "ScienceMesh" : "ScienceMesh",
+ "on {server}" : "en: {server}",
+ "File drop" : "Suelta de ficheros",
+ "Terms of service" : "Términos del serviciu",
+ "Share with email {email}" : "Compartir cola direición de corréu electrónica {email}",
+ "Share with group" : "Compartir col grupu",
+ "Share in conversation" : "Compartir na conversación",
+ "Share with {user} on remote server {server}" : "Compartir con {user} nel sirividor remotu «{server}»",
+ "Share with remote group" : "Compartir col grupu remotu",
+ "Share with guest" : "Compartir col convidáu",
+ "Update share" : "Anovar la compartición",
+ "Save share" : "Guardar la compartición",
+ "Read" : "Lleer",
+ "Create" : "Crear",
+ "Edit" : "Editar",
+ "Share" : "Compartir",
+ "Delete" : "Desaniciar",
"Allow upload and editing" : "Permitir la xuba y la edición",
"Allow editing" : "Permitir la edición",
"Upload only" : "Xubir namás",
"Advanced settings" : "Configuración avanzada",
- "Password" : "Contraseña",
+ "Share label" : "Etiqueta d'usu compartíu",
+ "Set password" : "Afitar la contraseña",
+ "Password expires {passwordExpirationTime}" : "La contraseña caduca: {passwordExpirationTime}",
"Password expired" : "La contraseña caducó",
"Video verification" : "Verificación per videu",
- "Expiration date" : "Data de caducidá",
- "Hide download" : "Anubrir la descarga",
- "Allow download" : "Permitir la descarga",
- "Read" : "Lleer",
- "Create" : "Crear",
- "Edit" : "Editar",
- "Share" : "Compartir",
+ "Expiration date (enforced)" : "Data de caducidá (obligatoria)",
+ "Set expiration date" : "Afitar la data de caducidá",
+ "Hide download" : "Esconder la descarga",
+ "Note to recipient" : "Nota al destinatariu",
+ "Enter a note for the share recipient" : "Introduz una nota pal destinatariu del elementu compartíu",
"Delete share" : "Desaniciar la compartición",
- "Share with group" : "Compartir col grupu",
- "Share in conversation" : "Compartir na conversación",
- "Share with remote group" : "Compartir col grupu remotu",
- "Share with guest" : "Compartir col convidáu",
- "Update share" : "Anovar la compartición",
- "Save share" : "Guardar la compartición",
+ "Others with access" : "Otros usuarios con accesu",
+ "No other accounts with access found" : "Nun s'atopó nenguna otra cuenta con accesu",
+ "Toggle list of others with access to this directory" : "Alternar la llista d'otros usuarios con accesu a esti direutoriu",
+ "Toggle list of others with access to this file" : "Alternar la llista d'otros usuarios con accesu a esti ficheru",
"Unable to fetch inherited shares" : "Nun ye posible dir en cata de los elementos compartíos heredaos",
+ "Shares" : "Comparticiones",
"Unable to load the shares list" : "Nun ye posible cargar la llista d'elementos compartíos",
+ "Expires {relativetime}" : "Caduca: {relativetime}",
"this share just expired." : "esta compartición ta acabante de caducar.",
+ "Shared with you by {owner}" : "{owner} compartió l'elementu contigo",
+ "Link to a file" : "Enllaciar a un ficheru",
+ "_Accept share_::_Accept shares_" : ["Aceptar l'elementu compartíu","Aceptar los elementos compartíos"],
"Open in Files" : "Abrir en Ficheros",
- "Error creating the share: {errorMessage}" : "Hebo un error al crear la compartición: {errorMessage}",
- "Error creating the share" : "Hebo un error al crear la compartición",
- "Error updating the share: {errorMessage}" : "Hebo un error al anovar la compartición: {errorMessage}",
- "Error updating the share" : "Hebo un error la compartición",
- "File \"{path}\" has been unshared" : "El camín «{path}» dexó compartise",
- "Folder \"{path}\" has been unshared" : "La carpeta «{folder}» dexó de compartise",
- "Shared by" : "Compartíu por",
- "Password created successfully" : "La contraseña creóse correutamente",
- "Shares" : "Comparticiones",
+ "_Reject share_::_Reject shares_" : ["Refugar l'elementu compartíu","Refugar los elementos compartíos"],
+ "_Restore share_::_Restore shares_" : ["Restaurar l'elementu compartíu","Restaurar los elementos compartíos"],
+ "Shared" : "Compartióse",
+ "Shared by {ownerDisplayName}" : "Elementu compartíu por {ownerDisplayName}",
+ "Shared multiple times with different people" : "Compartióse múltiples vegaes con otres persones",
+ "Shared with others" : "Compartío con otros",
+ "No file" : "Nun hai nengún ficheru",
"Overview of shared files." : "Vista xeneral de ficheros compartíos.",
"No shares" : "Nun hai nenguna compartición",
"Files and folders you shared or have been shared with you will show up here" : "Equí apaecen los ficheros y les carpetes que compartieres o compartieren contigo",
@@ -141,7 +244,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Llista de ficheros que compartieron contigo.",
"Nothing shared with you yet" : "Nun se compartió nada contigo",
"Files and folders others shared with you will show up here" : "Equí apaecen los ficheros y les carpetes qu'otros compartieren contigo",
- "Shared with others" : "Compartío con otros",
"List of files that you shared with others." : "Llista de ficheros que compartiesti con otros.",
"Nothing shared yet" : "Nun se compartió nada",
"Files and folders you shared will show up here" : "Equí apaecen los ficheros y les carpetes que compartiesti",
@@ -157,6 +259,44 @@ OC.L10N.register(
"List of unapproved shares." : "Llista d'elementos compartíos ensin aprobar.",
"No pending shares" : "Nun hai nenguna compartición pendiente",
"Shares you have received but not approved will show up here" : "Equí apaecen los elementos de compartíos que recibas mas nun s'aprobaron",
+ "Error updating the share: {errorMessage}" : "Hebo un error al anovar la compartición: {errorMessage}",
+ "Error updating the share" : "Hebo un error la compartición",
+ "File \"{path}\" has been unshared" : "El camín «{path}» dexó compartise",
+ "Folder \"{path}\" has been unshared" : "La carpeta «{path}» dexó de compartise",
+ "Shared by" : "Compartíu por",
+ "Shared with" : "Compartióse con",
+ "Password created successfully" : "La contraseña creóse correutamente",
+ "Error generating password from password policy" : "Hebo un error al xenerar una contraseña a partir la política de contraseña",
+ "Shared with you and the group {group} by {owner}" : "{owner} compartió l'elementu contigo y col grupu «{group}»",
+ "Shared with you and {circle} by {owner}" : "{owner} compartió l'elementu contigo y con «{circle}»",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} compartió l'elementu contigo y cola conversación «{conversation}»",
+ "Shared with you in a conversation by {owner}" : "{owner} compartió l'elementu contigo nuna conversación",
+ "Share not found" : "Nun s'atopó la compartición",
+ "Back to %s" : "Volver a «%s»",
+ "Add to your Nextcloud" : "Amestar a Nextcloud",
+ "Waiting…" : "Esperando…",
+ "error" : "error",
+ "finished" : "finó",
+ "This will stop your current uploads." : "Esta aición va parar les xubes actuales.",
+ "Move or copy" : "Mover o copiar",
+ "You can upload into this folder" : "Pues xubir conteníu a esta carpeta",
+ "Show list view" : "Amosar la vista en llista",
+ "Show grid view" : "Amosar la vista en rexáu",
+ "No compatible server found at {remote}" : "Nun s'atopó nengún sirvidor compatible en «{remote}»",
+ "Invalid server URL" : "La URL del sirvidor ye inválida",
+ "Failed to add the public link to your Nextcloud" : "Nun se pue amestar l'enllaz públicu a esta instancia de Nextcloud",
+ "Download all files" : "Baxar tolos ficheros",
+ "Link copied to clipboard" : "L'enllaz copióse nel cartafueyu",
+ "Copy to clipboard" : "Copiar nel cartafueyu",
+ "Copy internal link to clipboard" : "Copiar l'enllaz internu nel cartafueyu",
+ "Only works for people with access to this folder" : "Namás funciona pa les persones con accesu a esta carpeta",
+ "Only works for people with access to this file" : "Namás funciona pa les persones con accesu a esti ficheru",
+ "Copy public link of \"{title}\" to clipboard" : "Copiar l'enllaz públicu de «{title}» nel cartafueyu",
+ "Search globally" : "Buscar globalmente",
+ "Search for share recipients" : "Buscar destinatarios del elementu compartíu",
+ "No recommendations. Start typing." : "Nun hai nenguna recomendación. Comienza a escribir",
+ "Share with {userName}" : "Compartir con {userName}",
+ "Show sharing options" : "Amosar les opciones de compartición",
"Share note" : "Compartir una nota",
"Upload files to %s" : "Xubir ficheros a «%s»",
"Note" : "Nota",
@@ -164,42 +304,6 @@ OC.L10N.register(
"Uploading files" : "Xubiendo ficheros",
"Uploaded files:" : "Ficheros xubíos:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al xubir los ficheros, aceptes los %1$stérminos del serviciu%2$s",
- "Add to your Nextcloud" : "Amestar a Nextcloud",
- "Files and folders others share with you will show up here" : "Equí apaecen los ficheros y les carpetes qu'otros compartan contigos",
- "Files and folders you share will show up here" : "Equí apaecen los ficheros y les carpetes que compartas",
- "Files and folders you share by link will show up here" : "Equí apaecen los ficheros y les carpetes que compartas per enllaz",
- "Shares you deleted will show up here" : "Equí apaecen les comparticiones desaniciares",
- "Shares you have received but not confirmed will show up here" : "Equí apaecen les comparticiones que recibieres más nun se confirmaren",
- "Shares will show up here" : "Equí apaecen les comparticiones",
- "Restore" : "Restaurar",
- "Something happened. Unable to restore the share." : "Prodúxose daqué. Nun ye posible restaurar l'elementu compartíu.",
- "Something happened. Unable to accept the share." : "Prodúxose daqué. Nun ye posible aceptar l'elementu compartíu.",
- "Something happened. Unable to reject the share." : "Prodúxose daqué. Nun ye posible refugar l'elementu compartíu.",
- "No expiration date set" : "Nun se configuró nenguna data de caducidá",
- "Please specify a valid user" : "Especifica un usuariu válidu",
- "Please specify a valid federated user ID" : "Especifica una ID d'usuariu federáu válida",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permite a los usuarios compartir ficheros en Nextcloud. Si s'activa, l'alministración pue escoyer los grupos que pue compartir ficheros. Los usuarios con permisu puen compartir ficheros y carpetes con otros usuarios y grupos de Nextclouod. Amás, si l'alministración activa la función de compartir enllaces, puen usase enllaces esternos pa compartir ficheros con otros usuarios fuera de Nextcloud. L'alministración tamién pue aplicar contraseñes, dates de caducidá y activar l'usu compartíu ente sirvidores pente enllaces d'usu compartíu, amás de l'usu compartíu dende preseos móviles.\nSi se desactiva la función, desaníciense los ficheros y carpetes compartíos del sirvidor pa tolos destinatarios y tamién pa los veceros de sincronización y les aplicaciones pa móviles. Tienes más información disponible na documentación de Nextcloud.",
- "Accept user and group shares by default" : "Aceptar los elementos compartíos d'usuariu y en grupu por defeutu",
- "Read only" : "Namás llectura",
- "File drop (upload only)" : "Suelta de ficheros (namás xuba)",
- "Upload" : "Xunir",
- "Bundled permissions" : "Permisos agrupaos",
- "Only works for users with access to this folder" : "Namás funciona pa los usuarios con accesu a esta carpeta",
- "Only works for users with access to this file" : "Namás funciona pa los usuarios con accesu a esti ficheru",
- "Circle" : "Círculu",
- "Update" : "Anovar",
- "Share with " : "Compartir con",
- "No other users with access found" : "Nun s'atopó nengún usuariu más con accesu",
- "No entries found in this folder" : "Nun s'atopó nenguna entrada nesta carpeta",
- "Name" : "Nome",
- "Share time" : "Tiempu d'usu compartíu",
- "Sorry, this link does not seem to work anymore." : "Esti enllaz paez que yá nun funciones.",
- "Reasons might be:" : "Los motivos podríen ser:",
- "the item was removed" : "quitóse l'elementu",
- "the link expired" : "l'enllaz caducó",
- "sharing is disabled" : "la compartición ta desactivada",
- "For more info, please ask the person who sent this link." : "Pa consiguir más información, entruga a la persona que t'unvió esti enllaz.",
- "Share with remote" : "Compartir en remotu",
- "Share with" : "Compartir con"
+ "Name" : "Nome"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/ast.json b/apps/files_sharing/l10n/ast.json
index 70b483e632e..fef2654f681 100644
--- a/apps/files_sharing/l10n/ast.json
+++ b/apps/files_sharing/l10n/ast.json
@@ -1,28 +1,24 @@
{ "translations": {
- "Waiting…" : "Esperando…",
- "error" : "error",
- "finished" : "finó",
- "This will stop your current uploads." : "Esta aición va parar les xubes actuales.",
- "Move or copy" : "Mover o copiar",
- "Download" : "Baxar",
- "Delete" : "Desaniciar",
- "You can upload into this folder" : "Pues xubir conteníu a esta carpeta",
- "Terms of service" : "Términos del serviciu",
- "Show list view" : "Amosar la vista en llista",
- "Show grid view" : "Amosar la vista en rexáu",
- "No compatible server found at {remote}" : "Nun s'atopó nengún sirvidor compatible en «{remote}»",
- "Invalid server URL" : "La URL del sirvidor ye inválida",
- "Failed to add the public link to your Nextcloud" : "Nun se pue amestar l'enllaz públicu a esta instancia de Nextcloud",
+ "File shares" : "Ficheros compartíos",
"Downloaded via public link" : "Elementu baxáu per enllaz públicu",
"Downloaded by {email}" : "Elementu baxáu por «{email}»",
+ "{file} downloaded via public link" : "Baxóse l'elementu «{file}» per enllaz públicu",
"{email} downloaded {file}" : "{email} baxó «{file}»",
"Shared with group {group}" : "Compartióse col grupu «{group}»",
+ "Removed share for group {group}" : "Quitóse l'elementu compartíu del grupu «{group}»",
"{actor} shared with group {group}" : "{actor} compartió col grupu «{group}»",
+ "{actor} removed share for group {group}" : "{actor} quitó l'elementu compartíu del grupu «{group}»",
+ "Share for group {group} expired" : "L'elementu compartíu del grupu «{group}»",
"You shared {file} with group {group}" : "Compartiesti «{file}» col grupu «{group}»",
"You removed group {group} from {file}" : "Quitesti'l grupu «{group}» del ficheru «{file}»",
"{actor} shared {file} with group {group}" : "{actor} compartió «{file}» col grupu «{group}»",
"{actor} removed group {group} from {file}" : "{actor} quitó'l grupu «{group}» de: {}",
+ "Share for file {file} with group {group} expired" : "El ficheru compartíu «{file}» col grupu «{group}» caudcó",
+ "Shared as public link" : "Compartióse como enllaz públicu",
+ "Removed public link" : "Quitóse l'enllaz públicu",
"Public link expired" : "L'enllaz públicu caducó",
+ "{actor} shared as public link" : "{actor} compartió como enllaz públicu",
+ "{actor} removed public link" : "{actor} quitó l'enllaz públicu",
"Public link of {actor} expired" : "L'enllaz públicu de «{actor}» caducó",
"You shared {file} as public link" : "Compartió «{file}» como enllaz públicu",
"You removed public link for {file}" : "Quitó l'enllaz públicu de: {file}",
@@ -32,65 +28,153 @@
"Public link of {actor} for {file} expired" : "L'enllaz públicu de {actor} pa «{file}» caducó",
"{user} accepted the remote share" : "{user} aceptó la compartición remota",
"{user} declined the remote share" : "{user} refugó la compartición remota",
+ "You received a new remote share {file} from {user}" : "Recibiesti un elementu compartíu nuevu «{file}» de: {user}",
+ "{user} accepted the remote share of {file}" : "{user} aceptó l'elementu compartíu remotu de: {file}",
+ "{user} declined the remote share of {file}" : "{user} refugó l'elementu compartíu remotu de: {file}",
"{user} unshared {file} from you" : "{user} dexó de compartir «{file}» contigo",
+ "Shared with {user}" : "Elementu compartíu con {user}",
+ "Removed share for {user}" : "Quitóse l'elementu compartíu pa {user}",
+ "You removed yourself" : "Quitéstite",
+ "{actor} removed themselves" : "{actor} quitóse a sigo mesmu",
"{actor} shared with {user}" : "{actor} compartió con {user}",
"{actor} removed share for {user}" : "{actor} quitó la compartición de: {user}",
+ "Shared by {actor}" : "Elementu compartíu por {actor}",
"{actor} removed share" : "{actor} quitó la compartición",
+ "Share for {user} expired" : "L'elementu compartíu pa {user} caducó",
"Share expired" : "La compartición caducó",
"You shared {file} with {user}" : "Compartiesti «{file}» con {user}",
- "You removed {user} from {file}" : "Quitesti a {member} de: {circle}",
+ "You removed {user} from {file}" : "Quitesti a {user} de: {file}",
+ "You removed yourself from {file}" : "Quitéstite de: {file}",
+ "{actor} removed themselves from {file}" : "{actor} quitóse de: {file}",
+ "{actor} shared {file} with {user}" : "{actor} compartió «{file}» con {user}",
+ "{actor} removed {user} from {file}" : "{actor} quitó a {user} de: {file}",
"{actor} shared {file} with you" : "{actor} compartió «{file}» contigo",
- "Files" : "Ficheros",
+ "{actor} removed you from the share named {file}" : "{actor} quitóte del elementu compartíu col nome «{file}»",
+ "Share for file {file} with {user} expired" : "L'elementu compartíu {file} con {user} caducó",
+ "Share for file {file} expired" : "L'elementu compartíu {file} caducó",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "<strong>Baxóse</strong> un ficheru o una carpeta compartíos per corréu electrónicu o enllaz públicu",
+ "A file or folder was shared from <strong>another server</strong>" : "Compartióse un ficheru o una carpeta d'<strong>otru sirvidor</strong>",
+ "Sharing" : "Compartición",
"A file or folder has been <strong>shared</strong>" : "<strong>Compartióse</strong> un ficheru o una carpeta",
"Shared link" : "Enllaz compartíu",
+ "Wrong share ID, share does not exist" : "La ID del elementu compartíu ye incorreuta, l'elementu nun esiste",
"Could not delete share" : "Nun se pudo desaniciar la compartición",
"Please specify a file or folder path" : "Especifica'l camín d'un ficheru o una carpeta",
+ "Wrong path, file/folder does not exist" : "El camín ye incorreutu, el ficheru/carpeta nun esiste",
"Could not create share" : "Nun se pudo crear la compartición",
- "Invalid permissions" : "Los permisos son inválidos",
- "Invalid date, date format must be YYYY-MM-DD" : "La data ye inválida, el so formatu ha ser AAAA-MM-DD",
"Please specify a valid account to share with" : "Especifica una cuenta válida cola que compartir",
+ "Group sharing is disabled by the administrator" : "L'alministración desactivó la compartición grupal",
"Please specify a valid group" : "Especifica un grupu válidu",
"Public link sharing is disabled by the administrator" : "L'alministración desactivó al compartición d'enllaces públicos",
- "Public upload disabled by the administrator" : "L'alministración desactivó la xuba pública",
- "Public upload is only possible for publicly shared folders" : "La xuba pública namás ye posible pa les carpetes compartíes públicamente",
- "Please specify a valid circle" : "Especifica un círculu válidu",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nun se pudo compartir «%s» unviando la contraseña per Nextcloud Talk porque qu'esta aplicación nun ta activada",
+ "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Nun se pudo compartir «%1$s» porque'l backend nun permite los elementos compartíos del tipu «%2$s»",
+ "Please specify a valid federated account ID" : "Especifica una ID de cuenta federada válida",
+ "Please specify a valid federated group ID" : "Especifica una ID de grupu federáu válida",
+ "Sharing %s failed because the back end does not support room shares" : "Nun se pudo compartir «%s» porque'l backend nun ye compatible coles comparticiones con sales",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Nun se pudo compartir «%s» porque nun ye compatible coles comparticiones de ScienceMesh",
+ "Unknown share type" : "Tipu de compartición desconocida",
"Not a directory" : "Nun ye un direutoriu",
"Could not lock node" : "Nun se pudo bloquiar el noyu",
+ "Public upload is only possible for publicly shared folders" : "La xuba pública namás ye posible pa les carpetes compartíes públicamente",
+ "Share must at least have READ or CREATE permissions" : "L'elementu compartíu ha tener polo menos los permisos READ o CREATE",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "L'elementu compartíu ha tener el permisu READ si s'afitaron los permisos UPDATE o DELETE",
+ "Public upload disabled by the administrator" : "L'alministración desactivó la xuba pública",
"Could not lock path" : "Nun se pudo bloquiar el camín",
- "Download all files" : "Baxar tolos ficheros",
+ "You are not allowed to edit incoming shares" : "Nun tienes permisu pa editar les comparticiones entrantes",
+ "Wrong or no update parameter given" : "Apurrióse un parámetru d'anovamientu incorreutu o nun s'apurrió",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nun se pudo unviar la contraseña per Talk pa compartir un ficheru o una carpeta porque esta aplicación nun ta activada.",
+ "Wrong password" : "La contraseña ye incorreuta",
+ "shared by %s" : "elementu compartíu por %s",
+ "Download" : "Baxar",
+ "Add to your %s" : "Amestar a «%s»",
"Direct link" : "Enllaz direutu",
"Share API is disabled" : "L'API de compartición ta desactivada",
"File sharing" : "Compartición de ficheros",
"Share will expire tomorrow" : "La compartición va caducar mañana",
+ "Your share of {node} will expire tomorrow" : "El to elementu compartíu de «{node}» va caducar mañana",
+ "You received {share} as a share by {user}" : "Recibiesti «{share}» como elementu comaprtíu de: {user}",
+ "You received {share} to group {group} as a share by {user}" : "Recibiesti «{share}» al grupu {group} como elementu comaprtíu de: {user}",
"Accept" : "Aceptar",
"Decline" : "Refugar",
- "Sharing" : "Compartición",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permite a les persones compartir ficheros en Nextcloud. Si s'activa, l'alministración pue escoyer los grupos que puen compartir ficheros. Les persones con permisu puen compartir ficheros y carpetes con otres persones y grupos de Nextclouod. Amás, si l'alministración activa la función de compartir enllaces, puen usase enllaces esternos pa compartir ficheros con otres persones fuera de Nextcloud. L'alministración tamién pue aplicar contraseñes, dates de caducidá y activar l'usu compartíu ente sirvidores pente enllaces d'usu compartíu, amás de l'usu compartíu dende preseos móviles.\nSi se desactiva la función, desaníciense los ficheros y carpetes compartíos del sirvidor pa tolos destinatarios y tamién pa los veceros de sincronización y les aplicaciones pa móviles. Tienes más información disponible na documentación de Nextcloud.",
+ "People" : "Persones",
+ "Expiration date" : "Data de caducidá",
+ "Password" : "Contraseña",
+ "Link copied" : "Copióse l'enllaz",
+ "Invalid email address" : "La direición de corréu electrónicu ye inválida",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Les direición de corréu siguiente nun ye válida: {emails}","Les direiciones de corréu siguientes nun son válides: {emails}"],
+ "Share link" : "Compartir l'enllaz",
+ "Copy" : "Copiar",
+ "Select" : "Seleicionar",
+ "What are you requesting?" : "¿Qué tas solicitando?",
+ "Where should these files go?" : "¿A ónde habríen dir estos ficheros?",
+ "Note for recipient" : "Nota pal destinatariu",
+ "Add a note to help people understand what you are requesting." : "Amiesta una nota p'ayudar a otros a entender qué tas solicitando.",
+ "Close" : "Zarrar",
+ "Please select a folder, you cannot share the root directory." : "Seleiciona una carpeta. Nun pues compartir el direutoriu raigañu.",
+ "File request created" : "Creóse la solicitú de ficheru",
+ "Error creating the share: {errorMessage}" : "Hebo un error al crear la compartición: {errorMessage}",
+ "Error creating the share" : "Hebo un error al crear la compartición",
+ "Error sending emails: {errorMessage}" : "Hebo un error al unviar los mensaxes: {errorMessage}",
+ "Error sending emails" : "Hebo un error al unviar los mensaxes",
+ "Create a file request" : "Crear una solicitú de ficheru",
+ "Collect files from others even if they do not have an account." : "Coleiciona los ficheros d'otros magar que nun tengan una cuenta.",
+ "To ensure you can receive files, verify you have enough storage available." : "P'asegura de que pues recibir ficheros, verifica que tienes abondu almacenamientu disponibles.",
+ "File request" : "Solicitú de ficheru",
+ "Previous step" : "Pasu anterior",
+ "Cancel" : "Encaboxar",
+ "Cancel the file request creation" : "Encaboxar la creación de la solciitú de ficheru",
+ "Continue" : "Siguir",
"Error while toggling options" : "Hebo un error mentanto s'alternaba les opciones",
- "Reset" : "Reafitar",
+ "Accept shares from other accounts and groups by default" : "Aceptar elementos compartíos d'otres cuentes y grupos por defeutu",
+ "Choose a default folder for accepted shares" : "Escueyi una carpeta predeterminada pa los elementos compartíos aceptaos",
"Invalid path selected" : "Seleicionóse un camín inválidu",
"Unknown error" : "Error desconocíu",
+ "Set default folder for accepted shares" : "Afitar la carpeta predeterminada pa los elementos compartíos aceptaos",
+ "Reset" : "Reafitar",
+ "Reset folder to system default" : "Reafitar la configuración de la carpeta",
"group" : "grupu",
"conversation" : "conversación",
+ "remote" : "remota",
"remote group" : "grupu remotu",
"guest" : "convidáu",
+ "Shared with the group {user} by {owner}" : "{owner} compartió l'elementu col grupu «{user}»",
+ "Shared with the conversation {user} by {owner}" : "{owner} compartió l'elementu cola conversación «{user}»",
+ "Shared with {user} by {owner}" : "{owner} compartió l'elementu con «{user}»",
+ "Open Sharing Details" : "Abrir los detalles de la compartición",
+ "Added by {initiator}" : "{initiator} amestó l'elementu",
"Via “{folder}”" : "Per «{folder}»",
"Unshare" : "Dexar de compartir",
- "Internal link" : "Enllaz internu",
"Cannot copy, please copy the link manually" : "Nun se pue copiar. Copia l'enllaz manualmente",
- "Copy internal link to clipboard" : "Copiar l'enllaz internu nel cartafueyu",
- "Link copied" : "Copióse l'enllaz",
+ "Copy internal link" : "Copiar l'enllaz internu",
+ "Internal link" : "Enllaz internu",
+ "{shareWith} by {initiator}" : "«{shareWith}» por {initiator}",
+ "Shared via link by {initiator}" : "{initiator} compartío l'elementu per enllaz",
+ "File request ({label})" : "Solicitú de ficheru ({label})",
+ "Mail share ({label})" : "Unviar l'elementu compartíu per corréu electrónicu ({label})",
+ "Share link ({label})" : "Compartir l'enllaz ({label})",
+ "Mail share" : "Unviar la compartición per corréu",
+ "Share link ({index})" : "Compartir l'enllaz ({index})",
+ "Actions for \"{title}\"" : "Aiciones pa: {title}",
+ "Error, please enter proper password and/or expiration date" : "Error, introduz la contraseña y/o la data de caducidá correutos",
+ "Link share created" : "Creóse l'enlla d'usu compartíu",
+ "Error while creating the share" : "Hebo un error mentanto se creaba la compartición",
+ "Please enter the following required information before creating the share" : "Instroduz la información siguiente riquida enantes de crear l'elementu compartíu",
+ "Password protection (enforced)" : "Proteición con contraseña (obligatoria)",
"Password protection" : "Proteición con contraseña",
"Enter a password" : "Introduz una contraseña",
- "Enter a date" : "Introduz una data",
- "Cancel" : "Encaboxar",
+ "Create share" : "Crear l'elementu compartíu",
+ "Customize link" : "Personalizar l'enllaz",
+ "Generate QR code" : "Xenerar un códigu QR",
"Add another link" : "Amestar otru enllaz",
- "Share link" : "Compartir l'enllaz",
- "Actions for \"{title}\"" : "Aiciones pa: {title}",
- "Copy public link of \"{title}\" to clipboard" : "Copiar l'enllaz públicu de «{title}» nel cartafueyu",
- "Error while creating the share" : "Hebo un error mentanto se creaba la compartición",
+ "Create a new share link" : "Creaer un enllaz d'usu compartíu",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Opciones de compartición rápida, la opción seleicionada anguaño ye «selectedOption}»",
"View only" : "Ver namás",
"Can edit" : "Pue editar",
- "No recommendations. Start typing." : "Nun hai nenguna recomendación. Comienza a escribir",
+ "Custom permissions" : "Personlizar los permisos",
+ "Resharing is not allowed" : "Nun se pue volver compartir",
+ "Name or email …" : "Nome o direición de corréu electrónicu…",
+ "Name, email, or Federated Cloud ID …" : "Nome, direición de corréu electrónicu o ID de nube federada…",
"Searching …" : "Buscando…",
"No elements found." : "Nun s'atopó nengún elementu.",
"Guest" : "Convidáu",
@@ -98,40 +182,59 @@
"Email" : "Corréu electrónicu",
"Team" : "Equipu",
"Talk conversation" : "Conversación de Talk",
+ "Deck board" : "Mesa de tarxetes",
+ "ScienceMesh" : "ScienceMesh",
+ "on {server}" : "en: {server}",
+ "File drop" : "Suelta de ficheros",
+ "Terms of service" : "Términos del serviciu",
+ "Share with email {email}" : "Compartir cola direición de corréu electrónica {email}",
+ "Share with group" : "Compartir col grupu",
+ "Share in conversation" : "Compartir na conversación",
+ "Share with {user} on remote server {server}" : "Compartir con {user} nel sirividor remotu «{server}»",
+ "Share with remote group" : "Compartir col grupu remotu",
+ "Share with guest" : "Compartir col convidáu",
+ "Update share" : "Anovar la compartición",
+ "Save share" : "Guardar la compartición",
+ "Read" : "Lleer",
+ "Create" : "Crear",
+ "Edit" : "Editar",
+ "Share" : "Compartir",
+ "Delete" : "Desaniciar",
"Allow upload and editing" : "Permitir la xuba y la edición",
"Allow editing" : "Permitir la edición",
"Upload only" : "Xubir namás",
"Advanced settings" : "Configuración avanzada",
- "Password" : "Contraseña",
+ "Share label" : "Etiqueta d'usu compartíu",
+ "Set password" : "Afitar la contraseña",
+ "Password expires {passwordExpirationTime}" : "La contraseña caduca: {passwordExpirationTime}",
"Password expired" : "La contraseña caducó",
"Video verification" : "Verificación per videu",
- "Expiration date" : "Data de caducidá",
- "Hide download" : "Anubrir la descarga",
- "Allow download" : "Permitir la descarga",
- "Read" : "Lleer",
- "Create" : "Crear",
- "Edit" : "Editar",
- "Share" : "Compartir",
+ "Expiration date (enforced)" : "Data de caducidá (obligatoria)",
+ "Set expiration date" : "Afitar la data de caducidá",
+ "Hide download" : "Esconder la descarga",
+ "Note to recipient" : "Nota al destinatariu",
+ "Enter a note for the share recipient" : "Introduz una nota pal destinatariu del elementu compartíu",
"Delete share" : "Desaniciar la compartición",
- "Share with group" : "Compartir col grupu",
- "Share in conversation" : "Compartir na conversación",
- "Share with remote group" : "Compartir col grupu remotu",
- "Share with guest" : "Compartir col convidáu",
- "Update share" : "Anovar la compartición",
- "Save share" : "Guardar la compartición",
+ "Others with access" : "Otros usuarios con accesu",
+ "No other accounts with access found" : "Nun s'atopó nenguna otra cuenta con accesu",
+ "Toggle list of others with access to this directory" : "Alternar la llista d'otros usuarios con accesu a esti direutoriu",
+ "Toggle list of others with access to this file" : "Alternar la llista d'otros usuarios con accesu a esti ficheru",
"Unable to fetch inherited shares" : "Nun ye posible dir en cata de los elementos compartíos heredaos",
+ "Shares" : "Comparticiones",
"Unable to load the shares list" : "Nun ye posible cargar la llista d'elementos compartíos",
+ "Expires {relativetime}" : "Caduca: {relativetime}",
"this share just expired." : "esta compartición ta acabante de caducar.",
+ "Shared with you by {owner}" : "{owner} compartió l'elementu contigo",
+ "Link to a file" : "Enllaciar a un ficheru",
+ "_Accept share_::_Accept shares_" : ["Aceptar l'elementu compartíu","Aceptar los elementos compartíos"],
"Open in Files" : "Abrir en Ficheros",
- "Error creating the share: {errorMessage}" : "Hebo un error al crear la compartición: {errorMessage}",
- "Error creating the share" : "Hebo un error al crear la compartición",
- "Error updating the share: {errorMessage}" : "Hebo un error al anovar la compartición: {errorMessage}",
- "Error updating the share" : "Hebo un error la compartición",
- "File \"{path}\" has been unshared" : "El camín «{path}» dexó compartise",
- "Folder \"{path}\" has been unshared" : "La carpeta «{folder}» dexó de compartise",
- "Shared by" : "Compartíu por",
- "Password created successfully" : "La contraseña creóse correutamente",
- "Shares" : "Comparticiones",
+ "_Reject share_::_Reject shares_" : ["Refugar l'elementu compartíu","Refugar los elementos compartíos"],
+ "_Restore share_::_Restore shares_" : ["Restaurar l'elementu compartíu","Restaurar los elementos compartíos"],
+ "Shared" : "Compartióse",
+ "Shared by {ownerDisplayName}" : "Elementu compartíu por {ownerDisplayName}",
+ "Shared multiple times with different people" : "Compartióse múltiples vegaes con otres persones",
+ "Shared with others" : "Compartío con otros",
+ "No file" : "Nun hai nengún ficheru",
"Overview of shared files." : "Vista xeneral de ficheros compartíos.",
"No shares" : "Nun hai nenguna compartición",
"Files and folders you shared or have been shared with you will show up here" : "Equí apaecen los ficheros y les carpetes que compartieres o compartieren contigo",
@@ -139,7 +242,6 @@
"List of files that are shared with you." : "Llista de ficheros que compartieron contigo.",
"Nothing shared with you yet" : "Nun se compartió nada contigo",
"Files and folders others shared with you will show up here" : "Equí apaecen los ficheros y les carpetes qu'otros compartieren contigo",
- "Shared with others" : "Compartío con otros",
"List of files that you shared with others." : "Llista de ficheros que compartiesti con otros.",
"Nothing shared yet" : "Nun se compartió nada",
"Files and folders you shared will show up here" : "Equí apaecen los ficheros y les carpetes que compartiesti",
@@ -155,6 +257,44 @@
"List of unapproved shares." : "Llista d'elementos compartíos ensin aprobar.",
"No pending shares" : "Nun hai nenguna compartición pendiente",
"Shares you have received but not approved will show up here" : "Equí apaecen los elementos de compartíos que recibas mas nun s'aprobaron",
+ "Error updating the share: {errorMessage}" : "Hebo un error al anovar la compartición: {errorMessage}",
+ "Error updating the share" : "Hebo un error la compartición",
+ "File \"{path}\" has been unshared" : "El camín «{path}» dexó compartise",
+ "Folder \"{path}\" has been unshared" : "La carpeta «{path}» dexó de compartise",
+ "Shared by" : "Compartíu por",
+ "Shared with" : "Compartióse con",
+ "Password created successfully" : "La contraseña creóse correutamente",
+ "Error generating password from password policy" : "Hebo un error al xenerar una contraseña a partir la política de contraseña",
+ "Shared with you and the group {group} by {owner}" : "{owner} compartió l'elementu contigo y col grupu «{group}»",
+ "Shared with you and {circle} by {owner}" : "{owner} compartió l'elementu contigo y con «{circle}»",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} compartió l'elementu contigo y cola conversación «{conversation}»",
+ "Shared with you in a conversation by {owner}" : "{owner} compartió l'elementu contigo nuna conversación",
+ "Share not found" : "Nun s'atopó la compartición",
+ "Back to %s" : "Volver a «%s»",
+ "Add to your Nextcloud" : "Amestar a Nextcloud",
+ "Waiting…" : "Esperando…",
+ "error" : "error",
+ "finished" : "finó",
+ "This will stop your current uploads." : "Esta aición va parar les xubes actuales.",
+ "Move or copy" : "Mover o copiar",
+ "You can upload into this folder" : "Pues xubir conteníu a esta carpeta",
+ "Show list view" : "Amosar la vista en llista",
+ "Show grid view" : "Amosar la vista en rexáu",
+ "No compatible server found at {remote}" : "Nun s'atopó nengún sirvidor compatible en «{remote}»",
+ "Invalid server URL" : "La URL del sirvidor ye inválida",
+ "Failed to add the public link to your Nextcloud" : "Nun se pue amestar l'enllaz públicu a esta instancia de Nextcloud",
+ "Download all files" : "Baxar tolos ficheros",
+ "Link copied to clipboard" : "L'enllaz copióse nel cartafueyu",
+ "Copy to clipboard" : "Copiar nel cartafueyu",
+ "Copy internal link to clipboard" : "Copiar l'enllaz internu nel cartafueyu",
+ "Only works for people with access to this folder" : "Namás funciona pa les persones con accesu a esta carpeta",
+ "Only works for people with access to this file" : "Namás funciona pa les persones con accesu a esti ficheru",
+ "Copy public link of \"{title}\" to clipboard" : "Copiar l'enllaz públicu de «{title}» nel cartafueyu",
+ "Search globally" : "Buscar globalmente",
+ "Search for share recipients" : "Buscar destinatarios del elementu compartíu",
+ "No recommendations. Start typing." : "Nun hai nenguna recomendación. Comienza a escribir",
+ "Share with {userName}" : "Compartir con {userName}",
+ "Show sharing options" : "Amosar les opciones de compartición",
"Share note" : "Compartir una nota",
"Upload files to %s" : "Xubir ficheros a «%s»",
"Note" : "Nota",
@@ -162,42 +302,6 @@
"Uploading files" : "Xubiendo ficheros",
"Uploaded files:" : "Ficheros xubíos:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al xubir los ficheros, aceptes los %1$stérminos del serviciu%2$s",
- "Add to your Nextcloud" : "Amestar a Nextcloud",
- "Files and folders others share with you will show up here" : "Equí apaecen los ficheros y les carpetes qu'otros compartan contigos",
- "Files and folders you share will show up here" : "Equí apaecen los ficheros y les carpetes que compartas",
- "Files and folders you share by link will show up here" : "Equí apaecen los ficheros y les carpetes que compartas per enllaz",
- "Shares you deleted will show up here" : "Equí apaecen les comparticiones desaniciares",
- "Shares you have received but not confirmed will show up here" : "Equí apaecen les comparticiones que recibieres más nun se confirmaren",
- "Shares will show up here" : "Equí apaecen les comparticiones",
- "Restore" : "Restaurar",
- "Something happened. Unable to restore the share." : "Prodúxose daqué. Nun ye posible restaurar l'elementu compartíu.",
- "Something happened. Unable to accept the share." : "Prodúxose daqué. Nun ye posible aceptar l'elementu compartíu.",
- "Something happened. Unable to reject the share." : "Prodúxose daqué. Nun ye posible refugar l'elementu compartíu.",
- "No expiration date set" : "Nun se configuró nenguna data de caducidá",
- "Please specify a valid user" : "Especifica un usuariu válidu",
- "Please specify a valid federated user ID" : "Especifica una ID d'usuariu federáu válida",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permite a los usuarios compartir ficheros en Nextcloud. Si s'activa, l'alministración pue escoyer los grupos que pue compartir ficheros. Los usuarios con permisu puen compartir ficheros y carpetes con otros usuarios y grupos de Nextclouod. Amás, si l'alministración activa la función de compartir enllaces, puen usase enllaces esternos pa compartir ficheros con otros usuarios fuera de Nextcloud. L'alministración tamién pue aplicar contraseñes, dates de caducidá y activar l'usu compartíu ente sirvidores pente enllaces d'usu compartíu, amás de l'usu compartíu dende preseos móviles.\nSi se desactiva la función, desaníciense los ficheros y carpetes compartíos del sirvidor pa tolos destinatarios y tamién pa los veceros de sincronización y les aplicaciones pa móviles. Tienes más información disponible na documentación de Nextcloud.",
- "Accept user and group shares by default" : "Aceptar los elementos compartíos d'usuariu y en grupu por defeutu",
- "Read only" : "Namás llectura",
- "File drop (upload only)" : "Suelta de ficheros (namás xuba)",
- "Upload" : "Xunir",
- "Bundled permissions" : "Permisos agrupaos",
- "Only works for users with access to this folder" : "Namás funciona pa los usuarios con accesu a esta carpeta",
- "Only works for users with access to this file" : "Namás funciona pa los usuarios con accesu a esti ficheru",
- "Circle" : "Círculu",
- "Update" : "Anovar",
- "Share with " : "Compartir con",
- "No other users with access found" : "Nun s'atopó nengún usuariu más con accesu",
- "No entries found in this folder" : "Nun s'atopó nenguna entrada nesta carpeta",
- "Name" : "Nome",
- "Share time" : "Tiempu d'usu compartíu",
- "Sorry, this link does not seem to work anymore." : "Esti enllaz paez que yá nun funciones.",
- "Reasons might be:" : "Los motivos podríen ser:",
- "the item was removed" : "quitóse l'elementu",
- "the link expired" : "l'enllaz caducó",
- "sharing is disabled" : "la compartición ta desactivada",
- "For more info, please ask the person who sent this link." : "Pa consiguir más información, entruga a la persona que t'unvió esti enllaz.",
- "Share with remote" : "Compartir en remotu",
- "Share with" : "Compartir con"
+ "Name" : "Nome"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/az.js b/apps/files_sharing/l10n/az.js
deleted file mode 100644
index 7bf3472dfef..00000000000
--- a/apps/files_sharing/l10n/az.js
+++ /dev/null
@@ -1,60 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Server to server sharing is not enabled on this server" : "Bu serverdə, serverlərarası yayımlanma aktiv deyil",
- "The mountpoint name contains invalid characters." : "Bərkidilmə nöqtəsinin adında yalnış simvollar mövcuddur. ",
- "Invalid or untrusted SSL certificate" : "Yalnış yada inam listindən kənar SSL sertifikatı",
- "Could not authenticate to remote share, password might be wrong" : "Uzaqda olan paylaşımın əslliyini yoxlamaq olmur və ola bilər ki, şifrə yalnışdır. ",
- "Storage not valid" : "Depo etibarlı deyil",
- "Couldn't add remote share" : "Uzaqda olan yayımlanmanı əlavə etmək mümkün olmadı",
- "Shared with you" : "Sizinlə yayımlanan",
- "Shared with others" : "Hər kəsə yayımlanmış",
- "Shared by link" : "Link tərəfindən paylaşılıb",
- "Nothing shared with you yet" : "Hələki sizinlə heç bir şey paylaşılmayıb",
- "Files and folders others share with you will show up here" : "Digərlərinin sizinlə paylaşdığı fayllar və qovluqlar burda göstəriləcək",
- "Nothing shared yet" : "Paylaşılan heçnə yoxdur",
- "Files and folders you share will show up here" : "Sizin tərəfinizdən paylaşılmış fayllar və qovluqlar burda göstəriləcək",
- "No shared links" : "Paylaşılmış linklər yoxdur ",
- "Files and folders you share by link will show up here" : "Link vasitəsilə sizin tərəfinizdən paylaşılmış fayllar və qovluqlar burda göstəriləcək",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Siz uzaq paylaşımı əlavə etmək istəyirsinizmi {name} dan {owner}@{remote}?",
- "Remote share" : "Uzaq yayımlanma",
- "Remote share password" : "Uzaq yayımlanma şifrəsi",
- "Cancel" : "Dayandır",
- "Add remote share" : "Uzaq yayımlanmanı əlavə et",
- "You can upload into this folder" : "Siz bu qovluğun içinə yükləyə bilərsiniz",
- "No ownCloud installation (7 or higher) found at {remote}" : "Yüklənmiş (7 yada yuxarı) ownCloud {uzaq} unvanında tapılmadı ",
- "Invalid ownCloud url" : "Yalnış ownCloud url-i",
- "Shared by" : "Tərəfindən yayımlanıb",
- "Sharing" : "Paylaşılır",
- "A file or folder has been <strong>shared</strong>" : "Fayl və ya direktoriya <strong>yayımlandı</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Fayl yada qovluq ünvanından yayımlandı <strong>digər serverə</strong>",
- "A public shared file or folder was <strong>downloaded</strong>" : "Ümumi paylaşılmış fayl yada qovluq <strong>endirilmişdir</strong>",
- "You received a new remote share from %s" : "Siz %s ünvanından yeni uzaq paylaşım aldınız",
- "%1$s accepted remote share %2$s" : "%1$s qəbul etdi uzaq paylaşım %2$s",
- "%1$s declined remote share %2$s" : "%1$s təkzib etdi uzaq paylaşımı %2$s",
- "%1$s unshared %2$s from you" : "%1$s paylaşımı dayandırıldı %2$s sizin tərəfinizdən",
- "Public shared folder %1$s was downloaded" : "Ümumi paylaşılmış qovluq %1$s endirilmişdir",
- "Public shared file %1$s was downloaded" : "Ümumi paylaşılmış fayl %1$s endirilmişdir",
- "You shared %1$s with %2$s" : "Siz yayımladınız %1$s - i %2$s ilə",
- "You shared %1$s with group %2$s" : "Siz yayımladınız %1$s qrupu ilə %2$s",
- "You shared %1$s via link" : "Siz yayımladınız %1$s link ilə",
- "%2$s shared %1$s with you" : "%2$s yayımlanıb %1$s sizinlə",
- "Shares" : "Yayımlanmalar",
- "This share is password-protected" : "Bu paylaşım şifrə ilə müdafiəlidir",
- "The password is wrong. Try again." : "Şifrə yalnışdır. Yenidən cəhd edin.",
- "Password" : "Şifrə",
- "No entries found in this folder" : "Bu qovluqda heç bir verilən tapılmadı",
- "Name" : "Ad",
- "Share time" : "Paylaşım vaxtı",
- "Sorry, this link doesn’t seem to work anymore." : "Üzr istəyirik, bu link artıq işlək deyil.",
- "Reasons might be:" : "Səbəblər ola bilər:",
- "the item was removed" : "bölüm silinmişdir",
- "the link expired" : "linkin vaxtı bitmişdir",
- "sharing is disabled" : "paylaşım dayandırılmışdır",
- "For more info, please ask the person who sent this link." : "Ətraflı məlumat üçün, xahiş olunur linkin kim tərəfindən göndərilməsini soruşun.",
- "Add to your ownCloud" : "Öz ownCloud-nuza əlavə edin",
- "Download" : "Yüklə",
- "Download %s" : "Endir %s",
- "Direct link" : "Birbaşa link"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/az.json b/apps/files_sharing/l10n/az.json
deleted file mode 100644
index 40e16a7cc0c..00000000000
--- a/apps/files_sharing/l10n/az.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{ "translations": {
- "Server to server sharing is not enabled on this server" : "Bu serverdə, serverlərarası yayımlanma aktiv deyil",
- "The mountpoint name contains invalid characters." : "Bərkidilmə nöqtəsinin adında yalnış simvollar mövcuddur. ",
- "Invalid or untrusted SSL certificate" : "Yalnış yada inam listindən kənar SSL sertifikatı",
- "Could not authenticate to remote share, password might be wrong" : "Uzaqda olan paylaşımın əslliyini yoxlamaq olmur və ola bilər ki, şifrə yalnışdır. ",
- "Storage not valid" : "Depo etibarlı deyil",
- "Couldn't add remote share" : "Uzaqda olan yayımlanmanı əlavə etmək mümkün olmadı",
- "Shared with you" : "Sizinlə yayımlanan",
- "Shared with others" : "Hər kəsə yayımlanmış",
- "Shared by link" : "Link tərəfindən paylaşılıb",
- "Nothing shared with you yet" : "Hələki sizinlə heç bir şey paylaşılmayıb",
- "Files and folders others share with you will show up here" : "Digərlərinin sizinlə paylaşdığı fayllar və qovluqlar burda göstəriləcək",
- "Nothing shared yet" : "Paylaşılan heçnə yoxdur",
- "Files and folders you share will show up here" : "Sizin tərəfinizdən paylaşılmış fayllar və qovluqlar burda göstəriləcək",
- "No shared links" : "Paylaşılmış linklər yoxdur ",
- "Files and folders you share by link will show up here" : "Link vasitəsilə sizin tərəfinizdən paylaşılmış fayllar və qovluqlar burda göstəriləcək",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Siz uzaq paylaşımı əlavə etmək istəyirsinizmi {name} dan {owner}@{remote}?",
- "Remote share" : "Uzaq yayımlanma",
- "Remote share password" : "Uzaq yayımlanma şifrəsi",
- "Cancel" : "Dayandır",
- "Add remote share" : "Uzaq yayımlanmanı əlavə et",
- "You can upload into this folder" : "Siz bu qovluğun içinə yükləyə bilərsiniz",
- "No ownCloud installation (7 or higher) found at {remote}" : "Yüklənmiş (7 yada yuxarı) ownCloud {uzaq} unvanında tapılmadı ",
- "Invalid ownCloud url" : "Yalnış ownCloud url-i",
- "Shared by" : "Tərəfindən yayımlanıb",
- "Sharing" : "Paylaşılır",
- "A file or folder has been <strong>shared</strong>" : "Fayl və ya direktoriya <strong>yayımlandı</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Fayl yada qovluq ünvanından yayımlandı <strong>digər serverə</strong>",
- "A public shared file or folder was <strong>downloaded</strong>" : "Ümumi paylaşılmış fayl yada qovluq <strong>endirilmişdir</strong>",
- "You received a new remote share from %s" : "Siz %s ünvanından yeni uzaq paylaşım aldınız",
- "%1$s accepted remote share %2$s" : "%1$s qəbul etdi uzaq paylaşım %2$s",
- "%1$s declined remote share %2$s" : "%1$s təkzib etdi uzaq paylaşımı %2$s",
- "%1$s unshared %2$s from you" : "%1$s paylaşımı dayandırıldı %2$s sizin tərəfinizdən",
- "Public shared folder %1$s was downloaded" : "Ümumi paylaşılmış qovluq %1$s endirilmişdir",
- "Public shared file %1$s was downloaded" : "Ümumi paylaşılmış fayl %1$s endirilmişdir",
- "You shared %1$s with %2$s" : "Siz yayımladınız %1$s - i %2$s ilə",
- "You shared %1$s with group %2$s" : "Siz yayımladınız %1$s qrupu ilə %2$s",
- "You shared %1$s via link" : "Siz yayımladınız %1$s link ilə",
- "%2$s shared %1$s with you" : "%2$s yayımlanıb %1$s sizinlə",
- "Shares" : "Yayımlanmalar",
- "This share is password-protected" : "Bu paylaşım şifrə ilə müdafiəlidir",
- "The password is wrong. Try again." : "Şifrə yalnışdır. Yenidən cəhd edin.",
- "Password" : "Şifrə",
- "No entries found in this folder" : "Bu qovluqda heç bir verilən tapılmadı",
- "Name" : "Ad",
- "Share time" : "Paylaşım vaxtı",
- "Sorry, this link doesn’t seem to work anymore." : "Üzr istəyirik, bu link artıq işlək deyil.",
- "Reasons might be:" : "Səbəblər ola bilər:",
- "the item was removed" : "bölüm silinmişdir",
- "the link expired" : "linkin vaxtı bitmişdir",
- "sharing is disabled" : "paylaşım dayandırılmışdır",
- "For more info, please ask the person who sent this link." : "Ətraflı məlumat üçün, xahiş olunur linkin kim tərəfindən göndərilməsini soruşun.",
- "Add to your ownCloud" : "Öz ownCloud-nuza əlavə edin",
- "Download" : "Yüklə",
- "Download %s" : "Endir %s",
- "Direct link" : "Birbaşa link"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/bg.js b/apps/files_sharing/l10n/bg.js
index cd980df2025..4dfcbffb863 100644
--- a/apps/files_sharing/l10n/bg.js
+++ b/apps/files_sharing/l10n/bg.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Изчакване...",
- "error" : "грешка",
- "finished" : "завършен",
- "This will stop your current uploads." : "Това ще прекрати всички ваши текущи процеси по качване на файлове.",
- "Move or copy" : "Премести или копирай",
- "Download" : "Изтегли",
- "Delete" : "Изтрий",
- "You can upload into this folder" : "Може да качвате в папката",
- "Terms of service" : "Условия за ползване",
- "Show list view" : "Показване с изглед на списък",
- "Show grid view" : "Показване в решетъчен изглед",
- "No compatible server found at {remote}" : "Не беше намерен съвместим сървър на {remote}",
- "Invalid server URL" : "URL адреса на сървъра не е валиден",
- "Failed to add the public link to your Nextcloud" : "Неуспешно добавяне на публичната връзка към вашия Nextcloud",
"File shares" : "Няма споделяния",
"Downloaded via public link" : "Изтеглен чрез публична връзка",
"Downloaded by {email}" : "Изтеглен от {email}",
@@ -70,7 +56,7 @@ OC.L10N.register(
"Share for file {file} expired" : "Споделянето за файл {file} изтече",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "<strong>Сваляне</strong>на файл, споделен чрез имейл или публична връзка",
"A file or folder was shared from <strong>another server</strong>" : "Споделяне на файл / папка с <strong>друг сървър</strong>",
- "Files" : "Файлове",
+ "Sharing" : "Споделяне",
"A file or folder has been <strong>shared</strong>" : "<strong>Споделяне</strong> на файл / папка",
"Shared link" : "Споделена връзка",
"Wrong share ID, share does not exist" : "Грешен идентификатор на споделяне, споделянето не съществува",
@@ -78,32 +64,29 @@ OC.L10N.register(
"Please specify a file or folder path" : "Моля въведете път до файл или папка",
"Wrong path, file/folder does not exist" : "Грешен път, файл/папка не съществува",
"Could not create share" : "Не е възможно създаването на споделянето",
- "Invalid permissions" : "Невалидни права",
- "Invalid date, date format must be YYYY-MM-DD" : "Невалидна дата, форматът е различен от ГГГГ-ММ-ДД",
"Group sharing is disabled by the administrator" : "Груповото споделяне е спряно от администратора",
"Please specify a valid group" : "Моля въведете валидна група",
"Public link sharing is disabled by the administrator" : "Публичното споделяне на линкове е спряно от администратора",
- "Public upload disabled by the administrator" : "Публичното качване е е спряно от администратора",
- "Public upload is only possible for publicly shared folders" : "Публичното качване е възможно само за публично споделени папки",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Споделянето %s на изпращането на паролата от Nextcloud Talk не бе успешно, тъй като Nextcloud Talk не е активирано",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Споделянето %1$s не бе успешно, защото вътрешния сървър не позволява споделяния от тип %2$s",
"Please specify a valid federated group ID" : "Моля, посочете валиден идентификатор на федерирана група",
- "You cannot share to a Circle if the app is not enabled" : "Не можете да споделяте с Кръг, ако приложението не е активирано",
- "Please specify a valid circle" : "Моля, изберете валиден кръг",
"Sharing %s failed because the back end does not support room shares" : "Споделянето %s не бе успешно, защото вътрешния сървър не позволява споделяния на стаите",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Споделянето %s не бе успешно, защото вътрешния сървър не позволява споделяния на приложението ScienceMesh",
"Unknown share type" : "Неизвестен тип споделяне",
"Not a directory" : "Не е директория",
"Could not lock node" : "Възелът не можа да се заключи",
- "Could not lock path" : "Пътя не можа да се заключи",
- "Wrong or no update parameter given" : "Грешен или не е даден параметър за актуализация",
+ "Public upload is only possible for publicly shared folders" : "Публичното качване е възможно само за публично споделени папки",
"Share must at least have READ or CREATE permissions" : "Споделянето трябва да има права поне за ЧЕТЕНЕ или СЪЗДАВАНЕ",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Споделянето трябва да има право за ЧЕТЕНЕ ако е зададено право за ОБНОВЯВАНЕ или за ИЗТРИВАНЕ",
+ "Public upload disabled by the administrator" : "Публичното качване е е спряно от администратора",
+ "Could not lock path" : "Пътя не можа да се заключи",
+ "Wrong or no update parameter given" : "Грешен или не е даден параметър за актуализация",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "„Изпращането на паролата от Nextcloud Talk“ за споделяне на файл или папка не беше успешно, тъй като Nextcloud Talk не е активиран.",
+ "Wrong password" : "Грешна парола",
"shared by %s" : "споделено от %s",
- "Download all files" : "Изтегли всички файлове",
- "Direct link" : "Директна връзка",
+ "Download" : "Изтегли",
"Add to your %s" : "Добавяне към вашия %s",
+ "Direct link" : "Директна връзка",
"Share API is disabled" : "Споделянето на API е изключено",
"File sharing" : "Споделяне на файлове",
"Share will expire tomorrow" : "Споделянето ще изтече утре",
@@ -112,14 +95,28 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Получихте {share} за група {group} като споделяне от {user}",
"Accept" : "Приемане",
"Decline" : "Отхвърляне",
- "Sharing" : "Споделяне",
+ "People" : "Хора",
+ "Expiration date" : "Валидност",
+ "Set a password" : "Задаване на парола",
+ "Password" : "Парола",
+ "Link copied" : "Връзката е копирана",
+ "Share link" : "Връзка за споделяне",
+ "Copy" : "Копие",
+ "Send link via email" : "Сподели връзка с имейл",
+ "Select" : "Избери",
+ "The uploaded files are visible only to you unless you choose to share them." : "Качените файлове са видими само за теб, освен, ако не решиш да ги споделиш с друг.",
+ "Close" : "Затваряне",
+ "Error creating the share: {errorMessage}" : "Грешка при създаване на споделянето: {errorMessage}",
+ "Error creating the share" : "Грешка при създаване на споделянето",
+ "Cancel" : "Отказ",
+ "Continue" : "Продължаване",
"Error while toggling options" : "Грешка при превключване на опциите",
- "Set default folder for accepted shares" : "Задаване на папка по подразбиране за приети споделяния",
- "Reset" : "Възстановяване",
- "Reset folder to system default" : "Възстановяване на папка по подразбиране на системата",
"Choose a default folder for accepted shares" : "Избор на папка по подразбиране за приети споделяния",
"Invalid path selected" : "Избран е невалиден път ",
"Unknown error" : "Неизвестна грешка",
+ "Set default folder for accepted shares" : "Задаване на папка по подразбиране за приети споделяния",
+ "Reset" : "Възстановяване",
+ "Reset folder to system default" : "Възстановяване на папка по подразбиране на системата",
"group" : "група",
"conversation" : "разговор",
"remote" : "отдалечен",
@@ -131,43 +128,34 @@ OC.L10N.register(
"Added by {initiator}" : "Добавено от {initiator}",
"Via “{folder}”" : "Чрез “{folder}”",
"Unshare" : "Прекрати споделянето",
- "Internal link" : "Вътрешна връзка",
"Cannot copy, please copy the link manually" : "Не може да се копира, моля, копирайте връзката ръчно",
- "Copy internal link to clipboard" : "Копиране на вътрешна връзката в клипборда",
- "Link copied" : "Връзката е копирана",
- "Please enter the following required information before creating the share" : "Моля, въведете следната необходима информация, преди да създадете споделянето",
- "Password protection (enforced)" : "Защита с парола (приложена)",
- "Password protection" : "Password protection",
- "Enter a password" : "Въведете парола",
- "Expiration date (enforced)" : "Дата на изтичане (приложена)",
- "Enter a date" : "Въведи дата",
- "Create share" : "Създаване на споделяне",
- "Cancel" : "Отказ",
- "Add another link" : "Добави още една връзка",
- "Create a new share link" : "Създаване на нова връзка за споделяне",
+ "Internal link" : "Вътрешна връзка",
"{shareWith} by {initiator}" : "{shareWith} чрез {initiator}",
"Shared via link by {initiator}" : "Споделено чрез връзка от {initiator}",
"Mail share ({label})" : "Споделяне на поща ({label})",
"Share link ({label})" : "Споделяне на връзка ({label})",
"Share link ({index})" : "Споделяне на връзка ({index})",
- "Share link" : "Връзка за споделяне",
+ "Create public link" : "Създаване на публична връзка",
"Actions for \"{title}\"" : "Действия за „{title}“",
- "Copy public link of \"{title}\" to clipboard" : "Копиране на публичната връзка на „{title}“ в клипборда",
"Error, please enter proper password and/or expiration date" : "Грешка, моля да въведете правилната парола и / или срок на годност",
"Link share created" : "Създадено споделяне на връзка",
"Error while creating the share" : "Грешка при създаване на споделянето",
+ "Please enter the following required information before creating the share" : "Моля, въведете следната необходима информация, преди да създадете споделянето",
+ "Password protection (enforced)" : "Защита с парола (приложена)",
+ "Password protection" : "Password protection",
+ "Enter a password" : "Въведете парола",
+ "Create share" : "Създаване на споделяне",
+ "Add another link" : "Добави още една връзка",
+ "Create a new share link" : "Създаване на нова връзка за споделяне",
"View only" : "Само изглед",
"Can edit" : "Може да се редактира",
- "File drop" : "Пускане/Преместване/ на файл",
"Custom permissions" : "Персонализиране на права",
- "Search for share recipients" : "Търсене на получатели на споделяне",
- "No recommendations. Start typing." : "Няма препоръки. Започнете да пишете.",
"Resharing is not allowed" : "Повторното споделяне е забранено",
"Name or email …" : "Име или имейл",
"Name, email, or Federated Cloud ID …" : "Име, имейл или Federed Cloud ID/ИД за облачно пространство/ ...",
"Searching …" : "Търсене ...",
"No elements found." : "Няма намерени елементи",
- "Search globally" : "Глобално търсене ",
+ "Search everywhere" : "Търси навсякъде",
"Guest" : "Гост",
"Group" : "Група",
"Email" : "Имейл",
@@ -175,41 +163,56 @@ OC.L10N.register(
"Deck board" : "Deck табло",
"ScienceMesh" : "ScienceMesh /приложение/",
"on {server}" : "на {server}",
+ "Search for internal recipients" : "Търси вътрешни получатели",
+ "File drop" : "Пускане/Преместване/ на файл",
+ "Terms of service" : "Условия за ползване",
+ "Read" : "Четене",
+ "Create" : "Създаване",
+ "Edit" : "Редактиране",
+ "Share" : "Сподели",
+ "Delete" : "Изтрий",
"Allow upload and editing" : "За качване и редактиране",
"Allow editing" : "Разреши редактиране",
"Advanced settings" : "Допълнителни настройки",
"Share label" : " Споделяне на етикет",
- "Password" : "Парола",
"Password expires {passwordExpirationTime}" : "Паролата изтича {passwordExpirationTime}",
"Password expired" : "Паролата е изтекла",
"Video verification" : "Видео потвърждение",
+ "Expiration date (enforced)" : "Дата на изтичане (приложена)",
"Set expiration date" : "Срок на валидност",
- "Expiration date" : "Валидност",
"Hide download" : "Скрий свалянето",
- "Allow download" : "Позволяване на изтегляне/сваляне/",
"Note to recipient" : "Бележка за получателя",
"Enter a note for the share recipient" : "Въведете бележка за получателя на споделянето",
- "Read" : "Четене",
- "Create" : "Създаване",
- "Edit" : "Редактиране",
- "Share" : "Сподели",
"Others with access" : "Други с достъп",
"Toggle list of others with access to this directory" : "Превключване на списък с други имащи достъп до тази директория",
"Toggle list of others with access to this file" : "Превключване на списък с други имащи достъп до този файл",
"Unable to fetch inherited shares" : "Неуспешно извличане на наследени дялове",
+ "Shares" : "Споделени",
"Unable to load the shares list" : " Списъкът за споделяне не може да се зареди",
"Expires {relativetime}" : "Изтича {relativetime}",
"this share just expired." : "Това споделяне току-що изтече.",
"Shared with you by {owner}" : "Споделено с Вас от {owner}.",
- "Shared" : "Споделен",
"Link to a file" : "Линк към файл",
- "Error creating the share: {errorMessage}" : "Грешка при създаване на споделянето: {errorMessage}",
- "Error creating the share" : "Грешка при създаване на споделянето",
+ "Shared" : "Споделен",
+ "Sharing options" : "Опции за споделяне",
+ "Shared with others" : "Споделени с други",
+ "No file" : "Без файл",
+ "No shares" : "Няма споделяния",
+ "Shared with you" : "Споделени с вас",
+ "Nothing shared with you yet" : "Няма споделени файлове",
+ "Nothing shared yet" : "Няма споделени файлове",
+ "Shared by link" : "Споделени с връзка",
+ "No shared links" : "Няма споделени връзки",
+ "Deleted shares" : "Изтрити",
+ "No deleted shares" : "Няма изтрити споделяния",
+ "Pending shares" : "Чакащи споделяния",
+ "No pending shares" : "Няма чакащи споделяния",
"Error updating the share: {errorMessage}" : "Грешка приактуализиране на споделянето: {errorMessage}",
"Error updating the share" : "Грешка при актуализиране на споделянето",
"File \"{path}\" has been unshared" : "Файл „{path}“ не е споделен",
"Folder \"{path}\" has been unshared" : "Папка „{path}“не е споделена",
- "Share {propertyName} saved" : "Споделянето на {propertyName} е записано",
+ "Share label saved" : "Запазен е етикет за споделяне",
+ "Share password saved" : "Запазена е парола за споделяне",
"Shared by" : "Споделено от",
"Shared with" : "Споделено с",
"Password created successfully" : "Създаването на парола е успешно",
@@ -218,18 +221,29 @@ OC.L10N.register(
"Shared with you and {circle} by {owner}" : "Споделено с вас и {circle} от {owner}",
"Shared with you and the conversation {conversation} by {owner}" : "Споделено с вас и разговора {conversation} от {owner}",
"Shared with you in a conversation by {owner}" : "Споделено с вас в разговор от {owner}",
- "Shares" : "Споделени",
- "No shares" : "Няма споделяния",
- "Shared with you" : "Споделени с вас",
- "Nothing shared with you yet" : "Няма споделени файлове",
- "Shared with others" : "Споделени с други",
- "Nothing shared yet" : "Няма споделени файлове",
- "Shared by link" : "Споделени с връзка",
- "No shared links" : "Няма споделени връзки",
- "Deleted shares" : "Изтрити",
- "No deleted shares" : "Няма изтрити споделяния",
- "Pending shares" : "Чакащи споделяния",
- "No pending shares" : "Няма чакащи споделяния",
+ "Share not found" : "Споделянето не е открито",
+ "Back to %s" : "Обратно към %s",
+ "Add to your Nextcloud" : "Добавете към Nextcloud",
+ "Waiting…" : "Изчакване...",
+ "error" : "грешка",
+ "finished" : "завършен",
+ "This will stop your current uploads." : "Това ще прекрати всички ваши текущи процеси по качване на файлове.",
+ "Move or copy" : "Премести или копирай",
+ "You can upload into this folder" : "Може да качвате в папката",
+ "Show list view" : "Показване с изглед на списък",
+ "Show grid view" : "Показване в решетъчен изглед",
+ "No compatible server found at {remote}" : "Не беше намерен съвместим сървър на {remote}",
+ "Invalid server URL" : "URL адреса на сървъра не е валиден",
+ "Failed to add the public link to your Nextcloud" : "Неуспешно добавяне на публичната връзка към вашия Nextcloud",
+ "Download all files" : "Изтегли всички файлове",
+ "Link copied to clipboard" : "Връзката е копирана в клипборда",
+ "Copy to clipboard" : "Копиране в клипборда",
+ "Copy internal link to clipboard" : "Копиране на вътрешна връзката в клипборда",
+ "Copy public link of \"{title}\" to clipboard" : "Копиране на публичната връзка на „{title}“ в клипборда",
+ "Search globally" : "Глобално търсене ",
+ "Search for share recipients" : "Търсене на получатели на споделяне",
+ "No recommendations. Start typing." : "Няма препоръки. Започнете да пишете.",
+ "Enter your name" : "Въведете вашето име",
"Share note" : "Сподели бележка",
"Upload files to %s" : "Качване на файлове към %s",
"Note" : "Бележка",
@@ -237,39 +251,6 @@ OC.L10N.register(
"Uploading files" : "Качване на файлове",
"Uploaded files:" : "Качени файлове:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "С качването на файлове, вие се съгласявате с %1$s условията на услугата%2$s.",
- "Add to your Nextcloud" : "Добавете към Nextcloud",
- "Files and folders others share with you will show up here" : "Файловете и папки, споделени с вас, ще се показват тук",
- "Files and folders you share will show up here" : "Файловете и папки, които сте споделили, ще се показват тук",
- "Files and folders you share by link will show up here" : "Файловете и папки, които споделяте чрез връзки, ще се показват тук",
- "Shares you deleted will show up here" : "Изтритите, от вас споделяния, ще се показват тук",
- "Shares you have received but not confirmed will show up here" : "Споделянията, които сте получили, но не сте потвърдили, ще се покажат тук",
- "Shares will show up here" : "Споделените елементи ще се показват тук",
- "Restore" : "Възстановяне",
- "Something happened. Unable to restore the share." : "Споделянето не може да бъде възстановено.",
- "Something happened. Unable to accept the share." : "Нещо се случи. Споделянето не може да приеме.",
- "Something happened. Unable to reject the share." : "Нещо се случи. Споделянето не може да отхвърли.",
- "No expiration date set" : "Не е зададен срок на валидност",
- "Please specify a valid user" : "Моля въведете валиден потребител",
- "Please specify a valid federated user ID" : "Моля, посочете валиден идентификатор на федериран потребител",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Приложението позволява споделянето на файлове с Nextcloud. Администраторът може да ограничи споделянето само за определени групи. Потретилите с права ще могат да споделят файлове и папки с други потребители и групи от Nextcloud. За споделяне с потребители извън Nextloud администраторът трябва да активира функционалността за споделяне с връзка. Администратора може да наложи ползването на пароли, валидност, споделяне с връзка от сървър към сървър и споделяне от мобилни устройства.\nИзключването на функционалността ще прекрати споделени файлове и папки от сървъра (за потребители, клиенти за синхронизиране и мобилни приложения). Подробна информация ще намерите в документацията на Nextcloud.",
- "Accept user and group shares by default" : "Приемане на споделяния на потребители и групи по подразбиране",
- "Read only" : "Само за четене",
- "File drop (upload only)" : "Само за качване",
- "Upload" : "Качване",
- "Bundled permissions" : "Пакет от права",
- "Only works for users with access to this folder" : "Работи само за потребители, които имат достъп до тази папка",
- "Only works for users with access to this file" : "Работи само за потребители, които имат достъп до този файл",
- "Circle" : "Кръг",
- "Update" : "Обновяване",
- "No other users with access found" : "Няма намерени други потребители с достъп",
- "No entries found in this folder" : "Папката е празна",
- "Name" : "Име",
- "Share time" : "Споделено на",
- "Sorry, this link does not seem to work anymore." : "За съжаление тази връзка изглежда вече не работи.",
- "Reasons might be:" : "Причината може да бъде:",
- "the item was removed" : "елемента е премахнат",
- "the link expired" : "валидността на връзката е изтекла",
- "sharing is disabled" : "споделянето е изключено",
- "For more info, please ask the person who sent this link." : "За допълнителна информация, моля питай човека, който е изпратил връзката."
+ "Name" : "Име"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/bg.json b/apps/files_sharing/l10n/bg.json
index 900ebfdd6d5..2786aeb7f7b 100644
--- a/apps/files_sharing/l10n/bg.json
+++ b/apps/files_sharing/l10n/bg.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Изчакване...",
- "error" : "грешка",
- "finished" : "завършен",
- "This will stop your current uploads." : "Това ще прекрати всички ваши текущи процеси по качване на файлове.",
- "Move or copy" : "Премести или копирай",
- "Download" : "Изтегли",
- "Delete" : "Изтрий",
- "You can upload into this folder" : "Може да качвате в папката",
- "Terms of service" : "Условия за ползване",
- "Show list view" : "Показване с изглед на списък",
- "Show grid view" : "Показване в решетъчен изглед",
- "No compatible server found at {remote}" : "Не беше намерен съвместим сървър на {remote}",
- "Invalid server URL" : "URL адреса на сървъра не е валиден",
- "Failed to add the public link to your Nextcloud" : "Неуспешно добавяне на публичната връзка към вашия Nextcloud",
"File shares" : "Няма споделяния",
"Downloaded via public link" : "Изтеглен чрез публична връзка",
"Downloaded by {email}" : "Изтеглен от {email}",
@@ -68,7 +54,7 @@
"Share for file {file} expired" : "Споделянето за файл {file} изтече",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "<strong>Сваляне</strong>на файл, споделен чрез имейл или публична връзка",
"A file or folder was shared from <strong>another server</strong>" : "Споделяне на файл / папка с <strong>друг сървър</strong>",
- "Files" : "Файлове",
+ "Sharing" : "Споделяне",
"A file or folder has been <strong>shared</strong>" : "<strong>Споделяне</strong> на файл / папка",
"Shared link" : "Споделена връзка",
"Wrong share ID, share does not exist" : "Грешен идентификатор на споделяне, споделянето не съществува",
@@ -76,32 +62,29 @@
"Please specify a file or folder path" : "Моля въведете път до файл или папка",
"Wrong path, file/folder does not exist" : "Грешен път, файл/папка не съществува",
"Could not create share" : "Не е възможно създаването на споделянето",
- "Invalid permissions" : "Невалидни права",
- "Invalid date, date format must be YYYY-MM-DD" : "Невалидна дата, форматът е различен от ГГГГ-ММ-ДД",
"Group sharing is disabled by the administrator" : "Груповото споделяне е спряно от администратора",
"Please specify a valid group" : "Моля въведете валидна група",
"Public link sharing is disabled by the administrator" : "Публичното споделяне на линкове е спряно от администратора",
- "Public upload disabled by the administrator" : "Публичното качване е е спряно от администратора",
- "Public upload is only possible for publicly shared folders" : "Публичното качване е възможно само за публично споделени папки",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Споделянето %s на изпращането на паролата от Nextcloud Talk не бе успешно, тъй като Nextcloud Talk не е активирано",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Споделянето %1$s не бе успешно, защото вътрешния сървър не позволява споделяния от тип %2$s",
"Please specify a valid federated group ID" : "Моля, посочете валиден идентификатор на федерирана група",
- "You cannot share to a Circle if the app is not enabled" : "Не можете да споделяте с Кръг, ако приложението не е активирано",
- "Please specify a valid circle" : "Моля, изберете валиден кръг",
"Sharing %s failed because the back end does not support room shares" : "Споделянето %s не бе успешно, защото вътрешния сървър не позволява споделяния на стаите",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Споделянето %s не бе успешно, защото вътрешния сървър не позволява споделяния на приложението ScienceMesh",
"Unknown share type" : "Неизвестен тип споделяне",
"Not a directory" : "Не е директория",
"Could not lock node" : "Възелът не можа да се заключи",
- "Could not lock path" : "Пътя не можа да се заключи",
- "Wrong or no update parameter given" : "Грешен или не е даден параметър за актуализация",
+ "Public upload is only possible for publicly shared folders" : "Публичното качване е възможно само за публично споделени папки",
"Share must at least have READ or CREATE permissions" : "Споделянето трябва да има права поне за ЧЕТЕНЕ или СЪЗДАВАНЕ",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Споделянето трябва да има право за ЧЕТЕНЕ ако е зададено право за ОБНОВЯВАНЕ или за ИЗТРИВАНЕ",
+ "Public upload disabled by the administrator" : "Публичното качване е е спряно от администратора",
+ "Could not lock path" : "Пътя не можа да се заключи",
+ "Wrong or no update parameter given" : "Грешен или не е даден параметър за актуализация",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "„Изпращането на паролата от Nextcloud Talk“ за споделяне на файл или папка не беше успешно, тъй като Nextcloud Talk не е активиран.",
+ "Wrong password" : "Грешна парола",
"shared by %s" : "споделено от %s",
- "Download all files" : "Изтегли всички файлове",
- "Direct link" : "Директна връзка",
+ "Download" : "Изтегли",
"Add to your %s" : "Добавяне към вашия %s",
+ "Direct link" : "Директна връзка",
"Share API is disabled" : "Споделянето на API е изключено",
"File sharing" : "Споделяне на файлове",
"Share will expire tomorrow" : "Споделянето ще изтече утре",
@@ -110,14 +93,28 @@
"You received {share} to group {group} as a share by {user}" : "Получихте {share} за група {group} като споделяне от {user}",
"Accept" : "Приемане",
"Decline" : "Отхвърляне",
- "Sharing" : "Споделяне",
+ "People" : "Хора",
+ "Expiration date" : "Валидност",
+ "Set a password" : "Задаване на парола",
+ "Password" : "Парола",
+ "Link copied" : "Връзката е копирана",
+ "Share link" : "Връзка за споделяне",
+ "Copy" : "Копие",
+ "Send link via email" : "Сподели връзка с имейл",
+ "Select" : "Избери",
+ "The uploaded files are visible only to you unless you choose to share them." : "Качените файлове са видими само за теб, освен, ако не решиш да ги споделиш с друг.",
+ "Close" : "Затваряне",
+ "Error creating the share: {errorMessage}" : "Грешка при създаване на споделянето: {errorMessage}",
+ "Error creating the share" : "Грешка при създаване на споделянето",
+ "Cancel" : "Отказ",
+ "Continue" : "Продължаване",
"Error while toggling options" : "Грешка при превключване на опциите",
- "Set default folder for accepted shares" : "Задаване на папка по подразбиране за приети споделяния",
- "Reset" : "Възстановяване",
- "Reset folder to system default" : "Възстановяване на папка по подразбиране на системата",
"Choose a default folder for accepted shares" : "Избор на папка по подразбиране за приети споделяния",
"Invalid path selected" : "Избран е невалиден път ",
"Unknown error" : "Неизвестна грешка",
+ "Set default folder for accepted shares" : "Задаване на папка по подразбиране за приети споделяния",
+ "Reset" : "Възстановяване",
+ "Reset folder to system default" : "Възстановяване на папка по подразбиране на системата",
"group" : "група",
"conversation" : "разговор",
"remote" : "отдалечен",
@@ -129,43 +126,34 @@
"Added by {initiator}" : "Добавено от {initiator}",
"Via “{folder}”" : "Чрез “{folder}”",
"Unshare" : "Прекрати споделянето",
- "Internal link" : "Вътрешна връзка",
"Cannot copy, please copy the link manually" : "Не може да се копира, моля, копирайте връзката ръчно",
- "Copy internal link to clipboard" : "Копиране на вътрешна връзката в клипборда",
- "Link copied" : "Връзката е копирана",
- "Please enter the following required information before creating the share" : "Моля, въведете следната необходима информация, преди да създадете споделянето",
- "Password protection (enforced)" : "Защита с парола (приложена)",
- "Password protection" : "Password protection",
- "Enter a password" : "Въведете парола",
- "Expiration date (enforced)" : "Дата на изтичане (приложена)",
- "Enter a date" : "Въведи дата",
- "Create share" : "Създаване на споделяне",
- "Cancel" : "Отказ",
- "Add another link" : "Добави още една връзка",
- "Create a new share link" : "Създаване на нова връзка за споделяне",
+ "Internal link" : "Вътрешна връзка",
"{shareWith} by {initiator}" : "{shareWith} чрез {initiator}",
"Shared via link by {initiator}" : "Споделено чрез връзка от {initiator}",
"Mail share ({label})" : "Споделяне на поща ({label})",
"Share link ({label})" : "Споделяне на връзка ({label})",
"Share link ({index})" : "Споделяне на връзка ({index})",
- "Share link" : "Връзка за споделяне",
+ "Create public link" : "Създаване на публична връзка",
"Actions for \"{title}\"" : "Действия за „{title}“",
- "Copy public link of \"{title}\" to clipboard" : "Копиране на публичната връзка на „{title}“ в клипборда",
"Error, please enter proper password and/or expiration date" : "Грешка, моля да въведете правилната парола и / или срок на годност",
"Link share created" : "Създадено споделяне на връзка",
"Error while creating the share" : "Грешка при създаване на споделянето",
+ "Please enter the following required information before creating the share" : "Моля, въведете следната необходима информация, преди да създадете споделянето",
+ "Password protection (enforced)" : "Защита с парола (приложена)",
+ "Password protection" : "Password protection",
+ "Enter a password" : "Въведете парола",
+ "Create share" : "Създаване на споделяне",
+ "Add another link" : "Добави още една връзка",
+ "Create a new share link" : "Създаване на нова връзка за споделяне",
"View only" : "Само изглед",
"Can edit" : "Може да се редактира",
- "File drop" : "Пускане/Преместване/ на файл",
"Custom permissions" : "Персонализиране на права",
- "Search for share recipients" : "Търсене на получатели на споделяне",
- "No recommendations. Start typing." : "Няма препоръки. Започнете да пишете.",
"Resharing is not allowed" : "Повторното споделяне е забранено",
"Name or email …" : "Име или имейл",
"Name, email, or Federated Cloud ID …" : "Име, имейл или Federed Cloud ID/ИД за облачно пространство/ ...",
"Searching …" : "Търсене ...",
"No elements found." : "Няма намерени елементи",
- "Search globally" : "Глобално търсене ",
+ "Search everywhere" : "Търси навсякъде",
"Guest" : "Гост",
"Group" : "Група",
"Email" : "Имейл",
@@ -173,41 +161,56 @@
"Deck board" : "Deck табло",
"ScienceMesh" : "ScienceMesh /приложение/",
"on {server}" : "на {server}",
+ "Search for internal recipients" : "Търси вътрешни получатели",
+ "File drop" : "Пускане/Преместване/ на файл",
+ "Terms of service" : "Условия за ползване",
+ "Read" : "Четене",
+ "Create" : "Създаване",
+ "Edit" : "Редактиране",
+ "Share" : "Сподели",
+ "Delete" : "Изтрий",
"Allow upload and editing" : "За качване и редактиране",
"Allow editing" : "Разреши редактиране",
"Advanced settings" : "Допълнителни настройки",
"Share label" : " Споделяне на етикет",
- "Password" : "Парола",
"Password expires {passwordExpirationTime}" : "Паролата изтича {passwordExpirationTime}",
"Password expired" : "Паролата е изтекла",
"Video verification" : "Видео потвърждение",
+ "Expiration date (enforced)" : "Дата на изтичане (приложена)",
"Set expiration date" : "Срок на валидност",
- "Expiration date" : "Валидност",
"Hide download" : "Скрий свалянето",
- "Allow download" : "Позволяване на изтегляне/сваляне/",
"Note to recipient" : "Бележка за получателя",
"Enter a note for the share recipient" : "Въведете бележка за получателя на споделянето",
- "Read" : "Четене",
- "Create" : "Създаване",
- "Edit" : "Редактиране",
- "Share" : "Сподели",
"Others with access" : "Други с достъп",
"Toggle list of others with access to this directory" : "Превключване на списък с други имащи достъп до тази директория",
"Toggle list of others with access to this file" : "Превключване на списък с други имащи достъп до този файл",
"Unable to fetch inherited shares" : "Неуспешно извличане на наследени дялове",
+ "Shares" : "Споделени",
"Unable to load the shares list" : " Списъкът за споделяне не може да се зареди",
"Expires {relativetime}" : "Изтича {relativetime}",
"this share just expired." : "Това споделяне току-що изтече.",
"Shared with you by {owner}" : "Споделено с Вас от {owner}.",
- "Shared" : "Споделен",
"Link to a file" : "Линк към файл",
- "Error creating the share: {errorMessage}" : "Грешка при създаване на споделянето: {errorMessage}",
- "Error creating the share" : "Грешка при създаване на споделянето",
+ "Shared" : "Споделен",
+ "Sharing options" : "Опции за споделяне",
+ "Shared with others" : "Споделени с други",
+ "No file" : "Без файл",
+ "No shares" : "Няма споделяния",
+ "Shared with you" : "Споделени с вас",
+ "Nothing shared with you yet" : "Няма споделени файлове",
+ "Nothing shared yet" : "Няма споделени файлове",
+ "Shared by link" : "Споделени с връзка",
+ "No shared links" : "Няма споделени връзки",
+ "Deleted shares" : "Изтрити",
+ "No deleted shares" : "Няма изтрити споделяния",
+ "Pending shares" : "Чакащи споделяния",
+ "No pending shares" : "Няма чакащи споделяния",
"Error updating the share: {errorMessage}" : "Грешка приактуализиране на споделянето: {errorMessage}",
"Error updating the share" : "Грешка при актуализиране на споделянето",
"File \"{path}\" has been unshared" : "Файл „{path}“ не е споделен",
"Folder \"{path}\" has been unshared" : "Папка „{path}“не е споделена",
- "Share {propertyName} saved" : "Споделянето на {propertyName} е записано",
+ "Share label saved" : "Запазен е етикет за споделяне",
+ "Share password saved" : "Запазена е парола за споделяне",
"Shared by" : "Споделено от",
"Shared with" : "Споделено с",
"Password created successfully" : "Създаването на парола е успешно",
@@ -216,18 +219,29 @@
"Shared with you and {circle} by {owner}" : "Споделено с вас и {circle} от {owner}",
"Shared with you and the conversation {conversation} by {owner}" : "Споделено с вас и разговора {conversation} от {owner}",
"Shared with you in a conversation by {owner}" : "Споделено с вас в разговор от {owner}",
- "Shares" : "Споделени",
- "No shares" : "Няма споделяния",
- "Shared with you" : "Споделени с вас",
- "Nothing shared with you yet" : "Няма споделени файлове",
- "Shared with others" : "Споделени с други",
- "Nothing shared yet" : "Няма споделени файлове",
- "Shared by link" : "Споделени с връзка",
- "No shared links" : "Няма споделени връзки",
- "Deleted shares" : "Изтрити",
- "No deleted shares" : "Няма изтрити споделяния",
- "Pending shares" : "Чакащи споделяния",
- "No pending shares" : "Няма чакащи споделяния",
+ "Share not found" : "Споделянето не е открито",
+ "Back to %s" : "Обратно към %s",
+ "Add to your Nextcloud" : "Добавете към Nextcloud",
+ "Waiting…" : "Изчакване...",
+ "error" : "грешка",
+ "finished" : "завършен",
+ "This will stop your current uploads." : "Това ще прекрати всички ваши текущи процеси по качване на файлове.",
+ "Move or copy" : "Премести или копирай",
+ "You can upload into this folder" : "Може да качвате в папката",
+ "Show list view" : "Показване с изглед на списък",
+ "Show grid view" : "Показване в решетъчен изглед",
+ "No compatible server found at {remote}" : "Не беше намерен съвместим сървър на {remote}",
+ "Invalid server URL" : "URL адреса на сървъра не е валиден",
+ "Failed to add the public link to your Nextcloud" : "Неуспешно добавяне на публичната връзка към вашия Nextcloud",
+ "Download all files" : "Изтегли всички файлове",
+ "Link copied to clipboard" : "Връзката е копирана в клипборда",
+ "Copy to clipboard" : "Копиране в клипборда",
+ "Copy internal link to clipboard" : "Копиране на вътрешна връзката в клипборда",
+ "Copy public link of \"{title}\" to clipboard" : "Копиране на публичната връзка на „{title}“ в клипборда",
+ "Search globally" : "Глобално търсене ",
+ "Search for share recipients" : "Търсене на получатели на споделяне",
+ "No recommendations. Start typing." : "Няма препоръки. Започнете да пишете.",
+ "Enter your name" : "Въведете вашето име",
"Share note" : "Сподели бележка",
"Upload files to %s" : "Качване на файлове към %s",
"Note" : "Бележка",
@@ -235,39 +249,6 @@
"Uploading files" : "Качване на файлове",
"Uploaded files:" : "Качени файлове:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "С качването на файлове, вие се съгласявате с %1$s условията на услугата%2$s.",
- "Add to your Nextcloud" : "Добавете към Nextcloud",
- "Files and folders others share with you will show up here" : "Файловете и папки, споделени с вас, ще се показват тук",
- "Files and folders you share will show up here" : "Файловете и папки, които сте споделили, ще се показват тук",
- "Files and folders you share by link will show up here" : "Файловете и папки, които споделяте чрез връзки, ще се показват тук",
- "Shares you deleted will show up here" : "Изтритите, от вас споделяния, ще се показват тук",
- "Shares you have received but not confirmed will show up here" : "Споделянията, които сте получили, но не сте потвърдили, ще се покажат тук",
- "Shares will show up here" : "Споделените елементи ще се показват тук",
- "Restore" : "Възстановяне",
- "Something happened. Unable to restore the share." : "Споделянето не може да бъде възстановено.",
- "Something happened. Unable to accept the share." : "Нещо се случи. Споделянето не може да приеме.",
- "Something happened. Unable to reject the share." : "Нещо се случи. Споделянето не може да отхвърли.",
- "No expiration date set" : "Не е зададен срок на валидност",
- "Please specify a valid user" : "Моля въведете валиден потребител",
- "Please specify a valid federated user ID" : "Моля, посочете валиден идентификатор на федериран потребител",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Приложението позволява споделянето на файлове с Nextcloud. Администраторът може да ограничи споделянето само за определени групи. Потретилите с права ще могат да споделят файлове и папки с други потребители и групи от Nextcloud. За споделяне с потребители извън Nextloud администраторът трябва да активира функционалността за споделяне с връзка. Администратора може да наложи ползването на пароли, валидност, споделяне с връзка от сървър към сървър и споделяне от мобилни устройства.\nИзключването на функционалността ще прекрати споделени файлове и папки от сървъра (за потребители, клиенти за синхронизиране и мобилни приложения). Подробна информация ще намерите в документацията на Nextcloud.",
- "Accept user and group shares by default" : "Приемане на споделяния на потребители и групи по подразбиране",
- "Read only" : "Само за четене",
- "File drop (upload only)" : "Само за качване",
- "Upload" : "Качване",
- "Bundled permissions" : "Пакет от права",
- "Only works for users with access to this folder" : "Работи само за потребители, които имат достъп до тази папка",
- "Only works for users with access to this file" : "Работи само за потребители, които имат достъп до този файл",
- "Circle" : "Кръг",
- "Update" : "Обновяване",
- "No other users with access found" : "Няма намерени други потребители с достъп",
- "No entries found in this folder" : "Папката е празна",
- "Name" : "Име",
- "Share time" : "Споделено на",
- "Sorry, this link does not seem to work anymore." : "За съжаление тази връзка изглежда вече не работи.",
- "Reasons might be:" : "Причината може да бъде:",
- "the item was removed" : "елемента е премахнат",
- "the link expired" : "валидността на връзката е изтекла",
- "sharing is disabled" : "споделянето е изключено",
- "For more info, please ask the person who sent this link." : "За допълнителна информация, моля питай човека, който е изпратил връзката."
+ "Name" : "Име"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/bn_BD.js b/apps/files_sharing/l10n/bn_BD.js
deleted file mode 100644
index 0e715b8c6cb..00000000000
--- a/apps/files_sharing/l10n/bn_BD.js
+++ /dev/null
@@ -1,35 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Server to server sharing is not enabled on this server" : "এই সার্ভারে সার্ভার হতে সার্ভারে ভাগাভাগি কার্যকর নয়",
- "Invalid or untrusted SSL certificate" : "অবৈধ বা অবিশ্বস্ত SSL সার্টিফিকেট",
- "Couldn't add remote share" : "দুরবর্তী ভাগাভাগি যোগ করা গেলনা",
- "Shared with you" : "আপনার সাথে ভাগাভাগি করেছেন",
- "Shared by link" : "লিঙ্কের মাধ্যমে ভাগাভাগিকৃত",
- "Remote share" : "দুরবর্তী ভাগাভাগি",
- "Cancel" : "বাতিল",
- "Invalid ownCloud url" : "অবৈধ ওউনক্লাউড url",
- "Shared by" : "যাদের মাঝে ভাগাভাগি করা হয়েছে",
- "Sharing" : "ভাগাভাগিরত",
- "A file or folder has been <strong>shared</strong>" : "একটি ফাইল বা ফোলডার <strong>ভাগাভাগি</strong> করা হয়েছে",
- "You shared %1$s with %2$s" : "আপনি %1$sকে %2$sএর সাথে ভাগাভাগি করেছেন",
- "You shared %1$s with group %2$s" : "আপনি %1$s কে %2$s দলের সাথে ভাগাভাগি করেছেন",
- "You shared %1$s via link" : "আপনি %1$s লিংকের মাধধমে ভাগাভাগি করেছেন",
- "%2$s shared %1$s with you" : "%2$s আপনার সাথে %1$s ভাগাভাগি করেছেন",
- "Shares" : "ভাগাভাগি",
- "This share is password-protected" : "এই শেয়ারটি কূটশব্দদ্বারা সুরক্ষিত",
- "The password is wrong. Try again." : "কুটশব্দটি ভুল। আবার চেষ্টা করুন।",
- "Password" : "কূটশব্দ",
- "Name" : "নাম",
- "Share time" : "ভাগাভাগির সময়",
- "Sorry, this link doesn’t seem to work anymore." : "দুঃখিত, এই লিঙ্কটি আর কার্যকর নয়।",
- "Reasons might be:" : "কারণসমূহ হতে পারে:",
- "the item was removed" : "আইটেমটি অপসারণ করা হয়েছিল",
- "the link expired" : "মেয়াদোত্তীর্ন লিঙ্ক",
- "sharing is disabled" : "ভাগাভাগি অকার্যকর",
- "For more info, please ask the person who sent this link." : "বিস্তারিত তথ্যের জন্য এই লিঙ্কের প্রেরককে জিজ্ঞাসা করুন।",
- "Download" : "ডাউনলোড",
- "Download %s" : "ডাউনলোড %s",
- "Direct link" : "সরাসরি লিঙ্ক"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/bn_BD.json b/apps/files_sharing/l10n/bn_BD.json
deleted file mode 100644
index 063b0761cb7..00000000000
--- a/apps/files_sharing/l10n/bn_BD.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{ "translations": {
- "Server to server sharing is not enabled on this server" : "এই সার্ভারে সার্ভার হতে সার্ভারে ভাগাভাগি কার্যকর নয়",
- "Invalid or untrusted SSL certificate" : "অবৈধ বা অবিশ্বস্ত SSL সার্টিফিকেট",
- "Couldn't add remote share" : "দুরবর্তী ভাগাভাগি যোগ করা গেলনা",
- "Shared with you" : "আপনার সাথে ভাগাভাগি করেছেন",
- "Shared by link" : "লিঙ্কের মাধ্যমে ভাগাভাগিকৃত",
- "Remote share" : "দুরবর্তী ভাগাভাগি",
- "Cancel" : "বাতিল",
- "Invalid ownCloud url" : "অবৈধ ওউনক্লাউড url",
- "Shared by" : "যাদের মাঝে ভাগাভাগি করা হয়েছে",
- "Sharing" : "ভাগাভাগিরত",
- "A file or folder has been <strong>shared</strong>" : "একটি ফাইল বা ফোলডার <strong>ভাগাভাগি</strong> করা হয়েছে",
- "You shared %1$s with %2$s" : "আপনি %1$sকে %2$sএর সাথে ভাগাভাগি করেছেন",
- "You shared %1$s with group %2$s" : "আপনি %1$s কে %2$s দলের সাথে ভাগাভাগি করেছেন",
- "You shared %1$s via link" : "আপনি %1$s লিংকের মাধধমে ভাগাভাগি করেছেন",
- "%2$s shared %1$s with you" : "%2$s আপনার সাথে %1$s ভাগাভাগি করেছেন",
- "Shares" : "ভাগাভাগি",
- "This share is password-protected" : "এই শেয়ারটি কূটশব্দদ্বারা সুরক্ষিত",
- "The password is wrong. Try again." : "কুটশব্দটি ভুল। আবার চেষ্টা করুন।",
- "Password" : "কূটশব্দ",
- "Name" : "নাম",
- "Share time" : "ভাগাভাগির সময়",
- "Sorry, this link doesn’t seem to work anymore." : "দুঃখিত, এই লিঙ্কটি আর কার্যকর নয়।",
- "Reasons might be:" : "কারণসমূহ হতে পারে:",
- "the item was removed" : "আইটেমটি অপসারণ করা হয়েছিল",
- "the link expired" : "মেয়াদোত্তীর্ন লিঙ্ক",
- "sharing is disabled" : "ভাগাভাগি অকার্যকর",
- "For more info, please ask the person who sent this link." : "বিস্তারিত তথ্যের জন্য এই লিঙ্কের প্রেরককে জিজ্ঞাসা করুন।",
- "Download" : "ডাউনলোড",
- "Download %s" : "ডাউনলোড %s",
- "Direct link" : "সরাসরি লিঙ্ক"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/bs.js b/apps/files_sharing/l10n/bs.js
deleted file mode 100644
index ce2917b50b3..00000000000
--- a/apps/files_sharing/l10n/bs.js
+++ /dev/null
@@ -1,11 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Cancel" : "Odustani",
- "Shared by" : "Dijeli",
- "Sharing" : "Dijeljenje",
- "Password" : "Lozinka",
- "Name" : "Ime",
- "Download" : "Preuzmite"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_sharing/l10n/bs.json b/apps/files_sharing/l10n/bs.json
deleted file mode 100644
index ad6237b8166..00000000000
--- a/apps/files_sharing/l10n/bs.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{ "translations": {
- "Cancel" : "Odustani",
- "Shared by" : "Dijeli",
- "Sharing" : "Dijeljenje",
- "Password" : "Lozinka",
- "Name" : "Ime",
- "Download" : "Preuzmite"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ca.js b/apps/files_sharing/l10n/ca.js
index 43c39e6b88e..de020a0a6b1 100644
--- a/apps/files_sharing/l10n/ca.js
+++ b/apps/files_sharing/l10n/ca.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "S'està esperant…",
- "error" : "error",
- "finished" : "ha finalitzat",
- "This will stop your current uploads." : "Això aturarà les pujades actuals.",
- "Move or copy" : "Mou o copia",
- "Download" : "Baixa",
- "Delete" : "Suprimeix",
- "You can upload into this folder" : "Podeu pujar elements a aquesta carpeta",
- "Terms of service" : "Condicions del servei",
- "Show list view" : "Mostra la visualització de llista",
- "Show grid view" : "Mostra la visualització de graella",
- "No compatible server found at {remote}" : "No s'ha trobat cap servidor compatible a {remote}",
- "Invalid server URL" : "L'URL del servidor no és vàlida",
- "Failed to add the public link to your Nextcloud" : "No s'ha pogut afegir l'enllaç públic al vostre Nextcloud",
"File shares" : "Fitxers compartits",
"Downloaded via public link" : "S'ha baixat mitjançant un enllaç públic",
"Downloaded by {email}" : "{email} l'ha baixat",
@@ -23,7 +9,7 @@ OC.L10N.register(
"Shared with group {group}" : "S'ha compartit amb el grup {group}",
"Removed share for group {group}" : "S'ha deixat de compartir amb el grup {group}",
"{actor} shared with group {group}" : "{actor} l'ha compartit amb el grup {group}",
- "{actor} removed share for group {group}" : "{actor} l'ha deixat de compartir amb el grup {grup}",
+ "{actor} removed share for group {group}" : "{actor} l'ha deixat de compartir amb el grup {group}",
"Share for group {group} expired" : "Ha caducat l'ús compartit per al grup {group}",
"You shared {file} with group {group}" : "Heu compartit {file} amb el grup {group}",
"You removed group {group} from {file}" : "Heu suprimit el grup {group} de {file}",
@@ -42,17 +28,17 @@ OC.L10N.register(
"{actor} shared {file} as public link" : "{actor} ha compartit {file} amb un enllaç públic",
"{actor} removed public link for {file}" : "{actor} ha suprimit l'enllaç públic per a {file}",
"Public link of {actor} for {file} expired" : "L'enllaç públic de {actor} per a {file} ha caducat",
- "{user} accepted the remote share" : "{usuari} ha acceptat l'element compartit remot",
- "{user} declined the remote share" : "{usuari} ha rebutjat l'element compartit remot",
+ "{user} accepted the remote share" : "{user} ha acceptat l'element compartit remot",
+ "{user} declined the remote share" : "{user} ha rebutjat l'element compartit remot",
"You received a new remote share {file} from {user}" : "Heu rebut l'element compartit nou {file} de {user}",
- "{user} accepted the remote share of {file}" : "{usuari} ha acceptat l'element compartit remot {file}",
- "{user} declined the remote share of {file}" : "{usuari} ha rebutjat l'element compartit remot {file}",
+ "{user} accepted the remote share of {file}" : "{user} ha acceptat l'element compartit remot {file}",
+ "{user} declined the remote share of {file}" : "{user} ha rebutjat l'element compartit remot {file}",
"{user} unshared {file} from you" : "{user} ha deixat de compartir {file} amb vós",
"Shared with {user}" : "S'ha compartit amb {user}",
"Removed share for {user}" : "S'ha deixat de compartir amb {user}",
"You removed yourself" : "Us heu suprimit",
"{actor} removed themselves" : "{actor} s'ha suprimit",
- "{actor} shared with {user}" : "{actor} l'ha compartit amb {usuari}",
+ "{actor} shared with {user}" : "{actor} l'ha compartit amb {user}",
"{actor} removed share for {user}" : "{actor} l'ha deixat de compartir amb {user}",
"Shared by {actor}" : "{actor} l'ha compartit",
"{actor} removed share" : "{actor} l'ha deixat de compartir",
@@ -62,15 +48,16 @@ OC.L10N.register(
"You removed {user} from {file}" : "Heu suprimit {user} de {file}",
"You removed yourself from {file}" : "Us heu suprimit de {file}",
"{actor} removed themselves from {file}" : "{actor} s'ha suprimit de {file}",
- "{actor} shared {file} with {user}" : "{actor} ha compartit {file} amb {usuari}",
+ "{actor} shared {file} with {user}" : "{actor} ha compartit {file} amb {user}",
"{actor} removed {user} from {file}" : "{actor} ha suprimit {user} de {file}",
"{actor} shared {file} with you" : "{actor} ha compartit {file} amb vós",
"{actor} removed you from the share named {file}" : "{actor} us ha suprimit de l'element compartit {file}",
"Share for file {file} with {user} expired" : "Ha caducat l'ús compartit del fitxer {file} per a {user}",
"Share for file {file} expired" : "Ha caducat l'ús compartit per al fitxer {file}",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "S'ha <strong>baixat</strong> un fitxer o una carpeta compartit per correu o per enllaç públic",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Els fitxers s'han <strong>pujat</strong> a una carpeta compartida per correu o per enllaç públic",
"A file or folder was shared from <strong>another server</strong>" : "S'ha compartit un fitxer o una carpeta d'un <strong>altre servidor</strong>",
- "Files" : "Fitxers",
+ "Sharing" : "Ús compartit",
"A file or folder has been <strong>shared</strong>" : "S'ha <strong>compartit</strong> un fitxer o una carpeta",
"Shared link" : "Enllaç compartit",
"Wrong share ID, share does not exist" : "L'ID de l'element compartit és incorrecte, l'element compartit no existeix",
@@ -78,34 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "Especifiqueu un camí de fitxer o carpeta",
"Wrong path, file/folder does not exist" : "El camí és incorrecte, el fitxer o la carpeta no existeix",
"Could not create share" : "No s'ha pogut crear l'element compartit",
- "Invalid permissions" : "Els permisos no són vàlids",
- "Invalid date, date format must be YYYY-MM-DD" : "La data no és vàlida, el format de la data ha de ser AAAA-MM-DD",
"Please specify a valid account to share with" : "Especifiqueu un compte vàlid amb qui compartir",
"Group sharing is disabled by the administrator" : "L'administrador ha inhabilitat l'ús compartit en grup",
"Please specify a valid group" : "Especifiqueu un grup vàlid",
"Public link sharing is disabled by the administrator" : "L'administrador ha inhabilitat l'ús compartit amb enllaç públic",
- "Public upload disabled by the administrator" : "L'administrador ha inhabilitat la pujada pública",
- "Public upload is only possible for publicly shared folders" : "La pujada pública només és possible per a carpetes compartides públicament",
+ "Please specify a valid email address" : "Si us plalu, especifiqueu una adreça de correu electrònic vàlida",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "No s'ha pogut compartir %s enviant la contrasenya per Converses del Nextcloud perquè l'aplicació Converses del Nextcloud no està habilitada",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "No s'ha pogut compartir %1$s perquè el rerefons no permet elements compartits de tipus %2$s",
"Please specify a valid federated account ID" : "Especifiqueu un ID de compte federat vàlid",
"Please specify a valid federated group ID" : "Especifiqueu un ID de grup federat vàlid",
- "You cannot share to a Circle if the app is not enabled" : "No podeu compartir-ho en un cercle si l'aplicació no està habilitada",
- "Please specify a valid circle" : "Especifiqueu un cercle vàlid",
- "Sharing %s failed because the back end does not support room shares" : "No s'ha pogut compartir %s perquè el rerefons no permet l'ús compartit en sales",
- "Sharing %s failed because the back end does not support ScienceMesh shares" : "No s'ha pogut compartir %s perquè el rerefons no permet l'ús compartit amb ScienceMesh",
+ "You cannot share to a Team if the app is not enabled" : "No podeu compartir amb un Equip si l'aplicació no està habilitada",
+ "Please specify a valid team" : "Especifiqueu un equip vàlid",
+ "Sharing %s failed because the back end does not support room shares" : "No s'ha pogut compartir %s perquè el rerefons no permet l'ús sales compartides",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "No s'ha pogut compartir %s perquè el rerefons no permet elements compartits de ScienceMesh",
"Unknown share type" : "Tipus d'element compartit desconegut",
"Not a directory" : "No és una carpeta",
"Could not lock node" : "No s'ha pogut blocar el node",
- "Could not lock path" : "No s'ha pogut blocar la ruta d'accés",
- "Wrong or no update parameter given" : "S'ha proporcionat un paràmetre d'actualització incorrecte o no s'ha proporcionat",
+ "Public upload is only possible for publicly shared folders" : "La pujada pública només és possible per a carpetes compartides públicament",
"Share must at least have READ or CREATE permissions" : "L'element compartit ha de tenir almenys permisos de lectura o creació",
"Share must have READ permission if UPDATE or DELETE permission is set" : "L'element compartit ha de tenir permís de lectura si s'ha establert permís d'actualització o supressió",
+ "Public upload disabled by the administrator" : "L'administrador ha inhabilitat la pujada pública",
+ "Could not lock path" : "No s'ha pogut blocar la ruta d'accés",
+ "no sharing rights on this item" : "no hi ha drets per compartir aquest element",
+ "You are not allowed to edit incoming shares" : "No teniu permès editar els recursos compartits entrants",
+ "Wrong or no update parameter given" : "S'ha proporcionat un paràmetre d'actualització incorrecte o no s'ha proporcionat",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "No s'ha pogut enviar la contrasenya per Converses del Nextcloud per a compartir un fitxer o una carpeta perquè l'aplicació Converses del Nextcloud no està habilitada.",
+ "Custom share link tokens have been disabled by the administrator" : "L'administrador ha desactivat els testimonis d'enllaços de compartició personalitzats",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Els testimonis han de contenir almenys 1 caràcter i només poden contenir lletres, números o un guió",
+ "Invalid date. Format must be YYYY-MM-DD" : "Data no vàlida. El format ha de ser AAAA-MM-DD",
+ "No sharing rights on this item" : "No hi ha drets per compartir aquest element",
+ "Invalid share attributes provided: \"%s\"" : "S'han proporcionat atributs compartits no vàlids: \"%s\"",
+ "You are not allowed to send mail notifications" : "No teniu permès enviar notificacions per correu",
+ "No mail notification configured for this share type" : "No s'ha configurat cap notificació de correu per a aquest tipus de compartició",
+ "Wrong password" : "Contrasenya incorrecta",
+ "Error while sending mail notification" : "S'ha produït un error en enviar la notificació per correu",
+ "Failed to generate a unique token" : "No s'ha pogut generar un testimoni únic",
+ "This share does not exist or is no longer available" : "Aquesta compartició no existeix o ja no està disponible",
"shared by %s" : "compartit per %s",
- "Download all files" : "Baixa tots els fitxers",
- "Direct link" : "Enllaç directe",
+ "Download" : "Baixa",
"Add to your %s" : "Afegeix al %s",
+ "Direct link" : "Enllaç directe",
"Share API is disabled" : "L'API d'ús compartit està inhabilitada",
"File sharing" : "Fitxers compartits",
"Share will expire tomorrow" : "L'ús compartit caducarà demà",
@@ -114,70 +113,130 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Heu rebut l'element compartit {share} del grup {group} de {user}",
"Accept" : "Accepta",
"Decline" : "Rebutja",
+ "Remember to upload the files to %s" : "Recordeu pujar els fitxers a %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Us recordem que encara no heu pujat cap fitxer a la carpeta compartida.",
+ "Open \"%s\"" : "Obre \"%s\"",
"This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Aquesta aplicació permet a les persones compartir fitxers en el Nextcloud. Si està habilitada, l'administrador pot triar quins grups poden compartir fitxers. Les persones amb permís poden compartir fitxers i carpetes amb altres comptes i grups del Nextcloud. A més, si l'administrador activa la característica de compartir enllaços, es poden utilitzar enllaços externs per a compartir fitxers amb altres comptes fora del Nextcloud. Els administradors també poden aplicar contrasenyes, dates de caducitat i habilitar l'ús compartit entre servidors mitjançant enllaços d'ús compartit, així com l'ús compartit des de dispositius mòbils.\nSi inhabiliteu la característica, se suprimiran els fitxers i les carpetes compartides del servidor per a tots els destinataris i també per als clients de sincronització i les aplicacions per a mòbils. Podeu trobar més informació en la documentació del Nextcloud.",
- "Sharing" : "Ús compartit",
- "Accept shares from other accounts and groups by default" : "Accepta els elements compartits d'altres comptes i grups per defecte",
+ "People" : "Persones",
+ "Filter accounts" : "Filtra comptes",
+ "The request will expire on {date} at midnight and will be password protected." : "La sol·licitud caducarà el dia {date} a la mitjanit i estarà protegida amb contrasenya.",
+ "The request will expire on {date} at midnight." : "La sol·licitud caducarà el dia {date} a la mitjanit.",
+ "The request will be password protected." : "La sol·licitud estarà protegida amb contrasenya.",
+ "When should the request expire?" : "Quan ha de caducar la sol·licitud?",
+ "Set a submission expiration date" : "Estableix una data de caducitat de l'enviament",
+ "Expiration date" : "Data de caducitat",
+ "Select a date" : "Seleccioneu una data",
+ "Your administrator has enforced a {count} days expiration policy." : "El vostre administrador ha aplicat una política de caducitat de {count} dies.",
+ "What password should be used for the request?" : "Quina contrasenya s'ha d'utilitzar per a la sol·licitud?",
+ "Set a password" : "Configura una contrasenya",
+ "Password" : "Contrasenya",
+ "Enter a valid password" : "Introduïu una contrasenya vàlida",
+ "Generate a new password" : "Genereu una nova contrasenya",
+ "Your administrator has enforced a password protection." : "El vostre administrador ha aplicat una protecció amb contrasenya.",
+ "Automatically copying failed, please copy the share link manually" : "S'ha produït un error en copiar automàticament; copieu l'enllaç de compartició manualment",
+ "Link copied" : "S'ha copiat l'enllaç",
+ "Email already added" : "El correu electrònic ja s'ha afegit",
+ "Invalid email address" : "L'adreça de correu no és vàlida",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["L'adreça de correu següent no és vàlida: {emails}","Les adreces de correu següents no son vàlides: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} adreça de correu ja s'ha afegit","{count} adreces de correu ja s’han afegit"],
+ "_{count} email address added_::_{count} email addresses added_" : ["S'ha afegit {count} adreça de correu","S’han afegit {count} adreces de correu"],
+ "You can now share the link below to allow people to upload files to your directory." : "Ara podeu compartir l'enllaç següent per permetre que la gent pugui pujar fitxers al vostre directori.",
+ "Share link" : "Comparteix un enllaç",
+ "Copy" : "Còpia",
+ "Send link via email" : "Envia l'enllaç per correu electrònic",
+ "Enter an email address or paste a list" : "Introduïu una adreça de correu electrònic o enganxeu una llista",
+ "Remove email" : "Elimina el correu electrònic",
+ "Select a destination" : "Seleccioneu una destinació",
+ "Select" : "Seleccioneu",
+ "What are you requesting?" : "Què esteu demanant?",
+ "Request subject" : "Assumpte de la sol·licitud",
+ "Birthday party photos, History assignment…" : "Fotografies de la festa d'aniversari, tasca d'història…",
+ "Where should these files go?" : "On haurien d'anar aquests fitxers?",
+ "Upload destination" : "Destinació de pujada",
+ "Revert to default" : "Torna al valor per defecte",
+ "The uploaded files are visible only to you unless you choose to share them." : "Els fitxers penjats només són visibles per a vosaltres tret que decidiu compartir-los.",
+ "Add a note" : "Afegeix una nota",
+ "Note for recipient" : "Nota al destinatari",
+ "Add a note to help people understand what you are requesting." : "Afegiu una nota per ajudar la gent a entendre el que esteu demanant.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Podeu afegir enllaços, data o qualsevol altra informació que ajudi el destinatari a entendre el que esteu demanant.",
+ "Close" : "Tanca",
+ "_Send email and close_::_Send {count} emails and close_" : ["Envia un correu electrònic i tanca","Envia {count} correus electrònics i tanca"],
+ "Please select a folder, you cannot share the root directory." : "Seleccioneu una carpeta, no podeu compartir el directori arrel.",
+ "File request created" : "S'ha creat la sol·licitud de fitxer",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["S'ha creat una sol·licitud de fitxer i s'ha enviat un correu electrònic","S’ha creat una sol·licitud de fitxer i s’han enviat {count} correus electrònics"],
+ "Error creating the share: {errorMessage}" : "S'ha produït un error en crear l'element compartit: {errorMessage}",
+ "Error creating the share" : "S'ha produït un error en crear l'element compartit",
+ "Error sending emails: {errorMessage}" : "Error en enviar correus electrònics: {errorMessage}",
+ "Error sending emails" : "S'ha produït un error en enviar correus electrònics",
+ "Create a file request" : "Crea una sol·licitud de fitxer",
+ "Collect files from others even if they do not have an account." : "Recull fitxers d'altres persones encara que no tinguin un compte.",
+ "To ensure you can receive files, verify you have enough storage available." : "Per assegurar-vos que podeu rebre fitxers, comproveu que teniu prou emmagatzematge disponible.",
+ "File request" : "Sol·licitud de fitxer",
+ "Previous step" : "Pas anterior",
+ "Cancel" : "Cancel·la",
+ "Cancel the file request creation" : "Cancel·la la creació de la sol·licitud del fitxer",
+ "Close without sending emails" : "Tanca sense enviar correus electrònics",
+ "Continue" : "Continuar",
"Error while toggling options" : "S'ha produït un error en canviar les opcions",
- "Set default folder for accepted shares" : "Estableix la carpeta per defecte per als elements compartits acceptats",
- "Reset" : "Reinicialitza",
- "Reset folder to system default" : "Reinicialitza la carpeta per defecte del sistema",
+ "Accept shares from other accounts and groups by default" : "Accepta els elements compartits d'altres comptes i grups per defecte",
"Choose a default folder for accepted shares" : "Trieu una carpeta per defecte per als elements compartits acceptats",
"Invalid path selected" : "El camí seleccionat no és vàlid",
"Unknown error" : "Error desconegut",
- "Open Sharing Details" : "Obre els detalls d'ús compartit",
+ "Set default folder for accepted shares" : "Estableix la carpeta per defecte per als elements compartits acceptats",
+ "Reset" : "Reinicialitza",
+ "Reset folder to system default" : "Reinicialitza la carpeta per defecte del sistema",
+ "Share Expiration" : "Fi de compartició",
"group" : "grup",
"conversation" : "conversa",
"remote" : "element remot",
"remote group" : "grup remot",
"guest" : "convidat",
+ "by {initiator}" : "per {initiator}",
"Shared with the group {user} by {owner}" : "{owner} l'ha compartit amb el grup {user}",
- "Shared with the conversation {user} by {owner}" : "{owner} l'ha compartit amb la conversa {usuari}",
+ "Shared with the conversation {user} by {owner}" : "{user} l'ha compartit amb la conversa {owner}",
"Shared with {user} by {owner}" : "{owner} l'ha compartit amb {user}",
+ "Open Sharing Details" : "Obre els detalls d'ús compartit",
"Added by {initiator}" : "{initiator} l'ha afegit",
"Via “{folder}”" : "Mitjançant «{folder}»",
"Unshare" : "Deixa de compartir",
- "Internal link" : "Enllaç intern",
"Cannot copy, please copy the link manually" : "No es pot copiar; copieu l'enllaç manualment",
- "Copy internal link to clipboard" : "Copia l'enllaç intern al porta-retalls",
- "Only works for people with access to this folder" : "Només funciona per a les persones amb accés a aquesta carpeta",
- "Only works for people with access to this file" : "Només funciona per a les persones amb accés a aquest fitxer",
- "Link copied" : "S'ha copiat l'enllaç",
- "Please enter the following required information before creating the share" : "Introduïu la informació obligatòria següent abans de crear l'element compartit",
- "Password protection (enforced)" : "Protecció amb contrasenya (obligatori)",
- "Password protection" : "Protecció amb contrasenya",
- "Enter a password" : "Introduïu una contrasenya",
- "Expiration date (enforced)" : "Data de venciment (obligatori)",
- "Enter a date" : "Introduïu una data",
- "Create share" : "Crea l'element compartit",
- "Cancel" : "Cancel·la",
- "Customize link" : "Personalitza l'enllaç",
- "Generate QR code" : "Genera un codi QR",
- "Add another link" : "Afegeix un altre enllaç",
- "Create a new share link" : "Crear un enllaç d'ús compartit nou",
+ "Copy internal link" : "Copia l'enllaç intern",
+ "Internal link" : "Enllaç intern",
"{shareWith} by {initiator}" : "{shareWith} per {initiator}",
"Shared via link by {initiator}" : "Compartit amb un enllaç per {initiator}",
+ "File request ({label})" : "Sol·licitud de fitxer ({label})",
"Mail share ({label})" : "Comparteix per correu ({label})",
"Share link ({label})" : "Comparteix un enllaç ({label})",
+ "Mail share" : "Compartició de correu",
"Share link ({index})" : "Comparteix un enllaç ({index})",
- "Share link" : "Comparteix un enllaç",
+ "Create public link" : "Crea un enllaç públic",
"Actions for \"{title}\"" : "Accions per a «{title}»",
- "Copy public link of \"{title}\" to clipboard" : "Copia l'enllaç públic de «{title}» al porta-retalls",
"Error, please enter proper password and/or expiration date" : "S'ha produït un error, introduïu la contrasenya o la data de caducitat adequada",
"Link share created" : "S'ha creat l'enllaç compartit",
"Error while creating the share" : "S'ha produït un error en crear l'element compartit",
+ "Please enter the following required information before creating the share" : "Introduïu la informació obligatòria següent abans de crear l'element compartit",
+ "Password protection (enforced)" : "Protecció amb contrasenya (obligatori)",
+ "Password protection" : "Protecció amb contrasenya",
+ "Enter a password" : "Introduïu una contrasenya",
+ "Enable link expiration (enforced)" : "Habilita la caducitat de l'enllaç (forzada)",
+ "Enable link expiration" : "Habilita la caducitat de l'enllaç",
+ "Enter expiration date (enforced)" : "Introduïu la data de caducitat (forzada)",
+ "Enter expiration date" : "Introduïu la data de caducitat",
+ "Create share" : "Crea l'element compartit",
+ "Customize link" : "Personalitza l'enllaç",
+ "Generate QR code" : "Genera un codi QR",
+ "Add another link" : "Afegeix un altre enllaç",
+ "Create a new share link" : "Crear un enllaç d'ús compartit nou",
"Quick share options, the current selected is \"{selectedOption}\"" : "Opcions ràpides d'ús compartit, l'opció seleccionada actualment és «{selectedOption}»",
"View only" : "Només visualitació",
"Can edit" : "Pot editar",
- "File drop" : "Pujada de fitxers",
"Custom permissions" : "Permisos personalitzats",
- "Search for share recipients" : "Cerqueu destinataris de l'element compartit",
- "No recommendations. Start typing." : "No hi ha cap recomanació. Comenceu a escriure.",
"Resharing is not allowed" : "No es permet l'ús compartit derivat",
"Name or email …" : "Nom o adreça electrònica…",
"Name, email, or Federated Cloud ID …" : "Nom, adreça electrònica o ID de núvol federat…",
"Searching …" : "S'està cercant…",
"No elements found." : "No s'ha trobat cap element.",
- "Search globally" : "Cerca globalment",
+ "Search everywhere" : "Cerca a tot arreu",
"Guest" : "Convidat",
"Group" : "Grup",
"Email" : "Adreça electrònica",
@@ -186,70 +245,89 @@ OC.L10N.register(
"Deck board" : "Tauler de Targetes",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "a {server}",
+ "Enter external recipients" : "Introduïu destinataris externs",
+ "Search for internal recipients" : "Cerca destinataris interns",
+ "Note from" : "Nota de",
+ "Note:" : "Nota:",
+ "File drop" : "Pujada de fitxers",
+ "Upload files to {foldername}." : "Pujada de fitxers a {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Per la pujada de fitxers, accepteu les condicions del servei.",
+ "View terms of service" : "Consulta els termes del servei",
+ "Terms of service" : "Condicions del servei",
+ "Share with email {email}" : "Comparteix amb l'adreça electrònica {email}",
+ "Share with group" : "Comparteix amb el grup",
+ "Share in conversation" : "Comparteix en la conversa",
+ "Share with {user} on remote server {server}" : "Comparteix amb {user} en el servidor remot {server}",
+ "Share with remote group" : "Comparteix amb el grup remot",
+ "Share with guest" : "Comparteix amb el convidat",
+ "Update share" : "Actualitza l'element compartit",
+ "Save share" : "Desa l'element compartit",
+ "Read" : "Lectura",
+ "Create" : "Crea",
+ "Edit" : "Edició",
+ "Share" : "Comparteix",
+ "Delete" : "Suprimeix",
+ "Password field cannot be empty" : "El camp de contrasenya no pot estar buit",
+ "Replace current password" : "Substitueix la contrasenya actual",
+ "Failed to generate a new token" : "No s'ha pogut generar un testimoni nou",
"Allow upload and editing" : "Permet la pujada i l'edició",
"Allow editing" : "Permet l'edició",
"Upload only" : "Només pujada",
"Advanced settings" : "Paràmetres avançats",
"Share label" : "Etiqueta d'ús compartit",
+ "Share link token" : "Comparteix el testimoni d'enllaç",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Estableix el testimoni d'enllaç de compartició pública en una cosa fàcil de recordar o genera un testimoni nou. No es recomana utilitzar un testimoni endevinable per a elements compartits que continguin informació sensible.",
+ "Generating…" : "Generant…",
+ "Generate new token" : "Genera un nou testimoni",
"Set password" : "Estableix una contrasenya",
- "Password" : "Contrasenya",
"Password expires {passwordExpirationTime}" : "La contrasenya caduca el {passwordExpirationTime}",
"Password expired" : "La contrasenya ha caducat",
"Video verification" : "Verificació de vídeo",
+ "Expiration date (enforced)" : "Data de venciment (obligatori)",
"Set expiration date" : "Estableix la data de caducitat",
- "Expiration date" : "Data de caducitat",
"Hide download" : "Amaga la baixada",
- "Allow download" : "Permet la baixada",
+ "Allow download and sync" : "Permet la baixada i la sincronització",
"Note to recipient" : "Nota per al destinatari",
"Enter a note for the share recipient" : "Introduïu una nota per al destinatari de l'element compartit",
- "Read" : "Lectura",
- "Create" : "Crea",
- "Edit" : "Edició",
- "Share" : "Comparteix",
+ "Show files in grid view" : "Mostra els fitxers a la vista de quadrícula",
"Delete share" : "Suprimeix l'element compartit",
- "Share with {userName}" : "Comparteix amb {userName}",
- "Share with email {email}" : "Comparteix amb l'adreça electrònica {email}",
- "Share with group" : "Comparteix amb el grup",
- "Share in conversation" : "Comparteix en la conversa",
- "Share with {user} on remote server {server}" : "Comparteix amb {user} en el servidor remot {server}",
- "Share with remote group" : "Comparteix amb el grup remot",
- "Share with guest" : "Comparteix amb el convidat",
- "Update share" : "Actualitza l'element compartit",
- "Save share" : "Desa l'element compartit",
"Others with access" : "Altres usuaris amb accés",
"No other accounts with access found" : "No s'ha trobat cap altre compte amb accés",
"Toggle list of others with access to this directory" : "Canvia la llista d'altres usuaris amb accés a aquesta carpeta",
"Toggle list of others with access to this file" : "Canvia la llista d'altres usuaris amb accés a aquest fitxer",
"Unable to fetch inherited shares" : "No s'han pogut obtenir els elements compartits heretats",
+ "Link shares" : "Enllaços de compartició",
+ "Shares" : "Elements compartits",
"Unable to load the shares list" : "No s'ha pogut carregar la llista d'elements compartits",
"Expires {relativetime}" : "Caduca {relativetime}",
"this share just expired." : "aquest element compartit acaba de caducar.",
"Shared with you by {owner}" : "{owner} l'ha compartit amb vós",
+ "Internal shares" : "Comparticions internes",
+ "Internal shares explanation" : "Explicació de comparticions internes",
+ "External shares" : "Comparticions externes",
+ "External shares explanation" : "Explicació de les comparticions externes",
+ "Additional shares" : "Comparticions addicionals",
+ "Additional shares explanation" : "Explicació addicional de les comparticions",
+ "Link to a file" : "Enllaç a un fitxer",
"_Accept share_::_Accept shares_" : ["Accepta l'element compartit","Accepta els elements compartits"],
"Open in Files" : "Obre a Fitxers",
"_Reject share_::_Reject shares_" : ["Rebutja l'element compartit","Rebutja els elements compartits"],
"_Restore share_::_Restore shares_" : ["Restaura l'element compartit","Restaura els elements compartits"],
"Shared" : "S'ha compartit",
- "Shared multiple times with different people" : "S'ha compartit diverses vegades amb persones diferents",
"Shared by {ownerDisplayName}" : "Compartit per {ownerDisplayName}",
- "Show sharing options" : "Mostra les opcions d'ús compartit",
- "Link to a file" : "Enllaç a un fitxer",
- "Error creating the share: {errorMessage}" : "S'ha produït un error en crear l'element compartit: {errorMessage}",
- "Error creating the share" : "S'ha produït un error en crear l'element compartit",
- "Error updating the share: {errorMessage}" : "S'ha produït un error en actualitzar l'element compartit: {errorMessage}",
- "Error updating the share" : "S'ha produït un error en actualitzar l'element compartit",
- "File \"{path}\" has been unshared" : "El fitxer «{path}» s'ha deixat de compartir",
- "Folder \"{path}\" has been unshared" : "La carpeta «{path}» s'ha deixat de compartir",
- "Share {propertyName} saved" : "S'ha desat l'element compartit {propertyName}",
- "Shared by" : "Compartit per",
- "Shared with" : "S'ha compartit amb",
- "Password created successfully" : "La contrasenya s'ha creat correctament",
- "Error generating password from password policy" : "S'ha produït un error en generar la contrasenya a partir de la política de contrasenyes",
- "Shared with you and the group {group} by {owner}" : "{owner} l'ha compartit amb vós i amb el grup {group}",
- "Shared with you and {circle} by {owner}" : "{owner} l'ha compartit amb vós i amb el cercle {circle}",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} l'ha compartit amb vós i amb la conversa {conversation}",
- "Shared with you in a conversation by {owner}" : "{owner} l'ha compartit amb vós en una conversa",
- "Shares" : "Elements compartits",
+ "Shared multiple times with different people" : "S'ha compartit diverses vegades amb persones diferents",
+ "Sharing options" : "Opcions per a compartir",
+ "Shared with others" : "Compartit amb altres",
+ "Create file request" : "Crea una sol·licitud de fitxer",
+ "Upload files to {foldername}" : "Pujada de fitxers a {foldername}.",
+ "Public file share" : "Compartició de fitxer pública",
+ "Publicly shared file." : "Fitxer compartit públicament.",
+ "No file" : "Cap fitxer",
+ "The file shared with you will show up here" : "El fitxer compartit amb tu es mostrarà aquí",
+ "Public share" : "Compartició pública",
+ "Publicly shared files." : "Fitxers compartits públicament.",
+ "No files" : "No hi ha fitxers",
+ "Files and folders shared with you will show up here" : "Els fitxers i les carpetes compartides amb tu es mostraran aquí",
"Overview of shared files." : "Informació general dels fitxers compartits.",
"No shares" : "No hi ha cap element compartit",
"Files and folders you shared or have been shared with you will show up here" : "Els fitxers i les carpetes que compartiu o s'hagin compartit amb vós es mostraran aquí",
@@ -257,7 +335,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Llista de fitxers que s'han compartit amb vós.",
"Nothing shared with you yet" : "Encara no s'ha compartit res amb vós",
"Files and folders others shared with you will show up here" : "Els fitxers i les carpetes que s'hagin compartit amb vós es mostraran aquí",
- "Shared with others" : "Compartit amb altres",
"List of files that you shared with others." : "Llista de fitxers que heu compartit amb altres persones.",
"Nothing shared yet" : "Encara no heu compartit res",
"Files and folders you shared will show up here" : "Els fitxers i les carpetes que compartiu es mostraran aquí",
@@ -265,57 +342,86 @@ OC.L10N.register(
"List of files that are shared by link." : "Llista de fitxers compartits mitjançant un enllaç.",
"No shared links" : "No hi ha cap enllaç compartit",
"Files and folders you shared by link will show up here" : "Els fitxers i les carpetes que compartiu amb un enllaç es mostraran aquí",
+ "File requests" : "Fitxers sol·licitats",
+ "List of file requests." : "Llista de fitxers sol·licitats.",
+ "No file requests" : "No hi ha sol·licituds de fitxer",
+ "File requests you have created will show up here" : "Les sol·licituds de fitxers que hàgiu creat es mostraran aquí",
"Deleted shares" : "Suprimit",
"List of shares you left." : "Llista d'elements compartits que heu deixat.",
"No deleted shares" : "No hi ha cap element compartit suprimit",
"Shares you have left will show up here" : "Els elements compartits que deixeu es mostraran aquí",
- "Pending shares" : "Pendent",
+ "Pending shares" : "Comparticions pendents",
"List of unapproved shares." : "Llista d'elements compartits no aprovats.",
"No pending shares" : "No hi ha cap element compartit pendent",
"Shares you have received but not approved will show up here" : "Els elements compartits que rebeu però no aproveu es mostraran aquí",
+ "Error updating the share: {errorMessage}" : "S'ha produït un error en actualitzar l'element compartit: {errorMessage}",
+ "Error updating the share" : "S'ha produït un error en actualitzar l'element compartit",
+ "File \"{path}\" has been unshared" : "El fitxer «{path}» s'ha deixat de compartir",
+ "Folder \"{path}\" has been unshared" : "La carpeta «{path}» s'ha deixat de compartir",
+ "Could not update share" : "No s'ha pogut actualitzar la compartició",
+ "Share saved" : "Compartició desada",
+ "Share expiry date saved" : "S'ha desat la data de caducitat de la compartició",
+ "Share hide-download state saved" : "S'ha desat l'estat de baixada oculta compartida",
+ "Share label saved" : "S'ha desat l'etiqueta de compartició",
+ "Share note for recipient saved" : "S’ha desat la nota de compartició per al destinatari",
+ "Share password saved" : "S’ha desat la contrasenya de compartició",
+ "Share permissions saved" : "S’han desat els permisos de compartició",
+ "Upload files to {folder}" : "Pujada de fitxers a {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha compartit una carpeta amb tu.",
+ "Shared by" : "Compartit per",
+ "Shared with" : "S'ha compartit amb",
+ "Password created successfully" : "La contrasenya s'ha creat correctament",
+ "Error generating password from password policy" : "S'ha produït un error en generar la contrasenya a partir de la política de contrasenyes",
+ "Shared with you and the group {group} by {owner}" : "{owner} l'ha compartit amb vós i amb el grup {group}",
+ "Shared with you and {circle} by {owner}" : "{owner} l'ha compartit amb vós i amb el cercle {circle}",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} l'ha compartit amb vós i amb la conversa {conversation}",
+ "Shared with you in a conversation by {owner}" : "{owner} l'ha compartit amb vós en una conversa",
+ "Share not found" : "No s'ha trobat la compartició",
+ "Back to %s" : "Torna a %s",
+ "Add to your Nextcloud" : "Afegeix al Nextcloud",
+ "Waiting…" : "S'està esperant…",
+ "error" : "error",
+ "finished" : "ha finalitzat",
+ "This will stop your current uploads." : "Això aturarà les pujades actuals.",
+ "Move or copy" : "Mou o copia",
+ "You can upload into this folder" : "Podeu pujar elements a aquesta carpeta",
+ "Show list view" : "Mostra la visualització de llista",
+ "Show grid view" : "Mostra la visualització de graella",
+ "No compatible server found at {remote}" : "No s'ha trobat cap servidor compatible a {remote}",
+ "Invalid server URL" : "L'URL del servidor no és vàlida",
+ "Failed to add the public link to your Nextcloud" : "No s'ha pogut afegir l'enllaç públic al vostre Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "No teniu permès editar els elements compartits d'enllaços dels que no sigueu propietaris",
+ "Download all files" : "Baixa tots els fitxers",
+ "Link copied to clipboard" : "Enllaç copiat al porta-retalls",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Ja s'ha afegit 1 adreça de correu","Ja s’han afegit {count} adreces de correu"],
+ "_1 email address added_::_{count} email addresses added_" : ["S'ha afegit 1 adreça de correu","S’han afegit {count} adreces de correu"],
+ "Copy to clipboard" : "Copia-ho al porta-retalls",
+ "Copy internal link to clipboard" : "Copia l'enllaç intern al porta-retalls",
+ "Only works for people with access to this folder" : "Només funciona per a les persones amb accés a aquesta carpeta",
+ "Only works for people with access to this file" : "Només funciona per a les persones amb accés a aquest fitxer",
+ "Copy public link of \"{title}\" to clipboard" : "Copia l'enllaç públic de «{title}» al porta-retalls",
+ "Search globally" : "Cerca globalment",
+ "Search for share recipients" : "Cerqueu destinataris de l'element compartit",
+ "No recommendations. Start typing." : "No hi ha cap recomanació. Comenceu a escriure.",
+ "To upload files, you need to provide your name first." : "Per la pujada de fitxers, primer heu de proporcionar el vostre nom.",
+ "Enter your name" : "Introdueix el teu nom",
+ "Submit name" : "Envia el nom",
+ "Share with {userName}" : "Comparteix amb {userName}",
+ "Show sharing options" : "Mostra les opcions d'ús compartit",
"Share note" : "Nota de l'element compartit",
"Upload files to %s" : "Puja fitxers a %s",
+ "%s shared a folder with you." : "%s ha compartit una carpeta amb tu.",
"Note" : "Nota",
"Select or drop files" : "Seleccioneu o deixeu anar fitxers",
"Uploading files" : "S'estan pujant els fitxers",
"Uploaded files:" : "Fitxers pujats:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Si pugeu fitxers, accepteu les %1$scondicions del servei%2$s.",
- "Add to your Nextcloud" : "Afegeix al Nextcloud",
- "Files and folders others share with you will show up here" : "Els fitxers i les carpetes que altres usuaris comparteixin amb vós es mostraran aquí",
- "Files and folders you share will show up here" : "Els fitxers i les carpetes que compartiu es mostraran aquí",
- "Files and folders you share by link will show up here" : "Els fitxers i les carpetes que compartiu amb un enllaç es mostraran aquí",
- "Shares you deleted will show up here" : "Els elements compartits que heu suprimit es mostraran aquí",
- "Shares you have received but not confirmed will show up here" : "Els elements compartits que heu rebut, però que no heu confirmat es mostraran aquí",
- "Shares will show up here" : "Els elements compartits es mostraran aquí",
- "Restore" : "Restaura",
- "Something happened. Unable to restore the share." : "S'ha produït un error. No es pot restaurar l'element compartit.",
- "Something happened. Unable to accept the share." : "S'ha produït un error. No es pot acceptar l'element compartit.",
- "Something happened. Unable to reject the share." : "S'ha produït un error. No es pot rebutjar l'element compartit.",
- "No expiration date set" : "No s'ha establert cap data de caducitat",
- "Please specify a valid user" : "Especifiqueu un usuari vàlid",
- "Please specify a valid federated user ID" : "Especifiqueu un ID d'usuari federat vàlid",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Aquesta aplicació permet als usuaris compartir fitxers en el Nextcloud. Si està habilitada, l'administrador pot triar quins grups poden compartir fitxers. Els usuaris amb permís poden compartir fitxers i carpetes amb altres usuaris i grups del Nextcloud. A més, si l'administrador activa la característica de compartir enllaços, es poden utilitzar enllaços externs per a compartir fitxers amb altres usuaris fora del Nextcloud. Els administradors també poden aplicar contrasenyes, dates de caducitat i habilitar l'ús compartit entre servidors mitjançant enllaços d'ús compartit, així com l'ús compartit des de dispositius mòbils.\nSi inhabiliteu la característica, se suprimiran els fitxers i les carpetes compartides del servidor per a tots els destinataris i també per als clients de sincronització i les aplicacions per a mòbils. Podeu trobar més informació en la documentació del Nextcloud.",
- "Accept user and group shares by default" : "Accepta els elements compartits d'usuari i en grup per defecte",
- "Read only" : "Només de lectura",
- "File drop (upload only)" : "Tramesa de fitxers (només pujada)",
- "Upload" : "Pujada",
- "Bundled permissions" : "Permisos agrupats",
- "Only works for users with access to this folder" : "Només funciona per als usuaris amb accés a aquesta carpeta",
- "Only works for users with access to this file" : "Només funciona per als usuaris amb accés a aquest fitxer",
- "Circle" : "Cercle",
- "Update" : "Actualitza",
- "Share with " : "Comparteix amb",
- "No other users with access found" : "No s'ha trobat cap altre usuari amb accés",
- "No entries found in this folder" : "No hi ha cap entrada en aquesta carpeta",
"Name" : "Nom",
- "Share time" : "Temps d'ús compartit",
- "Sorry, this link does not seem to work anymore." : "Sembla que aquest enllaç ja no funciona.",
- "Reasons might be:" : "Les raons podrien ser:",
- "the item was removed" : "S'ha suprimit l'element.",
- "the link expired" : "L'enllaç ha caducat.",
- "sharing is disabled" : "S'ha inhabilitat l'ús compartit.",
- "For more info, please ask the person who sent this link." : "Per a més informació, contacteu amb qui us hagi enviat l'enllaç.",
- "Share with remote" : "Comparteix en remot",
- "Share with" : "Comparteix amb"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utilitzeu aquest mètode per compartició de fitxers amb persones o equips de la vostra organització. Si el destinatari ja té accés a la compartició però no la pot localitzar, podeu enviar-li l'enllaç de compartició intern per accedir-hi fàcilment.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Utilitzeu aquest mètode per compartir fitxers amb persones o organitzacions fora de la vostra organització. Els fitxers i les carpetes es poden compartir mitjançant enllaços compartits públics i adreces de correu electrònic. També podeu compartir amb altres comptes de Nextcloud allotjats en diferents instàncies mitjançant el seu ID de núvol federat.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Comparticions que no formen part de comparticions internes o externes. Això pot ser compartit des d'aplicacions o d'altres fonts.",
+ "Share with accounts and teams" : "Comparteix amb comptes i equips",
+ "Email, federated cloud id" : "Correu, identificador del núvol federat",
+ "Filename must not be empty." : "El nom del fitxer no ha d'estar buit."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/ca.json b/apps/files_sharing/l10n/ca.json
index be1fac3a482..cedf13e7f22 100644
--- a/apps/files_sharing/l10n/ca.json
+++ b/apps/files_sharing/l10n/ca.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "S'està esperant…",
- "error" : "error",
- "finished" : "ha finalitzat",
- "This will stop your current uploads." : "Això aturarà les pujades actuals.",
- "Move or copy" : "Mou o copia",
- "Download" : "Baixa",
- "Delete" : "Suprimeix",
- "You can upload into this folder" : "Podeu pujar elements a aquesta carpeta",
- "Terms of service" : "Condicions del servei",
- "Show list view" : "Mostra la visualització de llista",
- "Show grid view" : "Mostra la visualització de graella",
- "No compatible server found at {remote}" : "No s'ha trobat cap servidor compatible a {remote}",
- "Invalid server URL" : "L'URL del servidor no és vàlida",
- "Failed to add the public link to your Nextcloud" : "No s'ha pogut afegir l'enllaç públic al vostre Nextcloud",
"File shares" : "Fitxers compartits",
"Downloaded via public link" : "S'ha baixat mitjançant un enllaç públic",
"Downloaded by {email}" : "{email} l'ha baixat",
@@ -21,7 +7,7 @@
"Shared with group {group}" : "S'ha compartit amb el grup {group}",
"Removed share for group {group}" : "S'ha deixat de compartir amb el grup {group}",
"{actor} shared with group {group}" : "{actor} l'ha compartit amb el grup {group}",
- "{actor} removed share for group {group}" : "{actor} l'ha deixat de compartir amb el grup {grup}",
+ "{actor} removed share for group {group}" : "{actor} l'ha deixat de compartir amb el grup {group}",
"Share for group {group} expired" : "Ha caducat l'ús compartit per al grup {group}",
"You shared {file} with group {group}" : "Heu compartit {file} amb el grup {group}",
"You removed group {group} from {file}" : "Heu suprimit el grup {group} de {file}",
@@ -40,17 +26,17 @@
"{actor} shared {file} as public link" : "{actor} ha compartit {file} amb un enllaç públic",
"{actor} removed public link for {file}" : "{actor} ha suprimit l'enllaç públic per a {file}",
"Public link of {actor} for {file} expired" : "L'enllaç públic de {actor} per a {file} ha caducat",
- "{user} accepted the remote share" : "{usuari} ha acceptat l'element compartit remot",
- "{user} declined the remote share" : "{usuari} ha rebutjat l'element compartit remot",
+ "{user} accepted the remote share" : "{user} ha acceptat l'element compartit remot",
+ "{user} declined the remote share" : "{user} ha rebutjat l'element compartit remot",
"You received a new remote share {file} from {user}" : "Heu rebut l'element compartit nou {file} de {user}",
- "{user} accepted the remote share of {file}" : "{usuari} ha acceptat l'element compartit remot {file}",
- "{user} declined the remote share of {file}" : "{usuari} ha rebutjat l'element compartit remot {file}",
+ "{user} accepted the remote share of {file}" : "{user} ha acceptat l'element compartit remot {file}",
+ "{user} declined the remote share of {file}" : "{user} ha rebutjat l'element compartit remot {file}",
"{user} unshared {file} from you" : "{user} ha deixat de compartir {file} amb vós",
"Shared with {user}" : "S'ha compartit amb {user}",
"Removed share for {user}" : "S'ha deixat de compartir amb {user}",
"You removed yourself" : "Us heu suprimit",
"{actor} removed themselves" : "{actor} s'ha suprimit",
- "{actor} shared with {user}" : "{actor} l'ha compartit amb {usuari}",
+ "{actor} shared with {user}" : "{actor} l'ha compartit amb {user}",
"{actor} removed share for {user}" : "{actor} l'ha deixat de compartir amb {user}",
"Shared by {actor}" : "{actor} l'ha compartit",
"{actor} removed share" : "{actor} l'ha deixat de compartir",
@@ -60,15 +46,16 @@
"You removed {user} from {file}" : "Heu suprimit {user} de {file}",
"You removed yourself from {file}" : "Us heu suprimit de {file}",
"{actor} removed themselves from {file}" : "{actor} s'ha suprimit de {file}",
- "{actor} shared {file} with {user}" : "{actor} ha compartit {file} amb {usuari}",
+ "{actor} shared {file} with {user}" : "{actor} ha compartit {file} amb {user}",
"{actor} removed {user} from {file}" : "{actor} ha suprimit {user} de {file}",
"{actor} shared {file} with you" : "{actor} ha compartit {file} amb vós",
"{actor} removed you from the share named {file}" : "{actor} us ha suprimit de l'element compartit {file}",
"Share for file {file} with {user} expired" : "Ha caducat l'ús compartit del fitxer {file} per a {user}",
"Share for file {file} expired" : "Ha caducat l'ús compartit per al fitxer {file}",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "S'ha <strong>baixat</strong> un fitxer o una carpeta compartit per correu o per enllaç públic",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Els fitxers s'han <strong>pujat</strong> a una carpeta compartida per correu o per enllaç públic",
"A file or folder was shared from <strong>another server</strong>" : "S'ha compartit un fitxer o una carpeta d'un <strong>altre servidor</strong>",
- "Files" : "Fitxers",
+ "Sharing" : "Ús compartit",
"A file or folder has been <strong>shared</strong>" : "S'ha <strong>compartit</strong> un fitxer o una carpeta",
"Shared link" : "Enllaç compartit",
"Wrong share ID, share does not exist" : "L'ID de l'element compartit és incorrecte, l'element compartit no existeix",
@@ -76,34 +63,46 @@
"Please specify a file or folder path" : "Especifiqueu un camí de fitxer o carpeta",
"Wrong path, file/folder does not exist" : "El camí és incorrecte, el fitxer o la carpeta no existeix",
"Could not create share" : "No s'ha pogut crear l'element compartit",
- "Invalid permissions" : "Els permisos no són vàlids",
- "Invalid date, date format must be YYYY-MM-DD" : "La data no és vàlida, el format de la data ha de ser AAAA-MM-DD",
"Please specify a valid account to share with" : "Especifiqueu un compte vàlid amb qui compartir",
"Group sharing is disabled by the administrator" : "L'administrador ha inhabilitat l'ús compartit en grup",
"Please specify a valid group" : "Especifiqueu un grup vàlid",
"Public link sharing is disabled by the administrator" : "L'administrador ha inhabilitat l'ús compartit amb enllaç públic",
- "Public upload disabled by the administrator" : "L'administrador ha inhabilitat la pujada pública",
- "Public upload is only possible for publicly shared folders" : "La pujada pública només és possible per a carpetes compartides públicament",
+ "Please specify a valid email address" : "Si us plalu, especifiqueu una adreça de correu electrònic vàlida",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "No s'ha pogut compartir %s enviant la contrasenya per Converses del Nextcloud perquè l'aplicació Converses del Nextcloud no està habilitada",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "No s'ha pogut compartir %1$s perquè el rerefons no permet elements compartits de tipus %2$s",
"Please specify a valid federated account ID" : "Especifiqueu un ID de compte federat vàlid",
"Please specify a valid federated group ID" : "Especifiqueu un ID de grup federat vàlid",
- "You cannot share to a Circle if the app is not enabled" : "No podeu compartir-ho en un cercle si l'aplicació no està habilitada",
- "Please specify a valid circle" : "Especifiqueu un cercle vàlid",
- "Sharing %s failed because the back end does not support room shares" : "No s'ha pogut compartir %s perquè el rerefons no permet l'ús compartit en sales",
- "Sharing %s failed because the back end does not support ScienceMesh shares" : "No s'ha pogut compartir %s perquè el rerefons no permet l'ús compartit amb ScienceMesh",
+ "You cannot share to a Team if the app is not enabled" : "No podeu compartir amb un Equip si l'aplicació no està habilitada",
+ "Please specify a valid team" : "Especifiqueu un equip vàlid",
+ "Sharing %s failed because the back end does not support room shares" : "No s'ha pogut compartir %s perquè el rerefons no permet l'ús sales compartides",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "No s'ha pogut compartir %s perquè el rerefons no permet elements compartits de ScienceMesh",
"Unknown share type" : "Tipus d'element compartit desconegut",
"Not a directory" : "No és una carpeta",
"Could not lock node" : "No s'ha pogut blocar el node",
- "Could not lock path" : "No s'ha pogut blocar la ruta d'accés",
- "Wrong or no update parameter given" : "S'ha proporcionat un paràmetre d'actualització incorrecte o no s'ha proporcionat",
+ "Public upload is only possible for publicly shared folders" : "La pujada pública només és possible per a carpetes compartides públicament",
"Share must at least have READ or CREATE permissions" : "L'element compartit ha de tenir almenys permisos de lectura o creació",
"Share must have READ permission if UPDATE or DELETE permission is set" : "L'element compartit ha de tenir permís de lectura si s'ha establert permís d'actualització o supressió",
+ "Public upload disabled by the administrator" : "L'administrador ha inhabilitat la pujada pública",
+ "Could not lock path" : "No s'ha pogut blocar la ruta d'accés",
+ "no sharing rights on this item" : "no hi ha drets per compartir aquest element",
+ "You are not allowed to edit incoming shares" : "No teniu permès editar els recursos compartits entrants",
+ "Wrong or no update parameter given" : "S'ha proporcionat un paràmetre d'actualització incorrecte o no s'ha proporcionat",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "No s'ha pogut enviar la contrasenya per Converses del Nextcloud per a compartir un fitxer o una carpeta perquè l'aplicació Converses del Nextcloud no està habilitada.",
+ "Custom share link tokens have been disabled by the administrator" : "L'administrador ha desactivat els testimonis d'enllaços de compartició personalitzats",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Els testimonis han de contenir almenys 1 caràcter i només poden contenir lletres, números o un guió",
+ "Invalid date. Format must be YYYY-MM-DD" : "Data no vàlida. El format ha de ser AAAA-MM-DD",
+ "No sharing rights on this item" : "No hi ha drets per compartir aquest element",
+ "Invalid share attributes provided: \"%s\"" : "S'han proporcionat atributs compartits no vàlids: \"%s\"",
+ "You are not allowed to send mail notifications" : "No teniu permès enviar notificacions per correu",
+ "No mail notification configured for this share type" : "No s'ha configurat cap notificació de correu per a aquest tipus de compartició",
+ "Wrong password" : "Contrasenya incorrecta",
+ "Error while sending mail notification" : "S'ha produït un error en enviar la notificació per correu",
+ "Failed to generate a unique token" : "No s'ha pogut generar un testimoni únic",
+ "This share does not exist or is no longer available" : "Aquesta compartició no existeix o ja no està disponible",
"shared by %s" : "compartit per %s",
- "Download all files" : "Baixa tots els fitxers",
- "Direct link" : "Enllaç directe",
+ "Download" : "Baixa",
"Add to your %s" : "Afegeix al %s",
+ "Direct link" : "Enllaç directe",
"Share API is disabled" : "L'API d'ús compartit està inhabilitada",
"File sharing" : "Fitxers compartits",
"Share will expire tomorrow" : "L'ús compartit caducarà demà",
@@ -112,70 +111,130 @@
"You received {share} to group {group} as a share by {user}" : "Heu rebut l'element compartit {share} del grup {group} de {user}",
"Accept" : "Accepta",
"Decline" : "Rebutja",
+ "Remember to upload the files to %s" : "Recordeu pujar els fitxers a %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Us recordem que encara no heu pujat cap fitxer a la carpeta compartida.",
+ "Open \"%s\"" : "Obre \"%s\"",
"This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Aquesta aplicació permet a les persones compartir fitxers en el Nextcloud. Si està habilitada, l'administrador pot triar quins grups poden compartir fitxers. Les persones amb permís poden compartir fitxers i carpetes amb altres comptes i grups del Nextcloud. A més, si l'administrador activa la característica de compartir enllaços, es poden utilitzar enllaços externs per a compartir fitxers amb altres comptes fora del Nextcloud. Els administradors també poden aplicar contrasenyes, dates de caducitat i habilitar l'ús compartit entre servidors mitjançant enllaços d'ús compartit, així com l'ús compartit des de dispositius mòbils.\nSi inhabiliteu la característica, se suprimiran els fitxers i les carpetes compartides del servidor per a tots els destinataris i també per als clients de sincronització i les aplicacions per a mòbils. Podeu trobar més informació en la documentació del Nextcloud.",
- "Sharing" : "Ús compartit",
- "Accept shares from other accounts and groups by default" : "Accepta els elements compartits d'altres comptes i grups per defecte",
+ "People" : "Persones",
+ "Filter accounts" : "Filtra comptes",
+ "The request will expire on {date} at midnight and will be password protected." : "La sol·licitud caducarà el dia {date} a la mitjanit i estarà protegida amb contrasenya.",
+ "The request will expire on {date} at midnight." : "La sol·licitud caducarà el dia {date} a la mitjanit.",
+ "The request will be password protected." : "La sol·licitud estarà protegida amb contrasenya.",
+ "When should the request expire?" : "Quan ha de caducar la sol·licitud?",
+ "Set a submission expiration date" : "Estableix una data de caducitat de l'enviament",
+ "Expiration date" : "Data de caducitat",
+ "Select a date" : "Seleccioneu una data",
+ "Your administrator has enforced a {count} days expiration policy." : "El vostre administrador ha aplicat una política de caducitat de {count} dies.",
+ "What password should be used for the request?" : "Quina contrasenya s'ha d'utilitzar per a la sol·licitud?",
+ "Set a password" : "Configura una contrasenya",
+ "Password" : "Contrasenya",
+ "Enter a valid password" : "Introduïu una contrasenya vàlida",
+ "Generate a new password" : "Genereu una nova contrasenya",
+ "Your administrator has enforced a password protection." : "El vostre administrador ha aplicat una protecció amb contrasenya.",
+ "Automatically copying failed, please copy the share link manually" : "S'ha produït un error en copiar automàticament; copieu l'enllaç de compartició manualment",
+ "Link copied" : "S'ha copiat l'enllaç",
+ "Email already added" : "El correu electrònic ja s'ha afegit",
+ "Invalid email address" : "L'adreça de correu no és vàlida",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["L'adreça de correu següent no és vàlida: {emails}","Les adreces de correu següents no son vàlides: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} adreça de correu ja s'ha afegit","{count} adreces de correu ja s’han afegit"],
+ "_{count} email address added_::_{count} email addresses added_" : ["S'ha afegit {count} adreça de correu","S’han afegit {count} adreces de correu"],
+ "You can now share the link below to allow people to upload files to your directory." : "Ara podeu compartir l'enllaç següent per permetre que la gent pugui pujar fitxers al vostre directori.",
+ "Share link" : "Comparteix un enllaç",
+ "Copy" : "Còpia",
+ "Send link via email" : "Envia l'enllaç per correu electrònic",
+ "Enter an email address or paste a list" : "Introduïu una adreça de correu electrònic o enganxeu una llista",
+ "Remove email" : "Elimina el correu electrònic",
+ "Select a destination" : "Seleccioneu una destinació",
+ "Select" : "Seleccioneu",
+ "What are you requesting?" : "Què esteu demanant?",
+ "Request subject" : "Assumpte de la sol·licitud",
+ "Birthday party photos, History assignment…" : "Fotografies de la festa d'aniversari, tasca d'història…",
+ "Where should these files go?" : "On haurien d'anar aquests fitxers?",
+ "Upload destination" : "Destinació de pujada",
+ "Revert to default" : "Torna al valor per defecte",
+ "The uploaded files are visible only to you unless you choose to share them." : "Els fitxers penjats només són visibles per a vosaltres tret que decidiu compartir-los.",
+ "Add a note" : "Afegeix una nota",
+ "Note for recipient" : "Nota al destinatari",
+ "Add a note to help people understand what you are requesting." : "Afegiu una nota per ajudar la gent a entendre el que esteu demanant.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Podeu afegir enllaços, data o qualsevol altra informació que ajudi el destinatari a entendre el que esteu demanant.",
+ "Close" : "Tanca",
+ "_Send email and close_::_Send {count} emails and close_" : ["Envia un correu electrònic i tanca","Envia {count} correus electrònics i tanca"],
+ "Please select a folder, you cannot share the root directory." : "Seleccioneu una carpeta, no podeu compartir el directori arrel.",
+ "File request created" : "S'ha creat la sol·licitud de fitxer",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["S'ha creat una sol·licitud de fitxer i s'ha enviat un correu electrònic","S’ha creat una sol·licitud de fitxer i s’han enviat {count} correus electrònics"],
+ "Error creating the share: {errorMessage}" : "S'ha produït un error en crear l'element compartit: {errorMessage}",
+ "Error creating the share" : "S'ha produït un error en crear l'element compartit",
+ "Error sending emails: {errorMessage}" : "Error en enviar correus electrònics: {errorMessage}",
+ "Error sending emails" : "S'ha produït un error en enviar correus electrònics",
+ "Create a file request" : "Crea una sol·licitud de fitxer",
+ "Collect files from others even if they do not have an account." : "Recull fitxers d'altres persones encara que no tinguin un compte.",
+ "To ensure you can receive files, verify you have enough storage available." : "Per assegurar-vos que podeu rebre fitxers, comproveu que teniu prou emmagatzematge disponible.",
+ "File request" : "Sol·licitud de fitxer",
+ "Previous step" : "Pas anterior",
+ "Cancel" : "Cancel·la",
+ "Cancel the file request creation" : "Cancel·la la creació de la sol·licitud del fitxer",
+ "Close without sending emails" : "Tanca sense enviar correus electrònics",
+ "Continue" : "Continuar",
"Error while toggling options" : "S'ha produït un error en canviar les opcions",
- "Set default folder for accepted shares" : "Estableix la carpeta per defecte per als elements compartits acceptats",
- "Reset" : "Reinicialitza",
- "Reset folder to system default" : "Reinicialitza la carpeta per defecte del sistema",
+ "Accept shares from other accounts and groups by default" : "Accepta els elements compartits d'altres comptes i grups per defecte",
"Choose a default folder for accepted shares" : "Trieu una carpeta per defecte per als elements compartits acceptats",
"Invalid path selected" : "El camí seleccionat no és vàlid",
"Unknown error" : "Error desconegut",
- "Open Sharing Details" : "Obre els detalls d'ús compartit",
+ "Set default folder for accepted shares" : "Estableix la carpeta per defecte per als elements compartits acceptats",
+ "Reset" : "Reinicialitza",
+ "Reset folder to system default" : "Reinicialitza la carpeta per defecte del sistema",
+ "Share Expiration" : "Fi de compartició",
"group" : "grup",
"conversation" : "conversa",
"remote" : "element remot",
"remote group" : "grup remot",
"guest" : "convidat",
+ "by {initiator}" : "per {initiator}",
"Shared with the group {user} by {owner}" : "{owner} l'ha compartit amb el grup {user}",
- "Shared with the conversation {user} by {owner}" : "{owner} l'ha compartit amb la conversa {usuari}",
+ "Shared with the conversation {user} by {owner}" : "{user} l'ha compartit amb la conversa {owner}",
"Shared with {user} by {owner}" : "{owner} l'ha compartit amb {user}",
+ "Open Sharing Details" : "Obre els detalls d'ús compartit",
"Added by {initiator}" : "{initiator} l'ha afegit",
"Via “{folder}”" : "Mitjançant «{folder}»",
"Unshare" : "Deixa de compartir",
- "Internal link" : "Enllaç intern",
"Cannot copy, please copy the link manually" : "No es pot copiar; copieu l'enllaç manualment",
- "Copy internal link to clipboard" : "Copia l'enllaç intern al porta-retalls",
- "Only works for people with access to this folder" : "Només funciona per a les persones amb accés a aquesta carpeta",
- "Only works for people with access to this file" : "Només funciona per a les persones amb accés a aquest fitxer",
- "Link copied" : "S'ha copiat l'enllaç",
- "Please enter the following required information before creating the share" : "Introduïu la informació obligatòria següent abans de crear l'element compartit",
- "Password protection (enforced)" : "Protecció amb contrasenya (obligatori)",
- "Password protection" : "Protecció amb contrasenya",
- "Enter a password" : "Introduïu una contrasenya",
- "Expiration date (enforced)" : "Data de venciment (obligatori)",
- "Enter a date" : "Introduïu una data",
- "Create share" : "Crea l'element compartit",
- "Cancel" : "Cancel·la",
- "Customize link" : "Personalitza l'enllaç",
- "Generate QR code" : "Genera un codi QR",
- "Add another link" : "Afegeix un altre enllaç",
- "Create a new share link" : "Crear un enllaç d'ús compartit nou",
+ "Copy internal link" : "Copia l'enllaç intern",
+ "Internal link" : "Enllaç intern",
"{shareWith} by {initiator}" : "{shareWith} per {initiator}",
"Shared via link by {initiator}" : "Compartit amb un enllaç per {initiator}",
+ "File request ({label})" : "Sol·licitud de fitxer ({label})",
"Mail share ({label})" : "Comparteix per correu ({label})",
"Share link ({label})" : "Comparteix un enllaç ({label})",
+ "Mail share" : "Compartició de correu",
"Share link ({index})" : "Comparteix un enllaç ({index})",
- "Share link" : "Comparteix un enllaç",
+ "Create public link" : "Crea un enllaç públic",
"Actions for \"{title}\"" : "Accions per a «{title}»",
- "Copy public link of \"{title}\" to clipboard" : "Copia l'enllaç públic de «{title}» al porta-retalls",
"Error, please enter proper password and/or expiration date" : "S'ha produït un error, introduïu la contrasenya o la data de caducitat adequada",
"Link share created" : "S'ha creat l'enllaç compartit",
"Error while creating the share" : "S'ha produït un error en crear l'element compartit",
+ "Please enter the following required information before creating the share" : "Introduïu la informació obligatòria següent abans de crear l'element compartit",
+ "Password protection (enforced)" : "Protecció amb contrasenya (obligatori)",
+ "Password protection" : "Protecció amb contrasenya",
+ "Enter a password" : "Introduïu una contrasenya",
+ "Enable link expiration (enforced)" : "Habilita la caducitat de l'enllaç (forzada)",
+ "Enable link expiration" : "Habilita la caducitat de l'enllaç",
+ "Enter expiration date (enforced)" : "Introduïu la data de caducitat (forzada)",
+ "Enter expiration date" : "Introduïu la data de caducitat",
+ "Create share" : "Crea l'element compartit",
+ "Customize link" : "Personalitza l'enllaç",
+ "Generate QR code" : "Genera un codi QR",
+ "Add another link" : "Afegeix un altre enllaç",
+ "Create a new share link" : "Crear un enllaç d'ús compartit nou",
"Quick share options, the current selected is \"{selectedOption}\"" : "Opcions ràpides d'ús compartit, l'opció seleccionada actualment és «{selectedOption}»",
"View only" : "Només visualitació",
"Can edit" : "Pot editar",
- "File drop" : "Pujada de fitxers",
"Custom permissions" : "Permisos personalitzats",
- "Search for share recipients" : "Cerqueu destinataris de l'element compartit",
- "No recommendations. Start typing." : "No hi ha cap recomanació. Comenceu a escriure.",
"Resharing is not allowed" : "No es permet l'ús compartit derivat",
"Name or email …" : "Nom o adreça electrònica…",
"Name, email, or Federated Cloud ID …" : "Nom, adreça electrònica o ID de núvol federat…",
"Searching …" : "S'està cercant…",
"No elements found." : "No s'ha trobat cap element.",
- "Search globally" : "Cerca globalment",
+ "Search everywhere" : "Cerca a tot arreu",
"Guest" : "Convidat",
"Group" : "Grup",
"Email" : "Adreça electrònica",
@@ -184,70 +243,89 @@
"Deck board" : "Tauler de Targetes",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "a {server}",
+ "Enter external recipients" : "Introduïu destinataris externs",
+ "Search for internal recipients" : "Cerca destinataris interns",
+ "Note from" : "Nota de",
+ "Note:" : "Nota:",
+ "File drop" : "Pujada de fitxers",
+ "Upload files to {foldername}." : "Pujada de fitxers a {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Per la pujada de fitxers, accepteu les condicions del servei.",
+ "View terms of service" : "Consulta els termes del servei",
+ "Terms of service" : "Condicions del servei",
+ "Share with email {email}" : "Comparteix amb l'adreça electrònica {email}",
+ "Share with group" : "Comparteix amb el grup",
+ "Share in conversation" : "Comparteix en la conversa",
+ "Share with {user} on remote server {server}" : "Comparteix amb {user} en el servidor remot {server}",
+ "Share with remote group" : "Comparteix amb el grup remot",
+ "Share with guest" : "Comparteix amb el convidat",
+ "Update share" : "Actualitza l'element compartit",
+ "Save share" : "Desa l'element compartit",
+ "Read" : "Lectura",
+ "Create" : "Crea",
+ "Edit" : "Edició",
+ "Share" : "Comparteix",
+ "Delete" : "Suprimeix",
+ "Password field cannot be empty" : "El camp de contrasenya no pot estar buit",
+ "Replace current password" : "Substitueix la contrasenya actual",
+ "Failed to generate a new token" : "No s'ha pogut generar un testimoni nou",
"Allow upload and editing" : "Permet la pujada i l'edició",
"Allow editing" : "Permet l'edició",
"Upload only" : "Només pujada",
"Advanced settings" : "Paràmetres avançats",
"Share label" : "Etiqueta d'ús compartit",
+ "Share link token" : "Comparteix el testimoni d'enllaç",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Estableix el testimoni d'enllaç de compartició pública en una cosa fàcil de recordar o genera un testimoni nou. No es recomana utilitzar un testimoni endevinable per a elements compartits que continguin informació sensible.",
+ "Generating…" : "Generant…",
+ "Generate new token" : "Genera un nou testimoni",
"Set password" : "Estableix una contrasenya",
- "Password" : "Contrasenya",
"Password expires {passwordExpirationTime}" : "La contrasenya caduca el {passwordExpirationTime}",
"Password expired" : "La contrasenya ha caducat",
"Video verification" : "Verificació de vídeo",
+ "Expiration date (enforced)" : "Data de venciment (obligatori)",
"Set expiration date" : "Estableix la data de caducitat",
- "Expiration date" : "Data de caducitat",
"Hide download" : "Amaga la baixada",
- "Allow download" : "Permet la baixada",
+ "Allow download and sync" : "Permet la baixada i la sincronització",
"Note to recipient" : "Nota per al destinatari",
"Enter a note for the share recipient" : "Introduïu una nota per al destinatari de l'element compartit",
- "Read" : "Lectura",
- "Create" : "Crea",
- "Edit" : "Edició",
- "Share" : "Comparteix",
+ "Show files in grid view" : "Mostra els fitxers a la vista de quadrícula",
"Delete share" : "Suprimeix l'element compartit",
- "Share with {userName}" : "Comparteix amb {userName}",
- "Share with email {email}" : "Comparteix amb l'adreça electrònica {email}",
- "Share with group" : "Comparteix amb el grup",
- "Share in conversation" : "Comparteix en la conversa",
- "Share with {user} on remote server {server}" : "Comparteix amb {user} en el servidor remot {server}",
- "Share with remote group" : "Comparteix amb el grup remot",
- "Share with guest" : "Comparteix amb el convidat",
- "Update share" : "Actualitza l'element compartit",
- "Save share" : "Desa l'element compartit",
"Others with access" : "Altres usuaris amb accés",
"No other accounts with access found" : "No s'ha trobat cap altre compte amb accés",
"Toggle list of others with access to this directory" : "Canvia la llista d'altres usuaris amb accés a aquesta carpeta",
"Toggle list of others with access to this file" : "Canvia la llista d'altres usuaris amb accés a aquest fitxer",
"Unable to fetch inherited shares" : "No s'han pogut obtenir els elements compartits heretats",
+ "Link shares" : "Enllaços de compartició",
+ "Shares" : "Elements compartits",
"Unable to load the shares list" : "No s'ha pogut carregar la llista d'elements compartits",
"Expires {relativetime}" : "Caduca {relativetime}",
"this share just expired." : "aquest element compartit acaba de caducar.",
"Shared with you by {owner}" : "{owner} l'ha compartit amb vós",
+ "Internal shares" : "Comparticions internes",
+ "Internal shares explanation" : "Explicació de comparticions internes",
+ "External shares" : "Comparticions externes",
+ "External shares explanation" : "Explicació de les comparticions externes",
+ "Additional shares" : "Comparticions addicionals",
+ "Additional shares explanation" : "Explicació addicional de les comparticions",
+ "Link to a file" : "Enllaç a un fitxer",
"_Accept share_::_Accept shares_" : ["Accepta l'element compartit","Accepta els elements compartits"],
"Open in Files" : "Obre a Fitxers",
"_Reject share_::_Reject shares_" : ["Rebutja l'element compartit","Rebutja els elements compartits"],
"_Restore share_::_Restore shares_" : ["Restaura l'element compartit","Restaura els elements compartits"],
"Shared" : "S'ha compartit",
- "Shared multiple times with different people" : "S'ha compartit diverses vegades amb persones diferents",
"Shared by {ownerDisplayName}" : "Compartit per {ownerDisplayName}",
- "Show sharing options" : "Mostra les opcions d'ús compartit",
- "Link to a file" : "Enllaç a un fitxer",
- "Error creating the share: {errorMessage}" : "S'ha produït un error en crear l'element compartit: {errorMessage}",
- "Error creating the share" : "S'ha produït un error en crear l'element compartit",
- "Error updating the share: {errorMessage}" : "S'ha produït un error en actualitzar l'element compartit: {errorMessage}",
- "Error updating the share" : "S'ha produït un error en actualitzar l'element compartit",
- "File \"{path}\" has been unshared" : "El fitxer «{path}» s'ha deixat de compartir",
- "Folder \"{path}\" has been unshared" : "La carpeta «{path}» s'ha deixat de compartir",
- "Share {propertyName} saved" : "S'ha desat l'element compartit {propertyName}",
- "Shared by" : "Compartit per",
- "Shared with" : "S'ha compartit amb",
- "Password created successfully" : "La contrasenya s'ha creat correctament",
- "Error generating password from password policy" : "S'ha produït un error en generar la contrasenya a partir de la política de contrasenyes",
- "Shared with you and the group {group} by {owner}" : "{owner} l'ha compartit amb vós i amb el grup {group}",
- "Shared with you and {circle} by {owner}" : "{owner} l'ha compartit amb vós i amb el cercle {circle}",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} l'ha compartit amb vós i amb la conversa {conversation}",
- "Shared with you in a conversation by {owner}" : "{owner} l'ha compartit amb vós en una conversa",
- "Shares" : "Elements compartits",
+ "Shared multiple times with different people" : "S'ha compartit diverses vegades amb persones diferents",
+ "Sharing options" : "Opcions per a compartir",
+ "Shared with others" : "Compartit amb altres",
+ "Create file request" : "Crea una sol·licitud de fitxer",
+ "Upload files to {foldername}" : "Pujada de fitxers a {foldername}.",
+ "Public file share" : "Compartició de fitxer pública",
+ "Publicly shared file." : "Fitxer compartit públicament.",
+ "No file" : "Cap fitxer",
+ "The file shared with you will show up here" : "El fitxer compartit amb tu es mostrarà aquí",
+ "Public share" : "Compartició pública",
+ "Publicly shared files." : "Fitxers compartits públicament.",
+ "No files" : "No hi ha fitxers",
+ "Files and folders shared with you will show up here" : "Els fitxers i les carpetes compartides amb tu es mostraran aquí",
"Overview of shared files." : "Informació general dels fitxers compartits.",
"No shares" : "No hi ha cap element compartit",
"Files and folders you shared or have been shared with you will show up here" : "Els fitxers i les carpetes que compartiu o s'hagin compartit amb vós es mostraran aquí",
@@ -255,7 +333,6 @@
"List of files that are shared with you." : "Llista de fitxers que s'han compartit amb vós.",
"Nothing shared with you yet" : "Encara no s'ha compartit res amb vós",
"Files and folders others shared with you will show up here" : "Els fitxers i les carpetes que s'hagin compartit amb vós es mostraran aquí",
- "Shared with others" : "Compartit amb altres",
"List of files that you shared with others." : "Llista de fitxers que heu compartit amb altres persones.",
"Nothing shared yet" : "Encara no heu compartit res",
"Files and folders you shared will show up here" : "Els fitxers i les carpetes que compartiu es mostraran aquí",
@@ -263,57 +340,86 @@
"List of files that are shared by link." : "Llista de fitxers compartits mitjançant un enllaç.",
"No shared links" : "No hi ha cap enllaç compartit",
"Files and folders you shared by link will show up here" : "Els fitxers i les carpetes que compartiu amb un enllaç es mostraran aquí",
+ "File requests" : "Fitxers sol·licitats",
+ "List of file requests." : "Llista de fitxers sol·licitats.",
+ "No file requests" : "No hi ha sol·licituds de fitxer",
+ "File requests you have created will show up here" : "Les sol·licituds de fitxers que hàgiu creat es mostraran aquí",
"Deleted shares" : "Suprimit",
"List of shares you left." : "Llista d'elements compartits que heu deixat.",
"No deleted shares" : "No hi ha cap element compartit suprimit",
"Shares you have left will show up here" : "Els elements compartits que deixeu es mostraran aquí",
- "Pending shares" : "Pendent",
+ "Pending shares" : "Comparticions pendents",
"List of unapproved shares." : "Llista d'elements compartits no aprovats.",
"No pending shares" : "No hi ha cap element compartit pendent",
"Shares you have received but not approved will show up here" : "Els elements compartits que rebeu però no aproveu es mostraran aquí",
+ "Error updating the share: {errorMessage}" : "S'ha produït un error en actualitzar l'element compartit: {errorMessage}",
+ "Error updating the share" : "S'ha produït un error en actualitzar l'element compartit",
+ "File \"{path}\" has been unshared" : "El fitxer «{path}» s'ha deixat de compartir",
+ "Folder \"{path}\" has been unshared" : "La carpeta «{path}» s'ha deixat de compartir",
+ "Could not update share" : "No s'ha pogut actualitzar la compartició",
+ "Share saved" : "Compartició desada",
+ "Share expiry date saved" : "S'ha desat la data de caducitat de la compartició",
+ "Share hide-download state saved" : "S'ha desat l'estat de baixada oculta compartida",
+ "Share label saved" : "S'ha desat l'etiqueta de compartició",
+ "Share note for recipient saved" : "S’ha desat la nota de compartició per al destinatari",
+ "Share password saved" : "S’ha desat la contrasenya de compartició",
+ "Share permissions saved" : "S’han desat els permisos de compartició",
+ "Upload files to {folder}" : "Pujada de fitxers a {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha compartit una carpeta amb tu.",
+ "Shared by" : "Compartit per",
+ "Shared with" : "S'ha compartit amb",
+ "Password created successfully" : "La contrasenya s'ha creat correctament",
+ "Error generating password from password policy" : "S'ha produït un error en generar la contrasenya a partir de la política de contrasenyes",
+ "Shared with you and the group {group} by {owner}" : "{owner} l'ha compartit amb vós i amb el grup {group}",
+ "Shared with you and {circle} by {owner}" : "{owner} l'ha compartit amb vós i amb el cercle {circle}",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} l'ha compartit amb vós i amb la conversa {conversation}",
+ "Shared with you in a conversation by {owner}" : "{owner} l'ha compartit amb vós en una conversa",
+ "Share not found" : "No s'ha trobat la compartició",
+ "Back to %s" : "Torna a %s",
+ "Add to your Nextcloud" : "Afegeix al Nextcloud",
+ "Waiting…" : "S'està esperant…",
+ "error" : "error",
+ "finished" : "ha finalitzat",
+ "This will stop your current uploads." : "Això aturarà les pujades actuals.",
+ "Move or copy" : "Mou o copia",
+ "You can upload into this folder" : "Podeu pujar elements a aquesta carpeta",
+ "Show list view" : "Mostra la visualització de llista",
+ "Show grid view" : "Mostra la visualització de graella",
+ "No compatible server found at {remote}" : "No s'ha trobat cap servidor compatible a {remote}",
+ "Invalid server URL" : "L'URL del servidor no és vàlida",
+ "Failed to add the public link to your Nextcloud" : "No s'ha pogut afegir l'enllaç públic al vostre Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "No teniu permès editar els elements compartits d'enllaços dels que no sigueu propietaris",
+ "Download all files" : "Baixa tots els fitxers",
+ "Link copied to clipboard" : "Enllaç copiat al porta-retalls",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Ja s'ha afegit 1 adreça de correu","Ja s’han afegit {count} adreces de correu"],
+ "_1 email address added_::_{count} email addresses added_" : ["S'ha afegit 1 adreça de correu","S’han afegit {count} adreces de correu"],
+ "Copy to clipboard" : "Copia-ho al porta-retalls",
+ "Copy internal link to clipboard" : "Copia l'enllaç intern al porta-retalls",
+ "Only works for people with access to this folder" : "Només funciona per a les persones amb accés a aquesta carpeta",
+ "Only works for people with access to this file" : "Només funciona per a les persones amb accés a aquest fitxer",
+ "Copy public link of \"{title}\" to clipboard" : "Copia l'enllaç públic de «{title}» al porta-retalls",
+ "Search globally" : "Cerca globalment",
+ "Search for share recipients" : "Cerqueu destinataris de l'element compartit",
+ "No recommendations. Start typing." : "No hi ha cap recomanació. Comenceu a escriure.",
+ "To upload files, you need to provide your name first." : "Per la pujada de fitxers, primer heu de proporcionar el vostre nom.",
+ "Enter your name" : "Introdueix el teu nom",
+ "Submit name" : "Envia el nom",
+ "Share with {userName}" : "Comparteix amb {userName}",
+ "Show sharing options" : "Mostra les opcions d'ús compartit",
"Share note" : "Nota de l'element compartit",
"Upload files to %s" : "Puja fitxers a %s",
+ "%s shared a folder with you." : "%s ha compartit una carpeta amb tu.",
"Note" : "Nota",
"Select or drop files" : "Seleccioneu o deixeu anar fitxers",
"Uploading files" : "S'estan pujant els fitxers",
"Uploaded files:" : "Fitxers pujats:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Si pugeu fitxers, accepteu les %1$scondicions del servei%2$s.",
- "Add to your Nextcloud" : "Afegeix al Nextcloud",
- "Files and folders others share with you will show up here" : "Els fitxers i les carpetes que altres usuaris comparteixin amb vós es mostraran aquí",
- "Files and folders you share will show up here" : "Els fitxers i les carpetes que compartiu es mostraran aquí",
- "Files and folders you share by link will show up here" : "Els fitxers i les carpetes que compartiu amb un enllaç es mostraran aquí",
- "Shares you deleted will show up here" : "Els elements compartits que heu suprimit es mostraran aquí",
- "Shares you have received but not confirmed will show up here" : "Els elements compartits que heu rebut, però que no heu confirmat es mostraran aquí",
- "Shares will show up here" : "Els elements compartits es mostraran aquí",
- "Restore" : "Restaura",
- "Something happened. Unable to restore the share." : "S'ha produït un error. No es pot restaurar l'element compartit.",
- "Something happened. Unable to accept the share." : "S'ha produït un error. No es pot acceptar l'element compartit.",
- "Something happened. Unable to reject the share." : "S'ha produït un error. No es pot rebutjar l'element compartit.",
- "No expiration date set" : "No s'ha establert cap data de caducitat",
- "Please specify a valid user" : "Especifiqueu un usuari vàlid",
- "Please specify a valid federated user ID" : "Especifiqueu un ID d'usuari federat vàlid",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Aquesta aplicació permet als usuaris compartir fitxers en el Nextcloud. Si està habilitada, l'administrador pot triar quins grups poden compartir fitxers. Els usuaris amb permís poden compartir fitxers i carpetes amb altres usuaris i grups del Nextcloud. A més, si l'administrador activa la característica de compartir enllaços, es poden utilitzar enllaços externs per a compartir fitxers amb altres usuaris fora del Nextcloud. Els administradors també poden aplicar contrasenyes, dates de caducitat i habilitar l'ús compartit entre servidors mitjançant enllaços d'ús compartit, així com l'ús compartit des de dispositius mòbils.\nSi inhabiliteu la característica, se suprimiran els fitxers i les carpetes compartides del servidor per a tots els destinataris i també per als clients de sincronització i les aplicacions per a mòbils. Podeu trobar més informació en la documentació del Nextcloud.",
- "Accept user and group shares by default" : "Accepta els elements compartits d'usuari i en grup per defecte",
- "Read only" : "Només de lectura",
- "File drop (upload only)" : "Tramesa de fitxers (només pujada)",
- "Upload" : "Pujada",
- "Bundled permissions" : "Permisos agrupats",
- "Only works for users with access to this folder" : "Només funciona per als usuaris amb accés a aquesta carpeta",
- "Only works for users with access to this file" : "Només funciona per als usuaris amb accés a aquest fitxer",
- "Circle" : "Cercle",
- "Update" : "Actualitza",
- "Share with " : "Comparteix amb",
- "No other users with access found" : "No s'ha trobat cap altre usuari amb accés",
- "No entries found in this folder" : "No hi ha cap entrada en aquesta carpeta",
"Name" : "Nom",
- "Share time" : "Temps d'ús compartit",
- "Sorry, this link does not seem to work anymore." : "Sembla que aquest enllaç ja no funciona.",
- "Reasons might be:" : "Les raons podrien ser:",
- "the item was removed" : "S'ha suprimit l'element.",
- "the link expired" : "L'enllaç ha caducat.",
- "sharing is disabled" : "S'ha inhabilitat l'ús compartit.",
- "For more info, please ask the person who sent this link." : "Per a més informació, contacteu amb qui us hagi enviat l'enllaç.",
- "Share with remote" : "Comparteix en remot",
- "Share with" : "Comparteix amb"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utilitzeu aquest mètode per compartició de fitxers amb persones o equips de la vostra organització. Si el destinatari ja té accés a la compartició però no la pot localitzar, podeu enviar-li l'enllaç de compartició intern per accedir-hi fàcilment.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Utilitzeu aquest mètode per compartir fitxers amb persones o organitzacions fora de la vostra organització. Els fitxers i les carpetes es poden compartir mitjançant enllaços compartits públics i adreces de correu electrònic. També podeu compartir amb altres comptes de Nextcloud allotjats en diferents instàncies mitjançant el seu ID de núvol federat.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Comparticions que no formen part de comparticions internes o externes. Això pot ser compartit des d'aplicacions o d'altres fonts.",
+ "Share with accounts and teams" : "Comparteix amb comptes i equips",
+ "Email, federated cloud id" : "Correu, identificador del núvol federat",
+ "Filename must not be empty." : "El nom del fitxer no ha d'estar buit."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/cs.js b/apps/files_sharing/l10n/cs.js
index 59f71b46ba6..e0d0f35c57b 100644
--- a/apps/files_sharing/l10n/cs.js
+++ b/apps/files_sharing/l10n/cs.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Čeká se…",
- "error" : "chyba",
- "finished" : "dokončeno",
- "This will stop your current uploads." : "Toto zastaví vaše stávající nahrávání.",
- "Move or copy" : "Přesunout nebo zkopírovat",
- "Download" : "Stáhnout",
- "Delete" : "Smazat",
- "You can upload into this folder" : "Do této složky můžete nahrávat",
- "Terms of service" : "Všeobecné podmínky",
- "Show list view" : "Zobrazit v seznamu",
- "Show grid view" : "Zobrazit v mřížce",
- "No compatible server found at {remote}" : "Na {remote} nebyl nalezen kompatibilní server",
- "Invalid server URL" : "Neplatná URL serveru",
- "Failed to add the public link to your Nextcloud" : "Nepodařilo se přidání veřejného odkazu do Nextcloud",
"File shares" : "Sdílení souborů",
"Downloaded via public link" : "Staženo prostřednictvím veřejného odkazu",
"Downloaded by {email}" : "Stáhnul(a) si {email}",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "Platnost sdílení souboru {file} s {user} skončila",
"Share for file {file} expired" : "Platnost sdílení pro soubor {file} skončila",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Byl <strong>stažen</strong> soubor nebo složka sdílená ve veřejném odkazu",
- "A file or folder was shared from <strong>another server</strong>" : "Soubor nebo složka byla nasdíleny z <strong>jiného serveru</strong>",
- "Files" : "Soubory",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Soubory byly <strong>nahrány</strong> do složky sdílené e-mailem či veřejným odkazem",
+ "A file or folder was shared from <strong>another server</strong>" : "Soubor nebo složka byly nasdíleny z <strong>jiného serveru</strong>",
+ "Sharing" : "Sdílení",
"A file or folder has been <strong>shared</strong>" : "Soubor nebo složka byla <strong>nasdílena</strong>",
"Shared link" : "Sdílený odkaz",
"Wrong share ID, share does not exist" : "Chybný identifikátor sdílení – takové neexistuje",
@@ -78,32 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "Zadejte popis umístění souboru či složky",
"Wrong path, file/folder does not exist" : "Nesprávný popis umístění – soubor/složka neexistuje",
"Could not create share" : "Sdílení se nepodařilo vytvořit",
- "Invalid permissions" : "Neplatná oprávnění",
- "Invalid date, date format must be YYYY-MM-DD" : "Neplatné datum – je třeba, aby jeho formát byl RRRR-MM-DD",
+ "Please specify a valid account to share with" : "Zadejte platný účet kterému nasdílet",
"Group sharing is disabled by the administrator" : "Skupinové sdílení bylo zakázáno správcem",
"Please specify a valid group" : "Zadejte platnou skupinu",
"Public link sharing is disabled by the administrator" : "Sdílení veřejným odkazem je zakázáno správcem",
- "Public upload disabled by the administrator" : "Nahrávání veřejností zakázáno správcem",
- "Public upload is only possible for publicly shared folders" : "Veřejné nahrávání je možné pouze do veřejně sdílených šložek",
+ "Please specify a valid email address" : "Zadejte platnou e-mailovou adresu",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Sdílení %s posláním hesla přes Nextcloud Talk se nezdařilo, protože Nextcloud Talk není zapnutý",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Sdílení %1$s se nezdařilo, protože podpůrná vrstva nepodporuje typ sdílení %2$s",
+ "Please specify a valid federated account ID" : "Zadejte platný identifikátor federovaného účtu",
"Please specify a valid federated group ID" : "Zadejte platné federovaný identifikátor skupiny",
- "You cannot share to a Circle if the app is not enabled" : "Do okruhu nemůžete sdílet, pokud není aplikace zapnuta",
- "Please specify a valid circle" : "Zadejte platný okruh",
+ "You cannot share to a Team if the app is not enabled" : "Týmu nemůžete sdílet, pokud není příslušná aplikace zapnutá",
+ "Please specify a valid team" : "Zadejte platný tým",
"Sharing %s failed because the back end does not support room shares" : "Sdílení %s se nezdařilo protože podpůrná vrstva nepodporuje sdílení místností",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Sdílení %s se nezdařilo protože podpůrná vrstva nepodporuje ScienceMesh sdílení",
"Unknown share type" : "Neznámý typ sdílení",
"Not a directory" : "Není adresář",
"Could not lock node" : "Uzel se nedaří uzamknout",
- "Could not lock path" : "Nepodařilo se uzamknout popis umístění",
- "Wrong or no update parameter given" : "Zadán nesprávný nebo stejný jako původní parametr",
+ "Public upload is only possible for publicly shared folders" : "Veřejné nahrávání je možné pouze do veřejně sdílených šložek",
"Share must at least have READ or CREATE permissions" : "Je třeba, aby sdílení mělo alespoň oprávnění pro ČÍST nebo VYTVÁŘET",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Pokud je nastaveno oprávnění AKTUALIZOVAT nebo MAZAT je třeba, aby sdílení mělo oprávnění ČÍST",
+ "Public upload disabled by the administrator" : "Nahrávání veřejností zakázáno správcem",
+ "Could not lock path" : "Nepodařilo se uzamknout popis umístění",
+ "no sharing rights on this item" : "nemáte oprávnění ke sdílení této položky",
+ "You are not allowed to edit incoming shares" : "Nemáte oprávnění upravovat příchozí sdílení",
+ "Wrong or no update parameter given" : "Zadán nesprávný nebo stejný jako původní parametr",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "„Zaslání hesla prostřednictvím Nextcloud Talk“ pro sdílení souboru či složky se nezdařilo protože Nextcloud Talk není zapnuté.",
+ "Custom share link tokens have been disabled by the administrator" : "Uživatelsky určené tokeny sdílení odkazy byly správcem zakázány",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Je třeba, aby tokeny obsahovaly alespoň jeden znak a mohou se skládat pouze z písmen, číslic a ještě pomlčky",
+ "Invalid date. Format must be YYYY-MM-DD" : "Neplatný formát data. Je třeba, aby bylo RRRR-MM-DD",
+ "No sharing rights on this item" : "Nemáte oprávnění ke sdílení této položky",
+ "Invalid share attributes provided: \"%s\"" : "Zadány neplatné atributy sdílení: „%s“",
+ "You are not allowed to send mail notifications" : "Nemáte oprávnění posílat upozornění e-mailem",
+ "No mail notification configured for this share type" : "Pro tento typ sdílení není upozorňování e-mailem nastaveno",
+ "Wrong password" : "Nesprávné heslo",
+ "Error while sending mail notification" : "Chyba při odesílání upozornění e-mailem",
+ "Failed to generate a unique token" : "Nepodařilo se vytvořit neopakující se token",
+ "This share does not exist or is no longer available" : "Toto sdílení neexistuje nebo už není k dispozici",
"shared by %s" : "sdílí %s",
- "Download all files" : "Stáhnout všechny soubory",
- "Direct link" : "Přímý odkaz",
+ "Download" : "Stáhnout",
"Add to your %s" : "Přidat do svého %s",
+ "Direct link" : "Přímý odkaz",
"Share API is disabled" : "Aplikační program. rozhraní (API) pro práci se sdíleními je vypnuté",
"File sharing" : "Sdílení souborů",
"Share will expire tomorrow" : "Platnost sdílení skončí zítra",
@@ -112,132 +113,223 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Obdrželi jste {share} do skupiny {group} jako sdílení od {user}",
"Accept" : "Přijmout",
"Decline" : "Odmítnout",
- "Sharing" : "Sdílení",
+ "Remember to upload the files to %s" : "Nezapomeňte nahrát soubory do %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Rádi bychom vám jemně připomněli, že jste zatím do sdílené složky nenahráli žádné soubory.",
+ "Open \"%s\"" : "Otevřít „%s“",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Tato aplikace lidem umožňuje sdílet soubory v rámci služby Nextcloud. Pokud je zapnutá, správce může zvolit, které skupiny mohou sdílet soubory. Pověření lidé pak mohou sdílet soubory a složky s ostatními účty a skupinami v rámci služby Nextcloud. Pokud navíc správce zapne funkci odkazu sdílení, je možné sdílet soubory i s lidmi mimo Nextcloud, a to pomocí externího odkazu. Správci také mohou vynutit používání hesel, dat expirace a zapnout sdílení ze serveru na server pomocí odkazů sdílení, stejně jako sdílení z mobilních zařízení.\nVypnutí této funkce odebere sdílené soubory a složky na server pro všechny příjemce sdílení a také na synchronizačních klientech a mobilních aplikacích. Více informací je k dispozici v dokumentaci služby Nextcloud.",
+ "People" : "Lidé",
+ "Filter accounts" : "Filtrovat účty",
+ "The request will expire on {date} at midnight and will be password protected." : "Platnost žádosti skončí {date} o půlnoci a bude chráněn heslem.",
+ "The request will expire on {date} at midnight." : "Platnost žádosti skončí {date} o půlnoci.",
+ "The request will be password protected." : "Žádost bude chráněna heslem.",
+ "When should the request expire?" : "Kdy má platnost žádosti skončit?",
+ "Set a submission expiration date" : "Nastavit datum skončení skončení platnosti odevzdání",
+ "Expiration date" : "Datum skončení platnosti",
+ "Select a date" : "Vybrat datum",
+ "Your administrator has enforced a {count} days expiration policy." : "Váš správce vynutil zásadu skončení platnosti za {count} dní.",
+ "What password should be used for the request?" : "Jaké heslo by mělo být použito pro žádost?",
+ "Set a password" : "Nastavit heslo",
+ "Password" : "Heslo",
+ "Enter a valid password" : "Zadejte platné heslo",
+ "Generate a new password" : "Vytvořit nové heslo",
+ "Your administrator has enforced a password protection." : "Váš správce vynutil ochranu heslem.",
+ "Automatically copying failed, please copy the share link manually" : "Automatické zkopírování se nezdařilo – zkopírujte prosím odkaz pro sdílení ručně",
+ "Link copied" : "Odkaz zkopírován",
+ "Email already added" : "E-mail už byl přidán",
+ "Invalid email address" : "Neplatná e-mailová adresa",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Následující e-mailová adresa není platná: {emails}","Následující e-mailové adresy nejsou platné: {emails}","Následující e-mailové adresy nejsou platné: {emails}","Následující e-mailové adresy nejsou platné: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} e-mailová adresa už přidána","{count} e-mailové adresy už přidány","{count} e-mailových adres už přidáno","{count} e-mailové adresy už přidány"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} e-mailová adresa přidána","{count} e-mailové adresy přidány","{count} e-mailových adres přidáno","{count} e-mailové adresy přidány"],
+ "You can now share the link below to allow people to upload files to your directory." : "Nyní můžete sdílet níže uvedený odkaz a umožnit lidem nahrávat soubory do vaší složky.",
+ "Share link" : "Odkaz pro sdílení",
+ "Copy" : "Zkopírovat",
+ "Send link via email" : "Odeslat odkaz přes e-mail",
+ "Enter an email address or paste a list" : "Zadejte e-mailovou adresu nebo vložte seznam",
+ "Remove email" : "Odebrat e-mail",
+ "Select a destination" : "Vybrat cíl",
+ "Select" : "Vybrat",
+ "What are you requesting?" : "Co požadujete?",
+ "Request subject" : "Předmět požadavku",
+ "Birthday party photos, History assignment…" : "Fotky z narozeninové oslavy, přiřazení historie…",
+ "Where should these files go?" : "Kam by měly tyto soubory přijít?",
+ "Upload destination" : "Cíl nahrání",
+ "Revert to default" : "Vrátit na výchozí hodnotu",
+ "The uploaded files are visible only to you unless you choose to share them." : "Dokud je nenasdílíte, nahrané soubory jsou viditelné pouze vám.",
+ "Add a note" : "Přidat poznámku",
+ "Note for recipient" : "Poznámka pro příjemce",
+ "Add a note to help people understand what you are requesting." : "Přidejte poznámku vysvětlující lidem, o co žádáte.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Můžete přidat odkazy, datum nebo jakékoli jiné informace, které příjemci pomohou pochopit, o co žádáte.",
+ "Close" : "Zavřít",
+ "_Send email and close_::_Send {count} emails and close_" : ["Odeslat e-mail a zavřít","Odeslat {count} e-mailů a zavřít","Odeslat {count} e-mailů a zavřít","Odeslat {count} e-mailů a zavřít"],
+ "Please select a folder, you cannot share the root directory." : "Vyberte složku (kořenový adresář není možné nasdílet).",
+ "File request created" : "Žádost o soubor vytvořena",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Byla vytvořena žádost o soubor a odeslán e-mail","Byla vytvořena žádost o soubor a odeslány {count} e-maily","Byla vytvořena žádost o soubor a odesláno {count} e-mailů","Byla vytvořena žádost o soubor a odesláno {count} e-mailů"],
+ "Error creating the share: {errorMessage}" : "Chyba při vytváření sdílení: {errorMessage}",
+ "Error creating the share" : "Chyba při vytváření sdílení",
+ "Error sending emails: {errorMessage}" : "Chyba při odesílání e-mailů: {errorMessage}",
+ "Error sending emails" : "Chyba při odesílání e-mailů",
+ "Create a file request" : "Vytvořit žádost o soubor",
+ "Collect files from others even if they do not have an account." : "Sbírejte soubory od ostatních, i když nemají účet.",
+ "To ensure you can receive files, verify you have enough storage available." : "Pokud chcete zajistit, že budete moci přijímat soubory, ověřte, že máte k dispozici dostatek úložného prostoru.",
+ "File request" : "Žádost o soubor",
+ "Previous step" : "Předchozí krok",
+ "Cancel" : "Storno",
+ "Cancel the file request creation" : "Zrušit vytváření žádosti o soubor",
+ "Close without sending emails" : "Zavřít bez odeslání e-mailů",
+ "Continue" : "Pokračovat",
"Error while toggling options" : "Chyba při přepínání voleb",
- "Set default folder for accepted shares" : "Nastavit výchozí složku pro přijatá sdílení",
- "Reset" : "Vrátit na výchozí hodnoty",
- "Reset folder to system default" : "Resetovat složku na systémovou výchozí",
+ "Accept shares from other accounts and groups by default" : "Ve výchozím nastavení přijímat sdílené položky z jiných účtů a skupin",
"Choose a default folder for accepted shares" : "Zvolte výchozí složku pro přijatá sdílení",
"Invalid path selected" : "Vybrán neplatný popis umístění",
"Unknown error" : "Neznámá chyba",
- "Open Sharing Details" : "Otevřít podrobnosti o sdílení",
+ "Set default folder for accepted shares" : "Nastavit výchozí složku pro přijatá sdílení",
+ "Reset" : "Vrátit na výchozí hodnoty",
+ "Reset folder to system default" : "Resetovat složku na systémovou výchozí",
+ "Share expiration: {date}" : "Skončení platnosti sdílení: {date}",
+ "Share Expiration" : "Skončení platnosti sdílení",
"group" : "skupina",
"conversation" : "konverzace",
"remote" : "vzdálené",
"remote group" : "federovaná skupina",
"guest" : "host",
+ "by {initiator}" : "od {initiator}",
"Shared with the group {user} by {owner}" : "{owner} sdílí se skupinou {user}",
"Shared with the conversation {user} by {owner}" : "{owner} sdílí konverzaci {user}",
"Shared with {user} by {owner}" : "{owner} sdílí s {user}",
+ "Open Sharing Details" : "Otevřít podrobnosti o sdílení",
"Added by {initiator}" : "Přidal(a) {initiator}",
"Via “{folder}”" : "Prostřednictvím „{folder}“",
"Unshare" : "Zrušit sdílení",
- "Internal link" : "Interní odkaz",
"Cannot copy, please copy the link manually" : "Nedaří se zkopírovat, zkopírujte odkaz ručně",
- "Copy internal link to clipboard" : "Zkopírovat interní odkaz do schránky",
- "Link copied" : "Odkaz zkopírován",
- "Please enter the following required information before creating the share" : "Před vytvořením sdílení zadejte následující potřebné informace",
- "Password protection (enforced)" : "Ochrana heslem (vynucená)",
- "Password protection" : "Ochrana heslem",
- "Enter a password" : "Zadejte heslo",
- "Expiration date (enforced)" : "Datum skončení platnosti (vynuceno)",
- "Enter a date" : "Zadejte datum",
- "Create share" : "Vytvořit sdílení",
- "Cancel" : "Storno",
- "Customize link" : "Přizpůsobit odkaz",
- "Add another link" : "Přidat další odkaz",
- "Create a new share link" : "Vytvořit nový odkaz pro sdílení",
+ "Copy internal link" : "Zkopírovat interní odkaz",
+ "Internal link" : "Interní odkaz",
"{shareWith} by {initiator}" : "{shareWith} od {initiator}",
"Shared via link by {initiator}" : "{initiator} sdílí odkazem",
+ "File request ({label})" : "Žádost o soubor ({label})",
"Mail share ({label})" : "Sdílení e-mailem ({label})",
"Share link ({label})" : "Odkaz na sdílení ({label})",
+ "Mail share" : "Sdílení e-mailu",
"Share link ({index})" : "Odkaz na sdílení ({index})",
- "Share link" : "Odkaz pro sdílení",
+ "Create public link" : "Vytvořit veřejný odkaz",
"Actions for \"{title}\"" : "Akce pro „{title}",
- "Copy public link of \"{title}\" to clipboard" : "Zkopírovat veřejný odkaz na „{title}“ do schránky",
"Error, please enter proper password and/or expiration date" : "Chyba – zadejte správné heslo a/nebo datum skončení platnosti",
"Link share created" : "Odkaz na sdílení vytvořen",
"Error while creating the share" : "Chyba při vytváření sdílení",
+ "Please enter the following required information before creating the share" : "Před vytvořením sdílení zadejte následující potřebné informace",
+ "Password protection (enforced)" : "Ochrana heslem (vynucená)",
+ "Password protection" : "Ochrana heslem",
+ "Enter a password" : "Zadejte heslo",
+ "Enable link expiration (enforced)" : "Zapnout omezení doby platnosti odkazu (vynucené)",
+ "Enable link expiration" : "Zapnout omezení doby platnosti odkazu",
+ "Enter expiration date (enforced)" : "Zadejte datum skončení platnosti (vynucené)",
+ "Enter expiration date" : "Zadejte datum skončení platnosti",
+ "Create share" : "Vytvořit sdílení",
+ "Customize link" : "Přizpůsobit odkaz",
+ "Generate QR code" : "Vytvořit QR kód",
+ "Add another link" : "Přidat další odkaz",
+ "Create a new share link" : "Vytvořit nový odkaz pro sdílení",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Předvolby rychlého sdílení – nyní je vybrána „{selectedOption}“",
"View only" : "Pouze prohlížet",
"Can edit" : "Může upravovat",
- "File drop" : "Předání souboru",
"Custom permissions" : "Uživatelsky určená oprávnění",
- "Search for share recipients" : "Vyhledat příjemce sdílení",
- "No recommendations. Start typing." : "Žádná doporučení. Pište",
"Resharing is not allowed" : "Příjemcům tohoto sdílení není dovoleno ho nasdílet dál dalším",
"Name or email …" : "Jméno nebo e-mail…",
"Name, email, or Federated Cloud ID …" : "Jméno, e-mail nebo identifikátor ve federovaném cloudu…",
"Searching …" : "Hledání…",
"No elements found." : "Nenalezeny žádné prvky.",
- "Search globally" : "Hledat všude",
+ "Search everywhere" : "Hledat všude",
"Guest" : "Host",
"Group" : "Skupina",
"Email" : "E-mail",
+ "Team" : "Tým",
"Talk conversation" : "Konverzace v Talk",
"Deck board" : "Tabule aplikace Deck",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "na {server}",
+ "Enter external recipients" : "Zadat externí příjemce",
+ "Search for internal recipients" : "Vyhledat interní příjemce",
+ "Note from" : "Poznámka od",
+ "Note:" : "Poznámka:",
+ "File drop" : "Předání souboru",
+ "Upload files to {foldername}." : "Nahrát soubory do {foldername}",
+ "By uploading files, you agree to the terms of service." : "Nahráním souborů souhlasíte s podmínkami služby.",
+ "Successfully uploaded files" : "Soubory úspěšně nahrány",
+ "View terms of service" : "Zobrazit smluvní podmínky",
+ "Terms of service" : "Všeobecné podmínky",
+ "Share with email {email}" : "Nasdílet e-mailu {email}",
+ "Share with group" : "Nasdílet skupině",
+ "Share in conversation" : "Nasdílet v konverzaci",
+ "Share with {user} on remote server {server}" : "Nasdílet uživateli {user} na vzdáleném serveru {server}",
+ "Share with remote group" : "Nasdílet vzdálené skupině",
+ "Share with guest" : "Nasdílet hostovi",
+ "Update share" : "Zaktualizovat sdílení",
+ "Save share" : "Uložit sdílení",
+ "Read" : "Čtení",
+ "Create" : "Vytvářet",
+ "Edit" : "Úpravy",
+ "Share" : "Sdílet",
+ "Delete" : "Smazat",
+ "Password field cannot be empty" : "Kolonku heslo je třeba vyplnit",
+ "Replace current password" : "Nahradit stávající heslo",
+ "Failed to generate a new token" : "Nepodařilo se vytvořit nový token",
"Allow upload and editing" : "Povolit nahrávání a úpravy",
"Allow editing" : "Povolit úpravy",
"Upload only" : "Pouze nahrávat",
"Advanced settings" : "Pokročilá nastavení",
"Share label" : "Štítek sdílení",
+ "Share link token" : "Nasdílet token odkazu",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Nastavte token veřejného odkazu na sdílení na něco snadno zapamatovatelného nebo vytvořte nový token. Není doporučeno používat uhodnutelné tokeny pro sdílení, která obsahují citlivé informace.",
+ "Generating…" : "Vytváření…",
+ "Generate new token" : "Vytvořit nový token",
"Set password" : "Nastavit heslo",
- "Password" : "Heslo",
"Password expires {passwordExpirationTime}" : "Platnost hesla skončí {passwordExpirationTime}",
"Password expired" : "Platnost hesla skončila",
"Video verification" : "Ověřování pomocí videa",
+ "Expiration date (enforced)" : "Datum skončení platnosti (vynuceno)",
"Set expiration date" : "Nastavit datum skončení platnosti",
- "Expiration date" : "Datum skončení platnosti",
"Hide download" : "Skrýt stahování",
- "Allow download" : "Umožnit stahování",
+ "Allow download and sync" : "Povolit stahování a synchronizaci",
"Note to recipient" : "Poznámka pro příjemce",
"Enter a note for the share recipient" : "Zadejte poznámku pro příjemce sdílení",
- "Read" : "Čtení",
- "Create" : "Vytvářet",
- "Edit" : "Úpravy",
- "Share" : "Sdílet",
+ "Show files in grid view" : "Zobrazit soubory v zobrazení v mřížce",
"Delete share" : "Smazat sdílení",
- "Share with {userName}" : "Nasdílet pro {userName}",
- "Share with group" : "Nasdílet skupině",
- "Share in conversation" : "Nasdílet v konverzaci",
- "Share with remote group" : "Nasdílet vzdálené skupině",
- "Share with guest" : "Nasdílet hostovi",
- "Update share" : "Zaktualizovat sdílení",
- "Save share" : "Uložit sdílení",
"Others with access" : "Ostatní, kteří mají přístup",
+ "No other accounts with access found" : "Nenalezeni žádné další účty, kteří mají přístup",
"Toggle list of others with access to this directory" : "Vyp/zap. seznam ostatních s přístupem k této složce",
"Toggle list of others with access to this file" : "Vyp/zap. seznam ostatních s přístupem k tomuto souboru",
"Unable to fetch inherited shares" : "Nedaří se získat převzatá sdílení",
+ "Link shares" : "Sdílení odkazem",
+ "Shares" : "Sdílení",
"Unable to load the shares list" : "Nedaří se načíst seznam sdílení",
"Expires {relativetime}" : "Platnost končí {relativetime}",
"this share just expired." : "platnost tohoto sdílení právě skončila.",
"Shared with you by {owner}" : "S vámi sdílí {owner}",
+ "Internal shares" : "Vnitřní sdílení",
+ "Internal shares explanation" : "Vysvětlení vnitřních sdílení",
+ "External shares" : "Externí sdílení",
+ "External shares explanation" : "Vysvětlení externích sdílení",
+ "Additional shares" : "Další sdílení",
+ "Additional shares explanation" : "Vysvětlení dalších sdílen",
+ "Link to a file" : "Odkaz na soubor",
"_Accept share_::_Accept shares_" : ["Přijmout sdílení","Přijmout sdílení","Přijmout sdílení","Přijmout sdílení"],
"Open in Files" : "Otevřít v Souborech",
"_Reject share_::_Reject shares_" : ["Odmítnout sdílení","Odmítnout sdílení","Odmítnout sdílení","Odmítnout sdílení"],
"_Restore share_::_Restore shares_" : ["Obnovit sdílení","Obnovit sdílení","Obnovit sdílení","Obnovit sdílení"],
"Shared" : "Sdíleno",
- "Shared multiple times with different people" : "Nasdílet několikrát různým lidem",
"Shared by {ownerDisplayName}" : "Nasdílel(a) {ownerDisplayName}",
- "Show sharing options" : "Zobrazit předvolby pro sdílení",
- "Link to a file" : "Odkaz na soubor",
- "Error creating the share: {errorMessage}" : "Chyba při vytváření sdílení: {errorMessage}",
- "Error creating the share" : "Chyba při vytváření sdílení",
- "Error updating the share: {errorMessage}" : "Chyba při aktualizaci sdílení: {errorMessage}",
- "Error updating the share" : "Chyba při aktualizaci sdílení",
- "File \"{path}\" has been unshared" : "Sdílení souboru „{path}“ bylo zrušeno",
- "Folder \"{path}\" has been unshared" : "Sdílení složky „{path}“ bylo zrušeno",
- "Share {propertyName} saved" : "Sdílení {propertyName} uloženo",
- "Shared by" : "Sdílí",
- "Shared with" : "Sdíleno s",
- "Password created successfully" : "Heslo úspěšně vytvořeno",
- "Error generating password from password policy" : "Chyba při vytváření hesla ze zásady pro hesla",
- "Shared with you and the group {group} by {owner}" : "{owner} sdílí vám a skupině {group}",
- "Shared with you and {circle} by {owner}" : "Sdíleno s vámi a {circle} od {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} sdílí vám a konverzaci {conversation}",
- "Shared with you in a conversation by {owner}" : " {owner} vám sdílí v konverzaci",
- "Shares" : "Sdílení",
+ "Shared multiple times with different people" : "Nasdílet několikrát různým lidem",
+ "Sharing options" : "Předvolby pro sdílení",
+ "Shared with others" : "Sdíleno s ostatními",
+ "Create file request" : "Vytvořit žádost o soubor",
+ "Upload files to {foldername}" : "Nahrát soubory do {foldername}",
+ "Public file share" : "Veřejné sdílení souboru",
+ "Publicly shared file." : "Veřejně sdílený soubor.",
+ "No file" : "Žádný soubor",
+ "The file shared with you will show up here" : "Zde se zobrazí vám nasdílený soubor",
+ "Public share" : "Veřejné sdílení",
+ "Publicly shared files." : "Veřejně sdílené soubory.",
+ "No files" : "Žádné soubory",
+ "Files and folders shared with you will show up here" : "Zde se zobrazí vám nasdílené soubory a složky",
"Overview of shared files." : "Přehled nasdílených souborů",
"No shares" : "Žádná sdílení",
"Files and folders you shared or have been shared with you will show up here" : "Zde budou zobrazeny soubory a složky, které jste nasdíleli nebo vám byly nadíleny",
@@ -245,7 +337,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Seznam souborů, které vám byly nasdíleny.",
"Nothing shared with you yet" : "Zatím vám nikdo nic nenasdílel",
"Files and folders others shared with you will show up here" : "Zde budou zobrazeny soubory a složky, které vám nasdílí ostatní",
- "Shared with others" : "Sdíleno s ostatními",
"List of files that you shared with others." : "Seznam souborů, které jste nasdíleli ostatním.",
"Nothing shared yet" : "Zatím není nic sdíleno",
"Files and folders you shared will show up here" : "Zde budou zobrazeny vámi nasdílené soubory a složky",
@@ -253,6 +344,10 @@ OC.L10N.register(
"List of files that are shared by link." : "Seznam souborů, které jsou nasdílené odkazem.",
"No shared links" : "Žádné sdílené odkazy",
"Files and folders you shared by link will show up here" : "Zde budou zobrazeny soubory a složky, které jste nasdíleli jako odkazy",
+ "File requests" : "Žádosti o soubory",
+ "List of file requests." : "Seznam žádostí o soubory.",
+ "No file requests" : "Žádné žádosti o soubory",
+ "File requests you have created will show up here" : "Vytvořené žádosti o soubor se zobrazí zde",
"Deleted shares" : "Smazaná sdílení",
"List of shares you left." : "Seznam sdílení, které jste opustili.",
"No deleted shares" : "Žádná smazaná sdílení",
@@ -261,49 +356,87 @@ OC.L10N.register(
"List of unapproved shares." : "Seznam neschválených sdílení.",
"No pending shares" : "Žádná čekající sdílení",
"Shares you have received but not approved will show up here" : "Sdílení, která jste obdrželi, ale neschválili, se zobrazí zde",
+ "Error deleting the share: {errorMessage}" : "Chyba při mazán sdílení: {errorMessage}",
+ "Error deleting the share" : "Chyba při mazání sdílení",
+ "Error updating the share: {errorMessage}" : "Chyba při aktualizaci sdílení: {errorMessage}",
+ "Error updating the share" : "Chyba při aktualizaci sdílení",
+ "File \"{path}\" has been unshared" : "Sdílení souboru „{path}“ bylo zrušeno",
+ "Folder \"{path}\" has been unshared" : "Sdílení složky „{path}“ bylo zrušeno",
+ "Could not update share" : "Nepodařilo se zaktualizovat sdílení",
+ "Share saved" : "Sdílení uloženo",
+ "Share expiry date saved" : "Datum skončení platnosti sdílení uloženo",
+ "Share hide-download state saved" : "Stav skrýt stahování uložen",
+ "Share label saved" : "Štítek sdílení uložen",
+ "Share note for recipient saved" : "Poznámka pro příjemce sdílení uložena",
+ "Share password saved" : "Heslo ke sdílení uloženo",
+ "Share permissions saved" : "Oprávnění ke sdílení uložena",
+ "To upload files to {folder}, you need to provide your name first." : "Pokud chcete nahrávat soubory do {folder}, je zapotřebí nejprve zadat své jméno.",
+ "Upload files to {folder}" : "Nahrát soubory do {folder}",
+ "Please confirm your name to upload files to {folder}" : "Potvrďte své jméno pokud chcete nahrávat soubory do {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} vám nasdílel(a) složku.",
+ "Names must not be empty." : "Jména je třeba vyplnit.",
+ "Names must not start with a dot." : "Je třeba, aby názvy nezačínaly tečkou.",
+ "\"{char}\" is not allowed inside a name." : "„{char}“ není v názvu možné použít.",
+ "\"{segment}\" is a reserved name and not allowed." : "„{segment}“ je vyhrazeným názvem a není povoleno k použití.",
+ "\"{extension}\" is not an allowed name." : "„{extension}“ není povoleným názvem.",
+ "Names must not end with \"{extension}\"." : "Je třeba, aby názvy nekončily na „{extension}“.",
+ "Invalid name." : "Neplatný název.",
+ "Shared by" : "Sdílí",
+ "Shared with" : "Sdíleno s",
+ "Password created successfully" : "Heslo úspěšně vytvořeno",
+ "Error generating password from password policy" : "Chyba při vytváření hesla ze zásady pro hesla",
+ "Shared with you and the group {group} by {owner}" : "{owner} sdílí vám a skupině {group}",
+ "Shared with you and {circle} by {owner}" : "Sdíleno s vámi a {circle} od {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} sdílí vám a konverzaci {conversation}",
+ "Shared with you in a conversation by {owner}" : " {owner} vám sdílí v konverzaci",
+ "Share not found" : "Sdílení nenalezeno",
+ "Back to %s" : "Zpět na %s",
+ "Add to your Nextcloud" : "Přidat do Nextcloud",
+ "Waiting…" : "Čeká se…",
+ "error" : "chyba",
+ "finished" : "dokončeno",
+ "This will stop your current uploads." : "Toto zastaví vaše stávající nahrávání.",
+ "Move or copy" : "Přesunout nebo zkopírovat",
+ "You can upload into this folder" : "Do této složky můžete nahrávat",
+ "Show list view" : "Zobrazit v seznamu",
+ "Show grid view" : "Zobrazit v mřížce",
+ "No compatible server found at {remote}" : "Na {remote} nebyl nalezen kompatibilní server",
+ "Invalid server URL" : "Neplatná URL serveru",
+ "Failed to add the public link to your Nextcloud" : "Nepodařilo se přidání veřejného odkazu do Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "Nemáte oprávnění upravovat sdílení odkazem, která nevlastníte",
+ "Download all files" : "Stáhnout všechny soubory",
+ "Link copied to clipboard" : "Odkaz zkopírován do schánky",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailová adresa už přidána","{count} e-mailové adresy už přidány","{count} e-mailových adres už přidáno","{count} e-mailové adresy už přidány"],
+ "_1 email address added_::_{count} email addresses added_" : ["Jedna e-mailová adresa přidána","{count} e-mailové adresy přidány","{count} e-mailových adres přidáno","{count} e-mailové adresy přidány"],
+ "Copy to clipboard" : "Zkopírovat do schránky",
+ "Copy internal link to clipboard" : "Zkopírovat interní odkaz do schránky",
+ "Only works for people with access to this folder" : "Funguje pouze pro uživatele, kteří mají k této složce přístup",
+ "Only works for people with access to this file" : "Funguje pouze pro uživatele, kteří mají k tomuto souboru přístup",
+ "Copy public link of \"{title}\" to clipboard" : "Zkopírovat veřejný odkaz na „{title}“ do schránky",
+ "Search globally" : "Hledat všude",
+ "Search for share recipients" : "Vyhledat příjemce sdílení",
+ "No recommendations. Start typing." : "Žádná doporučení. Pište",
+ "To upload files, you need to provide your name first." : "Aby bylo možné nahrávat soubory, je třeba nejprve zadat své jméno.",
+ "Enter your name" : "Zadejte své jméno",
+ "Submit name" : "Odeslat jméno",
+ "Share with {userName}" : "Nasdílet pro {userName}",
+ "Show sharing options" : "Zobrazit předvolby pro sdílení",
"Share note" : "Sdílet poznámku",
"Upload files to %s" : "Nahrát soubory do %s",
+ "%s shared a folder with you." : "%s vám nasdílel(a) složku.",
"Note" : "Poznámka",
"Select or drop files" : "Vyberte nebo přetáhněte soubory",
"Uploading files" : "Nahrávání souborů",
"Uploaded files:" : "Nahrané soubory:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Nahráním souborů vyjadřujete souhlas s %1$svšeobecnými podmínkami%2$s.",
- "Add to your Nextcloud" : "Přidat do Nextcloud",
- "Files and folders others share with you will show up here" : "Zde budou zobrazeny soubory a složky, které ostatní sdílí s vámi",
- "Files and folders you share will show up here" : "Zde budou zobrazeny vámi sdílené soubory a složky",
- "Files and folders you share by link will show up here" : "Zde budou zobrazeny soubory a složky, sdílené jako webové odkazy",
- "Shares you deleted will show up here" : "Sdílení která smažete se zobrazí zde",
- "Shares you have received but not confirmed will show up here" : "Sdílení, která jste obdrželi ale nepotvrdili se zobrazí zde",
- "Shares will show up here" : "Sdílení se zobrazí zde",
- "Restore" : "Obnovit",
- "Something happened. Unable to restore the share." : "Něco se stalo. Sdílení se nedaří obnovit.",
- "Something happened. Unable to accept the share." : "Něco se přihodilo. Sdílení se nedaří přijmout.",
- "Something happened. Unable to reject the share." : "Něco se přihodilo. Sdílení se nedaří odmítnout.",
- "No expiration date set" : "Není nastaveno datum skončení platnosti",
- "Please specify a valid user" : "Zadejte platného uživatele",
- "Please specify a valid federated user ID" : "Zadejte platný federovaný identifikátor uživatele",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Tato aplikace uživatelům umožňuje sdílet soubory v rámci Nextcloud. Pokud je zapnutá, správce může zvolit které skupiny mohou sdílet soubory. Pověření uživatelé pak mohou sdílet soubory a složky s ostatními uživateli a skupinami v rámci Nextcloud. Krom toho, pokud správce zapne funkci odkazu sdílení, je možné sdílet soubory i s uživateli mimo Nextcloud a to pomocí externího odkazu. Správci také mohou vynutit používání hesel, datumů expirace a zapnout sdílení server-server pomocí sdílecích odkazů. Stejně tak sdílení z mobilních zařízení.\nVypnutí této funkce odebere sdílené soubory a složky na server pro všechny příjemce sdílení a také na synchronizačních klientech a mobilních aplikacích. Více informací je k dispozici v dokumentaci k Nextcloud.",
- "Accept user and group shares by default" : "Vždy přijímat sdílení od uživatelů a skupin",
- "Read only" : "Pouze pro čtení",
- "File drop (upload only)" : "Přetažení souboru (pouze nahrání)",
- "Upload" : "Nahrávání",
- "Bundled permissions" : "Předvolená oprávnění",
- "Only works for users with access to this folder" : "Funguje pouze pro uživatele, kteří mají přístup k této složce",
- "Only works for users with access to this file" : "Funguje pouze pro uživatele, kteří mají přístup k tomuto souboru",
- "Circle" : "Okruh",
- "Update" : "Aktualizovat",
- "Share with " : "Sdílet s",
- "No other users with access found" : "Nenalezeni žádní další uživatelé, kteří mají přístup",
- "No entries found in this folder" : "V této složce nebylo nic nalezeno",
"Name" : "Název",
- "Share time" : "Čas sdílení",
- "Sorry, this link does not seem to work anymore." : "Omlouváme se, tento odkaz už nejspíš není funkční.",
- "Reasons might be:" : "Možné důvody:",
- "the item was removed" : "položka byla odebrána",
- "the link expired" : "platnost odkazu skončila",
- "sharing is disabled" : "sdílení je vypnuto",
- "For more info, please ask the person who sent this link." : "Pokud potřebujete další podrobnosti, obraťte se na osobu, která vám tento odkaz zaslala.",
- "Share with remote" : "Nasdílet pro vzdálené",
- "Share with" : "Sdílet s"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Tuto metodu použijte pro nasdílení souborů jednotlivcům nebo týmům ve vaší organizaci. Pokud příjemce už má přístup ke sdílení, ale nemůže ho nalézt, můžete mu přístup usnadnit zasláním vnitřního odkazu na sdílení.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Tuto metodu používejte pro sdílení souborů s jednotlivci nebo organizacemi vně té vaší. Soubory a složky je možné nasdílet prostřednictvím veřejných odkazů na sdílení a e-mailových adres. Je také možné nasdílet ostatním Nextcloud účtům hostovaným na různých instancích a to prostřednictvím jejich identifikátorů v rámci federovaného cloudu.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Sdílení, která nejsou součástí interních nebo externích sdílení. Toto mohou být sdílení z aplikací nebo jiných zdrojů.",
+ "Share with accounts, teams, federated cloud id" : "Nasdílejte účtům, týmům, identifikátorům v rámci federovaného cloudu",
+ "Share with accounts and teams" : "Nasdílet účtům a týmům",
+ "Federated cloud ID" : "Identifikátor v rámci federovaného cloudu",
+ "Email, federated cloud id" : "E-mail, identif. federovaného cloudu",
+ "Filename must not be empty." : "Je třeba vyplnit název souboru."
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
diff --git a/apps/files_sharing/l10n/cs.json b/apps/files_sharing/l10n/cs.json
index 1e04c69faed..8f24b43e8ea 100644
--- a/apps/files_sharing/l10n/cs.json
+++ b/apps/files_sharing/l10n/cs.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Čeká se…",
- "error" : "chyba",
- "finished" : "dokončeno",
- "This will stop your current uploads." : "Toto zastaví vaše stávající nahrávání.",
- "Move or copy" : "Přesunout nebo zkopírovat",
- "Download" : "Stáhnout",
- "Delete" : "Smazat",
- "You can upload into this folder" : "Do této složky můžete nahrávat",
- "Terms of service" : "Všeobecné podmínky",
- "Show list view" : "Zobrazit v seznamu",
- "Show grid view" : "Zobrazit v mřížce",
- "No compatible server found at {remote}" : "Na {remote} nebyl nalezen kompatibilní server",
- "Invalid server URL" : "Neplatná URL serveru",
- "Failed to add the public link to your Nextcloud" : "Nepodařilo se přidání veřejného odkazu do Nextcloud",
"File shares" : "Sdílení souborů",
"Downloaded via public link" : "Staženo prostřednictvím veřejného odkazu",
"Downloaded by {email}" : "Stáhnul(a) si {email}",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "Platnost sdílení souboru {file} s {user} skončila",
"Share for file {file} expired" : "Platnost sdílení pro soubor {file} skončila",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Byl <strong>stažen</strong> soubor nebo složka sdílená ve veřejném odkazu",
- "A file or folder was shared from <strong>another server</strong>" : "Soubor nebo složka byla nasdíleny z <strong>jiného serveru</strong>",
- "Files" : "Soubory",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Soubory byly <strong>nahrány</strong> do složky sdílené e-mailem či veřejným odkazem",
+ "A file or folder was shared from <strong>another server</strong>" : "Soubor nebo složka byly nasdíleny z <strong>jiného serveru</strong>",
+ "Sharing" : "Sdílení",
"A file or folder has been <strong>shared</strong>" : "Soubor nebo složka byla <strong>nasdílena</strong>",
"Shared link" : "Sdílený odkaz",
"Wrong share ID, share does not exist" : "Chybný identifikátor sdílení – takové neexistuje",
@@ -76,32 +63,46 @@
"Please specify a file or folder path" : "Zadejte popis umístění souboru či složky",
"Wrong path, file/folder does not exist" : "Nesprávný popis umístění – soubor/složka neexistuje",
"Could not create share" : "Sdílení se nepodařilo vytvořit",
- "Invalid permissions" : "Neplatná oprávnění",
- "Invalid date, date format must be YYYY-MM-DD" : "Neplatné datum – je třeba, aby jeho formát byl RRRR-MM-DD",
+ "Please specify a valid account to share with" : "Zadejte platný účet kterému nasdílet",
"Group sharing is disabled by the administrator" : "Skupinové sdílení bylo zakázáno správcem",
"Please specify a valid group" : "Zadejte platnou skupinu",
"Public link sharing is disabled by the administrator" : "Sdílení veřejným odkazem je zakázáno správcem",
- "Public upload disabled by the administrator" : "Nahrávání veřejností zakázáno správcem",
- "Public upload is only possible for publicly shared folders" : "Veřejné nahrávání je možné pouze do veřejně sdílených šložek",
+ "Please specify a valid email address" : "Zadejte platnou e-mailovou adresu",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Sdílení %s posláním hesla přes Nextcloud Talk se nezdařilo, protože Nextcloud Talk není zapnutý",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Sdílení %1$s se nezdařilo, protože podpůrná vrstva nepodporuje typ sdílení %2$s",
+ "Please specify a valid federated account ID" : "Zadejte platný identifikátor federovaného účtu",
"Please specify a valid federated group ID" : "Zadejte platné federovaný identifikátor skupiny",
- "You cannot share to a Circle if the app is not enabled" : "Do okruhu nemůžete sdílet, pokud není aplikace zapnuta",
- "Please specify a valid circle" : "Zadejte platný okruh",
+ "You cannot share to a Team if the app is not enabled" : "Týmu nemůžete sdílet, pokud není příslušná aplikace zapnutá",
+ "Please specify a valid team" : "Zadejte platný tým",
"Sharing %s failed because the back end does not support room shares" : "Sdílení %s se nezdařilo protože podpůrná vrstva nepodporuje sdílení místností",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Sdílení %s se nezdařilo protože podpůrná vrstva nepodporuje ScienceMesh sdílení",
"Unknown share type" : "Neznámý typ sdílení",
"Not a directory" : "Není adresář",
"Could not lock node" : "Uzel se nedaří uzamknout",
- "Could not lock path" : "Nepodařilo se uzamknout popis umístění",
- "Wrong or no update parameter given" : "Zadán nesprávný nebo stejný jako původní parametr",
+ "Public upload is only possible for publicly shared folders" : "Veřejné nahrávání je možné pouze do veřejně sdílených šložek",
"Share must at least have READ or CREATE permissions" : "Je třeba, aby sdílení mělo alespoň oprávnění pro ČÍST nebo VYTVÁŘET",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Pokud je nastaveno oprávnění AKTUALIZOVAT nebo MAZAT je třeba, aby sdílení mělo oprávnění ČÍST",
+ "Public upload disabled by the administrator" : "Nahrávání veřejností zakázáno správcem",
+ "Could not lock path" : "Nepodařilo se uzamknout popis umístění",
+ "no sharing rights on this item" : "nemáte oprávnění ke sdílení této položky",
+ "You are not allowed to edit incoming shares" : "Nemáte oprávnění upravovat příchozí sdílení",
+ "Wrong or no update parameter given" : "Zadán nesprávný nebo stejný jako původní parametr",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "„Zaslání hesla prostřednictvím Nextcloud Talk“ pro sdílení souboru či složky se nezdařilo protože Nextcloud Talk není zapnuté.",
+ "Custom share link tokens have been disabled by the administrator" : "Uživatelsky určené tokeny sdílení odkazy byly správcem zakázány",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Je třeba, aby tokeny obsahovaly alespoň jeden znak a mohou se skládat pouze z písmen, číslic a ještě pomlčky",
+ "Invalid date. Format must be YYYY-MM-DD" : "Neplatný formát data. Je třeba, aby bylo RRRR-MM-DD",
+ "No sharing rights on this item" : "Nemáte oprávnění ke sdílení této položky",
+ "Invalid share attributes provided: \"%s\"" : "Zadány neplatné atributy sdílení: „%s“",
+ "You are not allowed to send mail notifications" : "Nemáte oprávnění posílat upozornění e-mailem",
+ "No mail notification configured for this share type" : "Pro tento typ sdílení není upozorňování e-mailem nastaveno",
+ "Wrong password" : "Nesprávné heslo",
+ "Error while sending mail notification" : "Chyba při odesílání upozornění e-mailem",
+ "Failed to generate a unique token" : "Nepodařilo se vytvořit neopakující se token",
+ "This share does not exist or is no longer available" : "Toto sdílení neexistuje nebo už není k dispozici",
"shared by %s" : "sdílí %s",
- "Download all files" : "Stáhnout všechny soubory",
- "Direct link" : "Přímý odkaz",
+ "Download" : "Stáhnout",
"Add to your %s" : "Přidat do svého %s",
+ "Direct link" : "Přímý odkaz",
"Share API is disabled" : "Aplikační program. rozhraní (API) pro práci se sdíleními je vypnuté",
"File sharing" : "Sdílení souborů",
"Share will expire tomorrow" : "Platnost sdílení skončí zítra",
@@ -110,132 +111,223 @@
"You received {share} to group {group} as a share by {user}" : "Obdrželi jste {share} do skupiny {group} jako sdílení od {user}",
"Accept" : "Přijmout",
"Decline" : "Odmítnout",
- "Sharing" : "Sdílení",
+ "Remember to upload the files to %s" : "Nezapomeňte nahrát soubory do %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Rádi bychom vám jemně připomněli, že jste zatím do sdílené složky nenahráli žádné soubory.",
+ "Open \"%s\"" : "Otevřít „%s“",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Tato aplikace lidem umožňuje sdílet soubory v rámci služby Nextcloud. Pokud je zapnutá, správce může zvolit, které skupiny mohou sdílet soubory. Pověření lidé pak mohou sdílet soubory a složky s ostatními účty a skupinami v rámci služby Nextcloud. Pokud navíc správce zapne funkci odkazu sdílení, je možné sdílet soubory i s lidmi mimo Nextcloud, a to pomocí externího odkazu. Správci také mohou vynutit používání hesel, dat expirace a zapnout sdílení ze serveru na server pomocí odkazů sdílení, stejně jako sdílení z mobilních zařízení.\nVypnutí této funkce odebere sdílené soubory a složky na server pro všechny příjemce sdílení a také na synchronizačních klientech a mobilních aplikacích. Více informací je k dispozici v dokumentaci služby Nextcloud.",
+ "People" : "Lidé",
+ "Filter accounts" : "Filtrovat účty",
+ "The request will expire on {date} at midnight and will be password protected." : "Platnost žádosti skončí {date} o půlnoci a bude chráněn heslem.",
+ "The request will expire on {date} at midnight." : "Platnost žádosti skončí {date} o půlnoci.",
+ "The request will be password protected." : "Žádost bude chráněna heslem.",
+ "When should the request expire?" : "Kdy má platnost žádosti skončit?",
+ "Set a submission expiration date" : "Nastavit datum skončení skončení platnosti odevzdání",
+ "Expiration date" : "Datum skončení platnosti",
+ "Select a date" : "Vybrat datum",
+ "Your administrator has enforced a {count} days expiration policy." : "Váš správce vynutil zásadu skončení platnosti za {count} dní.",
+ "What password should be used for the request?" : "Jaké heslo by mělo být použito pro žádost?",
+ "Set a password" : "Nastavit heslo",
+ "Password" : "Heslo",
+ "Enter a valid password" : "Zadejte platné heslo",
+ "Generate a new password" : "Vytvořit nové heslo",
+ "Your administrator has enforced a password protection." : "Váš správce vynutil ochranu heslem.",
+ "Automatically copying failed, please copy the share link manually" : "Automatické zkopírování se nezdařilo – zkopírujte prosím odkaz pro sdílení ručně",
+ "Link copied" : "Odkaz zkopírován",
+ "Email already added" : "E-mail už byl přidán",
+ "Invalid email address" : "Neplatná e-mailová adresa",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Následující e-mailová adresa není platná: {emails}","Následující e-mailové adresy nejsou platné: {emails}","Následující e-mailové adresy nejsou platné: {emails}","Následující e-mailové adresy nejsou platné: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} e-mailová adresa už přidána","{count} e-mailové adresy už přidány","{count} e-mailových adres už přidáno","{count} e-mailové adresy už přidány"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} e-mailová adresa přidána","{count} e-mailové adresy přidány","{count} e-mailových adres přidáno","{count} e-mailové adresy přidány"],
+ "You can now share the link below to allow people to upload files to your directory." : "Nyní můžete sdílet níže uvedený odkaz a umožnit lidem nahrávat soubory do vaší složky.",
+ "Share link" : "Odkaz pro sdílení",
+ "Copy" : "Zkopírovat",
+ "Send link via email" : "Odeslat odkaz přes e-mail",
+ "Enter an email address or paste a list" : "Zadejte e-mailovou adresu nebo vložte seznam",
+ "Remove email" : "Odebrat e-mail",
+ "Select a destination" : "Vybrat cíl",
+ "Select" : "Vybrat",
+ "What are you requesting?" : "Co požadujete?",
+ "Request subject" : "Předmět požadavku",
+ "Birthday party photos, History assignment…" : "Fotky z narozeninové oslavy, přiřazení historie…",
+ "Where should these files go?" : "Kam by měly tyto soubory přijít?",
+ "Upload destination" : "Cíl nahrání",
+ "Revert to default" : "Vrátit na výchozí hodnotu",
+ "The uploaded files are visible only to you unless you choose to share them." : "Dokud je nenasdílíte, nahrané soubory jsou viditelné pouze vám.",
+ "Add a note" : "Přidat poznámku",
+ "Note for recipient" : "Poznámka pro příjemce",
+ "Add a note to help people understand what you are requesting." : "Přidejte poznámku vysvětlující lidem, o co žádáte.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Můžete přidat odkazy, datum nebo jakékoli jiné informace, které příjemci pomohou pochopit, o co žádáte.",
+ "Close" : "Zavřít",
+ "_Send email and close_::_Send {count} emails and close_" : ["Odeslat e-mail a zavřít","Odeslat {count} e-mailů a zavřít","Odeslat {count} e-mailů a zavřít","Odeslat {count} e-mailů a zavřít"],
+ "Please select a folder, you cannot share the root directory." : "Vyberte složku (kořenový adresář není možné nasdílet).",
+ "File request created" : "Žádost o soubor vytvořena",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Byla vytvořena žádost o soubor a odeslán e-mail","Byla vytvořena žádost o soubor a odeslány {count} e-maily","Byla vytvořena žádost o soubor a odesláno {count} e-mailů","Byla vytvořena žádost o soubor a odesláno {count} e-mailů"],
+ "Error creating the share: {errorMessage}" : "Chyba při vytváření sdílení: {errorMessage}",
+ "Error creating the share" : "Chyba při vytváření sdílení",
+ "Error sending emails: {errorMessage}" : "Chyba při odesílání e-mailů: {errorMessage}",
+ "Error sending emails" : "Chyba při odesílání e-mailů",
+ "Create a file request" : "Vytvořit žádost o soubor",
+ "Collect files from others even if they do not have an account." : "Sbírejte soubory od ostatních, i když nemají účet.",
+ "To ensure you can receive files, verify you have enough storage available." : "Pokud chcete zajistit, že budete moci přijímat soubory, ověřte, že máte k dispozici dostatek úložného prostoru.",
+ "File request" : "Žádost o soubor",
+ "Previous step" : "Předchozí krok",
+ "Cancel" : "Storno",
+ "Cancel the file request creation" : "Zrušit vytváření žádosti o soubor",
+ "Close without sending emails" : "Zavřít bez odeslání e-mailů",
+ "Continue" : "Pokračovat",
"Error while toggling options" : "Chyba při přepínání voleb",
- "Set default folder for accepted shares" : "Nastavit výchozí složku pro přijatá sdílení",
- "Reset" : "Vrátit na výchozí hodnoty",
- "Reset folder to system default" : "Resetovat složku na systémovou výchozí",
+ "Accept shares from other accounts and groups by default" : "Ve výchozím nastavení přijímat sdílené položky z jiných účtů a skupin",
"Choose a default folder for accepted shares" : "Zvolte výchozí složku pro přijatá sdílení",
"Invalid path selected" : "Vybrán neplatný popis umístění",
"Unknown error" : "Neznámá chyba",
- "Open Sharing Details" : "Otevřít podrobnosti o sdílení",
+ "Set default folder for accepted shares" : "Nastavit výchozí složku pro přijatá sdílení",
+ "Reset" : "Vrátit na výchozí hodnoty",
+ "Reset folder to system default" : "Resetovat složku na systémovou výchozí",
+ "Share expiration: {date}" : "Skončení platnosti sdílení: {date}",
+ "Share Expiration" : "Skončení platnosti sdílení",
"group" : "skupina",
"conversation" : "konverzace",
"remote" : "vzdálené",
"remote group" : "federovaná skupina",
"guest" : "host",
+ "by {initiator}" : "od {initiator}",
"Shared with the group {user} by {owner}" : "{owner} sdílí se skupinou {user}",
"Shared with the conversation {user} by {owner}" : "{owner} sdílí konverzaci {user}",
"Shared with {user} by {owner}" : "{owner} sdílí s {user}",
+ "Open Sharing Details" : "Otevřít podrobnosti o sdílení",
"Added by {initiator}" : "Přidal(a) {initiator}",
"Via “{folder}”" : "Prostřednictvím „{folder}“",
"Unshare" : "Zrušit sdílení",
- "Internal link" : "Interní odkaz",
"Cannot copy, please copy the link manually" : "Nedaří se zkopírovat, zkopírujte odkaz ručně",
- "Copy internal link to clipboard" : "Zkopírovat interní odkaz do schránky",
- "Link copied" : "Odkaz zkopírován",
- "Please enter the following required information before creating the share" : "Před vytvořením sdílení zadejte následující potřebné informace",
- "Password protection (enforced)" : "Ochrana heslem (vynucená)",
- "Password protection" : "Ochrana heslem",
- "Enter a password" : "Zadejte heslo",
- "Expiration date (enforced)" : "Datum skončení platnosti (vynuceno)",
- "Enter a date" : "Zadejte datum",
- "Create share" : "Vytvořit sdílení",
- "Cancel" : "Storno",
- "Customize link" : "Přizpůsobit odkaz",
- "Add another link" : "Přidat další odkaz",
- "Create a new share link" : "Vytvořit nový odkaz pro sdílení",
+ "Copy internal link" : "Zkopírovat interní odkaz",
+ "Internal link" : "Interní odkaz",
"{shareWith} by {initiator}" : "{shareWith} od {initiator}",
"Shared via link by {initiator}" : "{initiator} sdílí odkazem",
+ "File request ({label})" : "Žádost o soubor ({label})",
"Mail share ({label})" : "Sdílení e-mailem ({label})",
"Share link ({label})" : "Odkaz na sdílení ({label})",
+ "Mail share" : "Sdílení e-mailu",
"Share link ({index})" : "Odkaz na sdílení ({index})",
- "Share link" : "Odkaz pro sdílení",
+ "Create public link" : "Vytvořit veřejný odkaz",
"Actions for \"{title}\"" : "Akce pro „{title}",
- "Copy public link of \"{title}\" to clipboard" : "Zkopírovat veřejný odkaz na „{title}“ do schránky",
"Error, please enter proper password and/or expiration date" : "Chyba – zadejte správné heslo a/nebo datum skončení platnosti",
"Link share created" : "Odkaz na sdílení vytvořen",
"Error while creating the share" : "Chyba při vytváření sdílení",
+ "Please enter the following required information before creating the share" : "Před vytvořením sdílení zadejte následující potřebné informace",
+ "Password protection (enforced)" : "Ochrana heslem (vynucená)",
+ "Password protection" : "Ochrana heslem",
+ "Enter a password" : "Zadejte heslo",
+ "Enable link expiration (enforced)" : "Zapnout omezení doby platnosti odkazu (vynucené)",
+ "Enable link expiration" : "Zapnout omezení doby platnosti odkazu",
+ "Enter expiration date (enforced)" : "Zadejte datum skončení platnosti (vynucené)",
+ "Enter expiration date" : "Zadejte datum skončení platnosti",
+ "Create share" : "Vytvořit sdílení",
+ "Customize link" : "Přizpůsobit odkaz",
+ "Generate QR code" : "Vytvořit QR kód",
+ "Add another link" : "Přidat další odkaz",
+ "Create a new share link" : "Vytvořit nový odkaz pro sdílení",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Předvolby rychlého sdílení – nyní je vybrána „{selectedOption}“",
"View only" : "Pouze prohlížet",
"Can edit" : "Může upravovat",
- "File drop" : "Předání souboru",
"Custom permissions" : "Uživatelsky určená oprávnění",
- "Search for share recipients" : "Vyhledat příjemce sdílení",
- "No recommendations. Start typing." : "Žádná doporučení. Pište",
"Resharing is not allowed" : "Příjemcům tohoto sdílení není dovoleno ho nasdílet dál dalším",
"Name or email …" : "Jméno nebo e-mail…",
"Name, email, or Federated Cloud ID …" : "Jméno, e-mail nebo identifikátor ve federovaném cloudu…",
"Searching …" : "Hledání…",
"No elements found." : "Nenalezeny žádné prvky.",
- "Search globally" : "Hledat všude",
+ "Search everywhere" : "Hledat všude",
"Guest" : "Host",
"Group" : "Skupina",
"Email" : "E-mail",
+ "Team" : "Tým",
"Talk conversation" : "Konverzace v Talk",
"Deck board" : "Tabule aplikace Deck",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "na {server}",
+ "Enter external recipients" : "Zadat externí příjemce",
+ "Search for internal recipients" : "Vyhledat interní příjemce",
+ "Note from" : "Poznámka od",
+ "Note:" : "Poznámka:",
+ "File drop" : "Předání souboru",
+ "Upload files to {foldername}." : "Nahrát soubory do {foldername}",
+ "By uploading files, you agree to the terms of service." : "Nahráním souborů souhlasíte s podmínkami služby.",
+ "Successfully uploaded files" : "Soubory úspěšně nahrány",
+ "View terms of service" : "Zobrazit smluvní podmínky",
+ "Terms of service" : "Všeobecné podmínky",
+ "Share with email {email}" : "Nasdílet e-mailu {email}",
+ "Share with group" : "Nasdílet skupině",
+ "Share in conversation" : "Nasdílet v konverzaci",
+ "Share with {user} on remote server {server}" : "Nasdílet uživateli {user} na vzdáleném serveru {server}",
+ "Share with remote group" : "Nasdílet vzdálené skupině",
+ "Share with guest" : "Nasdílet hostovi",
+ "Update share" : "Zaktualizovat sdílení",
+ "Save share" : "Uložit sdílení",
+ "Read" : "Čtení",
+ "Create" : "Vytvářet",
+ "Edit" : "Úpravy",
+ "Share" : "Sdílet",
+ "Delete" : "Smazat",
+ "Password field cannot be empty" : "Kolonku heslo je třeba vyplnit",
+ "Replace current password" : "Nahradit stávající heslo",
+ "Failed to generate a new token" : "Nepodařilo se vytvořit nový token",
"Allow upload and editing" : "Povolit nahrávání a úpravy",
"Allow editing" : "Povolit úpravy",
"Upload only" : "Pouze nahrávat",
"Advanced settings" : "Pokročilá nastavení",
"Share label" : "Štítek sdílení",
+ "Share link token" : "Nasdílet token odkazu",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Nastavte token veřejného odkazu na sdílení na něco snadno zapamatovatelného nebo vytvořte nový token. Není doporučeno používat uhodnutelné tokeny pro sdílení, která obsahují citlivé informace.",
+ "Generating…" : "Vytváření…",
+ "Generate new token" : "Vytvořit nový token",
"Set password" : "Nastavit heslo",
- "Password" : "Heslo",
"Password expires {passwordExpirationTime}" : "Platnost hesla skončí {passwordExpirationTime}",
"Password expired" : "Platnost hesla skončila",
"Video verification" : "Ověřování pomocí videa",
+ "Expiration date (enforced)" : "Datum skončení platnosti (vynuceno)",
"Set expiration date" : "Nastavit datum skončení platnosti",
- "Expiration date" : "Datum skončení platnosti",
"Hide download" : "Skrýt stahování",
- "Allow download" : "Umožnit stahování",
+ "Allow download and sync" : "Povolit stahování a synchronizaci",
"Note to recipient" : "Poznámka pro příjemce",
"Enter a note for the share recipient" : "Zadejte poznámku pro příjemce sdílení",
- "Read" : "Čtení",
- "Create" : "Vytvářet",
- "Edit" : "Úpravy",
- "Share" : "Sdílet",
+ "Show files in grid view" : "Zobrazit soubory v zobrazení v mřížce",
"Delete share" : "Smazat sdílení",
- "Share with {userName}" : "Nasdílet pro {userName}",
- "Share with group" : "Nasdílet skupině",
- "Share in conversation" : "Nasdílet v konverzaci",
- "Share with remote group" : "Nasdílet vzdálené skupině",
- "Share with guest" : "Nasdílet hostovi",
- "Update share" : "Zaktualizovat sdílení",
- "Save share" : "Uložit sdílení",
"Others with access" : "Ostatní, kteří mají přístup",
+ "No other accounts with access found" : "Nenalezeni žádné další účty, kteří mají přístup",
"Toggle list of others with access to this directory" : "Vyp/zap. seznam ostatních s přístupem k této složce",
"Toggle list of others with access to this file" : "Vyp/zap. seznam ostatních s přístupem k tomuto souboru",
"Unable to fetch inherited shares" : "Nedaří se získat převzatá sdílení",
+ "Link shares" : "Sdílení odkazem",
+ "Shares" : "Sdílení",
"Unable to load the shares list" : "Nedaří se načíst seznam sdílení",
"Expires {relativetime}" : "Platnost končí {relativetime}",
"this share just expired." : "platnost tohoto sdílení právě skončila.",
"Shared with you by {owner}" : "S vámi sdílí {owner}",
+ "Internal shares" : "Vnitřní sdílení",
+ "Internal shares explanation" : "Vysvětlení vnitřních sdílení",
+ "External shares" : "Externí sdílení",
+ "External shares explanation" : "Vysvětlení externích sdílení",
+ "Additional shares" : "Další sdílení",
+ "Additional shares explanation" : "Vysvětlení dalších sdílen",
+ "Link to a file" : "Odkaz na soubor",
"_Accept share_::_Accept shares_" : ["Přijmout sdílení","Přijmout sdílení","Přijmout sdílení","Přijmout sdílení"],
"Open in Files" : "Otevřít v Souborech",
"_Reject share_::_Reject shares_" : ["Odmítnout sdílení","Odmítnout sdílení","Odmítnout sdílení","Odmítnout sdílení"],
"_Restore share_::_Restore shares_" : ["Obnovit sdílení","Obnovit sdílení","Obnovit sdílení","Obnovit sdílení"],
"Shared" : "Sdíleno",
- "Shared multiple times with different people" : "Nasdílet několikrát různým lidem",
"Shared by {ownerDisplayName}" : "Nasdílel(a) {ownerDisplayName}",
- "Show sharing options" : "Zobrazit předvolby pro sdílení",
- "Link to a file" : "Odkaz na soubor",
- "Error creating the share: {errorMessage}" : "Chyba při vytváření sdílení: {errorMessage}",
- "Error creating the share" : "Chyba při vytváření sdílení",
- "Error updating the share: {errorMessage}" : "Chyba při aktualizaci sdílení: {errorMessage}",
- "Error updating the share" : "Chyba při aktualizaci sdílení",
- "File \"{path}\" has been unshared" : "Sdílení souboru „{path}“ bylo zrušeno",
- "Folder \"{path}\" has been unshared" : "Sdílení složky „{path}“ bylo zrušeno",
- "Share {propertyName} saved" : "Sdílení {propertyName} uloženo",
- "Shared by" : "Sdílí",
- "Shared with" : "Sdíleno s",
- "Password created successfully" : "Heslo úspěšně vytvořeno",
- "Error generating password from password policy" : "Chyba při vytváření hesla ze zásady pro hesla",
- "Shared with you and the group {group} by {owner}" : "{owner} sdílí vám a skupině {group}",
- "Shared with you and {circle} by {owner}" : "Sdíleno s vámi a {circle} od {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} sdílí vám a konverzaci {conversation}",
- "Shared with you in a conversation by {owner}" : " {owner} vám sdílí v konverzaci",
- "Shares" : "Sdílení",
+ "Shared multiple times with different people" : "Nasdílet několikrát různým lidem",
+ "Sharing options" : "Předvolby pro sdílení",
+ "Shared with others" : "Sdíleno s ostatními",
+ "Create file request" : "Vytvořit žádost o soubor",
+ "Upload files to {foldername}" : "Nahrát soubory do {foldername}",
+ "Public file share" : "Veřejné sdílení souboru",
+ "Publicly shared file." : "Veřejně sdílený soubor.",
+ "No file" : "Žádný soubor",
+ "The file shared with you will show up here" : "Zde se zobrazí vám nasdílený soubor",
+ "Public share" : "Veřejné sdílení",
+ "Publicly shared files." : "Veřejně sdílené soubory.",
+ "No files" : "Žádné soubory",
+ "Files and folders shared with you will show up here" : "Zde se zobrazí vám nasdílené soubory a složky",
"Overview of shared files." : "Přehled nasdílených souborů",
"No shares" : "Žádná sdílení",
"Files and folders you shared or have been shared with you will show up here" : "Zde budou zobrazeny soubory a složky, které jste nasdíleli nebo vám byly nadíleny",
@@ -243,7 +335,6 @@
"List of files that are shared with you." : "Seznam souborů, které vám byly nasdíleny.",
"Nothing shared with you yet" : "Zatím vám nikdo nic nenasdílel",
"Files and folders others shared with you will show up here" : "Zde budou zobrazeny soubory a složky, které vám nasdílí ostatní",
- "Shared with others" : "Sdíleno s ostatními",
"List of files that you shared with others." : "Seznam souborů, které jste nasdíleli ostatním.",
"Nothing shared yet" : "Zatím není nic sdíleno",
"Files and folders you shared will show up here" : "Zde budou zobrazeny vámi nasdílené soubory a složky",
@@ -251,6 +342,10 @@
"List of files that are shared by link." : "Seznam souborů, které jsou nasdílené odkazem.",
"No shared links" : "Žádné sdílené odkazy",
"Files and folders you shared by link will show up here" : "Zde budou zobrazeny soubory a složky, které jste nasdíleli jako odkazy",
+ "File requests" : "Žádosti o soubory",
+ "List of file requests." : "Seznam žádostí o soubory.",
+ "No file requests" : "Žádné žádosti o soubory",
+ "File requests you have created will show up here" : "Vytvořené žádosti o soubor se zobrazí zde",
"Deleted shares" : "Smazaná sdílení",
"List of shares you left." : "Seznam sdílení, které jste opustili.",
"No deleted shares" : "Žádná smazaná sdílení",
@@ -259,49 +354,87 @@
"List of unapproved shares." : "Seznam neschválených sdílení.",
"No pending shares" : "Žádná čekající sdílení",
"Shares you have received but not approved will show up here" : "Sdílení, která jste obdrželi, ale neschválili, se zobrazí zde",
+ "Error deleting the share: {errorMessage}" : "Chyba při mazán sdílení: {errorMessage}",
+ "Error deleting the share" : "Chyba při mazání sdílení",
+ "Error updating the share: {errorMessage}" : "Chyba při aktualizaci sdílení: {errorMessage}",
+ "Error updating the share" : "Chyba při aktualizaci sdílení",
+ "File \"{path}\" has been unshared" : "Sdílení souboru „{path}“ bylo zrušeno",
+ "Folder \"{path}\" has been unshared" : "Sdílení složky „{path}“ bylo zrušeno",
+ "Could not update share" : "Nepodařilo se zaktualizovat sdílení",
+ "Share saved" : "Sdílení uloženo",
+ "Share expiry date saved" : "Datum skončení platnosti sdílení uloženo",
+ "Share hide-download state saved" : "Stav skrýt stahování uložen",
+ "Share label saved" : "Štítek sdílení uložen",
+ "Share note for recipient saved" : "Poznámka pro příjemce sdílení uložena",
+ "Share password saved" : "Heslo ke sdílení uloženo",
+ "Share permissions saved" : "Oprávnění ke sdílení uložena",
+ "To upload files to {folder}, you need to provide your name first." : "Pokud chcete nahrávat soubory do {folder}, je zapotřebí nejprve zadat své jméno.",
+ "Upload files to {folder}" : "Nahrát soubory do {folder}",
+ "Please confirm your name to upload files to {folder}" : "Potvrďte své jméno pokud chcete nahrávat soubory do {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} vám nasdílel(a) složku.",
+ "Names must not be empty." : "Jména je třeba vyplnit.",
+ "Names must not start with a dot." : "Je třeba, aby názvy nezačínaly tečkou.",
+ "\"{char}\" is not allowed inside a name." : "„{char}“ není v názvu možné použít.",
+ "\"{segment}\" is a reserved name and not allowed." : "„{segment}“ je vyhrazeným názvem a není povoleno k použití.",
+ "\"{extension}\" is not an allowed name." : "„{extension}“ není povoleným názvem.",
+ "Names must not end with \"{extension}\"." : "Je třeba, aby názvy nekončily na „{extension}“.",
+ "Invalid name." : "Neplatný název.",
+ "Shared by" : "Sdílí",
+ "Shared with" : "Sdíleno s",
+ "Password created successfully" : "Heslo úspěšně vytvořeno",
+ "Error generating password from password policy" : "Chyba při vytváření hesla ze zásady pro hesla",
+ "Shared with you and the group {group} by {owner}" : "{owner} sdílí vám a skupině {group}",
+ "Shared with you and {circle} by {owner}" : "Sdíleno s vámi a {circle} od {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} sdílí vám a konverzaci {conversation}",
+ "Shared with you in a conversation by {owner}" : " {owner} vám sdílí v konverzaci",
+ "Share not found" : "Sdílení nenalezeno",
+ "Back to %s" : "Zpět na %s",
+ "Add to your Nextcloud" : "Přidat do Nextcloud",
+ "Waiting…" : "Čeká se…",
+ "error" : "chyba",
+ "finished" : "dokončeno",
+ "This will stop your current uploads." : "Toto zastaví vaše stávající nahrávání.",
+ "Move or copy" : "Přesunout nebo zkopírovat",
+ "You can upload into this folder" : "Do této složky můžete nahrávat",
+ "Show list view" : "Zobrazit v seznamu",
+ "Show grid view" : "Zobrazit v mřížce",
+ "No compatible server found at {remote}" : "Na {remote} nebyl nalezen kompatibilní server",
+ "Invalid server URL" : "Neplatná URL serveru",
+ "Failed to add the public link to your Nextcloud" : "Nepodařilo se přidání veřejného odkazu do Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "Nemáte oprávnění upravovat sdílení odkazem, která nevlastníte",
+ "Download all files" : "Stáhnout všechny soubory",
+ "Link copied to clipboard" : "Odkaz zkopírován do schánky",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailová adresa už přidána","{count} e-mailové adresy už přidány","{count} e-mailových adres už přidáno","{count} e-mailové adresy už přidány"],
+ "_1 email address added_::_{count} email addresses added_" : ["Jedna e-mailová adresa přidána","{count} e-mailové adresy přidány","{count} e-mailových adres přidáno","{count} e-mailové adresy přidány"],
+ "Copy to clipboard" : "Zkopírovat do schránky",
+ "Copy internal link to clipboard" : "Zkopírovat interní odkaz do schránky",
+ "Only works for people with access to this folder" : "Funguje pouze pro uživatele, kteří mají k této složce přístup",
+ "Only works for people with access to this file" : "Funguje pouze pro uživatele, kteří mají k tomuto souboru přístup",
+ "Copy public link of \"{title}\" to clipboard" : "Zkopírovat veřejný odkaz na „{title}“ do schránky",
+ "Search globally" : "Hledat všude",
+ "Search for share recipients" : "Vyhledat příjemce sdílení",
+ "No recommendations. Start typing." : "Žádná doporučení. Pište",
+ "To upload files, you need to provide your name first." : "Aby bylo možné nahrávat soubory, je třeba nejprve zadat své jméno.",
+ "Enter your name" : "Zadejte své jméno",
+ "Submit name" : "Odeslat jméno",
+ "Share with {userName}" : "Nasdílet pro {userName}",
+ "Show sharing options" : "Zobrazit předvolby pro sdílení",
"Share note" : "Sdílet poznámku",
"Upload files to %s" : "Nahrát soubory do %s",
+ "%s shared a folder with you." : "%s vám nasdílel(a) složku.",
"Note" : "Poznámka",
"Select or drop files" : "Vyberte nebo přetáhněte soubory",
"Uploading files" : "Nahrávání souborů",
"Uploaded files:" : "Nahrané soubory:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Nahráním souborů vyjadřujete souhlas s %1$svšeobecnými podmínkami%2$s.",
- "Add to your Nextcloud" : "Přidat do Nextcloud",
- "Files and folders others share with you will show up here" : "Zde budou zobrazeny soubory a složky, které ostatní sdílí s vámi",
- "Files and folders you share will show up here" : "Zde budou zobrazeny vámi sdílené soubory a složky",
- "Files and folders you share by link will show up here" : "Zde budou zobrazeny soubory a složky, sdílené jako webové odkazy",
- "Shares you deleted will show up here" : "Sdílení která smažete se zobrazí zde",
- "Shares you have received but not confirmed will show up here" : "Sdílení, která jste obdrželi ale nepotvrdili se zobrazí zde",
- "Shares will show up here" : "Sdílení se zobrazí zde",
- "Restore" : "Obnovit",
- "Something happened. Unable to restore the share." : "Něco se stalo. Sdílení se nedaří obnovit.",
- "Something happened. Unable to accept the share." : "Něco se přihodilo. Sdílení se nedaří přijmout.",
- "Something happened. Unable to reject the share." : "Něco se přihodilo. Sdílení se nedaří odmítnout.",
- "No expiration date set" : "Není nastaveno datum skončení platnosti",
- "Please specify a valid user" : "Zadejte platného uživatele",
- "Please specify a valid federated user ID" : "Zadejte platný federovaný identifikátor uživatele",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Tato aplikace uživatelům umožňuje sdílet soubory v rámci Nextcloud. Pokud je zapnutá, správce může zvolit které skupiny mohou sdílet soubory. Pověření uživatelé pak mohou sdílet soubory a složky s ostatními uživateli a skupinami v rámci Nextcloud. Krom toho, pokud správce zapne funkci odkazu sdílení, je možné sdílet soubory i s uživateli mimo Nextcloud a to pomocí externího odkazu. Správci také mohou vynutit používání hesel, datumů expirace a zapnout sdílení server-server pomocí sdílecích odkazů. Stejně tak sdílení z mobilních zařízení.\nVypnutí této funkce odebere sdílené soubory a složky na server pro všechny příjemce sdílení a také na synchronizačních klientech a mobilních aplikacích. Více informací je k dispozici v dokumentaci k Nextcloud.",
- "Accept user and group shares by default" : "Vždy přijímat sdílení od uživatelů a skupin",
- "Read only" : "Pouze pro čtení",
- "File drop (upload only)" : "Přetažení souboru (pouze nahrání)",
- "Upload" : "Nahrávání",
- "Bundled permissions" : "Předvolená oprávnění",
- "Only works for users with access to this folder" : "Funguje pouze pro uživatele, kteří mají přístup k této složce",
- "Only works for users with access to this file" : "Funguje pouze pro uživatele, kteří mají přístup k tomuto souboru",
- "Circle" : "Okruh",
- "Update" : "Aktualizovat",
- "Share with " : "Sdílet s",
- "No other users with access found" : "Nenalezeni žádní další uživatelé, kteří mají přístup",
- "No entries found in this folder" : "V této složce nebylo nic nalezeno",
"Name" : "Název",
- "Share time" : "Čas sdílení",
- "Sorry, this link does not seem to work anymore." : "Omlouváme se, tento odkaz už nejspíš není funkční.",
- "Reasons might be:" : "Možné důvody:",
- "the item was removed" : "položka byla odebrána",
- "the link expired" : "platnost odkazu skončila",
- "sharing is disabled" : "sdílení je vypnuto",
- "For more info, please ask the person who sent this link." : "Pokud potřebujete další podrobnosti, obraťte se na osobu, která vám tento odkaz zaslala.",
- "Share with remote" : "Nasdílet pro vzdálené",
- "Share with" : "Sdílet s"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Tuto metodu použijte pro nasdílení souborů jednotlivcům nebo týmům ve vaší organizaci. Pokud příjemce už má přístup ke sdílení, ale nemůže ho nalézt, můžete mu přístup usnadnit zasláním vnitřního odkazu na sdílení.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Tuto metodu používejte pro sdílení souborů s jednotlivci nebo organizacemi vně té vaší. Soubory a složky je možné nasdílet prostřednictvím veřejných odkazů na sdílení a e-mailových adres. Je také možné nasdílet ostatním Nextcloud účtům hostovaným na různých instancích a to prostřednictvím jejich identifikátorů v rámci federovaného cloudu.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Sdílení, která nejsou součástí interních nebo externích sdílení. Toto mohou být sdílení z aplikací nebo jiných zdrojů.",
+ "Share with accounts, teams, federated cloud id" : "Nasdílejte účtům, týmům, identifikátorům v rámci federovaného cloudu",
+ "Share with accounts and teams" : "Nasdílet účtům a týmům",
+ "Federated cloud ID" : "Identifikátor v rámci federovaného cloudu",
+ "Email, federated cloud id" : "E-mail, identif. federovaného cloudu",
+ "Filename must not be empty." : "Je třeba vyplnit název souboru."
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/cy_GB.js b/apps/files_sharing/l10n/cy_GB.js
deleted file mode 100644
index 1a8addf1729..00000000000
--- a/apps/files_sharing/l10n/cy_GB.js
+++ /dev/null
@@ -1,10 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Cancel" : "Diddymu",
- "Shared by" : "Rhannwyd gan",
- "Password" : "Cyfrinair",
- "Name" : "Enw",
- "Download" : "Llwytho i lawr"
-},
-"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;");
diff --git a/apps/files_sharing/l10n/cy_GB.json b/apps/files_sharing/l10n/cy_GB.json
deleted file mode 100644
index 9eebc50be7d..00000000000
--- a/apps/files_sharing/l10n/cy_GB.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "translations": {
- "Cancel" : "Diddymu",
- "Shared by" : "Rhannwyd gan",
- "Password" : "Cyfrinair",
- "Name" : "Enw",
- "Download" : "Llwytho i lawr"
-},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/da.js b/apps/files_sharing/l10n/da.js
index 0821adf961a..8ee68b0b886 100644
--- a/apps/files_sharing/l10n/da.js
+++ b/apps/files_sharing/l10n/da.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Venter …",
- "error" : "fejl",
- "finished" : "Færdiggjort",
- "This will stop your current uploads." : "Dette vil stoppe din nuværende uploads.",
- "Move or copy" : "Flyt eller kopier",
- "Download" : "Download",
- "Delete" : "Slet",
- "You can upload into this folder" : "Du kan overføre til denne mappe",
- "Terms of service" : "Servicebetingelser",
- "Show list view" : "Vis som liste",
- "Show grid view" : "Vis som gitter",
- "No compatible server found at {remote}" : "Ingen kompatible servere fundet på {remote}",
- "Invalid server URL" : "Ugyldig server adresse",
- "Failed to add the public link to your Nextcloud" : "Fejl ved tilføjelse af offentligt link til din Nextcloud",
"File shares" : "Fildelinger",
"Downloaded via public link" : "Downloaded via et offentligt link",
"Downloaded by {email}" : "Downloaded af {email}",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "Deling af {file} med {user} udløbet",
"Share for file {file} expired" : "Deling af {file} udløbet",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "En fil eller mapper delt vie mail eller offentligt link blev <strong>downloaded</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Filer er blevet <strong>uploadet</strong> til en mappe delt via mail eller et offentligt link",
"A file or folder was shared from <strong>another server</strong>" : "En fil eller mappe blev delt fra <strong>en anden server</strong>",
- "Files" : "Filer",
+ "Sharing" : "Deling",
"A file or folder has been <strong>shared</strong>" : "En fil eller mappe er blevet <strong>delt</strong>",
"Shared link" : "Delt link",
"Wrong share ID, share does not exist" : "Forkert DelingsID, deling findes ikke",
@@ -78,126 +65,362 @@ OC.L10N.register(
"Please specify a file or folder path" : "Præciser venligst en fil eller mappesti",
"Wrong path, file/folder does not exist" : "Forkert sti, fil/mappe findes ikke",
"Could not create share" : "Kunne ikke oprette deling",
- "Invalid permissions" : "Ugyldige rettigheder",
- "Invalid date, date format must be YYYY-MM-DD" : "Ugyldig dato. Brug formatet ÅÅÅÅ-MM-DD",
+ "Please specify a valid account to share with" : "Præciser venligst en gyldig konto at dele med",
"Group sharing is disabled by the administrator" : "Gruppedeling er deaktiveret af administratoren",
"Please specify a valid group" : "Angiv en gyldig gruppe",
"Public link sharing is disabled by the administrator" : "Deling med offentligt link er deaktiveret af administratoren",
- "Public upload disabled by the administrator" : "Offentlige uploads er slået fra af administratoren",
- "Public upload is only possible for publicly shared folders" : "Offentligt upload er kun muligt i mapper der er delt offentligt",
+ "Please specify a valid email address" : "Angiv venligst en gyldig e-mailadresse",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Deler %s afsendelse af adgangskoden med Nextcloud Snak fejlede, fordi Nextcloud Snak ikke er aktiveret",
+ "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Deling af %1$s mislykkedes fordi backenden ikke tillader delinger fra typen %2$s",
+ "Please specify a valid federated account ID" : "Angiv venligst et gyldigt sammenkoblings konto-ID",
+ "Please specify a valid federated group ID" : "Angiv venligst et gyldigt sammenkoblings gruppe-ID",
+ "You cannot share to a Team if the app is not enabled" : "Du kan ikke dele til et Team, hvis app'en ikke er aktiveret",
+ "Please specify a valid team" : "Angiv venligst et gyldigt team",
+ "Sharing %s failed because the back end does not support room shares" : "Deling af %s mislykkedes fordi backenden ikke tillader delinger af rumdeling",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Kunne ikke dele %s fordi backenden ikke understøtter deling af ScienceMesh",
"Unknown share type" : "Ukendt deletype",
"Not a directory" : "Ikke en mappe",
+ "Could not lock node" : "Kunne ikke låse node",
+ "Public upload is only possible for publicly shared folders" : "Offentligt upload er kun muligt i mapper der er delt offentligt",
+ "Share must at least have READ or CREATE permissions" : "Deling skal som minimum have LÆS eller OPRET rettigheder",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "Deling skal have LÆSE rettigheder hvis OPDATER eller SLET rettigheder er sat",
+ "Public upload disabled by the administrator" : "Offentlige uploads er slået fra af administratoren",
"Could not lock path" : "Stien kunne ikke låses",
+ "no sharing rights on this item" : "ingen delingsrettigheder på dette element",
+ "You are not allowed to edit incoming shares" : "Du har ikke tilladelse til at redigere indkommende delinger",
"Wrong or no update parameter given" : "Forkert eller manglende opdateringsparameter",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Afsendelse af adgangskoden med Nextcloud Snak\" for at dele en fil eller en mappe fejlede fordi Nextcloud Snak ikke er aktiveret.",
+ "Custom share link tokens have been disabled by the administrator" : "Brugerdefinerede delings link token er blevet deaktiverede af administratoren",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tokens skal indeholde minimum 1 karakter og må kun indeholde bogstaver, tal, eller en bindestreg",
+ "Invalid date. Format must be YYYY-MM-DD" : "Ugyldig dato. Formatet skal være ÅÅÅÅ-MM-DD",
+ "No sharing rights on this item" : "Ingen delingsrettigheder på dette element",
+ "Invalid share attributes provided: \"%s\"" : "Ugyldig delingsattribut angivet: \"%s\"",
+ "You are not allowed to send mail notifications" : "Du har ikke tilladelse til at sende mailnotifikationer",
+ "No mail notification configured for this share type" : "Ingen mailnotifikation konfigureret for denne delingstype",
+ "Wrong password" : "Forkert adgangskode",
+ "Error while sending mail notification" : "Fejl under afsendelse af mailnotifikation",
+ "Failed to generate a unique token" : "Kunne ikke generere en unikt token",
+ "This share does not exist or is no longer available" : "Denne deling eksisterer ikke eller er ikke længere tilgængelig",
"shared by %s" : "delt af %s",
+ "Download" : "Download",
+ "Add to your %s" : "Tilføj til din %s",
"Direct link" : "Direkte link",
"Share API is disabled" : "Delings-API er slået fra",
"File sharing" : "Fildeling",
+ "Share will expire tomorrow" : "Deling vil udløbe i morgen",
+ "Your share of {node} will expire tomorrow" : "Din deling af {node} vil udløbe i morgen",
+ "You received {share} as a share by {user}" : "Du modtog {share} som en deling af {user}",
+ "You received {share} to group {group} as a share by {user}" : "Du modtog {share} til gruppe {group} som en deling af {user}",
"Accept" : "Accepter",
"Decline" : "Afvis",
- "Sharing" : "Deling",
- "Reset" : "Nulstil",
+ "Remember to upload the files to %s" : "Husk at uploade filerne til %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Vi vil venligst minde dig om at du endnu ikke har uploadet nogen filer til delingsmappen.",
+ "Open \"%s\"" : "Åben \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Denne applikation gør det muligt for folk at dele filer i Nextcloud. Hvis den er aktiveret, så kan administratoren vælge, hvilke grupper der kan dele filer. De relevante personer kan derefter dele filer og mapper med andre konti og grupper i Nextcloud. Hvis administratoren aktiverer delelink-funktionen, kan et eksternt link derudover bruges til at dele filer med andre personer uden for Nextcloud. Administratorer kan også gennemtvinge adgangskoder, udløbsdatoer og aktivere server-til-server-deling via delelinks samt deling fra mobile enheder.\nDeaktivering af funktionen fjerner delte filer og mapper på serveren for alle delingsmodtagere og også på synkroniseringsklienterne og mobilapps. Mere information er tilgængelig i Nextcloud-dokumentationen.",
+ "People" : "Personer",
+ "Filter accounts" : "Filtrer konti",
+ "The request will expire on {date} at midnight and will be password protected." : "Forespørgslen vil udløbe den {date} ved midnat og vil være adgangskodebeskyttet.",
+ "The request will expire on {date} at midnight." : "Forespørgslen vil udløbe den {date} ved midnat.",
+ "The request will be password protected." : "Forespørgslen vil være adgangskodebeskyttet.",
+ "When should the request expire?" : "Hvornår skal forespørgslen udløbe?",
+ "Set a submission expiration date" : "Angiv en udløbsdato for indsendelse",
+ "Expiration date" : "Udløbsdato",
+ "Select a date" : "Vælg en dato",
+ "Your administrator has enforced a {count} days expiration policy." : "Din administrator har gennemtvunget en {count} dages udløbspolitik.",
+ "What password should be used for the request?" : "Hvilken adgangskode skal anvendes til denne forespørgsel?",
+ "Set a password" : "Indstil en adgangskode",
+ "Password" : "Kodeord",
+ "Enter a valid password" : "Angiv en gyldig adgangskode",
+ "Generate a new password" : "Generer en ny adgangskode",
+ "Your administrator has enforced a password protection." : "Din administrator har gennemtvunget en adgangskodebeskyttelse",
+ "Automatically copying failed, please copy the share link manually" : "Automatisk kopiering fejlede. Kopier venligst delingslinket manuelt",
+ "Link copied" : "Link kopieret",
+ "Email already added" : "E-mailen er allerede tilføjet",
+ "Invalid email address" : "Ugyldig e-mailadresse",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Den følgende e-mailadresse er ikke gldig: {emails}","De følgende e-mailadresser er ikke gyldige: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} e-mailadressen er allerede tilføjet","{count} e-mailadressen er allerede tilføjet"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} e-mailadresse tilføjet","{count} e-mailadresser tilføjet"],
+ "You can now share the link below to allow people to upload files to your directory." : "Du kan nu dele linket nedenfor for at tillade folk at uploade filer til din mappe.",
+ "Share link" : "Del link",
+ "Copy" : "Kopiér",
+ "Send link via email" : "Send link via e-mail",
+ "Enter an email address or paste a list" : "Angiv en e-mailadresse eller indsæt en liste",
+ "Remove email" : "Fjern e-mail",
+ "Select a destination" : "Vælg en destination",
+ "Select" : "Vælg",
+ "What are you requesting?" : "Hvad efterspørger du?",
+ "Request subject" : "Forespørgselsemne",
+ "Birthday party photos, History assignment…" : "Fødselsdagsfest fotos, historik tildeling...",
+ "Where should these files go?" : "Hvor skal disse filer hen?",
+ "Upload destination" : "Upload destination",
+ "Revert to default" : "Tilbage til standard",
+ "The uploaded files are visible only to you unless you choose to share them." : "De uploadede filer er kun synlige for dig med mindre du vælger at dele dem.",
+ "Add a note" : "Tilføj en bemærkning",
+ "Note for recipient" : "Bemærkning til modtager",
+ "Add a note to help people understand what you are requesting." : "Tilføj en bemærkning for at hjælpe folk med at forstå hvad du efterspørger.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Du kan tilføje links, dato eller enhver anden information som kan hjælpe modtageren til at forstå hvad du efterspørger.",
+ "Close" : "Luk",
+ "_Send email and close_::_Send {count} emails and close_" : ["Send e-mail og luk","Send {count} e-mails og luk"],
+ "Please select a folder, you cannot share the root directory." : "Vælg venligst en mappe. Du kan ikke dele rodmappen.",
+ "File request created" : "Filforespørgsel oprettet",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Filforespørgsel oprettet og e-mail sendt","Filforespørgsel oprettet og {count} e-mails sendt"],
+ "Error creating the share: {errorMessage}" : "Fejl under oprettelse af delingen: {errorMessage}",
+ "Error creating the share" : "Fejl ved skabelse af delt drev",
+ "Error sending emails: {errorMessage}" : "Fejl under afsendelse af e-mails: {errorMessage}",
+ "Error sending emails" : "Fejl under afsendelse af e-mails",
+ "Create a file request" : "Opret en filefterspørgsel",
+ "Collect files from others even if they do not have an account." : "Indsaml filer fra andre, selvom de ikke har en konto.",
+ "To ensure you can receive files, verify you have enough storage available." : "For at sikre at du kan modtage filer, så vær sikker på at du har nok plads tilgængelig.",
+ "File request" : "Filforespørgsler",
+ "Previous step" : "Forrige trin",
+ "Cancel" : "Annuller",
+ "Cancel the file request creation" : "Annuller oprettelse af filforespørgslen",
+ "Close without sending emails" : "Luk uden at sende e-mails",
+ "Continue" : "Videre",
+ "Error while toggling options" : "Fejl under skift af indstillinger",
+ "Accept shares from other accounts and groups by default" : "Accepter delinger fra andre konti og grupper som standard",
+ "Choose a default folder for accepted shares" : "Vælg en standard mappe til accepterede delinger",
"Invalid path selected" : "Ugyldig sti valgt.",
"Unknown error" : "Ukendt fejl",
+ "Set default folder for accepted shares" : "Angiv standard mappe for accepterede delinger",
+ "Reset" : "Nulstil",
+ "Reset folder to system default" : "Nulstil mappe til systemstandard",
+ "Share Expiration" : "Delings Udløb",
"group" : "gruppe",
"conversation" : "samtale",
"remote" : "ekstern",
"remote group" : "ekstern gruppe",
"guest" : "Gæst",
+ "by {initiator}" : "af {initiator}",
+ "Shared with the group {user} by {owner}" : "Delt med gruppen {user} af {owner}",
+ "Shared with the conversation {user} by {owner}" : "Delt med samtalen {user} af {owner}",
+ "Shared with {user} by {owner}" : "Delt med {user} af {owner}",
+ "Open Sharing Details" : "Åben delingsdetaljer",
+ "Added by {initiator}" : "Tilføjet af {initiator}",
+ "Via “{folder}”" : "Via “{folder}”",
"Unshare" : "Fjern deling",
- "Internal link" : "Internt link",
"Cannot copy, please copy the link manually" : "Kan ikke kopiere, kopier venligst linket manuelt",
- "Link copied" : "Link kopieret",
+ "Copy internal link" : "Kopier internt link",
+ "Internal link" : "Internt link",
+ "{shareWith} by {initiator}" : "{shareWith} af {initiator}",
+ "Shared via link by {initiator}" : "Delt via link af {initiator}",
+ "File request ({label})" : "Filforespørgsel ({label})",
+ "Mail share ({label})" : "Mail deling ({label})",
+ "Share link ({label})" : "Delingslnk ({label})",
+ "Mail share" : "Mail deling",
+ "Share link ({index})" : "Delingslink ({index})",
+ "Create public link" : "Opret offentligt link",
+ "Actions for \"{title}\"" : "Handlinger for \"{title}\"",
+ "Error, please enter proper password and/or expiration date" : "Fejl, angiv venligst passende adgangskode og/eller udløbsdato",
+ "Link share created" : "Linkdeling oprettet",
+ "Error while creating the share" : "Fejl under oprettelse af delingen",
+ "Please enter the following required information before creating the share" : "Angiv følgende krævede informationer inden oprettelse af delingen",
+ "Password protection (enforced)" : "Adgangsbeskyttelse (gennemtvunget)",
"Password protection" : "Adgangskodebeskyttelse",
"Enter a password" : "Indtast en adgangskode",
- "Enter a date" : "Indtast en dato",
- "Cancel" : "Annullér",
+ "Enable link expiration (enforced)" : "Aktiver link udløb (gennemtvunget)",
+ "Enable link expiration" : "Aktiver link udøb",
+ "Enter expiration date (enforced)" : "Angiv udløbsdato (gennemtvunget)",
+ "Enter expiration date" : "Angiv udløbsdato",
+ "Create share" : "Opret share",
+ "Customize link" : "Brugerdefineret link",
+ "Generate QR code" : "Generer QR-kode",
"Add another link" : "Tilføj et link mere",
"Create a new share link" : "Opret et nyt delingslink",
- "Share link" : "Del link",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Hurtigdelingsmuligheder, de aktuelt valgte er \"{selectedOption}\"",
"View only" : "Kun visning",
"Can edit" : "Kan redigere",
- "File drop" : "Fil drop",
- "No recommendations. Start typing." : "Ingen anbefalinger. Begynd at skrive.",
+ "Custom permissions" : "Brugerdefinerede rettigheder",
"Resharing is not allowed" : "Gendeling er ikke tilladt",
+ "Name or email …" : "Navne eller e-mail ...",
+ "Name, email, or Federated Cloud ID …" : "Navn, e-mail, eller sammenkoblings cloud ID …",
"Searching …" : "Søger ...",
"No elements found." : "Ingen elementer fundet.",
- "Search globally" : "Søg globalt",
+ "Search everywhere" : "Søg overalt",
"Guest" : "Gæst",
"Group" : "Gruppe",
"Email" : "E-mail",
+ "Team" : "Team",
+ "Talk conversation" : "Snak samtale",
+ "Deck board" : "Opslagstavle",
+ "ScienceMesh" : "ScienceMesh",
+ "on {server}" : "på {server}",
+ "Enter external recipients" : "Angiv eksterne modtagere",
+ "Search for internal recipients" : "Søg efter interne modtagere",
+ "Note from" : "Bemærkning fra",
+ "Note:" : "Bemærkning:",
+ "File drop" : "Fil drop",
+ "Upload files to {foldername}." : "Upload filer til {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Ved at uploade filer, acceptere du servicebetingelserne.",
+ "View terms of service" : "Vis servicebetingelser",
+ "Terms of service" : "Servicebetingelser",
+ "Share with email {email}" : "Del med e-mail {email}",
+ "Share with group" : "Del med gruppe",
+ "Share in conversation" : "Del i samtale",
+ "Share with {user} on remote server {server}" : "Del med {user} på fjernserver {server}",
+ "Share with remote group" : "Del med fjerngruppe",
+ "Share with guest" : "Del med gæst",
+ "Update share" : "Opdater deling",
+ "Save share" : "Gem deling",
+ "Read" : "Læst",
+ "Create" : "Opret",
+ "Edit" : "Rediger",
+ "Share" : "Del",
+ "Delete" : "Slet",
+ "Password field cannot be empty" : "Adgangskodefeltet må ikke være tomt",
+ "Replace current password" : "Erstat aktuel adgangskode",
+ "Failed to generate a new token" : "Kunne ikke generere et nyt token",
"Allow upload and editing" : "Tillad upload og redigering",
"Allow editing" : "Tillad redigering",
+ "Upload only" : "Kun upload",
"Advanced settings" : "Avancerede indstillinger",
- "Set password" : "Sæt password",
- "Password" : "Kodeord",
+ "Share label" : "Del label",
+ "Share link token" : "Del link token",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Sæt det offentlige delingslink til noget der er let at huske eller generer en ny token. Det anbefales ikke at anvende en token der er let at gætte, til delinger som indeholder følsomme informationer.",
+ "Generating…" : "Genererer...",
+ "Generate new token" : "Generer ny token",
+ "Set password" : "Angiv adgangskode",
+ "Password expires {passwordExpirationTime}" : "Adgangskode udløber {passwordExpirationTime}",
+ "Password expired" : "Adgangskode udløbet",
+ "Video verification" : "Video verificering",
+ "Expiration date (enforced)" : "Udløbsdato (gennemtvunget)",
"Set expiration date" : "Angiv udløbsdato",
- "Expiration date" : "Udløbsdato",
"Hide download" : "Skjul download",
+ "Allow download and sync" : "Tillad download og synkronisering",
"Note to recipient" : "Note til modtager",
- "Read" : "Læst",
- "Create" : "Opret",
- "Edit" : "Rediger",
- "Share" : "Del",
+ "Enter a note for the share recipient" : "Angiv en bermækning til delingsmodtageren",
+ "Show files in grid view" : "Vis filer i gittervisning",
+ "Delete share" : "Slet deling",
"Others with access" : "Andre med adgang",
+ "No other accounts with access found" : "Ingen andre konti med adgang fundet",
"Toggle list of others with access to this directory" : "Vis/skjul liste over andre med adgang til denne mappe",
"Toggle list of others with access to this file" : "Vis/skjul liste over andre med adgang til denne fil",
+ "Unable to fetch inherited shares" : "Kan ikke hente nedarvede delinger",
+ "Link shares" : "Link delinger",
+ "Shares" : "Delinger",
+ "Unable to load the shares list" : "Kan ikke indlæse liste med delinger",
+ "Expires {relativetime}" : "Udløber {relativetime}",
+ "this share just expired." : "denne deling er netop udløbet.",
"Shared with you by {owner}" : "Delt med dig {owner}",
+ "Internal shares" : "Interne delinger",
+ "Internal shares explanation" : "Interne delinger forklaring",
+ "External shares" : "Eksterne delinger",
+ "External shares explanation" : "Eksterne delinger forklaring",
+ "Additional shares" : "Yderligere delinger",
+ "Additional shares explanation" : "Yderliger delinger forklaring",
+ "Link to a file" : "Link til en fil",
+ "_Accept share_::_Accept shares_" : ["Accepter deling","Accepter delinger"],
"Open in Files" : "Vis i filer",
+ "_Reject share_::_Reject shares_" : ["Afvis dealing","Afvis delinger"],
+ "_Restore share_::_Restore shares_" : ["Genskab delinger","Genskab delinger"],
"Shared" : "Delt",
- "Error creating the share" : "Fejl ved skabelse af delt drev",
- "Shared by" : "Delt af",
- "Shared with" : "Delt med",
- "Shared with you and the group {group} by {owner}" : "Delt med dig og grupp {group} af {owner}",
- "Shared with you and {circle} by {owner}" : "Delt med dig og {circle} af {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Delt med dig og konversationen {conversation} af {owner}",
- "Shared with you in a conversation by {owner}" : "Delt med dig og konversationen af {owner}",
- "Shares" : "Delinger",
+ "Shared by {ownerDisplayName}" : "Delt af {ownerDisplayName}",
+ "Shared multiple times with different people" : "Delt flere gange med forskellige mennesker",
+ "Shared with others" : "Delt med andre",
+ "Create file request" : "Opret filforespørgsel",
+ "Upload files to {foldername}" : "Upload filer til {foldername}",
+ "Public file share" : "Offentlig fildeling",
+ "Publicly shared file." : "Offentligt delt fil",
+ "No file" : "Ingen fil",
+ "The file shared with you will show up here" : "Filen der er delt med dig vil vises her",
+ "Public share" : "Offentlig deling",
+ "Publicly shared files." : "Offentligt delte filer.",
+ "No files" : "Ingen filer",
+ "Files and folders shared with you will show up here" : "Filer og mapper delt med dig, vil blive vist her",
+ "Overview of shared files." : "Oversigt over delte filer.",
"No shares" : "Ingen delinger",
+ "Files and folders you shared or have been shared with you will show up here" : "Filer og mapper som du delte eller som er blevet delt med dig vil blive vist her",
"Shared with you" : "Delt med dig",
+ "List of files that are shared with you." : "Liste med filer som er delt med dig.",
"Nothing shared with you yet" : "Der deles ikke noget med dig endnu",
- "Shared with others" : "Delt med andre",
+ "Files and folders others shared with you will show up here" : "Filer og mapper som andre har delt med dig, vil blive vist her",
+ "List of files that you shared with others." : "Liste med filer som du har delt med andre.",
"Nothing shared yet" : "Der deles endnu ikke noget",
+ "Files and folders you shared will show up here" : "Filer og mapper som du delte vil blive vist her",
"Shared by link" : "Delt via link",
+ "List of files that are shared by link." : "Liste med filer som er delt via link.",
"No shared links" : "Ingen delte link",
+ "Files and folders you shared by link will show up here" : "Filer og mapper som du delte med link vil blive vist her",
+ "File requests" : "Filforespørgsler",
+ "List of file requests." : "Liste over filforspørgsler.",
+ "No file requests" : "Ingen filforespørgsler",
+ "File requests you have created will show up here" : "Filforespørgsler som du har oprettet vil vises her",
"Deleted shares" : "Slettede delinger",
+ "List of shares you left." : "Liste med delinger som du forlod.",
"No deleted shares" : "Ingen slettede delinger",
+ "Shares you have left will show up here" : "Delinger som du har forladt vil blive vist her",
"Pending shares" : "Afventende delinger",
+ "List of unapproved shares." : "List over ikke godkendte delinger.",
"No pending shares" : "Ingen afventende delinger",
+ "Shares you have received but not approved will show up here" : "Delinger som du har modtager men ikke godkendt, vil blive vist her",
+ "Error updating the share: {errorMessage}" : "Fejl under opdatering af delingen: {errorMessage}",
+ "Error updating the share" : "Fejl under opdatering af delingen",
+ "File \"{path}\" has been unshared" : "Deling af filen \"{path}\" er blevet fjernet",
+ "Folder \"{path}\" has been unshared" : "Deling af mappen \"{path}\" er blevet fjernet",
+ "Could not update share" : "Kunne ikke opdatere delingen",
+ "Share saved" : "Deling gemt",
+ "Share expiry date saved" : "Udløbsdato for deling er gemt",
+ "Share hide-download state saved" : "Deling skjul-download tilstand gemt",
+ "Share label saved" : "Delingslabel gemt",
+ "Share note for recipient saved" : "Delingsbemærkning for modtagere gemt",
+ "Share password saved" : "Delingsadgangskode delt",
+ "Share permissions saved" : "Delingsrettigheder gemt",
+ "Upload files to {folder}" : "Upload filer til {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} delte en mappe med dig.",
+ "Shared by" : "Delt af",
+ "Shared with" : "Delt med",
+ "Password created successfully" : "Adgangskode oprettet",
+ "Error generating password from password policy" : "Fejl under generering af adgangskode fra adgangskodepolitik",
+ "Shared with you and the group {group} by {owner}" : "Delt med dig og grupp {group} af {owner}",
+ "Shared with you and {circle} by {owner}" : "Delt med dig og {circle} af {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Delt med dig og konversationen {conversation} af {owner}",
+ "Shared with you in a conversation by {owner}" : "Delt med dig og konversationen af {owner}",
+ "Share not found" : "Delt fil ikke fundet",
+ "Back to %s" : "Tilbage til %s",
+ "Add to your Nextcloud" : "Tilføj til din Nextcloud",
+ "Waiting…" : "Venter …",
+ "error" : "fejl",
+ "finished" : "Færdiggjort",
+ "This will stop your current uploads." : "Dette vil stoppe din nuværende uploads.",
+ "Move or copy" : "Flyt eller kopier",
+ "You can upload into this folder" : "Du kan overføre til denne mappe",
+ "Show list view" : "Vis som liste",
+ "Show grid view" : "Vis som gitter",
+ "No compatible server found at {remote}" : "Ingen kompatible servere fundet på {remote}",
+ "Invalid server URL" : "Ugyldig server adresse",
+ "Failed to add the public link to your Nextcloud" : "Fejl ved tilføjelse af offentligt link til din Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "Du har ikke tilladelse til at redigere link delinger som du ikke ejer",
+ "Download all files" : "Download alle filer",
+ "Link copied to clipboard" : "Link kopieret til udklipsholder",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailadresse allerede tilføjet","{count} e-mailadresser allerede tilføjet"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 e-mailadresse tilføjet","{count} e-mailadresser tilføjet"],
+ "Copy to clipboard" : "Kopier til udklipsholder",
+ "Copy internal link to clipboard" : "Kopier internt link til klippebord",
+ "Only works for people with access to this folder" : "Virker kun for personer med adgang til denne mappe",
+ "Only works for people with access to this file" : "Virker kun for personer med adgang til denne fil",
+ "Copy public link of \"{title}\" to clipboard" : "Kopier offentligt link af \"{title}\" til udklipsholder",
+ "Search globally" : "Søg globalt",
+ "Search for share recipients" : "Søge efter delemodtagerefor share recipients",
+ "No recommendations. Start typing." : "Ingen anbefalinger. Begynd at skrive.",
+ "To upload files, you need to provide your name first." : "For at uploade filer skal du først angive dit navn.",
+ "Enter your name" : "Angiv dit navn",
+ "Submit name" : "Angiv navn",
+ "Share with {userName}" : "Del med {userName}",
+ "Show sharing options" : "Vis delingsmuligheder",
"Share note" : "Del note",
"Upload files to %s" : "Upload filer til %s",
+ "%s shared a folder with you." : "%s delte en mappe med dig.",
"Note" : "Note",
"Select or drop files" : "Vælg eller slip filer",
+ "Uploading files" : "Uploader filer",
"Uploaded files:" : "Uploadede filer:",
- "Add to your Nextcloud" : "Tilføj til din Nextcloud",
- "Files and folders others share with you will show up here" : "Filer og mapper som andre deler med dig, vil blive vist her",
- "Files and folders you share will show up here" : "Filer og mapper som du deler, vil blive vist her",
- "Files and folders you share by link will show up here" : "Filer og mapper som du deler gennem link, vil blive vist her",
- "Shares you deleted will show up here" : "Delinger du har slettet vil dukke op her",
- "Shares you have received but not confirmed will show up here" : "Delinger du har modtaget men ikke accepteret vil dukke op her",
- "Shares will show up here" : "Delinger vil dukke op her",
- "Restore" : "Gendan",
- "Something happened. Unable to restore the share." : "Der skete et eller andet. Ude af stand til at genskabe delingen.",
- "Something happened. Unable to accept the share." : "Der skete et eller andet. Ude af stand til at acceptere delingen.",
- "Something happened. Unable to reject the share." : "Der skete et eller andet. Ude af stand til at afvise delingen.",
- "No expiration date set" : "Ingen udløbsdato sat",
- "Please specify a valid user" : "Angiv en gyldig bruger",
- "Read only" : "Skrivebeskyttet",
- "File drop (upload only)" : "Fil drop (kun upload)",
- "Upload" : "Send",
- "Only works for users with access to this folder" : "Virker kun for brugere med adgang til denne folder",
- "Only works for users with access to this file" : "Virker kun for brugere med adgang til denne fil",
- "Circle" : "Cirkel",
- "Update" : "Opdatér",
- "No other users with access found" : "Ingen andre brugere med adgang fundet",
- "No entries found in this folder" : "Der blev ikke fundet poster i denne mappe",
+ "By uploading files, you agree to the %1$sterms of service%2$s." : "Ved at uploade filer accepterer du %1$sservicebetingelserne%2$s.",
"Name" : "Navn",
- "Share time" : "Dele periode",
- "Reasons might be:" : "Årsagen kan være:",
- "the item was removed" : "Filen blev fjernet",
- "the link expired" : "linket udløb",
- "sharing is disabled" : "deling er deaktiveret",
- "For more info, please ask the person who sent this link." : "For yderligere information, kontakt venligst personen der sendte linket. ",
- "Share with" : "Del med"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Anvend denne metode til at dele filer med brugere eller teams indenfor din organisation. Hvis modtageren allerede har adgang til delingen, men ikke kan finde det, så kan du sende det interne delingslink til dem, så de har let adgang",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Anvend denne metode til at dele filer med brugere eller organisationer udenfor din organisation. Filer og mapper kan deles via offentlige delingslinks og e-mailadresser. Du kan også dele til andre Nextcloud konti der er hostet på andre instanser ved anvendelse af sammenkoblings cloud ID.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Delinger som ikke er del af de interne eller eksterne delinger. Dette kan være delinger fra apps eller andre kilder.",
+ "Share with accounts and teams" : "Deling med konti og teams",
+ "Email, federated cloud id" : "E-mail, sammenkoblings cloud id",
+ "Filename must not be empty." : "Filnavnet må ikke være tomt."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/da.json b/apps/files_sharing/l10n/da.json
index 060777e07c7..08378bfaee9 100644
--- a/apps/files_sharing/l10n/da.json
+++ b/apps/files_sharing/l10n/da.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Venter …",
- "error" : "fejl",
- "finished" : "Færdiggjort",
- "This will stop your current uploads." : "Dette vil stoppe din nuværende uploads.",
- "Move or copy" : "Flyt eller kopier",
- "Download" : "Download",
- "Delete" : "Slet",
- "You can upload into this folder" : "Du kan overføre til denne mappe",
- "Terms of service" : "Servicebetingelser",
- "Show list view" : "Vis som liste",
- "Show grid view" : "Vis som gitter",
- "No compatible server found at {remote}" : "Ingen kompatible servere fundet på {remote}",
- "Invalid server URL" : "Ugyldig server adresse",
- "Failed to add the public link to your Nextcloud" : "Fejl ved tilføjelse af offentligt link til din Nextcloud",
"File shares" : "Fildelinger",
"Downloaded via public link" : "Downloaded via et offentligt link",
"Downloaded by {email}" : "Downloaded af {email}",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "Deling af {file} med {user} udløbet",
"Share for file {file} expired" : "Deling af {file} udløbet",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "En fil eller mapper delt vie mail eller offentligt link blev <strong>downloaded</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Filer er blevet <strong>uploadet</strong> til en mappe delt via mail eller et offentligt link",
"A file or folder was shared from <strong>another server</strong>" : "En fil eller mappe blev delt fra <strong>en anden server</strong>",
- "Files" : "Filer",
+ "Sharing" : "Deling",
"A file or folder has been <strong>shared</strong>" : "En fil eller mappe er blevet <strong>delt</strong>",
"Shared link" : "Delt link",
"Wrong share ID, share does not exist" : "Forkert DelingsID, deling findes ikke",
@@ -76,126 +63,362 @@
"Please specify a file or folder path" : "Præciser venligst en fil eller mappesti",
"Wrong path, file/folder does not exist" : "Forkert sti, fil/mappe findes ikke",
"Could not create share" : "Kunne ikke oprette deling",
- "Invalid permissions" : "Ugyldige rettigheder",
- "Invalid date, date format must be YYYY-MM-DD" : "Ugyldig dato. Brug formatet ÅÅÅÅ-MM-DD",
+ "Please specify a valid account to share with" : "Præciser venligst en gyldig konto at dele med",
"Group sharing is disabled by the administrator" : "Gruppedeling er deaktiveret af administratoren",
"Please specify a valid group" : "Angiv en gyldig gruppe",
"Public link sharing is disabled by the administrator" : "Deling med offentligt link er deaktiveret af administratoren",
- "Public upload disabled by the administrator" : "Offentlige uploads er slået fra af administratoren",
- "Public upload is only possible for publicly shared folders" : "Offentligt upload er kun muligt i mapper der er delt offentligt",
+ "Please specify a valid email address" : "Angiv venligst en gyldig e-mailadresse",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Deler %s afsendelse af adgangskoden med Nextcloud Snak fejlede, fordi Nextcloud Snak ikke er aktiveret",
+ "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Deling af %1$s mislykkedes fordi backenden ikke tillader delinger fra typen %2$s",
+ "Please specify a valid federated account ID" : "Angiv venligst et gyldigt sammenkoblings konto-ID",
+ "Please specify a valid federated group ID" : "Angiv venligst et gyldigt sammenkoblings gruppe-ID",
+ "You cannot share to a Team if the app is not enabled" : "Du kan ikke dele til et Team, hvis app'en ikke er aktiveret",
+ "Please specify a valid team" : "Angiv venligst et gyldigt team",
+ "Sharing %s failed because the back end does not support room shares" : "Deling af %s mislykkedes fordi backenden ikke tillader delinger af rumdeling",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Kunne ikke dele %s fordi backenden ikke understøtter deling af ScienceMesh",
"Unknown share type" : "Ukendt deletype",
"Not a directory" : "Ikke en mappe",
+ "Could not lock node" : "Kunne ikke låse node",
+ "Public upload is only possible for publicly shared folders" : "Offentligt upload er kun muligt i mapper der er delt offentligt",
+ "Share must at least have READ or CREATE permissions" : "Deling skal som minimum have LÆS eller OPRET rettigheder",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "Deling skal have LÆSE rettigheder hvis OPDATER eller SLET rettigheder er sat",
+ "Public upload disabled by the administrator" : "Offentlige uploads er slået fra af administratoren",
"Could not lock path" : "Stien kunne ikke låses",
+ "no sharing rights on this item" : "ingen delingsrettigheder på dette element",
+ "You are not allowed to edit incoming shares" : "Du har ikke tilladelse til at redigere indkommende delinger",
"Wrong or no update parameter given" : "Forkert eller manglende opdateringsparameter",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Afsendelse af adgangskoden med Nextcloud Snak\" for at dele en fil eller en mappe fejlede fordi Nextcloud Snak ikke er aktiveret.",
+ "Custom share link tokens have been disabled by the administrator" : "Brugerdefinerede delings link token er blevet deaktiverede af administratoren",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tokens skal indeholde minimum 1 karakter og må kun indeholde bogstaver, tal, eller en bindestreg",
+ "Invalid date. Format must be YYYY-MM-DD" : "Ugyldig dato. Formatet skal være ÅÅÅÅ-MM-DD",
+ "No sharing rights on this item" : "Ingen delingsrettigheder på dette element",
+ "Invalid share attributes provided: \"%s\"" : "Ugyldig delingsattribut angivet: \"%s\"",
+ "You are not allowed to send mail notifications" : "Du har ikke tilladelse til at sende mailnotifikationer",
+ "No mail notification configured for this share type" : "Ingen mailnotifikation konfigureret for denne delingstype",
+ "Wrong password" : "Forkert adgangskode",
+ "Error while sending mail notification" : "Fejl under afsendelse af mailnotifikation",
+ "Failed to generate a unique token" : "Kunne ikke generere en unikt token",
+ "This share does not exist or is no longer available" : "Denne deling eksisterer ikke eller er ikke længere tilgængelig",
"shared by %s" : "delt af %s",
+ "Download" : "Download",
+ "Add to your %s" : "Tilføj til din %s",
"Direct link" : "Direkte link",
"Share API is disabled" : "Delings-API er slået fra",
"File sharing" : "Fildeling",
+ "Share will expire tomorrow" : "Deling vil udløbe i morgen",
+ "Your share of {node} will expire tomorrow" : "Din deling af {node} vil udløbe i morgen",
+ "You received {share} as a share by {user}" : "Du modtog {share} som en deling af {user}",
+ "You received {share} to group {group} as a share by {user}" : "Du modtog {share} til gruppe {group} som en deling af {user}",
"Accept" : "Accepter",
"Decline" : "Afvis",
- "Sharing" : "Deling",
- "Reset" : "Nulstil",
+ "Remember to upload the files to %s" : "Husk at uploade filerne til %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Vi vil venligst minde dig om at du endnu ikke har uploadet nogen filer til delingsmappen.",
+ "Open \"%s\"" : "Åben \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Denne applikation gør det muligt for folk at dele filer i Nextcloud. Hvis den er aktiveret, så kan administratoren vælge, hvilke grupper der kan dele filer. De relevante personer kan derefter dele filer og mapper med andre konti og grupper i Nextcloud. Hvis administratoren aktiverer delelink-funktionen, kan et eksternt link derudover bruges til at dele filer med andre personer uden for Nextcloud. Administratorer kan også gennemtvinge adgangskoder, udløbsdatoer og aktivere server-til-server-deling via delelinks samt deling fra mobile enheder.\nDeaktivering af funktionen fjerner delte filer og mapper på serveren for alle delingsmodtagere og også på synkroniseringsklienterne og mobilapps. Mere information er tilgængelig i Nextcloud-dokumentationen.",
+ "People" : "Personer",
+ "Filter accounts" : "Filtrer konti",
+ "The request will expire on {date} at midnight and will be password protected." : "Forespørgslen vil udløbe den {date} ved midnat og vil være adgangskodebeskyttet.",
+ "The request will expire on {date} at midnight." : "Forespørgslen vil udløbe den {date} ved midnat.",
+ "The request will be password protected." : "Forespørgslen vil være adgangskodebeskyttet.",
+ "When should the request expire?" : "Hvornår skal forespørgslen udløbe?",
+ "Set a submission expiration date" : "Angiv en udløbsdato for indsendelse",
+ "Expiration date" : "Udløbsdato",
+ "Select a date" : "Vælg en dato",
+ "Your administrator has enforced a {count} days expiration policy." : "Din administrator har gennemtvunget en {count} dages udløbspolitik.",
+ "What password should be used for the request?" : "Hvilken adgangskode skal anvendes til denne forespørgsel?",
+ "Set a password" : "Indstil en adgangskode",
+ "Password" : "Kodeord",
+ "Enter a valid password" : "Angiv en gyldig adgangskode",
+ "Generate a new password" : "Generer en ny adgangskode",
+ "Your administrator has enforced a password protection." : "Din administrator har gennemtvunget en adgangskodebeskyttelse",
+ "Automatically copying failed, please copy the share link manually" : "Automatisk kopiering fejlede. Kopier venligst delingslinket manuelt",
+ "Link copied" : "Link kopieret",
+ "Email already added" : "E-mailen er allerede tilføjet",
+ "Invalid email address" : "Ugyldig e-mailadresse",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Den følgende e-mailadresse er ikke gldig: {emails}","De følgende e-mailadresser er ikke gyldige: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} e-mailadressen er allerede tilføjet","{count} e-mailadressen er allerede tilføjet"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} e-mailadresse tilføjet","{count} e-mailadresser tilføjet"],
+ "You can now share the link below to allow people to upload files to your directory." : "Du kan nu dele linket nedenfor for at tillade folk at uploade filer til din mappe.",
+ "Share link" : "Del link",
+ "Copy" : "Kopiér",
+ "Send link via email" : "Send link via e-mail",
+ "Enter an email address or paste a list" : "Angiv en e-mailadresse eller indsæt en liste",
+ "Remove email" : "Fjern e-mail",
+ "Select a destination" : "Vælg en destination",
+ "Select" : "Vælg",
+ "What are you requesting?" : "Hvad efterspørger du?",
+ "Request subject" : "Forespørgselsemne",
+ "Birthday party photos, History assignment…" : "Fødselsdagsfest fotos, historik tildeling...",
+ "Where should these files go?" : "Hvor skal disse filer hen?",
+ "Upload destination" : "Upload destination",
+ "Revert to default" : "Tilbage til standard",
+ "The uploaded files are visible only to you unless you choose to share them." : "De uploadede filer er kun synlige for dig med mindre du vælger at dele dem.",
+ "Add a note" : "Tilføj en bemærkning",
+ "Note for recipient" : "Bemærkning til modtager",
+ "Add a note to help people understand what you are requesting." : "Tilføj en bemærkning for at hjælpe folk med at forstå hvad du efterspørger.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Du kan tilføje links, dato eller enhver anden information som kan hjælpe modtageren til at forstå hvad du efterspørger.",
+ "Close" : "Luk",
+ "_Send email and close_::_Send {count} emails and close_" : ["Send e-mail og luk","Send {count} e-mails og luk"],
+ "Please select a folder, you cannot share the root directory." : "Vælg venligst en mappe. Du kan ikke dele rodmappen.",
+ "File request created" : "Filforespørgsel oprettet",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Filforespørgsel oprettet og e-mail sendt","Filforespørgsel oprettet og {count} e-mails sendt"],
+ "Error creating the share: {errorMessage}" : "Fejl under oprettelse af delingen: {errorMessage}",
+ "Error creating the share" : "Fejl ved skabelse af delt drev",
+ "Error sending emails: {errorMessage}" : "Fejl under afsendelse af e-mails: {errorMessage}",
+ "Error sending emails" : "Fejl under afsendelse af e-mails",
+ "Create a file request" : "Opret en filefterspørgsel",
+ "Collect files from others even if they do not have an account." : "Indsaml filer fra andre, selvom de ikke har en konto.",
+ "To ensure you can receive files, verify you have enough storage available." : "For at sikre at du kan modtage filer, så vær sikker på at du har nok plads tilgængelig.",
+ "File request" : "Filforespørgsler",
+ "Previous step" : "Forrige trin",
+ "Cancel" : "Annuller",
+ "Cancel the file request creation" : "Annuller oprettelse af filforespørgslen",
+ "Close without sending emails" : "Luk uden at sende e-mails",
+ "Continue" : "Videre",
+ "Error while toggling options" : "Fejl under skift af indstillinger",
+ "Accept shares from other accounts and groups by default" : "Accepter delinger fra andre konti og grupper som standard",
+ "Choose a default folder for accepted shares" : "Vælg en standard mappe til accepterede delinger",
"Invalid path selected" : "Ugyldig sti valgt.",
"Unknown error" : "Ukendt fejl",
+ "Set default folder for accepted shares" : "Angiv standard mappe for accepterede delinger",
+ "Reset" : "Nulstil",
+ "Reset folder to system default" : "Nulstil mappe til systemstandard",
+ "Share Expiration" : "Delings Udløb",
"group" : "gruppe",
"conversation" : "samtale",
"remote" : "ekstern",
"remote group" : "ekstern gruppe",
"guest" : "Gæst",
+ "by {initiator}" : "af {initiator}",
+ "Shared with the group {user} by {owner}" : "Delt med gruppen {user} af {owner}",
+ "Shared with the conversation {user} by {owner}" : "Delt med samtalen {user} af {owner}",
+ "Shared with {user} by {owner}" : "Delt med {user} af {owner}",
+ "Open Sharing Details" : "Åben delingsdetaljer",
+ "Added by {initiator}" : "Tilføjet af {initiator}",
+ "Via “{folder}”" : "Via “{folder}”",
"Unshare" : "Fjern deling",
- "Internal link" : "Internt link",
"Cannot copy, please copy the link manually" : "Kan ikke kopiere, kopier venligst linket manuelt",
- "Link copied" : "Link kopieret",
+ "Copy internal link" : "Kopier internt link",
+ "Internal link" : "Internt link",
+ "{shareWith} by {initiator}" : "{shareWith} af {initiator}",
+ "Shared via link by {initiator}" : "Delt via link af {initiator}",
+ "File request ({label})" : "Filforespørgsel ({label})",
+ "Mail share ({label})" : "Mail deling ({label})",
+ "Share link ({label})" : "Delingslnk ({label})",
+ "Mail share" : "Mail deling",
+ "Share link ({index})" : "Delingslink ({index})",
+ "Create public link" : "Opret offentligt link",
+ "Actions for \"{title}\"" : "Handlinger for \"{title}\"",
+ "Error, please enter proper password and/or expiration date" : "Fejl, angiv venligst passende adgangskode og/eller udløbsdato",
+ "Link share created" : "Linkdeling oprettet",
+ "Error while creating the share" : "Fejl under oprettelse af delingen",
+ "Please enter the following required information before creating the share" : "Angiv følgende krævede informationer inden oprettelse af delingen",
+ "Password protection (enforced)" : "Adgangsbeskyttelse (gennemtvunget)",
"Password protection" : "Adgangskodebeskyttelse",
"Enter a password" : "Indtast en adgangskode",
- "Enter a date" : "Indtast en dato",
- "Cancel" : "Annullér",
+ "Enable link expiration (enforced)" : "Aktiver link udløb (gennemtvunget)",
+ "Enable link expiration" : "Aktiver link udøb",
+ "Enter expiration date (enforced)" : "Angiv udløbsdato (gennemtvunget)",
+ "Enter expiration date" : "Angiv udløbsdato",
+ "Create share" : "Opret share",
+ "Customize link" : "Brugerdefineret link",
+ "Generate QR code" : "Generer QR-kode",
"Add another link" : "Tilføj et link mere",
"Create a new share link" : "Opret et nyt delingslink",
- "Share link" : "Del link",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Hurtigdelingsmuligheder, de aktuelt valgte er \"{selectedOption}\"",
"View only" : "Kun visning",
"Can edit" : "Kan redigere",
- "File drop" : "Fil drop",
- "No recommendations. Start typing." : "Ingen anbefalinger. Begynd at skrive.",
+ "Custom permissions" : "Brugerdefinerede rettigheder",
"Resharing is not allowed" : "Gendeling er ikke tilladt",
+ "Name or email …" : "Navne eller e-mail ...",
+ "Name, email, or Federated Cloud ID …" : "Navn, e-mail, eller sammenkoblings cloud ID …",
"Searching …" : "Søger ...",
"No elements found." : "Ingen elementer fundet.",
- "Search globally" : "Søg globalt",
+ "Search everywhere" : "Søg overalt",
"Guest" : "Gæst",
"Group" : "Gruppe",
"Email" : "E-mail",
+ "Team" : "Team",
+ "Talk conversation" : "Snak samtale",
+ "Deck board" : "Opslagstavle",
+ "ScienceMesh" : "ScienceMesh",
+ "on {server}" : "på {server}",
+ "Enter external recipients" : "Angiv eksterne modtagere",
+ "Search for internal recipients" : "Søg efter interne modtagere",
+ "Note from" : "Bemærkning fra",
+ "Note:" : "Bemærkning:",
+ "File drop" : "Fil drop",
+ "Upload files to {foldername}." : "Upload filer til {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Ved at uploade filer, acceptere du servicebetingelserne.",
+ "View terms of service" : "Vis servicebetingelser",
+ "Terms of service" : "Servicebetingelser",
+ "Share with email {email}" : "Del med e-mail {email}",
+ "Share with group" : "Del med gruppe",
+ "Share in conversation" : "Del i samtale",
+ "Share with {user} on remote server {server}" : "Del med {user} på fjernserver {server}",
+ "Share with remote group" : "Del med fjerngruppe",
+ "Share with guest" : "Del med gæst",
+ "Update share" : "Opdater deling",
+ "Save share" : "Gem deling",
+ "Read" : "Læst",
+ "Create" : "Opret",
+ "Edit" : "Rediger",
+ "Share" : "Del",
+ "Delete" : "Slet",
+ "Password field cannot be empty" : "Adgangskodefeltet må ikke være tomt",
+ "Replace current password" : "Erstat aktuel adgangskode",
+ "Failed to generate a new token" : "Kunne ikke generere et nyt token",
"Allow upload and editing" : "Tillad upload og redigering",
"Allow editing" : "Tillad redigering",
+ "Upload only" : "Kun upload",
"Advanced settings" : "Avancerede indstillinger",
- "Set password" : "Sæt password",
- "Password" : "Kodeord",
+ "Share label" : "Del label",
+ "Share link token" : "Del link token",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Sæt det offentlige delingslink til noget der er let at huske eller generer en ny token. Det anbefales ikke at anvende en token der er let at gætte, til delinger som indeholder følsomme informationer.",
+ "Generating…" : "Genererer...",
+ "Generate new token" : "Generer ny token",
+ "Set password" : "Angiv adgangskode",
+ "Password expires {passwordExpirationTime}" : "Adgangskode udløber {passwordExpirationTime}",
+ "Password expired" : "Adgangskode udløbet",
+ "Video verification" : "Video verificering",
+ "Expiration date (enforced)" : "Udløbsdato (gennemtvunget)",
"Set expiration date" : "Angiv udløbsdato",
- "Expiration date" : "Udløbsdato",
"Hide download" : "Skjul download",
+ "Allow download and sync" : "Tillad download og synkronisering",
"Note to recipient" : "Note til modtager",
- "Read" : "Læst",
- "Create" : "Opret",
- "Edit" : "Rediger",
- "Share" : "Del",
+ "Enter a note for the share recipient" : "Angiv en bermækning til delingsmodtageren",
+ "Show files in grid view" : "Vis filer i gittervisning",
+ "Delete share" : "Slet deling",
"Others with access" : "Andre med adgang",
+ "No other accounts with access found" : "Ingen andre konti med adgang fundet",
"Toggle list of others with access to this directory" : "Vis/skjul liste over andre med adgang til denne mappe",
"Toggle list of others with access to this file" : "Vis/skjul liste over andre med adgang til denne fil",
+ "Unable to fetch inherited shares" : "Kan ikke hente nedarvede delinger",
+ "Link shares" : "Link delinger",
+ "Shares" : "Delinger",
+ "Unable to load the shares list" : "Kan ikke indlæse liste med delinger",
+ "Expires {relativetime}" : "Udløber {relativetime}",
+ "this share just expired." : "denne deling er netop udløbet.",
"Shared with you by {owner}" : "Delt med dig {owner}",
+ "Internal shares" : "Interne delinger",
+ "Internal shares explanation" : "Interne delinger forklaring",
+ "External shares" : "Eksterne delinger",
+ "External shares explanation" : "Eksterne delinger forklaring",
+ "Additional shares" : "Yderligere delinger",
+ "Additional shares explanation" : "Yderliger delinger forklaring",
+ "Link to a file" : "Link til en fil",
+ "_Accept share_::_Accept shares_" : ["Accepter deling","Accepter delinger"],
"Open in Files" : "Vis i filer",
+ "_Reject share_::_Reject shares_" : ["Afvis dealing","Afvis delinger"],
+ "_Restore share_::_Restore shares_" : ["Genskab delinger","Genskab delinger"],
"Shared" : "Delt",
- "Error creating the share" : "Fejl ved skabelse af delt drev",
- "Shared by" : "Delt af",
- "Shared with" : "Delt med",
- "Shared with you and the group {group} by {owner}" : "Delt med dig og grupp {group} af {owner}",
- "Shared with you and {circle} by {owner}" : "Delt med dig og {circle} af {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Delt med dig og konversationen {conversation} af {owner}",
- "Shared with you in a conversation by {owner}" : "Delt med dig og konversationen af {owner}",
- "Shares" : "Delinger",
+ "Shared by {ownerDisplayName}" : "Delt af {ownerDisplayName}",
+ "Shared multiple times with different people" : "Delt flere gange med forskellige mennesker",
+ "Shared with others" : "Delt med andre",
+ "Create file request" : "Opret filforespørgsel",
+ "Upload files to {foldername}" : "Upload filer til {foldername}",
+ "Public file share" : "Offentlig fildeling",
+ "Publicly shared file." : "Offentligt delt fil",
+ "No file" : "Ingen fil",
+ "The file shared with you will show up here" : "Filen der er delt med dig vil vises her",
+ "Public share" : "Offentlig deling",
+ "Publicly shared files." : "Offentligt delte filer.",
+ "No files" : "Ingen filer",
+ "Files and folders shared with you will show up here" : "Filer og mapper delt med dig, vil blive vist her",
+ "Overview of shared files." : "Oversigt over delte filer.",
"No shares" : "Ingen delinger",
+ "Files and folders you shared or have been shared with you will show up here" : "Filer og mapper som du delte eller som er blevet delt med dig vil blive vist her",
"Shared with you" : "Delt med dig",
+ "List of files that are shared with you." : "Liste med filer som er delt med dig.",
"Nothing shared with you yet" : "Der deles ikke noget med dig endnu",
- "Shared with others" : "Delt med andre",
+ "Files and folders others shared with you will show up here" : "Filer og mapper som andre har delt med dig, vil blive vist her",
+ "List of files that you shared with others." : "Liste med filer som du har delt med andre.",
"Nothing shared yet" : "Der deles endnu ikke noget",
+ "Files and folders you shared will show up here" : "Filer og mapper som du delte vil blive vist her",
"Shared by link" : "Delt via link",
+ "List of files that are shared by link." : "Liste med filer som er delt via link.",
"No shared links" : "Ingen delte link",
+ "Files and folders you shared by link will show up here" : "Filer og mapper som du delte med link vil blive vist her",
+ "File requests" : "Filforespørgsler",
+ "List of file requests." : "Liste over filforspørgsler.",
+ "No file requests" : "Ingen filforespørgsler",
+ "File requests you have created will show up here" : "Filforespørgsler som du har oprettet vil vises her",
"Deleted shares" : "Slettede delinger",
+ "List of shares you left." : "Liste med delinger som du forlod.",
"No deleted shares" : "Ingen slettede delinger",
+ "Shares you have left will show up here" : "Delinger som du har forladt vil blive vist her",
"Pending shares" : "Afventende delinger",
+ "List of unapproved shares." : "List over ikke godkendte delinger.",
"No pending shares" : "Ingen afventende delinger",
+ "Shares you have received but not approved will show up here" : "Delinger som du har modtager men ikke godkendt, vil blive vist her",
+ "Error updating the share: {errorMessage}" : "Fejl under opdatering af delingen: {errorMessage}",
+ "Error updating the share" : "Fejl under opdatering af delingen",
+ "File \"{path}\" has been unshared" : "Deling af filen \"{path}\" er blevet fjernet",
+ "Folder \"{path}\" has been unshared" : "Deling af mappen \"{path}\" er blevet fjernet",
+ "Could not update share" : "Kunne ikke opdatere delingen",
+ "Share saved" : "Deling gemt",
+ "Share expiry date saved" : "Udløbsdato for deling er gemt",
+ "Share hide-download state saved" : "Deling skjul-download tilstand gemt",
+ "Share label saved" : "Delingslabel gemt",
+ "Share note for recipient saved" : "Delingsbemærkning for modtagere gemt",
+ "Share password saved" : "Delingsadgangskode delt",
+ "Share permissions saved" : "Delingsrettigheder gemt",
+ "Upload files to {folder}" : "Upload filer til {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} delte en mappe med dig.",
+ "Shared by" : "Delt af",
+ "Shared with" : "Delt med",
+ "Password created successfully" : "Adgangskode oprettet",
+ "Error generating password from password policy" : "Fejl under generering af adgangskode fra adgangskodepolitik",
+ "Shared with you and the group {group} by {owner}" : "Delt med dig og grupp {group} af {owner}",
+ "Shared with you and {circle} by {owner}" : "Delt med dig og {circle} af {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Delt med dig og konversationen {conversation} af {owner}",
+ "Shared with you in a conversation by {owner}" : "Delt med dig og konversationen af {owner}",
+ "Share not found" : "Delt fil ikke fundet",
+ "Back to %s" : "Tilbage til %s",
+ "Add to your Nextcloud" : "Tilføj til din Nextcloud",
+ "Waiting…" : "Venter …",
+ "error" : "fejl",
+ "finished" : "Færdiggjort",
+ "This will stop your current uploads." : "Dette vil stoppe din nuværende uploads.",
+ "Move or copy" : "Flyt eller kopier",
+ "You can upload into this folder" : "Du kan overføre til denne mappe",
+ "Show list view" : "Vis som liste",
+ "Show grid view" : "Vis som gitter",
+ "No compatible server found at {remote}" : "Ingen kompatible servere fundet på {remote}",
+ "Invalid server URL" : "Ugyldig server adresse",
+ "Failed to add the public link to your Nextcloud" : "Fejl ved tilføjelse af offentligt link til din Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "Du har ikke tilladelse til at redigere link delinger som du ikke ejer",
+ "Download all files" : "Download alle filer",
+ "Link copied to clipboard" : "Link kopieret til udklipsholder",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailadresse allerede tilføjet","{count} e-mailadresser allerede tilføjet"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 e-mailadresse tilføjet","{count} e-mailadresser tilføjet"],
+ "Copy to clipboard" : "Kopier til udklipsholder",
+ "Copy internal link to clipboard" : "Kopier internt link til klippebord",
+ "Only works for people with access to this folder" : "Virker kun for personer med adgang til denne mappe",
+ "Only works for people with access to this file" : "Virker kun for personer med adgang til denne fil",
+ "Copy public link of \"{title}\" to clipboard" : "Kopier offentligt link af \"{title}\" til udklipsholder",
+ "Search globally" : "Søg globalt",
+ "Search for share recipients" : "Søge efter delemodtagerefor share recipients",
+ "No recommendations. Start typing." : "Ingen anbefalinger. Begynd at skrive.",
+ "To upload files, you need to provide your name first." : "For at uploade filer skal du først angive dit navn.",
+ "Enter your name" : "Angiv dit navn",
+ "Submit name" : "Angiv navn",
+ "Share with {userName}" : "Del med {userName}",
+ "Show sharing options" : "Vis delingsmuligheder",
"Share note" : "Del note",
"Upload files to %s" : "Upload filer til %s",
+ "%s shared a folder with you." : "%s delte en mappe med dig.",
"Note" : "Note",
"Select or drop files" : "Vælg eller slip filer",
+ "Uploading files" : "Uploader filer",
"Uploaded files:" : "Uploadede filer:",
- "Add to your Nextcloud" : "Tilføj til din Nextcloud",
- "Files and folders others share with you will show up here" : "Filer og mapper som andre deler med dig, vil blive vist her",
- "Files and folders you share will show up here" : "Filer og mapper som du deler, vil blive vist her",
- "Files and folders you share by link will show up here" : "Filer og mapper som du deler gennem link, vil blive vist her",
- "Shares you deleted will show up here" : "Delinger du har slettet vil dukke op her",
- "Shares you have received but not confirmed will show up here" : "Delinger du har modtaget men ikke accepteret vil dukke op her",
- "Shares will show up here" : "Delinger vil dukke op her",
- "Restore" : "Gendan",
- "Something happened. Unable to restore the share." : "Der skete et eller andet. Ude af stand til at genskabe delingen.",
- "Something happened. Unable to accept the share." : "Der skete et eller andet. Ude af stand til at acceptere delingen.",
- "Something happened. Unable to reject the share." : "Der skete et eller andet. Ude af stand til at afvise delingen.",
- "No expiration date set" : "Ingen udløbsdato sat",
- "Please specify a valid user" : "Angiv en gyldig bruger",
- "Read only" : "Skrivebeskyttet",
- "File drop (upload only)" : "Fil drop (kun upload)",
- "Upload" : "Send",
- "Only works for users with access to this folder" : "Virker kun for brugere med adgang til denne folder",
- "Only works for users with access to this file" : "Virker kun for brugere med adgang til denne fil",
- "Circle" : "Cirkel",
- "Update" : "Opdatér",
- "No other users with access found" : "Ingen andre brugere med adgang fundet",
- "No entries found in this folder" : "Der blev ikke fundet poster i denne mappe",
+ "By uploading files, you agree to the %1$sterms of service%2$s." : "Ved at uploade filer accepterer du %1$sservicebetingelserne%2$s.",
"Name" : "Navn",
- "Share time" : "Dele periode",
- "Reasons might be:" : "Årsagen kan være:",
- "the item was removed" : "Filen blev fjernet",
- "the link expired" : "linket udløb",
- "sharing is disabled" : "deling er deaktiveret",
- "For more info, please ask the person who sent this link." : "For yderligere information, kontakt venligst personen der sendte linket. ",
- "Share with" : "Del med"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Anvend denne metode til at dele filer med brugere eller teams indenfor din organisation. Hvis modtageren allerede har adgang til delingen, men ikke kan finde det, så kan du sende det interne delingslink til dem, så de har let adgang",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Anvend denne metode til at dele filer med brugere eller organisationer udenfor din organisation. Filer og mapper kan deles via offentlige delingslinks og e-mailadresser. Du kan også dele til andre Nextcloud konti der er hostet på andre instanser ved anvendelse af sammenkoblings cloud ID.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Delinger som ikke er del af de interne eller eksterne delinger. Dette kan være delinger fra apps eller andre kilder.",
+ "Share with accounts and teams" : "Deling med konti og teams",
+ "Email, federated cloud id" : "E-mail, sammenkoblings cloud id",
+ "Filename must not be empty." : "Filnavnet må ikke være tomt."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js
index 4057756715c..79ec648162d 100644
--- a/apps/files_sharing/l10n/de.js
+++ b/apps/files_sharing/l10n/de.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Warte …",
- "error" : "Fehler",
- "finished" : "Abgeschlossen",
- "This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.",
- "Move or copy" : "Verschieben oder kopieren",
- "Download" : "Herunterladen",
- "Delete" : "Löschen",
- "You can upload into this folder" : "Du kannst in diesen Ordner hochladen",
- "Terms of service" : "Nutzungsbedingungen",
- "Show list view" : "Listenansicht anzeigen",
- "Show grid view" : "Rasteransicht anzeigen",
- "No compatible server found at {remote}" : "Keinen kompatiblen Server unter {remote} gefunden",
- "Invalid server URL" : "Falsche Server-URL",
- "Failed to add the public link to your Nextcloud" : "Fehler beim Hinzufügen des öffentlichen Links zu deiner Nextcloud",
"File shares" : "Dateifreigaben",
"Downloaded via public link" : "Über den öffentlichen Link heruntergeladen",
"Downloaded by {email}" : "Heruntergeladen von {email}",
@@ -68,42 +54,57 @@ OC.L10N.register(
"{actor} removed you from the share named {file}" : "{actor} hat dich aus der Freigabe von {file} entfernt",
"Share for file {file} with {user} expired" : "Freigabe für die Datei {file} mit {user} abgelaufen",
"Share for file {file} expired" : "Freigabe für die Datei {file} abgelaufen",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Öffentlich oder per E-Mail geteilte Datei oder Ordner wurde <strong>heruntergeladen</strong>",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Öffentlich oder per E-Mail geteilte Datei oder geteilter Ordner wurde <strong>heruntergeladen</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Dateien wurden in einen per E-Mail oder über einen öffentlichen Link freigegebenen Ordner <strong>hochgeladen</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder ein Ordner wurde von <strong>einem anderen Server</strong> geteilt",
- "Files" : "Dateien",
+ "Sharing" : "Teilen",
"A file or folder has been <strong>shared</strong>" : "Eine Datei oder ein Ordner wurde <strong>geteilt</strong>",
"Shared link" : "Geteilter Link",
"Wrong share ID, share does not exist" : "Fehlerhafte Freigabe-ID, Freigabe existiert nicht",
"Could not delete share" : "Freigabe konnte nicht gelöscht werden",
- "Please specify a file or folder path" : "Bitte gib eine Datei oder Ordner-Pfad an",
+ "Please specify a file or folder path" : "Bitte eine Datei oder einen Ordner-Pfad eingeben",
"Wrong path, file/folder does not exist" : "Falscher Pfad, Datei/Ordner existiert nicht",
"Could not create share" : "Freigabe konnte nicht erstellt werden",
- "Invalid permissions" : "Ungültige Berechtigungen",
- "Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT",
- "Group sharing is disabled by the administrator" : "Die Gruppenfreigabe ist durch den Administrator deaktiviert",
+ "Please specify a valid account to share with" : "Bitte ein gültiges Konto angeben, um mit ihm zu teilen",
+ "Group sharing is disabled by the administrator" : "Die Gruppenfreigabe ist durch die Administration deaktiviert",
"Please specify a valid group" : "Bitte gib eine gültige Gruppe an",
- "Public link sharing is disabled by the administrator" : "Die öffentliche Freigabe von Links ist durch den Administrator deaktiviert",
- "Public upload disabled by the administrator" : "Das öffentliche Hochladen ist durch den Administrator deaktiviert",
- "Public upload is only possible for publicly shared folders" : "Das öffentliche Hochladen ist nur für öffentlich freigegebene Ordner erlaubt",
+ "Public link sharing is disabled by the administrator" : "Die öffentliche Freigabe von Links ist durch die Administration deaktiviert",
+ "Please specify a valid email address" : "Bitte eine gültige E-Mail-Adresse eingeben",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "%s Freigeben: Senden des Passwortes über Nextcloud Talk gescheitert, da Nextcloud Talk nicht verfügbar ist",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Freigabe von %1$s fehlgeschlagen, da das Backend die Freigabe vom Typ %2$s nicht erlaubt",
- "Please specify a valid federated group ID" : "Bitte gib eine gültige Federated-Gruppen-ID ein",
- "You cannot share to a Circle if the app is not enabled" : "Du kannst nichts mit einem Kreis teilen, wenn die App nicht aktiviert ist",
- "Please specify a valid circle" : "Bitte gib einen gültigen Kreis an",
+ "Please specify a valid federated account ID" : "Bitte eine gültige Federated-Konto-ID eingeben",
+ "Please specify a valid federated group ID" : "Bitte eine gültige Federated-Gruppen-ID eingeben",
+ "You cannot share to a Team if the app is not enabled" : "Du kannst nichts mit einem Team teilen, wenn die App nicht aktiviert ist",
+ "Please specify a valid team" : "Bitte ein gültiges Team angeben",
"Sharing %s failed because the back end does not support room shares" : "Freigabe von %s fehlgeschlagen, da das Backend die Freigabe von Räumen nicht unterstützt",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Freigabe von %s fehlgeschlagen, da das Backend keine ScienceMesh-Freigaben unterstützt",
"Unknown share type" : "Unbekannter Freigabetyp",
"Not a directory" : "Kein Verzeichnis",
"Could not lock node" : "Node konnte nicht gesperrt werden",
+ "Public upload is only possible for publicly shared folders" : "Das öffentliche Hochladen ist nur für öffentlich freigegebene Ordner erlaubt",
+ "Share must at least have READ or CREATE permissions" : "Freigabe muss mindestens LESE- oder ERSTELL-Rechte haben",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "Die Freigabe muss das Recht LESEN haben, wenn das Recht für AKTUALISIEREN oder LÖSCHEN gesetzt ist",
+ "Public upload disabled by the administrator" : "Das öffentliche Hochladen ist durch die Administration deaktiviert",
"Could not lock path" : "Pfad konnte nicht gesperrt werden",
+ "no sharing rights on this item" : "Hierfür bestehen keine Freigaberechte",
+ "You are not allowed to edit incoming shares" : "Du darfst eingehende Freigaben nicht bearbeiten",
"Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben",
- "Share must at least have READ or CREATE permissions" : "Freigabe muss mindestens Lese- oder Erstell-Rechte haben",
- "Share must have READ permission if UPDATE or DELETE permission is set" : "Die Freigabe muss das Recht Lesen haben, wenn das Recht für Aktualisieren oder Löschen gesetzt ist",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Senden des Passwortes über Nextcloud Talk\" zum Teilen einer Datei gescheitert, da Nextcloud Talk nicht verfügbar ist.",
+ "Custom share link tokens have been disabled by the administrator" : "Benutzerdefinierte Freigabelink-Token wurden von der Administration deaktiviert",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Token müssen mindestens 1 Zeichen enthalten und dürfen nur aus Buchstaben, Zahlen oder einen Bindestrich bestehen",
+ "Invalid date. Format must be YYYY-MM-DD" : "Ungültiges Datum. Zulässiges Datumsformat: JJJJ-MM-TT",
+ "No sharing rights on this item" : "Hierfür bestehen keine Freigaberechte",
+ "Invalid share attributes provided: \"%s\"" : "Ungültige Freigabeattribute angegeben: \"%s\"",
+ "You are not allowed to send mail notifications" : "Du darfst keine E-Mail-Benachrichtigungen senden",
+ "No mail notification configured for this share type" : "Für diesen Freigabetyp ist keine E-Mail-Benachrichtigung eingerichtet",
+ "Wrong password" : "Falsches Passwort",
+ "Error while sending mail notification" : "Fehler beim Sendern der E-Mail-Benachrichtigung",
+ "Failed to generate a unique token" : "Es konnte kein eindeutiges Token generiert werden",
+ "This share does not exist or is no longer available" : "Diese Freigabe existiert nicht oder ist nicht mehr verfügbar",
"shared by %s" : "von %s geteilt",
- "Download all files" : "Alle Dateien herunterladen",
- "Direct link" : "Direkter Link",
+ "Download" : "Herunterladen",
"Add to your %s" : "Hinzufügen zu deiner %s",
+ "Direct link" : "Direkter Link",
"Share API is disabled" : "Teilen-API ist deaktivert",
"File sharing" : "Dateifreigabe",
"Share will expire tomorrow" : "Freigabe läuft morgen ab",
@@ -112,191 +113,341 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Du hast {share} zur Gruppe {group} als Freigabe von {user} empfangen",
"Accept" : "Akzeptieren",
"Decline" : "Ablehnen",
- "Sharing" : "Teilen",
+ "Remember to upload the files to %s" : "Denke daran, die Dateien auf %s hochzuladen",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Wir möchten dich freundlich daran erinnern, dass du bisher noch keine Dateien in den freigegebenen Ordner hochgeladen hast.",
+ "Open \"%s\"" : "\"%s\" öffnen",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Diese App ermöglicht es Personen, Dateien innerhalb von Nextcloud zu teilen. Wenn aktiviert, kann die Administration wählen, welche Gruppen Dateien teilen können. Die entsprechenden Personen können dann Dateien und Ordner mit anderen Personen und Gruppen innerhalb von Nextcloud teilen. Wenn die Administration die Funktion zum Teilen von Links aktiviert, kann ein externer Link verwendet werden, um Dateien mit anderen Personen außerhalb von Nextcloud zu teilen. Die Administration kann auch Passwörter und Ablaufdaten erzwingen und die Freigabe von Server zu Server über Freigabelinks sowie die Freigabe von mobilen Geräten aus aktivieren.\nWenn du die Funktion deaktivierst, werden freigegebene Dateien und Ordner auf dem Server für alle Freigabeempfänger und auch auf den Sync-Clients und mobilen Apps entfernt. Weitere Informationen findest du in der Nextcloud-Dokumentation.",
+ "People" : "Personen",
+ "Filter accounts" : "Konten filtern",
+ "The request will expire on {date} at midnight and will be password protected." : "Die Anfrage läuft am {date} um Mitternacht ab und ist passwortgeschützt.",
+ "The request will expire on {date} at midnight." : "Die Anfrage läuft am {date} um Mitternacht ab.",
+ "The request will be password protected." : "Die Anfrage wird passwortgeschützt sein.",
+ "When should the request expire?" : "Wann soll die Anfrage ablaufen?",
+ "Set a submission expiration date" : "Ablaufdatum für die Übermittlung festlegen",
+ "Expiration date" : "Ablaufdatum",
+ "Select a date" : "Datum auswählen",
+ "Your administrator has enforced a {count} days expiration policy." : "Die Administration erzwingt über eine Richtlinie den Ablauf nach {count} Tagen.",
+ "What password should be used for the request?" : "Welches Passwort soll für die Anfrage verwendet werden?",
+ "Set a password" : "Passwort setzen",
+ "Password" : "Passwort",
+ "Enter a valid password" : "Ein gültige Passwort eingeben",
+ "Generate a new password" : "Ein neues Passwort erstellen",
+ "Your administrator has enforced a password protection." : "Die Administration erzwingt einen Passwortschutz",
+ "Automatically copying failed, please copy the share link manually" : "Automatisches Kopieren ist fehlgeschlagen, bitte den Freigabelink manuell kopieren",
+ "Link copied" : "Link kopiert",
+ "Email already added" : "E-Mail-Adresse wurde bereits hinzugefügt",
+ "Invalid email address" : "Ungültige E-Mail-Adresse",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Die folgende E-Mail-Adresse ist ungültig: ","Die folgenden E-Mail-Adressen sind ungültig: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} E-Mail-Adresse bereits hinzugefügt","{count} E-Mail-Adressen bereits hinzugefügt"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"],
+ "You can now share the link below to allow people to upload files to your directory." : "Du kannst jetzt den unten stehenden Link freigeben, damit andere Dateien in dein Verzeichnis hochladen können.",
+ "Share link" : "Link teilen",
+ "Copy" : "Kopieren",
+ "Send link via email" : "Link als E-Mail verschicken",
+ "Enter an email address or paste a list" : "E-Mail-Adresse eingeben oder eine Liste einfügen",
+ "Remove email" : "E-Mail-Adresse entfernen",
+ "Select a destination" : "Ein Ziel wählen",
+ "Select" : "Auswählen",
+ "What are you requesting?" : "Was fragst du an?",
+ "Request subject" : "Betreff der Anfrage",
+ "Birthday party photos, History assignment…" : "Fotos von Geburtstagsfeiern, Geschichtsaufgaben…",
+ "Where should these files go?" : "Wo sollen diese Dateien gespeichert werden?",
+ "Upload destination" : "Ziel für das Hochladen",
+ "Revert to default" : "Auf Standard zurücksetzen",
+ "The uploaded files are visible only to you unless you choose to share them." : "Die hochgeladenen Dateien sind nur für dich sichtbar, so lange du sie nicht freigibst.",
+ "Add a note" : "Notiz hinzufügen",
+ "Note for recipient" : "Notiz für den Empfänger",
+ "Add a note to help people understand what you are requesting." : "Eine Notiz hinzufügen, damit die Adressaten verstehen, was du anfrägst.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Du kannst Links, Daten oder andere Informationen hinzufügen, die dem Empfänger helfen, deine Anfrage zu verstehen.",
+ "Close" : "Schließen",
+ "_Send email and close_::_Send {count} emails and close_" : ["E-Mail senden und schließen","{count} E-Mails senden und schließen"],
+ "Please select a folder, you cannot share the root directory." : "Bitte einen Ordner auswählen. Das Rootverzeichnis kann nicht freigegeben werden.",
+ "File request created" : "Dateianfrage erstellt",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Dateianforderung erstellt und E-Mail gesendet","Dateianforderung erstellt und {count} E-Mails gesendet"],
+ "Error creating the share: {errorMessage}" : "Fehler beim Erstellen der Freigabe: {errorMessage}",
+ "Error creating the share" : "Fehler beim Erstellen der Freigabe",
+ "Error sending emails: {errorMessage}" : "Fehler beim E-Mailversand: {errorMessage}",
+ "Error sending emails" : "Fehler beim E-Mailversand",
+ "Create a file request" : "Eine Dateianfrage erstellen",
+ "Collect files from others even if they do not have an account." : "Dateien von anderen sammeln, auch wenn diese kein Konto haben.",
+ "To ensure you can receive files, verify you have enough storage available." : "Um sicherzustellen, dass du Dateien empfangen kannst, überprüfe, ob dir genügend Speicherplatz zur Verfügung steht.",
+ "File request" : "Dateianfrage",
+ "Previous step" : "Vorheriger Schritt",
+ "Cancel" : "Abbrechen",
+ "Cancel the file request creation" : "Erstellung der Dateianfrage abbrechen",
+ "Close without sending emails" : "Schließen ohne E-Mails zu versenden",
+ "Continue" : "Fortsetzen",
"Error while toggling options" : "Fehler beim Umschalten der Optionen",
- "Set default folder for accepted shares" : "Standardordner für akzeptierte Freigaben wählen",
+ "Accept shares from other accounts and groups by default" : "Freigaben von anderen Konten und Gruppen standardmäßig annehmen",
+ "Choose a default folder for accepted shares" : "Einen Standardordner für akzeptierte Freigaben wählen",
+ "Invalid path selected" : "Ungültigen Pfad ausgewählt",
+ "Unknown error" : "Unbekannter Fehler",
+ "Set default folder for accepted shares" : "Standardordner für angenommene Freigaben",
"Reset" : "Zurücksetzen",
"Reset folder to system default" : "Ordner auf Systemstandard zurücksetzen",
- "Choose a default folder for accepted shares" : "Wähle einen Standardordner für akzeptierte Freigaben",
- "Invalid path selected" : "Ungültiger Pfad ausgewählt",
- "Unknown error" : "Unbekannter Fehler",
- "Open Sharing Details" : "Freigabedetails öffnen",
+ "Share expiration: {date}" : "Freigabe-Ablaufdatum: {date}",
+ "Share Expiration" : "Freigabe-Ablaufdatum",
"group" : "Gruppe",
"conversation" : "Unterhaltung",
"remote" : "Extern",
"remote group" : "Externe Gruppe",
"guest" : "Gast",
+ "by {initiator}" : "von {initiator}",
"Shared with the group {user} by {owner}" : "Geteilt mit der Gruppe {user} von {owner}",
"Shared with the conversation {user} by {owner}" : "Geteilt mit der Unterhaltung {user} von {owner}",
"Shared with {user} by {owner}" : "Geteilt mit {user} von {owner}",
+ "Open Sharing Details" : "Freigabedetails öffnen",
"Added by {initiator}" : "Hinzugefügt von {initiator}",
- "Via “{folder}”" : "Über “{folder}”",
+ "Via “{folder}”" : "Über \"{folder}”",
"Unshare" : "Freigabe aufheben",
+ "Cannot copy, please copy the link manually" : "Kopieren fehlgeschlagen. Bitte den Link manuell kopieren.",
+ "Copy internal link" : "Internen Link kopieren",
+ "For people who already have access" : "Für Personen, die bereits Zugriff haben",
"Internal link" : "Interner Link",
- "Cannot copy, please copy the link manually" : "Kopieren fehlgeschlagen. Bitte kopiere den Link manuell.",
- "Copy internal link to clipboard" : "Internen Link in die Zwischenablage kopieren",
- "Link copied" : "Link kopiert",
- "Please enter the following required information before creating the share" : "Bitte gib die benötigten Informationen ein bevor die Freigabe erstellt wird",
- "Password protection (enforced)" : "Passwortschutz (erzwungen)",
- "Password protection" : "Passwortschutz",
- "Enter a password" : "Passwort eingeben",
- "Expiration date (enforced)" : "Ablaufdatum (erzwungen)",
- "Enter a date" : "Datum eingeben",
- "Create share" : "Freigabe erstellen",
- "Cancel" : "Abbrechen",
- "Customize link" : "Freigabelink anpassen",
- "Add another link" : "Weiteren Link hinzufügen",
- "Create a new share link" : "Neuen Freigabe-Link erstellen",
"{shareWith} by {initiator}" : "{shareWith} von {initiator}",
"Shared via link by {initiator}" : "Geteilt mittels Link von {initiator}",
+ "File request ({label})" : "Dateianfrage ({label})",
"Mail share ({label})" : "Mail teilen ({label})",
- "Share link ({label})" : "Link teilen ({label})",
- "Share link ({index})" : "Link teilen ({index})",
- "Share link" : "Link teilen",
+ "Share link ({label})" : "Externer Link ({label})",
+ "Mail share" : "E-Mail-Freigabe",
+ "Share link ({index})" : "Externer Link ({index})",
+ "Create public link" : "Öffentlichen Link erstellen",
"Actions for \"{title}\"" : "Aktionen für \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Öffentlichen Link von \"{title}\" in die Zwischenablage kopieren",
+ "Copy public link of \"{title}\"" : "Öffentlichen Link von \"{title}\" kopieren",
"Error, please enter proper password and/or expiration date" : "Fehler. Bitte gib das richtige Passwort und/oder Ablaufdatum ein.",
"Link share created" : "Link-Freigabe erstellt",
"Error while creating the share" : "Fehler beim Erstellen der Freigabe",
+ "Please enter the following required information before creating the share" : "Bitte gib die benötigten Informationen ein, bevor die Freigabe erstellt wird",
+ "Password protection (enforced)" : "Passwortschutz (erzwungen)",
+ "Password protection" : "Passwortschutz",
+ "Enter a password" : "Passwort eingeben",
+ "Enable link expiration (enforced)" : "Ablaufdatum des Links aktivieren (erzwungen)",
+ "Enable link expiration" : "Ablaufdatum des Links aktivieren",
+ "Enter expiration date (enforced)" : "Ablaufdatum eingeben (erzwungen)",
+ "Enter expiration date" : "Ablaufdatum eingeben",
+ "Create share" : "Freigabe erstellen",
+ "Customize link" : "Freigabelink anpassen",
+ "Generate QR code" : "QR-Code erzeugen",
+ "Add another link" : "Weiteren Link hinzufügen",
+ "Create a new share link" : "Neuen Freigabe-Link erstellen",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Schnelle Freigabeoptionen, aktuell ausgewählt ist \"{selectedOption}\"",
"View only" : "Nur anzeigen",
"Can edit" : "Kann bearbeiten",
- "File drop" : "Dateiablage",
"Custom permissions" : "Benutzerdefinierte Berechtigungen",
- "Search for share recipients" : "Nach Freigabe-Empfängern suchen",
- "No recommendations. Start typing." : "Keine Empfehlungen. Beginne mit der Eingabe.",
"Resharing is not allowed" : "Weiterteilen ist nicht erlaubt",
"Name or email …" : "Name oder E-Mail-Adresse …",
"Name, email, or Federated Cloud ID …" : "Name, E-Mail-Adresse oder Federated-Cloud-ID …",
"Searching …" : "Suche …",
"No elements found." : "Keine Elemente gefunden.",
- "Search globally" : "Global suchen",
+ "Search everywhere" : "Überall suchen",
"Guest" : "Gast",
"Group" : "Gruppe",
"Email" : "E-Mail-Adresse",
+ "Team" : "Team",
"Talk conversation" : "Talk-Unterhaltung",
"Deck board" : "Deck-Board",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "auf {server}",
+ "Enter external recipients" : "Externe Empfänger eingeben",
+ "Search for internal recipients" : "Suche nach internen Empfängern",
+ "Note from" : "Notiz von",
+ "Note:" : "Bemerkung:",
+ "File drop" : "Dateiablage",
+ "Upload files to {foldername}." : "Dateien hochladen nach {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Durch das Hochladen von Dateien stimmst du den Nutzungsbedingungen zu.",
+ "Successfully uploaded files" : "Dateien wurden hochgeladen",
+ "View terms of service" : "Nutzungsbedingungen anzeigen",
+ "Terms of service" : "Nutzungsbedingungen",
+ "Share with {user}" : "Mit {user} teilen",
+ "Share with email {email}" : "Per E-Mail {email} teilen",
+ "Share with group" : "Mit Gruppe teilen",
+ "Share in conversation" : "In Unterhaltungen teilen",
+ "Share with {user} on remote server {server}" : "Mit {user} auf dem Remote-Server {server} teilen",
+ "Share with remote group" : "Mit entfernter Gruppe teilen",
+ "Share with guest" : "Mit Gast teilen",
+ "Update share" : "Freigabe aktualisieren",
+ "Save share" : "Freigabe speichern",
+ "Read" : "Lesen",
+ "Create" : "Erstellen",
+ "Edit" : "Bearbeiten",
+ "Share" : "Teilen",
+ "Delete" : "Löschen",
+ "Password field cannot be empty" : "Passwortfeld darf nicht leer sein",
+ "Replace current password" : "Aktuelles Passwort ersetzen",
+ "Failed to generate a new token" : "Es konnte kein neues Token generiert werden",
"Allow upload and editing" : "Hochladen und Bearbeiten erlauben",
"Allow editing" : "Bearbeitung erlauben",
"Upload only" : "Nur hochladen",
"Advanced settings" : "Erweiterte Einstellungen",
"Share label" : "Freigabe-Label",
+ "Share link token" : "Freigabe-Token teilen",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Das öffentliche Freigabelink-Token auf einen Begriff festlegen, der leicht zu merken ist , oder generiere ein neues Token. Es ist nicht empfehlenswert, ein erratbares Token für Freigaben zu verwenden, die vertrauliche Informationen enthalten.",
+ "Generating…" : "Generieren…",
+ "Generate new token" : "Neues Token generieren",
"Set password" : "Passwort setzen",
- "Password" : "Passwort",
"Password expires {passwordExpirationTime}" : "Passwort läuft um {passwordExpirationTime} ab",
"Password expired" : "Passwort abgelaufen",
"Video verification" : "Videoüberprüfung",
+ "Expiration date (enforced)" : "Ablaufdatum (erzwungen)",
"Set expiration date" : "Ablaufdatum setzen",
- "Expiration date" : "Ablaufdatum",
"Hide download" : "Download verbergen",
- "Allow download" : "Download erlauben",
+ "Allow download and sync" : "Herunterladen und synchronisieren zulassen",
"Note to recipient" : "Notiz an Empfänger",
"Enter a note for the share recipient" : "Notiz für Empfänger der Freigabe eingeben",
- "Read" : "Lesen",
- "Create" : "Erstellen",
- "Edit" : "Bearbeiten",
- "Share" : "Teilen",
+ "Show files in grid view" : "Dateien in Kachelansicht anzeigen",
"Delete share" : "Freigabe löschen",
- "Update share" : "Freigabe aktualisieren",
- "Save share" : "Freigabe speichern",
"Others with access" : "Andere mit Zugriff",
+ "No other accounts with access found" : "Keine anderen Konten mit Zugriffsberechtigung gefunden",
"Toggle list of others with access to this directory" : "Liste anderer Benutzer mit Zugriff auf dieses Verzeichnis umschalten",
"Toggle list of others with access to this file" : "Liste anderer Benutzer mit Zugriff auf diese Datei umschalten",
"Unable to fetch inherited shares" : "Vererbte Freigaben konnten nicht geladen werden",
+ "Link shares" : "Freigaben teilen",
+ "Shares" : "Freigaben",
+ "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Dateien innerhalb Ihrer Organisation teilen. Auch Empfänger, die auf die Datei bereits zugreifen können, können diesen Link für einen einfachen Zugriff nutzen.",
+ "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Dateien über öffentliche Links und E-Mail-Adressen mit anderen außerhalb Ihrer Organisation teilen. Du kannst Nextcloud-Konten auch auf anderen Instanzen mithilfe der föderierten Cloud-ID teilen.",
+ "Shares from apps or other sources which are not included in internal or external shares." : "Freigaben aus Apps oder anderen Quellen, die nicht in internen oder externen Freigaben enthalten sind.",
+ "Type names, teams, federated cloud IDs" : "Namen, Teams oder Federierte Cloud-IDs eingeben",
+ "Type names or teams" : "Namen oder Federierte Cloud-IDs eingeben",
+ "Type a federated cloud ID" : "Eine Federierte Cloud-ID eingeben",
+ "Type an email" : "Eine E-Mailadresse eingeben",
+ "Type an email or federated cloud ID" : "Eine E-Mailadresse oder eine Federierte Cloud-ID eingeben",
"Unable to load the shares list" : "Liste der Freigaben konnte nicht geladen werden",
"Expires {relativetime}" : "Läuft {relativetime} ab",
"this share just expired." : "Diese Freigabe ist gerade abgelaufen.",
"Shared with you by {owner}" : "{owner} hat dies mit dir geteilt",
+ "Internal shares" : "Interne Freigaben",
+ "Internal shares explanation" : "Erklärung interner Freigaben",
+ "External shares" : "Externe Freigaben",
+ "External shares explanation" : "Erklärung externer Freigaben",
+ "Additional shares" : "Zusätzliche Freigaben",
+ "Additional shares explanation" : "Erklärung zusätzlicher Freigaben",
+ "Link to a file" : "Mit einer Datei verknüpfen",
"_Accept share_::_Accept shares_" : ["Freigabe akzeptieren","Freigaben akzeptieren"],
"Open in Files" : "In Dateien öffnen",
"_Reject share_::_Reject shares_" : ["Freigabe ablehnen","Freigaben ablehnen"],
"_Restore share_::_Restore shares_" : ["Freigabe wiederherstellen","Freigaben wiederherstellen"],
"Shared" : "Geteilt",
"Shared by {ownerDisplayName}" : "Geteilt von {ownerDisplayName}",
- "Show sharing options" : "Freigabeoptionen anzeigen",
- "Link to a file" : "Mit einer Datei verknüpfen",
- "Error creating the share: {errorMessage}" : "Fehler beim Erstellen der Freigabe: {errorMessage}",
- "Error creating the share" : "Fehler beim Erstellen der Freigabe",
- "Error updating the share: {errorMessage}" : "Fehler beim Aktualisieren der Freigabe: {errorMessage}",
- "Error updating the share" : "Fehler beim Aktualisieren der Freigabe",
- "File \"{path}\" has been unshared" : "Freigabe für die Datei \"{path}\" wurde entfernt.",
- "Folder \"{path}\" has been unshared" : "Freigabe für den Ordner \"{path}\" wurde entfernt.",
- "Share {propertyName} saved" : "Freigabe {propertyName} gespeichert",
- "Shared by" : "Geteilt von",
- "Shared with" : "Geteilt mit",
- "Password created successfully" : "Passwort erstellt",
- "Error generating password from password policy" : "Fehler beim Erzeugen des Passworts aufgrund der Passwortrichtlinie",
- "Shared with you and the group {group} by {owner}" : "{owner} hat dies mit dir und der Gruppe {group} geteilt",
- "Shared with you and {circle} by {owner}" : "{owner} hat dies mit dir und dem Kreis {circle} geteilt",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} hat dies mit dir und der Unterhaltung {conversation} geteilt",
- "Shared with you in a conversation by {owner}" : "{owner} hat dies mit dir in einer Unterhaltung {conversation} geteilt",
- "Shares" : "Freigaben",
+ "Shared multiple times with different people" : "Mehrmals mit verschiedenen Personen geteilt",
+ "Sharing options" : "Freigabeoptionen",
+ "Shared with others" : "Mit anderen geteilt",
+ "Create file request" : "Dateianfrage erstellen",
+ "Upload files to {foldername}" : "Dateien hochladen nach {foldername}",
+ "Public file share" : "Öffentliche Dateifreigabe",
+ "Publicly shared file." : "Öffentlich geteilte Datei.",
+ "No file" : "Keine Datei",
+ "The file shared with you will show up here" : "Die mit dir geteilte Datei wird hier angezeigt",
+ "Public share" : "Öffentliche Freigabe",
+ "Publicly shared files." : "Öffentlich geteilte Dateien.",
+ "No files" : "Keine Dateien",
+ "Files and folders shared with you will show up here" : "Freigegebene Dateien und Ordner werden hier angezeigt werden",
"Overview of shared files." : "Übersicht geteilter Dateien.",
"No shares" : "Keine Freigaben",
- "Files and folders you shared or have been shared with you will show up here" : "Von dir oder mit dir geteilte Ordner und Dateien werden hier angezeigt werden.",
+ "Files and folders you shared or have been shared with you will show up here" : "Von dir oder mit dir geteilte Ordner und Dateien werden hier angezeigt",
"Shared with you" : "Mit dir geteilt",
"List of files that are shared with you." : "Liste der Dateien, die mit dir geteilt wurden.",
"Nothing shared with you yet" : "Bis jetzt wurde nichts mit dir geteilt",
- "Files and folders others shared with you will show up here" : "Mit dir geteilte Dateien und Ordner werden hier angezeigt werden.",
- "Shared with others" : "Von dir geteilt",
+ "Files and folders others shared with you will show up here" : "Mit dir geteilte Dateien und Ordner werden hier angezeigt",
"List of files that you shared with others." : "Liste der Dateien, die du mit anderen geteilt hast",
"Nothing shared yet" : "Noch nichts geteilt",
- "Files and folders you shared will show up here" : "Von dir geteilte Dateien und Ordner werden hier angezeigt werden.",
- "Shared by link" : "Geteilt über einen Link",
+ "Files and folders you shared will show up here" : "Von dir geteilte Dateien und Ordner werden hier angezeigt",
+ "Shared by link" : "Über einen Link geteilt",
"List of files that are shared by link." : "Liste der Dateien, die mittels Link geteilt wurden.",
"No shared links" : "Keine geteilten Links",
- "Files and folders you shared by link will show up here" : "Von dir per Link geteilte Dateien werden hier angezeigt werden.",
+ "Files and folders you shared by link will show up here" : "Von dir mittels Link geteilte Dateien und Ordner werden hier angezeigt",
+ "File requests" : "Dateianfragen",
+ "List of file requests." : "Liste der Dateianfragen.",
+ "No file requests" : "Keine Dateianfragen",
+ "File requests you have created will show up here" : "Von dir erstellte Dateianfragen werden hier angezeigt",
"Deleted shares" : "Gelöschte Freigaben",
- "List of shares you left." : "Liste der Freigaben, die du verlassen hast",
+ "List of shares you left." : "Liste der Freigaben, die du verlassen hast.",
"No deleted shares" : "Keine gelöschten Freigaben",
- "Shares you have left will show up here" : "Freigaben, die du verlassen hast, werden hier angezeigt werden.",
+ "Shares you have left will show up here" : "Freigaben, die du verlassen hast, werden hier angezeigt",
"Pending shares" : "Ausstehende Freigaben",
"List of unapproved shares." : "Liste ungeprüfter Freigaben.",
"No pending shares" : "Keine ausstehenden Freigaben",
- "Shares you have received but not approved will show up here" : "Freigaben die du erhalten, aber nicht bestätigt hast, werden hier angezeigt werden.",
+ "Shares you have received but not approved will show up here" : "Freigaben, die du erhalten, aber nicht bestätigt hast, werden hier angezeigt",
+ "Error deleting the share: {errorMessage}" : "Fehler beim Löschen der Freigabe: {errorMessage}",
+ "Error deleting the share" : "Fehler beim Löschen der Freigabe",
+ "Error updating the share: {errorMessage}" : "Fehler beim Aktualisieren der Freigabe: {errorMessage}",
+ "Error updating the share" : "Fehler beim Aktualisieren der Freigabe",
+ "File \"{path}\" has been unshared" : "Freigabe für die Datei \"{path}\" wurde entfernt",
+ "Folder \"{path}\" has been unshared" : "Freigabe für den Ordner \"{path}\" wurde entfernt",
+ "Could not update share" : "Freigabe konnte nicht aktualisiert werden",
+ "Share saved" : "Freigabe gespeichert",
+ "Share expiry date saved" : "Freigabe-Ablaufdatum gespeichert",
+ "Share hide-download state saved" : "\"Download verbergen\"-Status der Freigabe gespeichert",
+ "Share label saved" : "Freigabe-Schlagwort gespeichert",
+ "Share note for recipient saved" : "Freigabe-Notiz für Empfänger gespeichert",
+ "Share password saved" : "Freigabe-Passwort gespeichert",
+ "Share permissions saved" : "Freigabeberechtigungen gespeichert",
+ "To upload files to {folder}, you need to provide your name first." : "Um Dateien nach {folder} hochzuladen, musst du zunächst deinen Namen angeben.",
+ "Upload files to {folder}" : "Dateien hochladen nach {folder}",
+ "Please confirm your name to upload files to {folder}" : "Bitte bestätige deinen Namen, um Dateien nach {folder} hochzuladen",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} hat einen Ordner mit dir geteilt.",
+ "Names must not be empty." : "Namen dürfen nicht leer sein.",
+ "Names must not start with a dot." : "Namen dürfen nicht mit einem Punkt beginnen.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" ist innerhalb eines Namens unzulässig.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" ist ein reservierter Name und unzulässig.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" ist kein zulässiger Name.",
+ "Names must not end with \"{extension}\"." : "Namen dürfen nicht mit \"{extension}\" enden.",
+ "Invalid name." : "Ungültiger Name.",
+ "Shared by" : "Geteilt von",
+ "Shared with" : "Geteilt mit",
+ "Password created successfully" : "Passwort erstellt",
+ "Error generating password from password policy" : "Fehler beim Erzeugen des Passworts aufgrund der Passwortrichtlinie",
+ "Shared with you and the group {group} by {owner}" : "{owner} hat dies mit dir und der Gruppe {group} geteilt",
+ "Shared with you and {circle} by {owner}" : "{owner} hat dies mit dir und dem Kreis {circle} geteilt",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} hat dies mit dir und der Unterhaltung {conversation} geteilt",
+ "Shared with you in a conversation by {owner}" : "{owner} hat dies mit dir in einer Unterhaltung geteilt",
+ "Share not found" : "Freigabe nicht gefunden",
+ "Back to %s" : "Zurück zu %s",
+ "Add to your Nextcloud" : "Zu deiner Nextcloud hinzufügen",
+ "Waiting…" : "Warte …",
+ "error" : "Fehler",
+ "finished" : "Abgeschlossen",
+ "This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.",
+ "Move or copy" : "Verschieben oder kopieren",
+ "You can upload into this folder" : "Du kannst in diesen Ordner hochladen",
+ "Show list view" : "Listenansicht anzeigen",
+ "Show grid view" : "Rasteransicht anzeigen",
+ "No compatible server found at {remote}" : "Keinen kompatiblen Server unter {remote} gefunden",
+ "Invalid server URL" : "Falsche Server-URL",
+ "Failed to add the public link to your Nextcloud" : "Der öffentliche Link konnte nicht zu deiner Nextcloud hinzugefügt werden",
+ "You are not allowed to edit link shares that you don't own" : "Du darfst keine Linkfreigaben bearbeiten, die du nicht besitzst",
+ "Download all files" : "Alle Dateien herunterladen",
+ "Link copied to clipboard" : "Link wurde in die Zwischenablage kopiert",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 E-Mail-Adresse bereits hinzugefügt","{count} E-Mail-Adressen bereits hinzugefügt"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"],
+ "Copy to clipboard" : "In die Zwischenablage kopieren",
+ "Copy internal link to clipboard" : "Internen Link in die Zwischenablage kopieren",
+ "Only works for people with access to this folder" : "Funktioniert nur für Personen mit Zugriff auf diesen Ordner",
+ "Only works for people with access to this file" : "Funktioniert nur für Personen mit Zugriff auf diese Datei",
+ "Copy public link of \"{title}\" to clipboard" : "Öffentlichen Link von \"{title}\" in die Zwischenablage kopieren",
+ "Search globally" : "Global suchen",
+ "Search for share recipients" : "Nach Freigabe-Empfängern suchen",
+ "No recommendations. Start typing." : "Keine Empfehlungen. Eingabe beginnen.",
+ "To upload files, you need to provide your name first." : "Um Dateien hochzuladen, musst du zunächst deinen Namen angeben.",
+ "Enter your name" : "Gib deinen Namen ein",
+ "Submit name" : "Name übermitteln",
+ "Share with {userName}" : "Mit {userName} teilen",
+ "Show sharing options" : "Freigabeoptionen anzeigen",
"Share note" : "Notiz teilen",
"Upload files to %s" : "Dateien für %s hochladen",
+ "%s shared a folder with you." : "%s hat einen Ordner mit dir geteilt.",
"Note" : "Notiz",
"Select or drop files" : "Dateien auswählen oder hierher ziehen",
"Uploading files" : "Dateien werden hochgeladen",
- "Uploaded files:" : "Hochgeladene Dateien: ",
+ "Uploaded files:" : "Hochgeladene Dateien:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Durch das Hochladen von Dateien stimmst du den %1$sNutzungsbedingungen%2$s zu.",
- "Add to your Nextcloud" : "Zu deiner Nextcloud hinzufügen",
- "Files and folders others share with you will show up here" : "Mit dir geteilte Dateien und Ordner anderer werden hier erscheinen",
- "Files and folders you share will show up here" : "Von dir geteilte Dateien und Ordner werden hier erscheinen",
- "Files and folders you share by link will show up here" : "Per Link freigegebene Dateien und Ordner werden hier erscheinen",
- "Shares you deleted will show up here" : "Von dir gelöschte Freigaben werden hier erscheinen",
- "Shares you have received but not confirmed will show up here" : "Freigaben, die du erhalten, aber nicht bestätigt hast, werden hier angezeigt",
- "Shares will show up here" : "Freigaben werden hier angezeigt",
- "Restore" : "Wiederherstellen",
- "Something happened. Unable to restore the share." : "Die Freigabe konnte nicht wiederhergestellt werden.",
- "Something happened. Unable to accept the share." : "Die Freigabe konnte nicht akzeptiert werden.",
- "Something happened. Unable to reject the share." : "Die Freigabe konnte nicht abgelehnt werden.",
- "No expiration date set" : "Kein Ablaufdatum gesetzt",
- "Please specify a valid user" : "Bitte gib einen gültigen Benutzer an",
- "Please specify a valid federated user ID" : "Bitte gib eine gültige Federated-Benutzer-ID ein",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Diese App ermöglicht es Nutzern, Dateien innerhalb von Nextcloud freizugeben. Bei aktivierter App kann der Administrator einstellen, welchen Gruppen das Freigeben von Dateien erlaubt ist. Der zugelassene Nutzer kann dann Dateien und Ordner für andere Gruppen und Nutzer innerhalb der Nextcloud freigeben. Darüberhinaus kann der Administrator die Link-Teilen Funktion freigeben, mit der ein externer Link um Dateien für Nutzer außerhalb der Nextcloud freizugeben. Schließlich kann der Administrator noch Passwortrichtlinien und Ablaufzeiträume vorgeben sowie das Freigeben von Mobilgeräten ermöglichen.\nDas Ausschalten dieser App entfernt die bis dahin erstellten Freigaben für alle Empfänger wie auch für die Sync-Clients und die Apss für Mobilgeräte. Weitere Informationen können in der Nextcloud-Dokumentation abgerufen werden.",
- "Accept user and group shares by default" : "Benutzer- und Gruppenfreigaben standardmäßig akzeptieren",
- "Read only" : "Schreibgeschützt",
- "File drop (upload only)" : "Dateien ablegen (nur Hochladen)",
- "Upload" : "Upload",
- "Bundled permissions" : "Gebündelte Berechtigungen",
- "Only works for users with access to this folder" : "Funktioniert nur für Benutzer, die Zugriff auf diesen Ordner haben",
- "Only works for users with access to this file" : "Funktioniert nur für Benutzer, die Zugriff auf diese Datei haben",
- "Circle" : "Kreis",
- "Update" : "Aktualisieren",
- "Share with " : "Teilen mit",
- "No other users with access found" : "Keine anderen Benutzer mit Zugriff gefunden",
- "No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden",
"Name" : "Name",
- "Share time" : "Freigabezeitpunkt",
- "Sorry, this link does not seem to work anymore." : "Leider scheint dieser Link nicht mehr zu funktionieren.",
- "Reasons might be:" : "Gründe könnten sein:",
- "the item was removed" : "Das Element wurde entfernt",
- "the link expired" : "Der Link ist abgelaufen",
- "sharing is disabled" : "Teilen ist deaktiviert",
- "For more info, please ask the person who sent this link." : "Um nähere Informationen zu erhalten, wende dich bitte an die Person, die dir diesen Link geschickt hat.",
- "Share with" : "Teilen mit"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Verwende diese Methode, um Dateien für Personen oder Teams innerhalb deiner Organisation freizugeben. Wenn der Empfangende bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, kannst du ihm den internen Freigabelink für einen einfachen Zugriff senden.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Verwende diese Methode, um Dateien für Personen oder Organisationen außerhalb deiner Organisation freizugeben. Dateien und Ordner können über öffentliche Freigabelinks und E-Mail-Adressen freigegeben werden. Du kannst auch Dateien für andere Nextcloud-Konten freigeben, die auf verschiedenen Instanzen gehostet werden, indem du deren Federated-Cloud-ID verwenden.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Freigaben, die nicht zu internen oder externen Freigaben gehören. Dies können Freigaben von Apps oder anderen Quellen sein.",
+ "Share with accounts, teams, federated cloud id" : "Teilen mit Konten, Teams, Federated-Cloud-IDs",
+ "Share with accounts and teams" : "Teile mit Konten und Teams",
+ "Federated cloud ID" : "Federated-Cloud-ID",
+ "Email, federated cloud id" : "Name, Federated-Cloud-ID",
+ "Filename must not be empty." : "Dateiname darf nicht leer sein."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json
index 579e22cf4b0..79e463107ea 100644
--- a/apps/files_sharing/l10n/de.json
+++ b/apps/files_sharing/l10n/de.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Warte …",
- "error" : "Fehler",
- "finished" : "Abgeschlossen",
- "This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.",
- "Move or copy" : "Verschieben oder kopieren",
- "Download" : "Herunterladen",
- "Delete" : "Löschen",
- "You can upload into this folder" : "Du kannst in diesen Ordner hochladen",
- "Terms of service" : "Nutzungsbedingungen",
- "Show list view" : "Listenansicht anzeigen",
- "Show grid view" : "Rasteransicht anzeigen",
- "No compatible server found at {remote}" : "Keinen kompatiblen Server unter {remote} gefunden",
- "Invalid server URL" : "Falsche Server-URL",
- "Failed to add the public link to your Nextcloud" : "Fehler beim Hinzufügen des öffentlichen Links zu deiner Nextcloud",
"File shares" : "Dateifreigaben",
"Downloaded via public link" : "Über den öffentlichen Link heruntergeladen",
"Downloaded by {email}" : "Heruntergeladen von {email}",
@@ -66,42 +52,57 @@
"{actor} removed you from the share named {file}" : "{actor} hat dich aus der Freigabe von {file} entfernt",
"Share for file {file} with {user} expired" : "Freigabe für die Datei {file} mit {user} abgelaufen",
"Share for file {file} expired" : "Freigabe für die Datei {file} abgelaufen",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Öffentlich oder per E-Mail geteilte Datei oder Ordner wurde <strong>heruntergeladen</strong>",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Öffentlich oder per E-Mail geteilte Datei oder geteilter Ordner wurde <strong>heruntergeladen</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Dateien wurden in einen per E-Mail oder über einen öffentlichen Link freigegebenen Ordner <strong>hochgeladen</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder ein Ordner wurde von <strong>einem anderen Server</strong> geteilt",
- "Files" : "Dateien",
+ "Sharing" : "Teilen",
"A file or folder has been <strong>shared</strong>" : "Eine Datei oder ein Ordner wurde <strong>geteilt</strong>",
"Shared link" : "Geteilter Link",
"Wrong share ID, share does not exist" : "Fehlerhafte Freigabe-ID, Freigabe existiert nicht",
"Could not delete share" : "Freigabe konnte nicht gelöscht werden",
- "Please specify a file or folder path" : "Bitte gib eine Datei oder Ordner-Pfad an",
+ "Please specify a file or folder path" : "Bitte eine Datei oder einen Ordner-Pfad eingeben",
"Wrong path, file/folder does not exist" : "Falscher Pfad, Datei/Ordner existiert nicht",
"Could not create share" : "Freigabe konnte nicht erstellt werden",
- "Invalid permissions" : "Ungültige Berechtigungen",
- "Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT",
- "Group sharing is disabled by the administrator" : "Die Gruppenfreigabe ist durch den Administrator deaktiviert",
+ "Please specify a valid account to share with" : "Bitte ein gültiges Konto angeben, um mit ihm zu teilen",
+ "Group sharing is disabled by the administrator" : "Die Gruppenfreigabe ist durch die Administration deaktiviert",
"Please specify a valid group" : "Bitte gib eine gültige Gruppe an",
- "Public link sharing is disabled by the administrator" : "Die öffentliche Freigabe von Links ist durch den Administrator deaktiviert",
- "Public upload disabled by the administrator" : "Das öffentliche Hochladen ist durch den Administrator deaktiviert",
- "Public upload is only possible for publicly shared folders" : "Das öffentliche Hochladen ist nur für öffentlich freigegebene Ordner erlaubt",
+ "Public link sharing is disabled by the administrator" : "Die öffentliche Freigabe von Links ist durch die Administration deaktiviert",
+ "Please specify a valid email address" : "Bitte eine gültige E-Mail-Adresse eingeben",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "%s Freigeben: Senden des Passwortes über Nextcloud Talk gescheitert, da Nextcloud Talk nicht verfügbar ist",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Freigabe von %1$s fehlgeschlagen, da das Backend die Freigabe vom Typ %2$s nicht erlaubt",
- "Please specify a valid federated group ID" : "Bitte gib eine gültige Federated-Gruppen-ID ein",
- "You cannot share to a Circle if the app is not enabled" : "Du kannst nichts mit einem Kreis teilen, wenn die App nicht aktiviert ist",
- "Please specify a valid circle" : "Bitte gib einen gültigen Kreis an",
+ "Please specify a valid federated account ID" : "Bitte eine gültige Federated-Konto-ID eingeben",
+ "Please specify a valid federated group ID" : "Bitte eine gültige Federated-Gruppen-ID eingeben",
+ "You cannot share to a Team if the app is not enabled" : "Du kannst nichts mit einem Team teilen, wenn die App nicht aktiviert ist",
+ "Please specify a valid team" : "Bitte ein gültiges Team angeben",
"Sharing %s failed because the back end does not support room shares" : "Freigabe von %s fehlgeschlagen, da das Backend die Freigabe von Räumen nicht unterstützt",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Freigabe von %s fehlgeschlagen, da das Backend keine ScienceMesh-Freigaben unterstützt",
"Unknown share type" : "Unbekannter Freigabetyp",
"Not a directory" : "Kein Verzeichnis",
"Could not lock node" : "Node konnte nicht gesperrt werden",
+ "Public upload is only possible for publicly shared folders" : "Das öffentliche Hochladen ist nur für öffentlich freigegebene Ordner erlaubt",
+ "Share must at least have READ or CREATE permissions" : "Freigabe muss mindestens LESE- oder ERSTELL-Rechte haben",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "Die Freigabe muss das Recht LESEN haben, wenn das Recht für AKTUALISIEREN oder LÖSCHEN gesetzt ist",
+ "Public upload disabled by the administrator" : "Das öffentliche Hochladen ist durch die Administration deaktiviert",
"Could not lock path" : "Pfad konnte nicht gesperrt werden",
+ "no sharing rights on this item" : "Hierfür bestehen keine Freigaberechte",
+ "You are not allowed to edit incoming shares" : "Du darfst eingehende Freigaben nicht bearbeiten",
"Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben",
- "Share must at least have READ or CREATE permissions" : "Freigabe muss mindestens Lese- oder Erstell-Rechte haben",
- "Share must have READ permission if UPDATE or DELETE permission is set" : "Die Freigabe muss das Recht Lesen haben, wenn das Recht für Aktualisieren oder Löschen gesetzt ist",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Senden des Passwortes über Nextcloud Talk\" zum Teilen einer Datei gescheitert, da Nextcloud Talk nicht verfügbar ist.",
+ "Custom share link tokens have been disabled by the administrator" : "Benutzerdefinierte Freigabelink-Token wurden von der Administration deaktiviert",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Token müssen mindestens 1 Zeichen enthalten und dürfen nur aus Buchstaben, Zahlen oder einen Bindestrich bestehen",
+ "Invalid date. Format must be YYYY-MM-DD" : "Ungültiges Datum. Zulässiges Datumsformat: JJJJ-MM-TT",
+ "No sharing rights on this item" : "Hierfür bestehen keine Freigaberechte",
+ "Invalid share attributes provided: \"%s\"" : "Ungültige Freigabeattribute angegeben: \"%s\"",
+ "You are not allowed to send mail notifications" : "Du darfst keine E-Mail-Benachrichtigungen senden",
+ "No mail notification configured for this share type" : "Für diesen Freigabetyp ist keine E-Mail-Benachrichtigung eingerichtet",
+ "Wrong password" : "Falsches Passwort",
+ "Error while sending mail notification" : "Fehler beim Sendern der E-Mail-Benachrichtigung",
+ "Failed to generate a unique token" : "Es konnte kein eindeutiges Token generiert werden",
+ "This share does not exist or is no longer available" : "Diese Freigabe existiert nicht oder ist nicht mehr verfügbar",
"shared by %s" : "von %s geteilt",
- "Download all files" : "Alle Dateien herunterladen",
- "Direct link" : "Direkter Link",
+ "Download" : "Herunterladen",
"Add to your %s" : "Hinzufügen zu deiner %s",
+ "Direct link" : "Direkter Link",
"Share API is disabled" : "Teilen-API ist deaktivert",
"File sharing" : "Dateifreigabe",
"Share will expire tomorrow" : "Freigabe läuft morgen ab",
@@ -110,191 +111,341 @@
"You received {share} to group {group} as a share by {user}" : "Du hast {share} zur Gruppe {group} als Freigabe von {user} empfangen",
"Accept" : "Akzeptieren",
"Decline" : "Ablehnen",
- "Sharing" : "Teilen",
+ "Remember to upload the files to %s" : "Denke daran, die Dateien auf %s hochzuladen",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Wir möchten dich freundlich daran erinnern, dass du bisher noch keine Dateien in den freigegebenen Ordner hochgeladen hast.",
+ "Open \"%s\"" : "\"%s\" öffnen",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Diese App ermöglicht es Personen, Dateien innerhalb von Nextcloud zu teilen. Wenn aktiviert, kann die Administration wählen, welche Gruppen Dateien teilen können. Die entsprechenden Personen können dann Dateien und Ordner mit anderen Personen und Gruppen innerhalb von Nextcloud teilen. Wenn die Administration die Funktion zum Teilen von Links aktiviert, kann ein externer Link verwendet werden, um Dateien mit anderen Personen außerhalb von Nextcloud zu teilen. Die Administration kann auch Passwörter und Ablaufdaten erzwingen und die Freigabe von Server zu Server über Freigabelinks sowie die Freigabe von mobilen Geräten aus aktivieren.\nWenn du die Funktion deaktivierst, werden freigegebene Dateien und Ordner auf dem Server für alle Freigabeempfänger und auch auf den Sync-Clients und mobilen Apps entfernt. Weitere Informationen findest du in der Nextcloud-Dokumentation.",
+ "People" : "Personen",
+ "Filter accounts" : "Konten filtern",
+ "The request will expire on {date} at midnight and will be password protected." : "Die Anfrage läuft am {date} um Mitternacht ab und ist passwortgeschützt.",
+ "The request will expire on {date} at midnight." : "Die Anfrage läuft am {date} um Mitternacht ab.",
+ "The request will be password protected." : "Die Anfrage wird passwortgeschützt sein.",
+ "When should the request expire?" : "Wann soll die Anfrage ablaufen?",
+ "Set a submission expiration date" : "Ablaufdatum für die Übermittlung festlegen",
+ "Expiration date" : "Ablaufdatum",
+ "Select a date" : "Datum auswählen",
+ "Your administrator has enforced a {count} days expiration policy." : "Die Administration erzwingt über eine Richtlinie den Ablauf nach {count} Tagen.",
+ "What password should be used for the request?" : "Welches Passwort soll für die Anfrage verwendet werden?",
+ "Set a password" : "Passwort setzen",
+ "Password" : "Passwort",
+ "Enter a valid password" : "Ein gültige Passwort eingeben",
+ "Generate a new password" : "Ein neues Passwort erstellen",
+ "Your administrator has enforced a password protection." : "Die Administration erzwingt einen Passwortschutz",
+ "Automatically copying failed, please copy the share link manually" : "Automatisches Kopieren ist fehlgeschlagen, bitte den Freigabelink manuell kopieren",
+ "Link copied" : "Link kopiert",
+ "Email already added" : "E-Mail-Adresse wurde bereits hinzugefügt",
+ "Invalid email address" : "Ungültige E-Mail-Adresse",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Die folgende E-Mail-Adresse ist ungültig: ","Die folgenden E-Mail-Adressen sind ungültig: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} E-Mail-Adresse bereits hinzugefügt","{count} E-Mail-Adressen bereits hinzugefügt"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"],
+ "You can now share the link below to allow people to upload files to your directory." : "Du kannst jetzt den unten stehenden Link freigeben, damit andere Dateien in dein Verzeichnis hochladen können.",
+ "Share link" : "Link teilen",
+ "Copy" : "Kopieren",
+ "Send link via email" : "Link als E-Mail verschicken",
+ "Enter an email address or paste a list" : "E-Mail-Adresse eingeben oder eine Liste einfügen",
+ "Remove email" : "E-Mail-Adresse entfernen",
+ "Select a destination" : "Ein Ziel wählen",
+ "Select" : "Auswählen",
+ "What are you requesting?" : "Was fragst du an?",
+ "Request subject" : "Betreff der Anfrage",
+ "Birthday party photos, History assignment…" : "Fotos von Geburtstagsfeiern, Geschichtsaufgaben…",
+ "Where should these files go?" : "Wo sollen diese Dateien gespeichert werden?",
+ "Upload destination" : "Ziel für das Hochladen",
+ "Revert to default" : "Auf Standard zurücksetzen",
+ "The uploaded files are visible only to you unless you choose to share them." : "Die hochgeladenen Dateien sind nur für dich sichtbar, so lange du sie nicht freigibst.",
+ "Add a note" : "Notiz hinzufügen",
+ "Note for recipient" : "Notiz für den Empfänger",
+ "Add a note to help people understand what you are requesting." : "Eine Notiz hinzufügen, damit die Adressaten verstehen, was du anfrägst.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Du kannst Links, Daten oder andere Informationen hinzufügen, die dem Empfänger helfen, deine Anfrage zu verstehen.",
+ "Close" : "Schließen",
+ "_Send email and close_::_Send {count} emails and close_" : ["E-Mail senden und schließen","{count} E-Mails senden und schließen"],
+ "Please select a folder, you cannot share the root directory." : "Bitte einen Ordner auswählen. Das Rootverzeichnis kann nicht freigegeben werden.",
+ "File request created" : "Dateianfrage erstellt",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Dateianforderung erstellt und E-Mail gesendet","Dateianforderung erstellt und {count} E-Mails gesendet"],
+ "Error creating the share: {errorMessage}" : "Fehler beim Erstellen der Freigabe: {errorMessage}",
+ "Error creating the share" : "Fehler beim Erstellen der Freigabe",
+ "Error sending emails: {errorMessage}" : "Fehler beim E-Mailversand: {errorMessage}",
+ "Error sending emails" : "Fehler beim E-Mailversand",
+ "Create a file request" : "Eine Dateianfrage erstellen",
+ "Collect files from others even if they do not have an account." : "Dateien von anderen sammeln, auch wenn diese kein Konto haben.",
+ "To ensure you can receive files, verify you have enough storage available." : "Um sicherzustellen, dass du Dateien empfangen kannst, überprüfe, ob dir genügend Speicherplatz zur Verfügung steht.",
+ "File request" : "Dateianfrage",
+ "Previous step" : "Vorheriger Schritt",
+ "Cancel" : "Abbrechen",
+ "Cancel the file request creation" : "Erstellung der Dateianfrage abbrechen",
+ "Close without sending emails" : "Schließen ohne E-Mails zu versenden",
+ "Continue" : "Fortsetzen",
"Error while toggling options" : "Fehler beim Umschalten der Optionen",
- "Set default folder for accepted shares" : "Standardordner für akzeptierte Freigaben wählen",
+ "Accept shares from other accounts and groups by default" : "Freigaben von anderen Konten und Gruppen standardmäßig annehmen",
+ "Choose a default folder for accepted shares" : "Einen Standardordner für akzeptierte Freigaben wählen",
+ "Invalid path selected" : "Ungültigen Pfad ausgewählt",
+ "Unknown error" : "Unbekannter Fehler",
+ "Set default folder for accepted shares" : "Standardordner für angenommene Freigaben",
"Reset" : "Zurücksetzen",
"Reset folder to system default" : "Ordner auf Systemstandard zurücksetzen",
- "Choose a default folder for accepted shares" : "Wähle einen Standardordner für akzeptierte Freigaben",
- "Invalid path selected" : "Ungültiger Pfad ausgewählt",
- "Unknown error" : "Unbekannter Fehler",
- "Open Sharing Details" : "Freigabedetails öffnen",
+ "Share expiration: {date}" : "Freigabe-Ablaufdatum: {date}",
+ "Share Expiration" : "Freigabe-Ablaufdatum",
"group" : "Gruppe",
"conversation" : "Unterhaltung",
"remote" : "Extern",
"remote group" : "Externe Gruppe",
"guest" : "Gast",
+ "by {initiator}" : "von {initiator}",
"Shared with the group {user} by {owner}" : "Geteilt mit der Gruppe {user} von {owner}",
"Shared with the conversation {user} by {owner}" : "Geteilt mit der Unterhaltung {user} von {owner}",
"Shared with {user} by {owner}" : "Geteilt mit {user} von {owner}",
+ "Open Sharing Details" : "Freigabedetails öffnen",
"Added by {initiator}" : "Hinzugefügt von {initiator}",
- "Via “{folder}”" : "Über “{folder}”",
+ "Via “{folder}”" : "Über \"{folder}”",
"Unshare" : "Freigabe aufheben",
+ "Cannot copy, please copy the link manually" : "Kopieren fehlgeschlagen. Bitte den Link manuell kopieren.",
+ "Copy internal link" : "Internen Link kopieren",
+ "For people who already have access" : "Für Personen, die bereits Zugriff haben",
"Internal link" : "Interner Link",
- "Cannot copy, please copy the link manually" : "Kopieren fehlgeschlagen. Bitte kopiere den Link manuell.",
- "Copy internal link to clipboard" : "Internen Link in die Zwischenablage kopieren",
- "Link copied" : "Link kopiert",
- "Please enter the following required information before creating the share" : "Bitte gib die benötigten Informationen ein bevor die Freigabe erstellt wird",
- "Password protection (enforced)" : "Passwortschutz (erzwungen)",
- "Password protection" : "Passwortschutz",
- "Enter a password" : "Passwort eingeben",
- "Expiration date (enforced)" : "Ablaufdatum (erzwungen)",
- "Enter a date" : "Datum eingeben",
- "Create share" : "Freigabe erstellen",
- "Cancel" : "Abbrechen",
- "Customize link" : "Freigabelink anpassen",
- "Add another link" : "Weiteren Link hinzufügen",
- "Create a new share link" : "Neuen Freigabe-Link erstellen",
"{shareWith} by {initiator}" : "{shareWith} von {initiator}",
"Shared via link by {initiator}" : "Geteilt mittels Link von {initiator}",
+ "File request ({label})" : "Dateianfrage ({label})",
"Mail share ({label})" : "Mail teilen ({label})",
- "Share link ({label})" : "Link teilen ({label})",
- "Share link ({index})" : "Link teilen ({index})",
- "Share link" : "Link teilen",
+ "Share link ({label})" : "Externer Link ({label})",
+ "Mail share" : "E-Mail-Freigabe",
+ "Share link ({index})" : "Externer Link ({index})",
+ "Create public link" : "Öffentlichen Link erstellen",
"Actions for \"{title}\"" : "Aktionen für \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Öffentlichen Link von \"{title}\" in die Zwischenablage kopieren",
+ "Copy public link of \"{title}\"" : "Öffentlichen Link von \"{title}\" kopieren",
"Error, please enter proper password and/or expiration date" : "Fehler. Bitte gib das richtige Passwort und/oder Ablaufdatum ein.",
"Link share created" : "Link-Freigabe erstellt",
"Error while creating the share" : "Fehler beim Erstellen der Freigabe",
+ "Please enter the following required information before creating the share" : "Bitte gib die benötigten Informationen ein, bevor die Freigabe erstellt wird",
+ "Password protection (enforced)" : "Passwortschutz (erzwungen)",
+ "Password protection" : "Passwortschutz",
+ "Enter a password" : "Passwort eingeben",
+ "Enable link expiration (enforced)" : "Ablaufdatum des Links aktivieren (erzwungen)",
+ "Enable link expiration" : "Ablaufdatum des Links aktivieren",
+ "Enter expiration date (enforced)" : "Ablaufdatum eingeben (erzwungen)",
+ "Enter expiration date" : "Ablaufdatum eingeben",
+ "Create share" : "Freigabe erstellen",
+ "Customize link" : "Freigabelink anpassen",
+ "Generate QR code" : "QR-Code erzeugen",
+ "Add another link" : "Weiteren Link hinzufügen",
+ "Create a new share link" : "Neuen Freigabe-Link erstellen",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Schnelle Freigabeoptionen, aktuell ausgewählt ist \"{selectedOption}\"",
"View only" : "Nur anzeigen",
"Can edit" : "Kann bearbeiten",
- "File drop" : "Dateiablage",
"Custom permissions" : "Benutzerdefinierte Berechtigungen",
- "Search for share recipients" : "Nach Freigabe-Empfängern suchen",
- "No recommendations. Start typing." : "Keine Empfehlungen. Beginne mit der Eingabe.",
"Resharing is not allowed" : "Weiterteilen ist nicht erlaubt",
"Name or email …" : "Name oder E-Mail-Adresse …",
"Name, email, or Federated Cloud ID …" : "Name, E-Mail-Adresse oder Federated-Cloud-ID …",
"Searching …" : "Suche …",
"No elements found." : "Keine Elemente gefunden.",
- "Search globally" : "Global suchen",
+ "Search everywhere" : "Überall suchen",
"Guest" : "Gast",
"Group" : "Gruppe",
"Email" : "E-Mail-Adresse",
+ "Team" : "Team",
"Talk conversation" : "Talk-Unterhaltung",
"Deck board" : "Deck-Board",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "auf {server}",
+ "Enter external recipients" : "Externe Empfänger eingeben",
+ "Search for internal recipients" : "Suche nach internen Empfängern",
+ "Note from" : "Notiz von",
+ "Note:" : "Bemerkung:",
+ "File drop" : "Dateiablage",
+ "Upload files to {foldername}." : "Dateien hochladen nach {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Durch das Hochladen von Dateien stimmst du den Nutzungsbedingungen zu.",
+ "Successfully uploaded files" : "Dateien wurden hochgeladen",
+ "View terms of service" : "Nutzungsbedingungen anzeigen",
+ "Terms of service" : "Nutzungsbedingungen",
+ "Share with {user}" : "Mit {user} teilen",
+ "Share with email {email}" : "Per E-Mail {email} teilen",
+ "Share with group" : "Mit Gruppe teilen",
+ "Share in conversation" : "In Unterhaltungen teilen",
+ "Share with {user} on remote server {server}" : "Mit {user} auf dem Remote-Server {server} teilen",
+ "Share with remote group" : "Mit entfernter Gruppe teilen",
+ "Share with guest" : "Mit Gast teilen",
+ "Update share" : "Freigabe aktualisieren",
+ "Save share" : "Freigabe speichern",
+ "Read" : "Lesen",
+ "Create" : "Erstellen",
+ "Edit" : "Bearbeiten",
+ "Share" : "Teilen",
+ "Delete" : "Löschen",
+ "Password field cannot be empty" : "Passwortfeld darf nicht leer sein",
+ "Replace current password" : "Aktuelles Passwort ersetzen",
+ "Failed to generate a new token" : "Es konnte kein neues Token generiert werden",
"Allow upload and editing" : "Hochladen und Bearbeiten erlauben",
"Allow editing" : "Bearbeitung erlauben",
"Upload only" : "Nur hochladen",
"Advanced settings" : "Erweiterte Einstellungen",
"Share label" : "Freigabe-Label",
+ "Share link token" : "Freigabe-Token teilen",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Das öffentliche Freigabelink-Token auf einen Begriff festlegen, der leicht zu merken ist , oder generiere ein neues Token. Es ist nicht empfehlenswert, ein erratbares Token für Freigaben zu verwenden, die vertrauliche Informationen enthalten.",
+ "Generating…" : "Generieren…",
+ "Generate new token" : "Neues Token generieren",
"Set password" : "Passwort setzen",
- "Password" : "Passwort",
"Password expires {passwordExpirationTime}" : "Passwort läuft um {passwordExpirationTime} ab",
"Password expired" : "Passwort abgelaufen",
"Video verification" : "Videoüberprüfung",
+ "Expiration date (enforced)" : "Ablaufdatum (erzwungen)",
"Set expiration date" : "Ablaufdatum setzen",
- "Expiration date" : "Ablaufdatum",
"Hide download" : "Download verbergen",
- "Allow download" : "Download erlauben",
+ "Allow download and sync" : "Herunterladen und synchronisieren zulassen",
"Note to recipient" : "Notiz an Empfänger",
"Enter a note for the share recipient" : "Notiz für Empfänger der Freigabe eingeben",
- "Read" : "Lesen",
- "Create" : "Erstellen",
- "Edit" : "Bearbeiten",
- "Share" : "Teilen",
+ "Show files in grid view" : "Dateien in Kachelansicht anzeigen",
"Delete share" : "Freigabe löschen",
- "Update share" : "Freigabe aktualisieren",
- "Save share" : "Freigabe speichern",
"Others with access" : "Andere mit Zugriff",
+ "No other accounts with access found" : "Keine anderen Konten mit Zugriffsberechtigung gefunden",
"Toggle list of others with access to this directory" : "Liste anderer Benutzer mit Zugriff auf dieses Verzeichnis umschalten",
"Toggle list of others with access to this file" : "Liste anderer Benutzer mit Zugriff auf diese Datei umschalten",
"Unable to fetch inherited shares" : "Vererbte Freigaben konnten nicht geladen werden",
+ "Link shares" : "Freigaben teilen",
+ "Shares" : "Freigaben",
+ "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Dateien innerhalb Ihrer Organisation teilen. Auch Empfänger, die auf die Datei bereits zugreifen können, können diesen Link für einen einfachen Zugriff nutzen.",
+ "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Dateien über öffentliche Links und E-Mail-Adressen mit anderen außerhalb Ihrer Organisation teilen. Du kannst Nextcloud-Konten auch auf anderen Instanzen mithilfe der föderierten Cloud-ID teilen.",
+ "Shares from apps or other sources which are not included in internal or external shares." : "Freigaben aus Apps oder anderen Quellen, die nicht in internen oder externen Freigaben enthalten sind.",
+ "Type names, teams, federated cloud IDs" : "Namen, Teams oder Federierte Cloud-IDs eingeben",
+ "Type names or teams" : "Namen oder Federierte Cloud-IDs eingeben",
+ "Type a federated cloud ID" : "Eine Federierte Cloud-ID eingeben",
+ "Type an email" : "Eine E-Mailadresse eingeben",
+ "Type an email or federated cloud ID" : "Eine E-Mailadresse oder eine Federierte Cloud-ID eingeben",
"Unable to load the shares list" : "Liste der Freigaben konnte nicht geladen werden",
"Expires {relativetime}" : "Läuft {relativetime} ab",
"this share just expired." : "Diese Freigabe ist gerade abgelaufen.",
"Shared with you by {owner}" : "{owner} hat dies mit dir geteilt",
+ "Internal shares" : "Interne Freigaben",
+ "Internal shares explanation" : "Erklärung interner Freigaben",
+ "External shares" : "Externe Freigaben",
+ "External shares explanation" : "Erklärung externer Freigaben",
+ "Additional shares" : "Zusätzliche Freigaben",
+ "Additional shares explanation" : "Erklärung zusätzlicher Freigaben",
+ "Link to a file" : "Mit einer Datei verknüpfen",
"_Accept share_::_Accept shares_" : ["Freigabe akzeptieren","Freigaben akzeptieren"],
"Open in Files" : "In Dateien öffnen",
"_Reject share_::_Reject shares_" : ["Freigabe ablehnen","Freigaben ablehnen"],
"_Restore share_::_Restore shares_" : ["Freigabe wiederherstellen","Freigaben wiederherstellen"],
"Shared" : "Geteilt",
"Shared by {ownerDisplayName}" : "Geteilt von {ownerDisplayName}",
- "Show sharing options" : "Freigabeoptionen anzeigen",
- "Link to a file" : "Mit einer Datei verknüpfen",
- "Error creating the share: {errorMessage}" : "Fehler beim Erstellen der Freigabe: {errorMessage}",
- "Error creating the share" : "Fehler beim Erstellen der Freigabe",
- "Error updating the share: {errorMessage}" : "Fehler beim Aktualisieren der Freigabe: {errorMessage}",
- "Error updating the share" : "Fehler beim Aktualisieren der Freigabe",
- "File \"{path}\" has been unshared" : "Freigabe für die Datei \"{path}\" wurde entfernt.",
- "Folder \"{path}\" has been unshared" : "Freigabe für den Ordner \"{path}\" wurde entfernt.",
- "Share {propertyName} saved" : "Freigabe {propertyName} gespeichert",
- "Shared by" : "Geteilt von",
- "Shared with" : "Geteilt mit",
- "Password created successfully" : "Passwort erstellt",
- "Error generating password from password policy" : "Fehler beim Erzeugen des Passworts aufgrund der Passwortrichtlinie",
- "Shared with you and the group {group} by {owner}" : "{owner} hat dies mit dir und der Gruppe {group} geteilt",
- "Shared with you and {circle} by {owner}" : "{owner} hat dies mit dir und dem Kreis {circle} geteilt",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} hat dies mit dir und der Unterhaltung {conversation} geteilt",
- "Shared with you in a conversation by {owner}" : "{owner} hat dies mit dir in einer Unterhaltung {conversation} geteilt",
- "Shares" : "Freigaben",
+ "Shared multiple times with different people" : "Mehrmals mit verschiedenen Personen geteilt",
+ "Sharing options" : "Freigabeoptionen",
+ "Shared with others" : "Mit anderen geteilt",
+ "Create file request" : "Dateianfrage erstellen",
+ "Upload files to {foldername}" : "Dateien hochladen nach {foldername}",
+ "Public file share" : "Öffentliche Dateifreigabe",
+ "Publicly shared file." : "Öffentlich geteilte Datei.",
+ "No file" : "Keine Datei",
+ "The file shared with you will show up here" : "Die mit dir geteilte Datei wird hier angezeigt",
+ "Public share" : "Öffentliche Freigabe",
+ "Publicly shared files." : "Öffentlich geteilte Dateien.",
+ "No files" : "Keine Dateien",
+ "Files and folders shared with you will show up here" : "Freigegebene Dateien und Ordner werden hier angezeigt werden",
"Overview of shared files." : "Übersicht geteilter Dateien.",
"No shares" : "Keine Freigaben",
- "Files and folders you shared or have been shared with you will show up here" : "Von dir oder mit dir geteilte Ordner und Dateien werden hier angezeigt werden.",
+ "Files and folders you shared or have been shared with you will show up here" : "Von dir oder mit dir geteilte Ordner und Dateien werden hier angezeigt",
"Shared with you" : "Mit dir geteilt",
"List of files that are shared with you." : "Liste der Dateien, die mit dir geteilt wurden.",
"Nothing shared with you yet" : "Bis jetzt wurde nichts mit dir geteilt",
- "Files and folders others shared with you will show up here" : "Mit dir geteilte Dateien und Ordner werden hier angezeigt werden.",
- "Shared with others" : "Von dir geteilt",
+ "Files and folders others shared with you will show up here" : "Mit dir geteilte Dateien und Ordner werden hier angezeigt",
"List of files that you shared with others." : "Liste der Dateien, die du mit anderen geteilt hast",
"Nothing shared yet" : "Noch nichts geteilt",
- "Files and folders you shared will show up here" : "Von dir geteilte Dateien und Ordner werden hier angezeigt werden.",
- "Shared by link" : "Geteilt über einen Link",
+ "Files and folders you shared will show up here" : "Von dir geteilte Dateien und Ordner werden hier angezeigt",
+ "Shared by link" : "Über einen Link geteilt",
"List of files that are shared by link." : "Liste der Dateien, die mittels Link geteilt wurden.",
"No shared links" : "Keine geteilten Links",
- "Files and folders you shared by link will show up here" : "Von dir per Link geteilte Dateien werden hier angezeigt werden.",
+ "Files and folders you shared by link will show up here" : "Von dir mittels Link geteilte Dateien und Ordner werden hier angezeigt",
+ "File requests" : "Dateianfragen",
+ "List of file requests." : "Liste der Dateianfragen.",
+ "No file requests" : "Keine Dateianfragen",
+ "File requests you have created will show up here" : "Von dir erstellte Dateianfragen werden hier angezeigt",
"Deleted shares" : "Gelöschte Freigaben",
- "List of shares you left." : "Liste der Freigaben, die du verlassen hast",
+ "List of shares you left." : "Liste der Freigaben, die du verlassen hast.",
"No deleted shares" : "Keine gelöschten Freigaben",
- "Shares you have left will show up here" : "Freigaben, die du verlassen hast, werden hier angezeigt werden.",
+ "Shares you have left will show up here" : "Freigaben, die du verlassen hast, werden hier angezeigt",
"Pending shares" : "Ausstehende Freigaben",
"List of unapproved shares." : "Liste ungeprüfter Freigaben.",
"No pending shares" : "Keine ausstehenden Freigaben",
- "Shares you have received but not approved will show up here" : "Freigaben die du erhalten, aber nicht bestätigt hast, werden hier angezeigt werden.",
+ "Shares you have received but not approved will show up here" : "Freigaben, die du erhalten, aber nicht bestätigt hast, werden hier angezeigt",
+ "Error deleting the share: {errorMessage}" : "Fehler beim Löschen der Freigabe: {errorMessage}",
+ "Error deleting the share" : "Fehler beim Löschen der Freigabe",
+ "Error updating the share: {errorMessage}" : "Fehler beim Aktualisieren der Freigabe: {errorMessage}",
+ "Error updating the share" : "Fehler beim Aktualisieren der Freigabe",
+ "File \"{path}\" has been unshared" : "Freigabe für die Datei \"{path}\" wurde entfernt",
+ "Folder \"{path}\" has been unshared" : "Freigabe für den Ordner \"{path}\" wurde entfernt",
+ "Could not update share" : "Freigabe konnte nicht aktualisiert werden",
+ "Share saved" : "Freigabe gespeichert",
+ "Share expiry date saved" : "Freigabe-Ablaufdatum gespeichert",
+ "Share hide-download state saved" : "\"Download verbergen\"-Status der Freigabe gespeichert",
+ "Share label saved" : "Freigabe-Schlagwort gespeichert",
+ "Share note for recipient saved" : "Freigabe-Notiz für Empfänger gespeichert",
+ "Share password saved" : "Freigabe-Passwort gespeichert",
+ "Share permissions saved" : "Freigabeberechtigungen gespeichert",
+ "To upload files to {folder}, you need to provide your name first." : "Um Dateien nach {folder} hochzuladen, musst du zunächst deinen Namen angeben.",
+ "Upload files to {folder}" : "Dateien hochladen nach {folder}",
+ "Please confirm your name to upload files to {folder}" : "Bitte bestätige deinen Namen, um Dateien nach {folder} hochzuladen",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} hat einen Ordner mit dir geteilt.",
+ "Names must not be empty." : "Namen dürfen nicht leer sein.",
+ "Names must not start with a dot." : "Namen dürfen nicht mit einem Punkt beginnen.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" ist innerhalb eines Namens unzulässig.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" ist ein reservierter Name und unzulässig.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" ist kein zulässiger Name.",
+ "Names must not end with \"{extension}\"." : "Namen dürfen nicht mit \"{extension}\" enden.",
+ "Invalid name." : "Ungültiger Name.",
+ "Shared by" : "Geteilt von",
+ "Shared with" : "Geteilt mit",
+ "Password created successfully" : "Passwort erstellt",
+ "Error generating password from password policy" : "Fehler beim Erzeugen des Passworts aufgrund der Passwortrichtlinie",
+ "Shared with you and the group {group} by {owner}" : "{owner} hat dies mit dir und der Gruppe {group} geteilt",
+ "Shared with you and {circle} by {owner}" : "{owner} hat dies mit dir und dem Kreis {circle} geteilt",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} hat dies mit dir und der Unterhaltung {conversation} geteilt",
+ "Shared with you in a conversation by {owner}" : "{owner} hat dies mit dir in einer Unterhaltung geteilt",
+ "Share not found" : "Freigabe nicht gefunden",
+ "Back to %s" : "Zurück zu %s",
+ "Add to your Nextcloud" : "Zu deiner Nextcloud hinzufügen",
+ "Waiting…" : "Warte …",
+ "error" : "Fehler",
+ "finished" : "Abgeschlossen",
+ "This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.",
+ "Move or copy" : "Verschieben oder kopieren",
+ "You can upload into this folder" : "Du kannst in diesen Ordner hochladen",
+ "Show list view" : "Listenansicht anzeigen",
+ "Show grid view" : "Rasteransicht anzeigen",
+ "No compatible server found at {remote}" : "Keinen kompatiblen Server unter {remote} gefunden",
+ "Invalid server URL" : "Falsche Server-URL",
+ "Failed to add the public link to your Nextcloud" : "Der öffentliche Link konnte nicht zu deiner Nextcloud hinzugefügt werden",
+ "You are not allowed to edit link shares that you don't own" : "Du darfst keine Linkfreigaben bearbeiten, die du nicht besitzst",
+ "Download all files" : "Alle Dateien herunterladen",
+ "Link copied to clipboard" : "Link wurde in die Zwischenablage kopiert",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 E-Mail-Adresse bereits hinzugefügt","{count} E-Mail-Adressen bereits hinzugefügt"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"],
+ "Copy to clipboard" : "In die Zwischenablage kopieren",
+ "Copy internal link to clipboard" : "Internen Link in die Zwischenablage kopieren",
+ "Only works for people with access to this folder" : "Funktioniert nur für Personen mit Zugriff auf diesen Ordner",
+ "Only works for people with access to this file" : "Funktioniert nur für Personen mit Zugriff auf diese Datei",
+ "Copy public link of \"{title}\" to clipboard" : "Öffentlichen Link von \"{title}\" in die Zwischenablage kopieren",
+ "Search globally" : "Global suchen",
+ "Search for share recipients" : "Nach Freigabe-Empfängern suchen",
+ "No recommendations. Start typing." : "Keine Empfehlungen. Eingabe beginnen.",
+ "To upload files, you need to provide your name first." : "Um Dateien hochzuladen, musst du zunächst deinen Namen angeben.",
+ "Enter your name" : "Gib deinen Namen ein",
+ "Submit name" : "Name übermitteln",
+ "Share with {userName}" : "Mit {userName} teilen",
+ "Show sharing options" : "Freigabeoptionen anzeigen",
"Share note" : "Notiz teilen",
"Upload files to %s" : "Dateien für %s hochladen",
+ "%s shared a folder with you." : "%s hat einen Ordner mit dir geteilt.",
"Note" : "Notiz",
"Select or drop files" : "Dateien auswählen oder hierher ziehen",
"Uploading files" : "Dateien werden hochgeladen",
- "Uploaded files:" : "Hochgeladene Dateien: ",
+ "Uploaded files:" : "Hochgeladene Dateien:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Durch das Hochladen von Dateien stimmst du den %1$sNutzungsbedingungen%2$s zu.",
- "Add to your Nextcloud" : "Zu deiner Nextcloud hinzufügen",
- "Files and folders others share with you will show up here" : "Mit dir geteilte Dateien und Ordner anderer werden hier erscheinen",
- "Files and folders you share will show up here" : "Von dir geteilte Dateien und Ordner werden hier erscheinen",
- "Files and folders you share by link will show up here" : "Per Link freigegebene Dateien und Ordner werden hier erscheinen",
- "Shares you deleted will show up here" : "Von dir gelöschte Freigaben werden hier erscheinen",
- "Shares you have received but not confirmed will show up here" : "Freigaben, die du erhalten, aber nicht bestätigt hast, werden hier angezeigt",
- "Shares will show up here" : "Freigaben werden hier angezeigt",
- "Restore" : "Wiederherstellen",
- "Something happened. Unable to restore the share." : "Die Freigabe konnte nicht wiederhergestellt werden.",
- "Something happened. Unable to accept the share." : "Die Freigabe konnte nicht akzeptiert werden.",
- "Something happened. Unable to reject the share." : "Die Freigabe konnte nicht abgelehnt werden.",
- "No expiration date set" : "Kein Ablaufdatum gesetzt",
- "Please specify a valid user" : "Bitte gib einen gültigen Benutzer an",
- "Please specify a valid federated user ID" : "Bitte gib eine gültige Federated-Benutzer-ID ein",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Diese App ermöglicht es Nutzern, Dateien innerhalb von Nextcloud freizugeben. Bei aktivierter App kann der Administrator einstellen, welchen Gruppen das Freigeben von Dateien erlaubt ist. Der zugelassene Nutzer kann dann Dateien und Ordner für andere Gruppen und Nutzer innerhalb der Nextcloud freigeben. Darüberhinaus kann der Administrator die Link-Teilen Funktion freigeben, mit der ein externer Link um Dateien für Nutzer außerhalb der Nextcloud freizugeben. Schließlich kann der Administrator noch Passwortrichtlinien und Ablaufzeiträume vorgeben sowie das Freigeben von Mobilgeräten ermöglichen.\nDas Ausschalten dieser App entfernt die bis dahin erstellten Freigaben für alle Empfänger wie auch für die Sync-Clients und die Apss für Mobilgeräte. Weitere Informationen können in der Nextcloud-Dokumentation abgerufen werden.",
- "Accept user and group shares by default" : "Benutzer- und Gruppenfreigaben standardmäßig akzeptieren",
- "Read only" : "Schreibgeschützt",
- "File drop (upload only)" : "Dateien ablegen (nur Hochladen)",
- "Upload" : "Upload",
- "Bundled permissions" : "Gebündelte Berechtigungen",
- "Only works for users with access to this folder" : "Funktioniert nur für Benutzer, die Zugriff auf diesen Ordner haben",
- "Only works for users with access to this file" : "Funktioniert nur für Benutzer, die Zugriff auf diese Datei haben",
- "Circle" : "Kreis",
- "Update" : "Aktualisieren",
- "Share with " : "Teilen mit",
- "No other users with access found" : "Keine anderen Benutzer mit Zugriff gefunden",
- "No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden",
"Name" : "Name",
- "Share time" : "Freigabezeitpunkt",
- "Sorry, this link does not seem to work anymore." : "Leider scheint dieser Link nicht mehr zu funktionieren.",
- "Reasons might be:" : "Gründe könnten sein:",
- "the item was removed" : "Das Element wurde entfernt",
- "the link expired" : "Der Link ist abgelaufen",
- "sharing is disabled" : "Teilen ist deaktiviert",
- "For more info, please ask the person who sent this link." : "Um nähere Informationen zu erhalten, wende dich bitte an die Person, die dir diesen Link geschickt hat.",
- "Share with" : "Teilen mit"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Verwende diese Methode, um Dateien für Personen oder Teams innerhalb deiner Organisation freizugeben. Wenn der Empfangende bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, kannst du ihm den internen Freigabelink für einen einfachen Zugriff senden.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Verwende diese Methode, um Dateien für Personen oder Organisationen außerhalb deiner Organisation freizugeben. Dateien und Ordner können über öffentliche Freigabelinks und E-Mail-Adressen freigegeben werden. Du kannst auch Dateien für andere Nextcloud-Konten freigeben, die auf verschiedenen Instanzen gehostet werden, indem du deren Federated-Cloud-ID verwenden.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Freigaben, die nicht zu internen oder externen Freigaben gehören. Dies können Freigaben von Apps oder anderen Quellen sein.",
+ "Share with accounts, teams, federated cloud id" : "Teilen mit Konten, Teams, Federated-Cloud-IDs",
+ "Share with accounts and teams" : "Teile mit Konten und Teams",
+ "Federated cloud ID" : "Federated-Cloud-ID",
+ "Email, federated cloud id" : "Name, Federated-Cloud-ID",
+ "Filename must not be empty." : "Dateiname darf nicht leer sein."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js
index 5f7ab40caa2..a7dc879a8f0 100644
--- a/apps/files_sharing/l10n/de_DE.js
+++ b/apps/files_sharing/l10n/de_DE.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Warte…",
- "error" : "Fehler",
- "finished" : "Abgeschlossen",
- "This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.",
- "Move or copy" : "Verschieben oder kopieren",
- "Download" : "Herunterladen",
- "Delete" : "Löschen",
- "You can upload into this folder" : "Sie können in diesen Ordner hochladen",
- "Terms of service" : "Nutzungsbedingungen",
- "Show list view" : "Listenansicht anzeigen",
- "Show grid view" : "Kachelansicht anzeigen",
- "No compatible server found at {remote}" : "Keinen kompatiblen Server unter {remote} gefunden",
- "Invalid server URL" : "Falsche Server-URL",
- "Failed to add the public link to your Nextcloud" : "Fehler beim Hinzufügen des öffentlichen Links zu Ihrer Nextcloud",
"File shares" : "Dateifreigaben",
"Downloaded via public link" : "Über den öffentlichen Link heruntergeladen",
"Downloaded by {email}" : "Heruntergeladen von {email}",
@@ -68,9 +54,10 @@ OC.L10N.register(
"{actor} removed you from the share named {file}" : "{actor} hat Sie aus der Freigabe von {file} entfernt",
"Share for file {file} with {user} expired" : "Freigabe der Datei {file} für {user} abgelaufen",
"Share for file {file} expired" : "Freigabe für die Datei {file} abgelaufen",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Öffentlich oder per E-Mail geteilte Datei / Ordner wurde <strong>heruntergeladen</strong>",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Öffentlich oder per E-Mail geteilte Datei oder geteilter Ordner wurde <strong>heruntergeladen</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Dateien wurden in einen per E-Mail oder über einen öffentlichen Link freigegebenen Ordner <strong>hochgeladen</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder ein Ordner wurde von <strong>einem anderen Server</strong> geteilt",
- "Files" : "Dateien",
+ "Sharing" : "Teilen",
"A file or folder has been <strong>shared</strong>" : "Eine Datei oder ein Ordner wurde <strong>geteilt</strong>",
"Shared link" : "Geteilter Link",
"Wrong share ID, share does not exist" : "Fehlerhafte Freigabe-ID, Freigabe existiert nicht",
@@ -78,34 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "Bitte Datei oder Ordner-Pfad eingeben",
"Wrong path, file/folder does not exist" : "Falscher Pfad, Datei/Ordner existiert nicht",
"Could not create share" : "Freigabe konnte nicht erstellt werden",
- "Invalid permissions" : "Ungültige Berechtigungen",
- "Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT",
"Please specify a valid account to share with" : "Bitte ein gültiges Konto angeben, um mit ihm zu teilen",
- "Group sharing is disabled by the administrator" : "Die Gruppenfreigabe ist durch den Administrator deaktiviert",
+ "Group sharing is disabled by the administrator" : "Die Gruppenfreigabe ist durch die Administration deaktiviert",
"Please specify a valid group" : "Bitte geben Sie eine gültige Gruppe an",
- "Public link sharing is disabled by the administrator" : "Die öffentliche Freigabe von Links ist durch den Administrator deaktiviert",
- "Public upload disabled by the administrator" : "Das öffentliche Hochladen ist durch den Administrator deaktiviert",
- "Public upload is only possible for publicly shared folders" : "Das öffentliche Hochladen ist nur für öffentlich freigegebene Ordner erlaubt",
+ "Public link sharing is disabled by the administrator" : "Die öffentliche Freigabe von Links ist durch die Administration deaktiviert",
+ "Please specify a valid email address" : "Bitte eine gültige E-Mail-Adresse eingeben",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "%s Freigeben: Senden des Passwortes über Nextcloud Talk gescheitert, da Nextcloud Talk nicht aktiviert ist",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Freigabe von %1$s fehlgeschlagen, da das Backend die Freigabe vom Typ %2$s nicht erlaubt",
"Please specify a valid federated account ID" : "Bitte geben Sie eine gültige Federated-Konto-ID ein",
"Please specify a valid federated group ID" : "Bitte geben Sie eine gültige Federated-Gruppen-ID ein",
- "You cannot share to a Circle if the app is not enabled" : "Sie können nichts mit einem Kreis teilen, wenn die App nicht aktiviert ist",
- "Please specify a valid circle" : "Bitte einen gültigen Kreis angeben",
+ "You cannot share to a Team if the app is not enabled" : "Sie können nichts mit einem Team teilen, wenn die App nicht aktiviert ist",
+ "Please specify a valid team" : "Bitte ein gültiges Team angeben",
"Sharing %s failed because the back end does not support room shares" : "Freigabe von %s fehlgeschlagen, da das Backend die Freigabe von Räumen nicht unterstützt",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Freigabe von %s fehlgeschlagen, da das Backend keine ScienceMesh-Freigaben unterstützt",
"Unknown share type" : "Unbekannter Freigabetyp",
"Not a directory" : "Kein Verzeichnis",
"Could not lock node" : "Knotenpunkt konnte nicht gesperrt werden",
- "Could not lock path" : "Pfad konnte nicht gesperrt werden",
- "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben",
+ "Public upload is only possible for publicly shared folders" : "Das öffentliche Hochladen ist nur für öffentlich freigegebene Ordner erlaubt",
"Share must at least have READ or CREATE permissions" : "Freigabe muss mindestens LESEN- oder ERSTELLEN-Rechte haben",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Die Freigabe muss das Recht LESEN haben, wenn das Recht AKTUALISIEREN oder LÖSCHEN gesetzt ist",
+ "Public upload disabled by the administrator" : "Das öffentliche Hochladen ist durch die Administration deaktiviert",
+ "Could not lock path" : "Pfad konnte nicht gesperrt werden",
+ "no sharing rights on this item" : "Hierfür bestehen keine Freigaberechte",
+ "You are not allowed to edit incoming shares" : "Sie dürfen eingehende Freigaben nicht bearbeiten",
+ "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Senden des Passwortes über Nextcloud Talk\" zum Teilen einer Datei gescheitert, da Nextcloud Talk nicht verfügbar ist.",
+ "Custom share link tokens have been disabled by the administrator" : "Benutzerdefinierte Freigabelink-Token wurden von der Administration deaktiviert",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Token müssen mindestens 1 Zeichen enthalten und dürfen nur aus Buchstaben, Zahlen oder einen Bindestrich bestehen",
+ "Invalid date. Format must be YYYY-MM-DD" : "Ungültiges Datum. Zulässiges Datumsformat: JJJJ-MM-TT",
+ "No sharing rights on this item" : "Hierfür bestehen keine Freigaberechte",
+ "Invalid share attributes provided: \"%s\"" : "Ungültige Freigabeattribute angegeben: \"%s\"",
+ "You are not allowed to send mail notifications" : "Sie dürfen keine E-Mail-Benachrichtigungen senden",
+ "No mail notification configured for this share type" : "Für diesen Freigabetyp ist keine E-Mail-Benachrichtigung eingerichtet",
+ "Wrong password" : "Falsches Passwort",
+ "Error while sending mail notification" : "Fehler beim Sendern der E-Mail-Benachrichtigung",
+ "Failed to generate a unique token" : "Es konnte kein eindeutiges Token generiert werden",
+ "This share does not exist or is no longer available" : "Diese Freigabe existiert nicht oder ist nicht mehr verfügbar",
"shared by %s" : "von %s geteilt",
- "Download all files" : "Alle Dateien herunterladen",
- "Direct link" : "Direkter Link",
+ "Download" : "Herunterladen",
"Add to your %s" : "Hinzufügen zu Ihrer %s",
+ "Direct link" : "Direkter Link",
"Share API is disabled" : "Teilen-API ist deaktiviert",
"File sharing" : "Dateifreigabe",
"Share will expire tomorrow" : "Freigabe läuft morgen ab",
@@ -114,70 +113,133 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Sie haben {share} zur Gruppe {group} als Freigabe von {user} empfangen",
"Accept" : "Akzeptieren",
"Decline" : "Ablehnen",
+ "Remember to upload the files to %s" : "Denken Sie daran, die Dateien auf %s hochzuladen",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Wir möchten Sie freundlich daran erinnern, dass Sie bisher noch keine Dateien in den freigegebenen Ordner hochgeladen haben.",
+ "Open \"%s\"" : "\"%s\" öffnen",
"This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Diese App ermöglicht es Personen, Dateien innerhalb von Nextcloud zu teilen. Wenn aktiviert, kann die Administration wählen, welche Gruppen Dateien teilen können. Die entsprechenden Personen können dann Dateien und Ordner mit anderen Personen und Gruppen innerhalb von Nextcloud teilen. Wenn der Administrator die Funktion zum Teilen von Links aktiviert, kann ein externer Link verwendet werden, um Dateien mit anderen Personen außerhalb von Nextcloud zu teilen. Administratoren können auch Passwörter und Ablaufdaten erzwingen und die Freigabe von Server zu Server über Freigabelinks sowie die Freigabe von mobilen Geräten aus aktivieren.\nWenn Sie die Funktion deaktivieren, werden freigegebene Dateien und Ordner auf dem Server für alle Freigabeempfänger und auch auf den Sync-Clients und mobilen Apps entfernt. Weitere Informationen finden Sie in der Nextcloud-Dokumentation.",
- "Sharing" : "Teilen",
- "Accept shares from other accounts and groups by default" : "Freigaben von anderen Konten und Gruppen standardmäßig annehmen",
+ "People" : "Personen",
+ "Filter accounts" : "Konten filtern",
+ "The request will expire on {date} at midnight and will be password protected." : "Die Anfrage läuft am {date} um Mitternacht ab und ist passwortgeschützt.",
+ "The request will expire on {date} at midnight." : "Die Anfrage läuft am {date} um Mitternacht ab.",
+ "The request will be password protected." : "Die Anfrage wird passwortgeschützt sein.",
+ "When should the request expire?" : "Wann soll die Anfrage ablaufen?",
+ "Set a submission expiration date" : "Ablaufdatum für die Übermittlung festlegen",
+ "Expiration date" : "Ablaufdatum",
+ "Select a date" : "Datum auswählen",
+ "Your administrator has enforced a {count} days expiration policy." : "Ihre Administration erzwingt über eine Richtlinie den Ablauf nach {count} Tagen.",
+ "What password should be used for the request?" : "Welches Passwort soll für die Anfrage verwendet werden?",
+ "Set a password" : "Passwort setzen",
+ "Password" : "Passwort",
+ "Enter a valid password" : "Ein gültige Passwort eingeben",
+ "Generate a new password" : "Ein neues Passwort erstellen",
+ "Your administrator has enforced a password protection." : "Ihre Administration erzwingt einen Passwortschutz",
+ "Automatically copying failed, please copy the share link manually" : "Automatisches Kopieren ist fehlgeschlagen, bitte den Freigabelink manuell kopieren",
+ "Link copied" : "Link kopiert",
+ "Email already added" : "E-Mail-Adresse wurde bereits hinzugefügt",
+ "Invalid email address" : "Ungültige E-Mail-Adresse",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Die folgende E-Mail-Adresse ist ungültig: ","Die folgenden E-Mail-Adressen sind ungültig: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} E-Mail-Adresse bereits hinzugefügt","{count} E-Mail-Adressen bereits hinzugefügt"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"],
+ "You can now share the link below to allow people to upload files to your directory." : "Sie können jetzt den unten stehenden Link freigeben, damit andere Dateien in Ihr Verzeichnis hochladen können.",
+ "Share link" : "Freigabe Link",
+ "Copy" : "Kopieren",
+ "Send link via email" : "Link per E-Mail verschicken",
+ "Enter an email address or paste a list" : "E-Mail-Adresse eingeben oder eine Liste einfügen",
+ "Remove email" : "E-Mail-Adresse entfernen",
+ "Select a destination" : "Ein Ziel wählen",
+ "Select" : "Auswählen",
+ "What are you requesting?" : "Was fragen Sie an?",
+ "Request subject" : "Betreff der Anfrage",
+ "Birthday party photos, History assignment…" : "Fotos von Geburtstagsfeiern, Geschichtsaufgaben…",
+ "Where should these files go?" : "Wo sollen diese Dateien gespeichert werden?",
+ "Upload destination" : "Ziel für das Hochladen",
+ "Revert to default" : "Auf Standard zurücksetzen",
+ "The uploaded files are visible only to you unless you choose to share them." : "Die hochgeladenen Dateien sind nur für Sie sichtbar, so lange Sie sie nicht freizugeben.",
+ "Add a note" : "Notiz hinzufügen",
+ "Note for recipient" : "Notiz für den Empfänger",
+ "Add a note to help people understand what you are requesting." : "Fügen Sie eine Notiz hinzu, damit die Adressaten verstehen, was Sie anfragen.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Sie können Links, Daten oder andere Informationen hinzufügen, die dem Empfänger helfen, Ihre Anfrage zu verstehen.",
+ "Close" : "Schließen",
+ "_Send email and close_::_Send {count} emails and close_" : ["E-Mail senden und schließen","{count} E-Mails senden und schließen"],
+ "Please select a folder, you cannot share the root directory." : "Bitte wählen Sie einen Ordner aus. Das Rootverzeichnis kann nicht freigegeben werden.",
+ "File request created" : "Dateianfrage erstellt",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Dateianforderung erstellt und E-Mail gesendet","Dateianforderung erstellt und {count} E-Mails gesendet"],
+ "Error creating the share: {errorMessage}" : "Fehler beim Erstellen der Freigabe: {errorMessage}",
+ "Error creating the share" : "Fehler beim Erstellen der Freigabe",
+ "Error sending emails: {errorMessage}" : "Fehler beim E-Mailversand: {errorMessage}",
+ "Error sending emails" : "Fehler beim E-Mailversand",
+ "Create a file request" : "Eine Dateianfrage erstellen",
+ "Collect files from others even if they do not have an account." : "Dateien von anderen sammeln, auch wenn diese kein Konto haben.",
+ "To ensure you can receive files, verify you have enough storage available." : "Um sicherzustellen, dass Sie Dateien empfangen können, überprüfen Sie, ob Ihnen genügend Speicherplatz zur Verfügung steht.",
+ "File request" : "Dateianfrage",
+ "Previous step" : "Vorheriger Schritt",
+ "Cancel" : "Abbrechen",
+ "Cancel the file request creation" : "Erstellung der Dateianfrage abbrechen",
+ "Close without sending emails" : "Schließen ohne E-Mails zu versenden",
+ "Continue" : "Fortsetzen",
"Error while toggling options" : "Fehler beim Umschalten der Optionen",
- "Set default folder for accepted shares" : "Standardordner für akzeptierte Freigaben wählen",
- "Reset" : "Zurücksetzen",
- "Reset folder to system default" : "Ordner auf Systemstandard zurücksetzen",
+ "Accept shares from other accounts and groups by default" : "Freigaben von anderen Konten und Gruppen standardmäßig annehmen",
"Choose a default folder for accepted shares" : "Wählen Sie einen Standardordner für akzeptierte Freigaben",
"Invalid path selected" : "Ungültiger Pfad ausgewählt",
"Unknown error" : "Unbekannter Fehler",
- "Open Sharing Details" : "Freigabedetails öffnen",
+ "Set default folder for accepted shares" : "Standardordner für angenommene Freigaben",
+ "Reset" : "Zurücksetzen",
+ "Reset folder to system default" : "Ordner auf Systemstandard zurücksetzen",
+ "Share expiration: {date}" : "Freigabe-Ablaufdatum: {date}",
+ "Share Expiration" : "Freigabe-Ablaufdatum",
"group" : "Gruppe",
"conversation" : "Unterhaltung",
"remote" : "Extern",
"remote group" : "Externe Gruppe",
"guest" : "Gast",
+ "by {initiator}" : "von {initiator}",
"Shared with the group {user} by {owner}" : "Geteilt mit der Gruppe {user} von {owner}",
"Shared with the conversation {user} by {owner}" : "Geteilt mit der Unterhaltung {user} von {owner}",
"Shared with {user} by {owner}" : "Geteilt mit {user} von {owner}",
+ "Open Sharing Details" : "Freigabedetails öffnen",
"Added by {initiator}" : "Hinzugefügt von {initiator}",
- "Via “{folder}”" : "Über “{folder}”",
+ "Via “{folder}”" : "Über \"{folder}”",
"Unshare" : "Freigabe aufheben",
- "Internal link" : "Interner Link",
"Cannot copy, please copy the link manually" : "Kopieren fehlgeschlagen. Bitte kopieren Sie den Link manuell",
- "Copy internal link to clipboard" : "Internen Link in die Zwischenablage kopieren",
- "Only works for people with access to this folder" : "Funktioniert nur für Personen mit Zugriff auf diesen Ordner",
- "Only works for people with access to this file" : "Funktioniert nur für Personen mit Zugriff auf diese Datei",
- "Link copied" : "Link kopiert",
- "Please enter the following required information before creating the share" : "Bitte geben Sie die benötigten Informationen ein bevor die Freigabe erstellt wird",
+ "Copy internal link" : "Internen Link kopieren",
+ "For people who already have access" : "Für Personen, die bereits Zugriff haben",
+ "Internal link" : "Interner Link",
+ "{shareWith} by {initiator}" : "{shareWith} von {initiator}",
+ "Shared via link by {initiator}" : "Geteilt mittels Link von {initiator}",
+ "File request ({label})" : "Dateianfrage ({label})",
+ "Mail share ({label})" : "Mail-Freigabe ({label})",
+ "Share link ({label})" : "Externer Link ({label})",
+ "Mail share" : "E-Mail-Freigabe",
+ "Share link ({index})" : "Externer Link ({index})",
+ "Create public link" : "Öffentlichen Link erstellen",
+ "Actions for \"{title}\"" : "Aktionen für \"{title}\"",
+ "Copy public link of \"{title}\"" : "Öffentlichen Link von \"{title}\" kopieren",
+ "Error, please enter proper password and/or expiration date" : "Fehler. Bitte gebe das richtige Passwort und/oder Ablaufdatum ein",
+ "Link share created" : "Link-Freigabe erstellt",
+ "Error while creating the share" : "Fehler beim Erstellen der Freigabe",
+ "Please enter the following required information before creating the share" : "Vor Erstellen der Freigabe bitte die erforderlichen Informationen eingeben",
"Password protection (enforced)" : "Passwortschutz (erzwungen)",
"Password protection" : "Passwortschutz",
"Enter a password" : "Passwort eingeben",
- "Expiration date (enforced)" : "Ablaufdatum (erzwungen)",
- "Enter a date" : "Datum eingeben",
+ "Enable link expiration (enforced)" : "Ablaufdatum des Links aktivieren (erzwungen)",
+ "Enable link expiration" : "Ablaufdatum des Links aktivieren",
+ "Enter expiration date (enforced)" : "Ablaufdatum eingeben (erzwungen)",
+ "Enter expiration date" : "Ablaufdatum eingeben",
"Create share" : "Freigabe erstellen",
- "Cancel" : "Abbrechen",
"Customize link" : "Link anpassen",
"Generate QR code" : "QR-Code erzeugen",
"Add another link" : "Weiteren Link hinzufügen",
"Create a new share link" : "Neuen Freigabe-Link erstellen",
- "{shareWith} by {initiator}" : "{shareWith} von {initiator}",
- "Shared via link by {initiator}" : "Geteilt mittels Link von {initiator}",
- "Mail share ({label})" : "Mail-Freigabe ({label})",
- "Share link ({label})" : "Link teilen ({label})",
- "Share link ({index})" : "Link teilen ({index})",
- "Share link" : "Link teilen",
- "Actions for \"{title}\"" : "Aktionen für \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Öffentlichen Link von \"{title}\" in die Zwischenablage kopieren",
- "Error, please enter proper password and/or expiration date" : "Fehler. Bitte gebe das richtige Passwort und/oder Ablaufdatum ein",
- "Link share created" : "Link-Freigabe erstellt",
- "Error while creating the share" : "Fehler beim Erstellen der Freigabe",
"Quick share options, the current selected is \"{selectedOption}\"" : "Schnelle Freigabeoptionen, aktuell ausgewählt ist \"{selectedOption}\"",
"View only" : "Nur anzeigen",
"Can edit" : "Kann bearbeiten",
- "File drop" : "Dateiablage",
"Custom permissions" : "Benutzerdefinierte Berechtigungen",
- "Search for share recipients" : "Nach Freigabeempfängern suchen",
- "No recommendations. Start typing." : "Keine Empfehlungen. Beginnen Sie mit der Eingabe.",
"Resharing is not allowed" : "Das Weiterteilen ist nicht erlaubt ",
"Name or email …" : "Name oder E-Mail-Adresse …",
"Name, email, or Federated Cloud ID …" : "Name, E-Mail-Adresse oder Federated-Cloud-ID …",
"Searching …" : "Suche …",
"No elements found." : "Keine Elemente gefunden.",
- "Search globally" : "Global suchen",
+ "Search everywhere" : "Überall suchen",
"Guest" : "Gast",
"Group" : "Gruppe",
"Email" : "E-Mail",
@@ -186,136 +248,206 @@ OC.L10N.register(
"Deck board" : "Deck-Board",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "auf {server}",
+ "Enter external recipients" : "Externe Empfänger eingeben",
+ "Search for internal recipients" : "Nach internen Empfängern suchen",
+ "Note from" : "Notiz von",
+ "Note:" : "Bemerkung:",
+ "File drop" : "Dateiablage",
+ "Upload files to {foldername}." : "Dateien hochladen nach {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Durch das Hochladen von Dateien stimmen Sie den Nutzungsbedingungen zu.",
+ "Successfully uploaded files" : "Dateien wurden hochgeladen",
+ "View terms of service" : "Nutzungsbedingungen anzeigen",
+ "Terms of service" : "Nutzungsbedingungen",
+ "Share with {user}" : "Mit {user} teilen",
+ "Share with email {email}" : "Mit E-Mail {email} teilen",
+ "Share with group" : "Mit Gruppe teilen",
+ "Share in conversation" : "In Unterhaltungen teilen",
+ "Share with {user} on remote server {server}" : "Mit {user} auf dem Remote-Server {server} teilen",
+ "Share with remote group" : "Mit entfernter Gruppe teilen",
+ "Share with guest" : "Mit Gast teilen",
+ "Update share" : "Freigabe aktualisieren",
+ "Save share" : "Freigabe speichern",
+ "Read" : "Lesen",
+ "Create" : "Erstellen",
+ "Edit" : "Bearbeiten",
+ "Share" : "Teilen",
+ "Delete" : "Löschen",
+ "Password field cannot be empty" : "Passwortfeld darf nicht leer sein",
+ "Replace current password" : "Aktuelles Passwort ersetzen",
+ "Failed to generate a new token" : "Es konnte kein neues Token generiert werden",
"Allow upload and editing" : "Hochladen und Bearbeiten erlauben",
"Allow editing" : "Bearbeitung erlauben",
"Upload only" : "Nur hochladen",
"Advanced settings" : "Erweiterte Einstellungen",
"Share label" : "Freigabe-Label",
+ "Share link token" : "Freigabe-Token teilen",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Das öffentliche Freigabelink-Token auf einen Begriff festlegen, der leicht zu merken ist, oder ein neues Token erstellen. Es ist nicht zu empfehlen, für Freigaben , die vertrauliche Informationen enthalten, ein erratbares Token zu verwenden.",
+ "Generating…" : "Generieren…",
+ "Generate new token" : "Neues Token generieren",
"Set password" : "Passwort festlegen",
- "Password" : "Passwort",
"Password expires {passwordExpirationTime}" : "Passwort läuft ab um {passwordExpirationTime}",
"Password expired" : "Passwort abgelaufen",
"Video verification" : "Videoüberprüfung",
+ "Expiration date (enforced)" : "Ablaufdatum (erzwungen)",
"Set expiration date" : "Ablaufdatum setzen",
- "Expiration date" : "Ablaufdatum",
"Hide download" : "Download verbergen",
- "Allow download" : "Download erlauben",
+ "Allow download and sync" : "Herunterladen und synchronisieren zulassen",
"Note to recipient" : "Notiz an Empfänger",
"Enter a note for the share recipient" : "Notiz für Empfänger der Freigabe eingeben",
- "Read" : "Lesen",
- "Create" : "Erstellen",
- "Edit" : "Bearbeiten",
- "Share" : "Teilen",
+ "Show files in grid view" : "Dateien in Kachelansicht anzeigen",
"Delete share" : "Freigabe löschen",
- "Share with {userName}" : "Mit {userName} teilen",
- "Share with email {email}" : "Mit E-Mail {email} teilen",
- "Share with group" : "Mit Gruppe teilen",
- "Share in conversation" : "In Unterhaltungen teilen",
- "Share with {user} on remote server {server}" : "Mit {user} auf dem Remote-Server {server} teilen",
- "Share with remote group" : "Mit entfernter Gruppe teilen",
- "Share with guest" : "Mit Gast teilen",
- "Update share" : "Freigabe aktualisieren",
- "Save share" : "Freigabe speichern",
"Others with access" : "Andere mit Zugriff",
"No other accounts with access found" : "Keine anderen Konten mit Zugriffsberechtigung gefunden",
"Toggle list of others with access to this directory" : "Liste anderer Benutzer mit Zugriff auf dieses Verzeichnis umschalten",
"Toggle list of others with access to this file" : "Liste anderer Benutzer mit Zugriff auf diese Datei umschalten",
"Unable to fetch inherited shares" : "Laden der vererbten Freigaben fehlgeschlagen",
+ "Link shares" : "Freigaben teilen",
+ "Shares" : "Freigaben",
+ "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Dateien innerhalb Ihrer Organisation teilen. Auch Empfänger, die auf die Datei bereits zugreifen können, können diesen Link für einen einfachen Zugriff nutzen.",
+ "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Dateien über öffentliche Links und E-Mail-Adressen mit anderen außerhalb Ihrer Organisation teilen. Sie können Nextcloud-Konten auch auf anderen Instanzen mithilfe ihrer Federated-Cloud-ID teilen.",
+ "Shares from apps or other sources which are not included in internal or external shares." : "Freigaben aus Apps oder anderen Quellen, die nicht in internen oder externen Freigaben enthalten sind.",
+ "Type names, teams, federated cloud IDs" : "Namen, Teams oder Federated-Cloud-IDs eingeben",
+ "Type names or teams" : "Namen oder Teams eingeben",
+ "Type a federated cloud ID" : "Eine Federated-Cloud-ID eingeben",
+ "Type an email" : "Eine E-Mail-Adresse eingeben",
+ "Type an email or federated cloud ID" : "Eine E-Mail-Adresse oder eine Federated-Cloud-ID eingeben",
"Unable to load the shares list" : "Liste der Freigaben kann nicht geladen werden",
"Expires {relativetime}" : "Läuft {relativetime} ab",
"this share just expired." : "Diese Freigabe ist gerade abgelaufen.",
"Shared with you by {owner}" : "{owner} hat diese mit Ihnen geteilt",
+ "Internal shares" : "Interne Freigaben",
+ "Internal shares explanation" : "Erklärung interner Freigaben",
+ "External shares" : "Externe Freigaben",
+ "External shares explanation" : "Erklärung externer Freigaben",
+ "Additional shares" : "Zusätzliche Freigaben",
+ "Additional shares explanation" : "Erklärung zusätzlicher Freigaben",
+ "Link to a file" : "Mit einer Datei verknüpfen",
"_Accept share_::_Accept shares_" : ["Freigabe akzeptieren","Freigaben akzeptieren"],
"Open in Files" : "In Dateien öffnen",
"_Reject share_::_Reject shares_" : ["Freigabe ablehnen","Freigaben ablehnen"],
"_Restore share_::_Restore shares_" : ["Freigabe wiederherstellen","Freigaben wiederherstellen"],
"Shared" : "Geteilt",
- "Shared multiple times with different people" : "Mehrmals mit verschiedenen Personen geteilt",
"Shared by {ownerDisplayName}" : "Geteilt von {ownerDisplayName}",
- "Show sharing options" : "Freigabeoptionen anzeigen",
- "Link to a file" : "Mit einer Datei verknüpfen",
- "Error creating the share: {errorMessage}" : "Fehler beim Erstellen der Freigabe: {errorMessage}",
- "Error creating the share" : "Fehler beim Erstellen der Freigabe",
- "Error updating the share: {errorMessage}" : "Fehler beim Aktualisieren der Freigabe: {errorMessage}",
- "Error updating the share" : "Fehler beim Aktualisieren der Freigabe",
- "File \"{path}\" has been unshared" : "Freigabe für die Datei \"{path}\" wurde entfernt",
- "Folder \"{path}\" has been unshared" : "Freigabe für den Ordner \"{path}\" wurde entfernt",
- "Share {propertyName} saved" : "Freigabe {propertyName} gespeichert",
- "Shared by" : "Geteilt von",
- "Shared with" : "Geteilt mit",
- "Password created successfully" : "Passwort erstellt",
- "Error generating password from password policy" : "Fehler beim Erzeugen des Passworts aufgrund der Passwortrichtlinie",
- "Shared with you and the group {group} by {owner}" : "{owner} hat dies mit Ihnen und der Gruppe {group} geteilt",
- "Shared with you and {circle} by {owner}" : "{owner} hat dies mit Dir und dem Kreis {circle} geteilt",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} hat diese mit Ihnen und der Unterhaltung {conversation} geteilt",
- "Shared with you in a conversation by {owner}" : "{owner} hat diese mit Ihnen in einer Unterhaltung geteilt",
- "Shares" : "Freigaben",
+ "Shared multiple times with different people" : "Mehrmals mit verschiedenen Personen geteilt",
+ "Sharing options" : "Freigabeoptionen",
+ "Shared with others" : "Von Ihnen geteilt",
+ "Create file request" : "Dateianfrage erstellen",
+ "Upload files to {foldername}" : "Dateien hochladen nach {foldername}",
+ "Public file share" : "Öffentliche Dateifreigabe",
+ "Publicly shared file." : "Öffentlich geteilte Datei.",
+ "No file" : "Keine Datei",
+ "The file shared with you will show up here" : "Die mit Ihnen geteilte Datei wird hier angezeigt",
+ "Public share" : "Öffentliche Freigabe",
+ "Publicly shared files." : "Öffentlich geteilte Dateien.",
+ "No files" : "Keine Dateien",
+ "Files and folders shared with you will show up here" : "Mit Ihnen geteilte Dateien und Ordner werden hier angezeigt",
"Overview of shared files." : "Übersicht geteilter Dateien",
"No shares" : "Keine Freigaben",
- "Files and folders you shared or have been shared with you will show up here" : "Von Ihnen oder mit Ihnen geteilte Ordner und Dateien werden hier angezeigt werden",
+ "Files and folders you shared or have been shared with you will show up here" : "Von Ihnen oder mit Ihnen geteilte Ordner und Dateien werden hier angezeigt",
"Shared with you" : "Mit Ihnen geteilt",
"List of files that are shared with you." : "Liste der Dateien, die mit Ihnen geteilt wurden.",
"Nothing shared with you yet" : "Bis jetzt wurde nichts mit Ihnen geteilt",
- "Files and folders others shared with you will show up here" : "Mit Ihnen geteilte Dateien und Ordner werden hier angezeigt werden",
- "Shared with others" : "Von Ihnen geteilt",
+ "Files and folders others shared with you will show up here" : "Mit Ihnen geteilte Dateien und Ordner werden hier angezeigt",
"List of files that you shared with others." : "Liste der Dateien, die Sie mit anderen geteilt haben.",
"Nothing shared yet" : "Noch nichts geteilt",
- "Files and folders you shared will show up here" : "Von Ihnen geteilte Dateien und Ordner werden hier angezeigt werden",
- "Shared by link" : "Geteilt über einen Link",
+ "Files and folders you shared will show up here" : "Von Ihnen geteilte Dateien und Ordner werden hier angezeigt",
+ "Shared by link" : "Über einen Link geteilt",
"List of files that are shared by link." : "Liste der Dateien, die mittels Link geteilt wurden.",
"No shared links" : "Keine geteilten Links",
- "Files and folders you shared by link will show up here" : "Von Ihnen mittels Link geteilte Dateien und Ordner werden hier angezeigt werden",
+ "Files and folders you shared by link will show up here" : "Von Ihnen mittels Link geteilte Dateien und Ordner werden hier angezeigt",
+ "File requests" : "Dateianfragen",
+ "List of file requests." : "Liste der Dateianfragen.",
+ "No file requests" : "Keine Dateianfragen",
+ "File requests you have created will show up here" : "Von Ihnen erstellte Dateianfragen werden hier angezeigt",
"Deleted shares" : "Gelöschte Freigaben",
"List of shares you left." : "Liste der Freigaben, die Sie verlassen haben.",
"No deleted shares" : "Keine gelöschten Freigaben",
- "Shares you have left will show up here" : "Freigaben die Sie verlassen haben, werden hier angezeigt werden",
+ "Shares you have left will show up here" : "Freigaben, die Sie verlassen haben, werden hier angezeigt",
"Pending shares" : "Ausstehende Freigaben",
"List of unapproved shares." : "Liste ungeprüfter Freigaben.",
"No pending shares" : "Keine ausstehenden Freigaben",
- "Shares you have received but not approved will show up here" : "Freigaben die Sie erhalten, aber nicht bestätigt haben, werden hier angezeigt werden",
+ "Shares you have received but not approved will show up here" : "Freigaben, die Sie erhalten, aber nicht bestätigt haben, werden hier angezeigt",
+ "Error deleting the share: {errorMessage}" : "Fehler beim Löschen der Freigabe: {errorMessage}",
+ "Error deleting the share" : "Fehler beim Löschen der Freigabe",
+ "Error updating the share: {errorMessage}" : "Fehler beim Aktualisieren der Freigabe: {errorMessage}",
+ "Error updating the share" : "Fehler beim Aktualisieren der Freigabe",
+ "File \"{path}\" has been unshared" : "Freigabe für die Datei \"{path}\" wurde entfernt",
+ "Folder \"{path}\" has been unshared" : "Freigabe für den Ordner \"{path}\" wurde entfernt",
+ "Could not update share" : "Freigabe konnte nicht aktualisiert werden",
+ "Share saved" : "Freigabe gespeichert",
+ "Share expiry date saved" : "Freigabe-Ablaufdatum gespeichert",
+ "Share hide-download state saved" : "\"Download verbergen\"-Status der Freigabe gespeichert",
+ "Share label saved" : "Freigabe-Label gespeichert",
+ "Share note for recipient saved" : "Freigabe-Notiz für Empfänger gespeichert",
+ "Share password saved" : "Freigabe-Passwort gespeichert",
+ "Share permissions saved" : "Freigabeberechtigungen gespeichert",
+ "To upload files to {folder}, you need to provide your name first." : "Um Dateien nach {folder} hochzuladen, müssen Sie zunächst Ihren Namen angeben.",
+ "Upload files to {folder}" : "Dateien hochladen nach {folder}",
+ "Please confirm your name to upload files to {folder}" : "Bitte bestätigen Sie Ihren Namen, um Dateien nach {folder} hochzuladen",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} hat einen Ordner mit Ihnen geteilt.",
+ "Names must not be empty." : "Namen dürfen nicht leer sein.",
+ "Names must not start with a dot." : "Namen dürfen nicht mit einem Punkt beginnen.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" ist innerhalb eines Namens unzulässig.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" ist ein reservierter Name und unzulässig.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" ist kein zulässiger Name.",
+ "Names must not end with \"{extension}\"." : "Namen dürfen nicht mit \"{extension}\" enden.",
+ "Invalid name." : "Ungültiger Name.",
+ "Shared by" : "Geteilt von",
+ "Shared with" : "Geteilt mit",
+ "Password created successfully" : "Passwort erstellt",
+ "Error generating password from password policy" : "Fehler beim Erzeugen des Passworts aufgrund der Passwortrichtlinie",
+ "Shared with you and the group {group} by {owner}" : "{owner} hat dies mit Ihnen und der Gruppe {group} geteilt",
+ "Shared with you and {circle} by {owner}" : "{owner} hat dies mit Ihnen und dem Kreis {circle} geteilt",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} hat diese mit Ihnen und der Unterhaltung {conversation} geteilt",
+ "Shared with you in a conversation by {owner}" : "{owner} hat diese mit Ihnen in einer Unterhaltung geteilt",
+ "Share not found" : "Freigabe nicht gefunden",
+ "Back to %s" : "Zurück zu %s",
+ "Add to your Nextcloud" : "Zu Ihrer Nextcloud hinzufügen",
+ "Waiting…" : "Warte…",
+ "error" : "Fehler",
+ "finished" : "Abgeschlossen",
+ "This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.",
+ "Move or copy" : "Verschieben oder kopieren",
+ "You can upload into this folder" : "Sie können in diesen Ordner hochladen",
+ "Show list view" : "Listenansicht anzeigen",
+ "Show grid view" : "Kachelansicht anzeigen",
+ "No compatible server found at {remote}" : "Keinen kompatiblen Server unter {remote} gefunden",
+ "Invalid server URL" : "Falsche Server-URL",
+ "Failed to add the public link to your Nextcloud" : "Der öffentliche Link konnte nicht zu Ihrer Nextcloud hinzugefügt werden",
+ "You are not allowed to edit link shares that you don't own" : "Sie dürfen keine Linkfreigaben bearbeiten, die Sie nicht besitzen",
+ "Download all files" : "Alle Dateien herunterladen",
+ "Link copied to clipboard" : "Link wurde in die Zwischenablage kopiert",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 E-Mail-Adresse bereits hinzugefügt","{count} E-Mail-Adressen bereits hinzugefügt"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"],
+ "Copy to clipboard" : "In die Zwischenablage kopieren",
+ "Copy internal link to clipboard" : "Internen Link in die Zwischenablage kopieren",
+ "Only works for people with access to this folder" : "Funktioniert nur für Personen mit Zugriff auf diesen Ordner",
+ "Only works for people with access to this file" : "Funktioniert nur für Personen mit Zugriff auf diese Datei",
+ "Copy public link of \"{title}\" to clipboard" : "Öffentlichen Link von \"{title}\" in die Zwischenablage kopieren",
+ "Search globally" : "Global suchen",
+ "Search for share recipients" : "Nach Freigabeempfängern suchen",
+ "No recommendations. Start typing." : "Keine Empfehlungen. Beginnen Sie mit der Eingabe.",
+ "To upload files, you need to provide your name first." : "Um Dateien hochzuladen, müssen Sie zunächst Ihren Namen angeben.",
+ "Enter your name" : "Geben Sie Ihren Namen ein",
+ "Submit name" : "Name übermitteln",
+ "Share with {userName}" : "Mit {userName} teilen",
+ "Show sharing options" : "Freigabeoptionen anzeigen",
"Share note" : "Notiz teilen",
"Upload files to %s" : "Dateien für %s hochladen",
+ "%s shared a folder with you." : "%s hat einen Ordner mit Ihnen geteilt.",
"Note" : "Notiz",
"Select or drop files" : "Dateien auswählen oder hierher ziehen",
"Uploading files" : "Dateien werden hochgeladen",
- "Uploaded files:" : "Hochgeladene Dateien: ",
+ "Uploaded files:" : "Hochgeladene Dateien:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Durch das Hochladen von Dateien stimmen Sie den %1$sNutzungsbedingungen%2$s zu.",
- "Add to your Nextcloud" : "Zu Ihrer Nextcloud hinzufügen",
- "Files and folders others share with you will show up here" : "Mit Ihnen geteilte Dateien und Ordner anderer werden hier erscheinen",
- "Files and folders you share will show up here" : "Dateien und Ordner, die Sie teilen, werden hier erscheinen",
- "Files and folders you share by link will show up here" : "Per Link freigegebene Dateien und Ordner werden hier erscheinen",
- "Shares you deleted will show up here" : "Von Ihnen gelöschte Freigaben werden hier angezeigt",
- "Shares you have received but not confirmed will show up here" : "Freigaben, die Sie erhalten, aber nicht bestätigt haben, werden hier angezeigt",
- "Shares will show up here" : "Freigaben werden hier angezeigt",
- "Restore" : "Wiederherstellen",
- "Something happened. Unable to restore the share." : "Die Freigabe konnte nicht wiederhergestellt werden.",
- "Something happened. Unable to accept the share." : "Die Freigabe konnte nicht akzeptiert werden.",
- "Something happened. Unable to reject the share." : "Die Freigabe konnte nicht abgelehnt werden.",
- "No expiration date set" : "Kein Ablaufdatum gesetzt",
- "Please specify a valid user" : "Bitte geben Sie einen gültigen Benutzer an",
- "Please specify a valid federated user ID" : "Bitte geben Sie eine gültige Federated-Benutzer-ID ein",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Diese App ermöglicht es Benutzern, Dateien innerhalb von Nextcloud zu teilen. Wenn aktiviert, kann der Administrator wählen, welche Gruppen Dateien teilen können. Die entsprechenden Benutzer können dann Dateien und Ordner mit anderen Benutzern und Gruppen innerhalb von Nextcloud teilen. Wenn der Administrator die Funktion zum Teilen von Links aktiviert, kann ein externer Link verwendet werden, um Dateien mit anderen Benutzern außerhalb von Nextcloud zu teilen. Administratoren können auch Passwörter und Ablaufdaten erzwingen und die Freigabe von Server zu Server über Freigabelinks sowie die Freigabe von mobilen Geräten aus aktivieren.\nWenn Sie die Funktion deaktivieren, werden freigegebene Dateien und Ordner auf dem Server für alle Freigabeempfänger und auch auf den Sync-Clients und mobilen Apps entfernt. Weitere Informationen finden Sie in der Nextcloud-Dokumentation.",
- "Accept user and group shares by default" : "Benutzer- und Gruppenfreigaben standardmäßig akzeptieren",
- "Read only" : "Schreibgeschützt",
- "File drop (upload only)" : "Dateien ablegen (nur Hochladen)",
- "Upload" : "Hochladen",
- "Bundled permissions" : "Gebündelte Berechtigungen",
- "Only works for users with access to this folder" : "Funktioniert nur für Benutzer, die Zugriff auf diesen Ordner haben",
- "Only works for users with access to this file" : "Funktioniert nur für Benutzer, die Zugriff auf diese Datei haben",
- "Circle" : "Kreis",
- "Update" : "Aktualisieren",
- "Share with " : "Teilen mit ",
- "No other users with access found" : "Keine anderen Benutzer mit Zugriff gefunden",
- "No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden",
"Name" : "Name",
- "Share time" : "Freigabezeitpunkt",
- "Sorry, this link does not seem to work anymore." : "Leider scheint dieser Link nicht mehr zu funktionieren.",
- "Reasons might be:" : "Gründe könnten sein:",
- "the item was removed" : "Das Element wurde entfernt",
- "the link expired" : "Der Link ist abgelaufen",
- "sharing is disabled" : "Teilen ist deaktiviert",
- "For more info, please ask the person who sent this link." : "Um nähere Informationen zu erhalten, wenden Sie sich bitte an die Person, die Ihnen diesen Link geschickt hat.",
- "Share with remote" : "Mit Entfernten teilen",
- "Share with" : "Teilen mit"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Verwenden Sie diese Methode, um Dateien für Personen oder Teams innerhalb Ihrer Organisation freizugeben. Wenn der Empfänger bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, können Sie ihm den internen Freigabelink für einen einfachen Zugriff senden.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Verwenden Sie diese Methode, um Dateien für Personen oder Organisationen außerhalb Ihrer Organisation freizugeben. Dateien und Ordner können über öffentliche Freigabelinks und E-Mail-Adressen freigegeben werden. Sie können auch Dateien für andere Nextcloud-Konten freigeben, die auf verschiedenen Instanzen gehostet werden, indem Sie deren Federated-Cloud-ID verwenden.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Freigaben, die nicht zu internen oder externen Freigaben gehören. Dies können Freigaben von Apps oder anderen Quellen sein.",
+ "Share with accounts, teams, federated cloud id" : "Teilen mit Konten, Teams, Federated-Cloud-IDs",
+ "Share with accounts and teams" : "Teile mit Konten und Teams",
+ "Federated cloud ID" : "Federated-Cloud-ID",
+ "Email, federated cloud id" : "Name, Federated-Cloud-ID",
+ "Filename must not be empty." : "Dateiname darf nicht leer sein."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json
index 6009ef3f43c..7e4298f986a 100644
--- a/apps/files_sharing/l10n/de_DE.json
+++ b/apps/files_sharing/l10n/de_DE.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Warte…",
- "error" : "Fehler",
- "finished" : "Abgeschlossen",
- "This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.",
- "Move or copy" : "Verschieben oder kopieren",
- "Download" : "Herunterladen",
- "Delete" : "Löschen",
- "You can upload into this folder" : "Sie können in diesen Ordner hochladen",
- "Terms of service" : "Nutzungsbedingungen",
- "Show list view" : "Listenansicht anzeigen",
- "Show grid view" : "Kachelansicht anzeigen",
- "No compatible server found at {remote}" : "Keinen kompatiblen Server unter {remote} gefunden",
- "Invalid server URL" : "Falsche Server-URL",
- "Failed to add the public link to your Nextcloud" : "Fehler beim Hinzufügen des öffentlichen Links zu Ihrer Nextcloud",
"File shares" : "Dateifreigaben",
"Downloaded via public link" : "Über den öffentlichen Link heruntergeladen",
"Downloaded by {email}" : "Heruntergeladen von {email}",
@@ -66,9 +52,10 @@
"{actor} removed you from the share named {file}" : "{actor} hat Sie aus der Freigabe von {file} entfernt",
"Share for file {file} with {user} expired" : "Freigabe der Datei {file} für {user} abgelaufen",
"Share for file {file} expired" : "Freigabe für die Datei {file} abgelaufen",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Öffentlich oder per E-Mail geteilte Datei / Ordner wurde <strong>heruntergeladen</strong>",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Öffentlich oder per E-Mail geteilte Datei oder geteilter Ordner wurde <strong>heruntergeladen</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Dateien wurden in einen per E-Mail oder über einen öffentlichen Link freigegebenen Ordner <strong>hochgeladen</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder ein Ordner wurde von <strong>einem anderen Server</strong> geteilt",
- "Files" : "Dateien",
+ "Sharing" : "Teilen",
"A file or folder has been <strong>shared</strong>" : "Eine Datei oder ein Ordner wurde <strong>geteilt</strong>",
"Shared link" : "Geteilter Link",
"Wrong share ID, share does not exist" : "Fehlerhafte Freigabe-ID, Freigabe existiert nicht",
@@ -76,34 +63,46 @@
"Please specify a file or folder path" : "Bitte Datei oder Ordner-Pfad eingeben",
"Wrong path, file/folder does not exist" : "Falscher Pfad, Datei/Ordner existiert nicht",
"Could not create share" : "Freigabe konnte nicht erstellt werden",
- "Invalid permissions" : "Ungültige Berechtigungen",
- "Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT",
"Please specify a valid account to share with" : "Bitte ein gültiges Konto angeben, um mit ihm zu teilen",
- "Group sharing is disabled by the administrator" : "Die Gruppenfreigabe ist durch den Administrator deaktiviert",
+ "Group sharing is disabled by the administrator" : "Die Gruppenfreigabe ist durch die Administration deaktiviert",
"Please specify a valid group" : "Bitte geben Sie eine gültige Gruppe an",
- "Public link sharing is disabled by the administrator" : "Die öffentliche Freigabe von Links ist durch den Administrator deaktiviert",
- "Public upload disabled by the administrator" : "Das öffentliche Hochladen ist durch den Administrator deaktiviert",
- "Public upload is only possible for publicly shared folders" : "Das öffentliche Hochladen ist nur für öffentlich freigegebene Ordner erlaubt",
+ "Public link sharing is disabled by the administrator" : "Die öffentliche Freigabe von Links ist durch die Administration deaktiviert",
+ "Please specify a valid email address" : "Bitte eine gültige E-Mail-Adresse eingeben",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "%s Freigeben: Senden des Passwortes über Nextcloud Talk gescheitert, da Nextcloud Talk nicht aktiviert ist",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Freigabe von %1$s fehlgeschlagen, da das Backend die Freigabe vom Typ %2$s nicht erlaubt",
"Please specify a valid federated account ID" : "Bitte geben Sie eine gültige Federated-Konto-ID ein",
"Please specify a valid federated group ID" : "Bitte geben Sie eine gültige Federated-Gruppen-ID ein",
- "You cannot share to a Circle if the app is not enabled" : "Sie können nichts mit einem Kreis teilen, wenn die App nicht aktiviert ist",
- "Please specify a valid circle" : "Bitte einen gültigen Kreis angeben",
+ "You cannot share to a Team if the app is not enabled" : "Sie können nichts mit einem Team teilen, wenn die App nicht aktiviert ist",
+ "Please specify a valid team" : "Bitte ein gültiges Team angeben",
"Sharing %s failed because the back end does not support room shares" : "Freigabe von %s fehlgeschlagen, da das Backend die Freigabe von Räumen nicht unterstützt",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Freigabe von %s fehlgeschlagen, da das Backend keine ScienceMesh-Freigaben unterstützt",
"Unknown share type" : "Unbekannter Freigabetyp",
"Not a directory" : "Kein Verzeichnis",
"Could not lock node" : "Knotenpunkt konnte nicht gesperrt werden",
- "Could not lock path" : "Pfad konnte nicht gesperrt werden",
- "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben",
+ "Public upload is only possible for publicly shared folders" : "Das öffentliche Hochladen ist nur für öffentlich freigegebene Ordner erlaubt",
"Share must at least have READ or CREATE permissions" : "Freigabe muss mindestens LESEN- oder ERSTELLEN-Rechte haben",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Die Freigabe muss das Recht LESEN haben, wenn das Recht AKTUALISIEREN oder LÖSCHEN gesetzt ist",
+ "Public upload disabled by the administrator" : "Das öffentliche Hochladen ist durch die Administration deaktiviert",
+ "Could not lock path" : "Pfad konnte nicht gesperrt werden",
+ "no sharing rights on this item" : "Hierfür bestehen keine Freigaberechte",
+ "You are not allowed to edit incoming shares" : "Sie dürfen eingehende Freigaben nicht bearbeiten",
+ "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Senden des Passwortes über Nextcloud Talk\" zum Teilen einer Datei gescheitert, da Nextcloud Talk nicht verfügbar ist.",
+ "Custom share link tokens have been disabled by the administrator" : "Benutzerdefinierte Freigabelink-Token wurden von der Administration deaktiviert",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Token müssen mindestens 1 Zeichen enthalten und dürfen nur aus Buchstaben, Zahlen oder einen Bindestrich bestehen",
+ "Invalid date. Format must be YYYY-MM-DD" : "Ungültiges Datum. Zulässiges Datumsformat: JJJJ-MM-TT",
+ "No sharing rights on this item" : "Hierfür bestehen keine Freigaberechte",
+ "Invalid share attributes provided: \"%s\"" : "Ungültige Freigabeattribute angegeben: \"%s\"",
+ "You are not allowed to send mail notifications" : "Sie dürfen keine E-Mail-Benachrichtigungen senden",
+ "No mail notification configured for this share type" : "Für diesen Freigabetyp ist keine E-Mail-Benachrichtigung eingerichtet",
+ "Wrong password" : "Falsches Passwort",
+ "Error while sending mail notification" : "Fehler beim Sendern der E-Mail-Benachrichtigung",
+ "Failed to generate a unique token" : "Es konnte kein eindeutiges Token generiert werden",
+ "This share does not exist or is no longer available" : "Diese Freigabe existiert nicht oder ist nicht mehr verfügbar",
"shared by %s" : "von %s geteilt",
- "Download all files" : "Alle Dateien herunterladen",
- "Direct link" : "Direkter Link",
+ "Download" : "Herunterladen",
"Add to your %s" : "Hinzufügen zu Ihrer %s",
+ "Direct link" : "Direkter Link",
"Share API is disabled" : "Teilen-API ist deaktiviert",
"File sharing" : "Dateifreigabe",
"Share will expire tomorrow" : "Freigabe läuft morgen ab",
@@ -112,70 +111,133 @@
"You received {share} to group {group} as a share by {user}" : "Sie haben {share} zur Gruppe {group} als Freigabe von {user} empfangen",
"Accept" : "Akzeptieren",
"Decline" : "Ablehnen",
+ "Remember to upload the files to %s" : "Denken Sie daran, die Dateien auf %s hochzuladen",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Wir möchten Sie freundlich daran erinnern, dass Sie bisher noch keine Dateien in den freigegebenen Ordner hochgeladen haben.",
+ "Open \"%s\"" : "\"%s\" öffnen",
"This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Diese App ermöglicht es Personen, Dateien innerhalb von Nextcloud zu teilen. Wenn aktiviert, kann die Administration wählen, welche Gruppen Dateien teilen können. Die entsprechenden Personen können dann Dateien und Ordner mit anderen Personen und Gruppen innerhalb von Nextcloud teilen. Wenn der Administrator die Funktion zum Teilen von Links aktiviert, kann ein externer Link verwendet werden, um Dateien mit anderen Personen außerhalb von Nextcloud zu teilen. Administratoren können auch Passwörter und Ablaufdaten erzwingen und die Freigabe von Server zu Server über Freigabelinks sowie die Freigabe von mobilen Geräten aus aktivieren.\nWenn Sie die Funktion deaktivieren, werden freigegebene Dateien und Ordner auf dem Server für alle Freigabeempfänger und auch auf den Sync-Clients und mobilen Apps entfernt. Weitere Informationen finden Sie in der Nextcloud-Dokumentation.",
- "Sharing" : "Teilen",
- "Accept shares from other accounts and groups by default" : "Freigaben von anderen Konten und Gruppen standardmäßig annehmen",
+ "People" : "Personen",
+ "Filter accounts" : "Konten filtern",
+ "The request will expire on {date} at midnight and will be password protected." : "Die Anfrage läuft am {date} um Mitternacht ab und ist passwortgeschützt.",
+ "The request will expire on {date} at midnight." : "Die Anfrage läuft am {date} um Mitternacht ab.",
+ "The request will be password protected." : "Die Anfrage wird passwortgeschützt sein.",
+ "When should the request expire?" : "Wann soll die Anfrage ablaufen?",
+ "Set a submission expiration date" : "Ablaufdatum für die Übermittlung festlegen",
+ "Expiration date" : "Ablaufdatum",
+ "Select a date" : "Datum auswählen",
+ "Your administrator has enforced a {count} days expiration policy." : "Ihre Administration erzwingt über eine Richtlinie den Ablauf nach {count} Tagen.",
+ "What password should be used for the request?" : "Welches Passwort soll für die Anfrage verwendet werden?",
+ "Set a password" : "Passwort setzen",
+ "Password" : "Passwort",
+ "Enter a valid password" : "Ein gültige Passwort eingeben",
+ "Generate a new password" : "Ein neues Passwort erstellen",
+ "Your administrator has enforced a password protection." : "Ihre Administration erzwingt einen Passwortschutz",
+ "Automatically copying failed, please copy the share link manually" : "Automatisches Kopieren ist fehlgeschlagen, bitte den Freigabelink manuell kopieren",
+ "Link copied" : "Link kopiert",
+ "Email already added" : "E-Mail-Adresse wurde bereits hinzugefügt",
+ "Invalid email address" : "Ungültige E-Mail-Adresse",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Die folgende E-Mail-Adresse ist ungültig: ","Die folgenden E-Mail-Adressen sind ungültig: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} E-Mail-Adresse bereits hinzugefügt","{count} E-Mail-Adressen bereits hinzugefügt"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"],
+ "You can now share the link below to allow people to upload files to your directory." : "Sie können jetzt den unten stehenden Link freigeben, damit andere Dateien in Ihr Verzeichnis hochladen können.",
+ "Share link" : "Freigabe Link",
+ "Copy" : "Kopieren",
+ "Send link via email" : "Link per E-Mail verschicken",
+ "Enter an email address or paste a list" : "E-Mail-Adresse eingeben oder eine Liste einfügen",
+ "Remove email" : "E-Mail-Adresse entfernen",
+ "Select a destination" : "Ein Ziel wählen",
+ "Select" : "Auswählen",
+ "What are you requesting?" : "Was fragen Sie an?",
+ "Request subject" : "Betreff der Anfrage",
+ "Birthday party photos, History assignment…" : "Fotos von Geburtstagsfeiern, Geschichtsaufgaben…",
+ "Where should these files go?" : "Wo sollen diese Dateien gespeichert werden?",
+ "Upload destination" : "Ziel für das Hochladen",
+ "Revert to default" : "Auf Standard zurücksetzen",
+ "The uploaded files are visible only to you unless you choose to share them." : "Die hochgeladenen Dateien sind nur für Sie sichtbar, so lange Sie sie nicht freizugeben.",
+ "Add a note" : "Notiz hinzufügen",
+ "Note for recipient" : "Notiz für den Empfänger",
+ "Add a note to help people understand what you are requesting." : "Fügen Sie eine Notiz hinzu, damit die Adressaten verstehen, was Sie anfragen.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Sie können Links, Daten oder andere Informationen hinzufügen, die dem Empfänger helfen, Ihre Anfrage zu verstehen.",
+ "Close" : "Schließen",
+ "_Send email and close_::_Send {count} emails and close_" : ["E-Mail senden und schließen","{count} E-Mails senden und schließen"],
+ "Please select a folder, you cannot share the root directory." : "Bitte wählen Sie einen Ordner aus. Das Rootverzeichnis kann nicht freigegeben werden.",
+ "File request created" : "Dateianfrage erstellt",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Dateianforderung erstellt und E-Mail gesendet","Dateianforderung erstellt und {count} E-Mails gesendet"],
+ "Error creating the share: {errorMessage}" : "Fehler beim Erstellen der Freigabe: {errorMessage}",
+ "Error creating the share" : "Fehler beim Erstellen der Freigabe",
+ "Error sending emails: {errorMessage}" : "Fehler beim E-Mailversand: {errorMessage}",
+ "Error sending emails" : "Fehler beim E-Mailversand",
+ "Create a file request" : "Eine Dateianfrage erstellen",
+ "Collect files from others even if they do not have an account." : "Dateien von anderen sammeln, auch wenn diese kein Konto haben.",
+ "To ensure you can receive files, verify you have enough storage available." : "Um sicherzustellen, dass Sie Dateien empfangen können, überprüfen Sie, ob Ihnen genügend Speicherplatz zur Verfügung steht.",
+ "File request" : "Dateianfrage",
+ "Previous step" : "Vorheriger Schritt",
+ "Cancel" : "Abbrechen",
+ "Cancel the file request creation" : "Erstellung der Dateianfrage abbrechen",
+ "Close without sending emails" : "Schließen ohne E-Mails zu versenden",
+ "Continue" : "Fortsetzen",
"Error while toggling options" : "Fehler beim Umschalten der Optionen",
- "Set default folder for accepted shares" : "Standardordner für akzeptierte Freigaben wählen",
- "Reset" : "Zurücksetzen",
- "Reset folder to system default" : "Ordner auf Systemstandard zurücksetzen",
+ "Accept shares from other accounts and groups by default" : "Freigaben von anderen Konten und Gruppen standardmäßig annehmen",
"Choose a default folder for accepted shares" : "Wählen Sie einen Standardordner für akzeptierte Freigaben",
"Invalid path selected" : "Ungültiger Pfad ausgewählt",
"Unknown error" : "Unbekannter Fehler",
- "Open Sharing Details" : "Freigabedetails öffnen",
+ "Set default folder for accepted shares" : "Standardordner für angenommene Freigaben",
+ "Reset" : "Zurücksetzen",
+ "Reset folder to system default" : "Ordner auf Systemstandard zurücksetzen",
+ "Share expiration: {date}" : "Freigabe-Ablaufdatum: {date}",
+ "Share Expiration" : "Freigabe-Ablaufdatum",
"group" : "Gruppe",
"conversation" : "Unterhaltung",
"remote" : "Extern",
"remote group" : "Externe Gruppe",
"guest" : "Gast",
+ "by {initiator}" : "von {initiator}",
"Shared with the group {user} by {owner}" : "Geteilt mit der Gruppe {user} von {owner}",
"Shared with the conversation {user} by {owner}" : "Geteilt mit der Unterhaltung {user} von {owner}",
"Shared with {user} by {owner}" : "Geteilt mit {user} von {owner}",
+ "Open Sharing Details" : "Freigabedetails öffnen",
"Added by {initiator}" : "Hinzugefügt von {initiator}",
- "Via “{folder}”" : "Über “{folder}”",
+ "Via “{folder}”" : "Über \"{folder}”",
"Unshare" : "Freigabe aufheben",
- "Internal link" : "Interner Link",
"Cannot copy, please copy the link manually" : "Kopieren fehlgeschlagen. Bitte kopieren Sie den Link manuell",
- "Copy internal link to clipboard" : "Internen Link in die Zwischenablage kopieren",
- "Only works for people with access to this folder" : "Funktioniert nur für Personen mit Zugriff auf diesen Ordner",
- "Only works for people with access to this file" : "Funktioniert nur für Personen mit Zugriff auf diese Datei",
- "Link copied" : "Link kopiert",
- "Please enter the following required information before creating the share" : "Bitte geben Sie die benötigten Informationen ein bevor die Freigabe erstellt wird",
+ "Copy internal link" : "Internen Link kopieren",
+ "For people who already have access" : "Für Personen, die bereits Zugriff haben",
+ "Internal link" : "Interner Link",
+ "{shareWith} by {initiator}" : "{shareWith} von {initiator}",
+ "Shared via link by {initiator}" : "Geteilt mittels Link von {initiator}",
+ "File request ({label})" : "Dateianfrage ({label})",
+ "Mail share ({label})" : "Mail-Freigabe ({label})",
+ "Share link ({label})" : "Externer Link ({label})",
+ "Mail share" : "E-Mail-Freigabe",
+ "Share link ({index})" : "Externer Link ({index})",
+ "Create public link" : "Öffentlichen Link erstellen",
+ "Actions for \"{title}\"" : "Aktionen für \"{title}\"",
+ "Copy public link of \"{title}\"" : "Öffentlichen Link von \"{title}\" kopieren",
+ "Error, please enter proper password and/or expiration date" : "Fehler. Bitte gebe das richtige Passwort und/oder Ablaufdatum ein",
+ "Link share created" : "Link-Freigabe erstellt",
+ "Error while creating the share" : "Fehler beim Erstellen der Freigabe",
+ "Please enter the following required information before creating the share" : "Vor Erstellen der Freigabe bitte die erforderlichen Informationen eingeben",
"Password protection (enforced)" : "Passwortschutz (erzwungen)",
"Password protection" : "Passwortschutz",
"Enter a password" : "Passwort eingeben",
- "Expiration date (enforced)" : "Ablaufdatum (erzwungen)",
- "Enter a date" : "Datum eingeben",
+ "Enable link expiration (enforced)" : "Ablaufdatum des Links aktivieren (erzwungen)",
+ "Enable link expiration" : "Ablaufdatum des Links aktivieren",
+ "Enter expiration date (enforced)" : "Ablaufdatum eingeben (erzwungen)",
+ "Enter expiration date" : "Ablaufdatum eingeben",
"Create share" : "Freigabe erstellen",
- "Cancel" : "Abbrechen",
"Customize link" : "Link anpassen",
"Generate QR code" : "QR-Code erzeugen",
"Add another link" : "Weiteren Link hinzufügen",
"Create a new share link" : "Neuen Freigabe-Link erstellen",
- "{shareWith} by {initiator}" : "{shareWith} von {initiator}",
- "Shared via link by {initiator}" : "Geteilt mittels Link von {initiator}",
- "Mail share ({label})" : "Mail-Freigabe ({label})",
- "Share link ({label})" : "Link teilen ({label})",
- "Share link ({index})" : "Link teilen ({index})",
- "Share link" : "Link teilen",
- "Actions for \"{title}\"" : "Aktionen für \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Öffentlichen Link von \"{title}\" in die Zwischenablage kopieren",
- "Error, please enter proper password and/or expiration date" : "Fehler. Bitte gebe das richtige Passwort und/oder Ablaufdatum ein",
- "Link share created" : "Link-Freigabe erstellt",
- "Error while creating the share" : "Fehler beim Erstellen der Freigabe",
"Quick share options, the current selected is \"{selectedOption}\"" : "Schnelle Freigabeoptionen, aktuell ausgewählt ist \"{selectedOption}\"",
"View only" : "Nur anzeigen",
"Can edit" : "Kann bearbeiten",
- "File drop" : "Dateiablage",
"Custom permissions" : "Benutzerdefinierte Berechtigungen",
- "Search for share recipients" : "Nach Freigabeempfängern suchen",
- "No recommendations. Start typing." : "Keine Empfehlungen. Beginnen Sie mit der Eingabe.",
"Resharing is not allowed" : "Das Weiterteilen ist nicht erlaubt ",
"Name or email …" : "Name oder E-Mail-Adresse …",
"Name, email, or Federated Cloud ID …" : "Name, E-Mail-Adresse oder Federated-Cloud-ID …",
"Searching …" : "Suche …",
"No elements found." : "Keine Elemente gefunden.",
- "Search globally" : "Global suchen",
+ "Search everywhere" : "Überall suchen",
"Guest" : "Gast",
"Group" : "Gruppe",
"Email" : "E-Mail",
@@ -184,136 +246,206 @@
"Deck board" : "Deck-Board",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "auf {server}",
+ "Enter external recipients" : "Externe Empfänger eingeben",
+ "Search for internal recipients" : "Nach internen Empfängern suchen",
+ "Note from" : "Notiz von",
+ "Note:" : "Bemerkung:",
+ "File drop" : "Dateiablage",
+ "Upload files to {foldername}." : "Dateien hochladen nach {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Durch das Hochladen von Dateien stimmen Sie den Nutzungsbedingungen zu.",
+ "Successfully uploaded files" : "Dateien wurden hochgeladen",
+ "View terms of service" : "Nutzungsbedingungen anzeigen",
+ "Terms of service" : "Nutzungsbedingungen",
+ "Share with {user}" : "Mit {user} teilen",
+ "Share with email {email}" : "Mit E-Mail {email} teilen",
+ "Share with group" : "Mit Gruppe teilen",
+ "Share in conversation" : "In Unterhaltungen teilen",
+ "Share with {user} on remote server {server}" : "Mit {user} auf dem Remote-Server {server} teilen",
+ "Share with remote group" : "Mit entfernter Gruppe teilen",
+ "Share with guest" : "Mit Gast teilen",
+ "Update share" : "Freigabe aktualisieren",
+ "Save share" : "Freigabe speichern",
+ "Read" : "Lesen",
+ "Create" : "Erstellen",
+ "Edit" : "Bearbeiten",
+ "Share" : "Teilen",
+ "Delete" : "Löschen",
+ "Password field cannot be empty" : "Passwortfeld darf nicht leer sein",
+ "Replace current password" : "Aktuelles Passwort ersetzen",
+ "Failed to generate a new token" : "Es konnte kein neues Token generiert werden",
"Allow upload and editing" : "Hochladen und Bearbeiten erlauben",
"Allow editing" : "Bearbeitung erlauben",
"Upload only" : "Nur hochladen",
"Advanced settings" : "Erweiterte Einstellungen",
"Share label" : "Freigabe-Label",
+ "Share link token" : "Freigabe-Token teilen",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Das öffentliche Freigabelink-Token auf einen Begriff festlegen, der leicht zu merken ist, oder ein neues Token erstellen. Es ist nicht zu empfehlen, für Freigaben , die vertrauliche Informationen enthalten, ein erratbares Token zu verwenden.",
+ "Generating…" : "Generieren…",
+ "Generate new token" : "Neues Token generieren",
"Set password" : "Passwort festlegen",
- "Password" : "Passwort",
"Password expires {passwordExpirationTime}" : "Passwort läuft ab um {passwordExpirationTime}",
"Password expired" : "Passwort abgelaufen",
"Video verification" : "Videoüberprüfung",
+ "Expiration date (enforced)" : "Ablaufdatum (erzwungen)",
"Set expiration date" : "Ablaufdatum setzen",
- "Expiration date" : "Ablaufdatum",
"Hide download" : "Download verbergen",
- "Allow download" : "Download erlauben",
+ "Allow download and sync" : "Herunterladen und synchronisieren zulassen",
"Note to recipient" : "Notiz an Empfänger",
"Enter a note for the share recipient" : "Notiz für Empfänger der Freigabe eingeben",
- "Read" : "Lesen",
- "Create" : "Erstellen",
- "Edit" : "Bearbeiten",
- "Share" : "Teilen",
+ "Show files in grid view" : "Dateien in Kachelansicht anzeigen",
"Delete share" : "Freigabe löschen",
- "Share with {userName}" : "Mit {userName} teilen",
- "Share with email {email}" : "Mit E-Mail {email} teilen",
- "Share with group" : "Mit Gruppe teilen",
- "Share in conversation" : "In Unterhaltungen teilen",
- "Share with {user} on remote server {server}" : "Mit {user} auf dem Remote-Server {server} teilen",
- "Share with remote group" : "Mit entfernter Gruppe teilen",
- "Share with guest" : "Mit Gast teilen",
- "Update share" : "Freigabe aktualisieren",
- "Save share" : "Freigabe speichern",
"Others with access" : "Andere mit Zugriff",
"No other accounts with access found" : "Keine anderen Konten mit Zugriffsberechtigung gefunden",
"Toggle list of others with access to this directory" : "Liste anderer Benutzer mit Zugriff auf dieses Verzeichnis umschalten",
"Toggle list of others with access to this file" : "Liste anderer Benutzer mit Zugriff auf diese Datei umschalten",
"Unable to fetch inherited shares" : "Laden der vererbten Freigaben fehlgeschlagen",
+ "Link shares" : "Freigaben teilen",
+ "Shares" : "Freigaben",
+ "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Dateien innerhalb Ihrer Organisation teilen. Auch Empfänger, die auf die Datei bereits zugreifen können, können diesen Link für einen einfachen Zugriff nutzen.",
+ "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Dateien über öffentliche Links und E-Mail-Adressen mit anderen außerhalb Ihrer Organisation teilen. Sie können Nextcloud-Konten auch auf anderen Instanzen mithilfe ihrer Federated-Cloud-ID teilen.",
+ "Shares from apps or other sources which are not included in internal or external shares." : "Freigaben aus Apps oder anderen Quellen, die nicht in internen oder externen Freigaben enthalten sind.",
+ "Type names, teams, federated cloud IDs" : "Namen, Teams oder Federated-Cloud-IDs eingeben",
+ "Type names or teams" : "Namen oder Teams eingeben",
+ "Type a federated cloud ID" : "Eine Federated-Cloud-ID eingeben",
+ "Type an email" : "Eine E-Mail-Adresse eingeben",
+ "Type an email or federated cloud ID" : "Eine E-Mail-Adresse oder eine Federated-Cloud-ID eingeben",
"Unable to load the shares list" : "Liste der Freigaben kann nicht geladen werden",
"Expires {relativetime}" : "Läuft {relativetime} ab",
"this share just expired." : "Diese Freigabe ist gerade abgelaufen.",
"Shared with you by {owner}" : "{owner} hat diese mit Ihnen geteilt",
+ "Internal shares" : "Interne Freigaben",
+ "Internal shares explanation" : "Erklärung interner Freigaben",
+ "External shares" : "Externe Freigaben",
+ "External shares explanation" : "Erklärung externer Freigaben",
+ "Additional shares" : "Zusätzliche Freigaben",
+ "Additional shares explanation" : "Erklärung zusätzlicher Freigaben",
+ "Link to a file" : "Mit einer Datei verknüpfen",
"_Accept share_::_Accept shares_" : ["Freigabe akzeptieren","Freigaben akzeptieren"],
"Open in Files" : "In Dateien öffnen",
"_Reject share_::_Reject shares_" : ["Freigabe ablehnen","Freigaben ablehnen"],
"_Restore share_::_Restore shares_" : ["Freigabe wiederherstellen","Freigaben wiederherstellen"],
"Shared" : "Geteilt",
- "Shared multiple times with different people" : "Mehrmals mit verschiedenen Personen geteilt",
"Shared by {ownerDisplayName}" : "Geteilt von {ownerDisplayName}",
- "Show sharing options" : "Freigabeoptionen anzeigen",
- "Link to a file" : "Mit einer Datei verknüpfen",
- "Error creating the share: {errorMessage}" : "Fehler beim Erstellen der Freigabe: {errorMessage}",
- "Error creating the share" : "Fehler beim Erstellen der Freigabe",
- "Error updating the share: {errorMessage}" : "Fehler beim Aktualisieren der Freigabe: {errorMessage}",
- "Error updating the share" : "Fehler beim Aktualisieren der Freigabe",
- "File \"{path}\" has been unshared" : "Freigabe für die Datei \"{path}\" wurde entfernt",
- "Folder \"{path}\" has been unshared" : "Freigabe für den Ordner \"{path}\" wurde entfernt",
- "Share {propertyName} saved" : "Freigabe {propertyName} gespeichert",
- "Shared by" : "Geteilt von",
- "Shared with" : "Geteilt mit",
- "Password created successfully" : "Passwort erstellt",
- "Error generating password from password policy" : "Fehler beim Erzeugen des Passworts aufgrund der Passwortrichtlinie",
- "Shared with you and the group {group} by {owner}" : "{owner} hat dies mit Ihnen und der Gruppe {group} geteilt",
- "Shared with you and {circle} by {owner}" : "{owner} hat dies mit Dir und dem Kreis {circle} geteilt",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} hat diese mit Ihnen und der Unterhaltung {conversation} geteilt",
- "Shared with you in a conversation by {owner}" : "{owner} hat diese mit Ihnen in einer Unterhaltung geteilt",
- "Shares" : "Freigaben",
+ "Shared multiple times with different people" : "Mehrmals mit verschiedenen Personen geteilt",
+ "Sharing options" : "Freigabeoptionen",
+ "Shared with others" : "Von Ihnen geteilt",
+ "Create file request" : "Dateianfrage erstellen",
+ "Upload files to {foldername}" : "Dateien hochladen nach {foldername}",
+ "Public file share" : "Öffentliche Dateifreigabe",
+ "Publicly shared file." : "Öffentlich geteilte Datei.",
+ "No file" : "Keine Datei",
+ "The file shared with you will show up here" : "Die mit Ihnen geteilte Datei wird hier angezeigt",
+ "Public share" : "Öffentliche Freigabe",
+ "Publicly shared files." : "Öffentlich geteilte Dateien.",
+ "No files" : "Keine Dateien",
+ "Files and folders shared with you will show up here" : "Mit Ihnen geteilte Dateien und Ordner werden hier angezeigt",
"Overview of shared files." : "Übersicht geteilter Dateien",
"No shares" : "Keine Freigaben",
- "Files and folders you shared or have been shared with you will show up here" : "Von Ihnen oder mit Ihnen geteilte Ordner und Dateien werden hier angezeigt werden",
+ "Files and folders you shared or have been shared with you will show up here" : "Von Ihnen oder mit Ihnen geteilte Ordner und Dateien werden hier angezeigt",
"Shared with you" : "Mit Ihnen geteilt",
"List of files that are shared with you." : "Liste der Dateien, die mit Ihnen geteilt wurden.",
"Nothing shared with you yet" : "Bis jetzt wurde nichts mit Ihnen geteilt",
- "Files and folders others shared with you will show up here" : "Mit Ihnen geteilte Dateien und Ordner werden hier angezeigt werden",
- "Shared with others" : "Von Ihnen geteilt",
+ "Files and folders others shared with you will show up here" : "Mit Ihnen geteilte Dateien und Ordner werden hier angezeigt",
"List of files that you shared with others." : "Liste der Dateien, die Sie mit anderen geteilt haben.",
"Nothing shared yet" : "Noch nichts geteilt",
- "Files and folders you shared will show up here" : "Von Ihnen geteilte Dateien und Ordner werden hier angezeigt werden",
- "Shared by link" : "Geteilt über einen Link",
+ "Files and folders you shared will show up here" : "Von Ihnen geteilte Dateien und Ordner werden hier angezeigt",
+ "Shared by link" : "Über einen Link geteilt",
"List of files that are shared by link." : "Liste der Dateien, die mittels Link geteilt wurden.",
"No shared links" : "Keine geteilten Links",
- "Files and folders you shared by link will show up here" : "Von Ihnen mittels Link geteilte Dateien und Ordner werden hier angezeigt werden",
+ "Files and folders you shared by link will show up here" : "Von Ihnen mittels Link geteilte Dateien und Ordner werden hier angezeigt",
+ "File requests" : "Dateianfragen",
+ "List of file requests." : "Liste der Dateianfragen.",
+ "No file requests" : "Keine Dateianfragen",
+ "File requests you have created will show up here" : "Von Ihnen erstellte Dateianfragen werden hier angezeigt",
"Deleted shares" : "Gelöschte Freigaben",
"List of shares you left." : "Liste der Freigaben, die Sie verlassen haben.",
"No deleted shares" : "Keine gelöschten Freigaben",
- "Shares you have left will show up here" : "Freigaben die Sie verlassen haben, werden hier angezeigt werden",
+ "Shares you have left will show up here" : "Freigaben, die Sie verlassen haben, werden hier angezeigt",
"Pending shares" : "Ausstehende Freigaben",
"List of unapproved shares." : "Liste ungeprüfter Freigaben.",
"No pending shares" : "Keine ausstehenden Freigaben",
- "Shares you have received but not approved will show up here" : "Freigaben die Sie erhalten, aber nicht bestätigt haben, werden hier angezeigt werden",
+ "Shares you have received but not approved will show up here" : "Freigaben, die Sie erhalten, aber nicht bestätigt haben, werden hier angezeigt",
+ "Error deleting the share: {errorMessage}" : "Fehler beim Löschen der Freigabe: {errorMessage}",
+ "Error deleting the share" : "Fehler beim Löschen der Freigabe",
+ "Error updating the share: {errorMessage}" : "Fehler beim Aktualisieren der Freigabe: {errorMessage}",
+ "Error updating the share" : "Fehler beim Aktualisieren der Freigabe",
+ "File \"{path}\" has been unshared" : "Freigabe für die Datei \"{path}\" wurde entfernt",
+ "Folder \"{path}\" has been unshared" : "Freigabe für den Ordner \"{path}\" wurde entfernt",
+ "Could not update share" : "Freigabe konnte nicht aktualisiert werden",
+ "Share saved" : "Freigabe gespeichert",
+ "Share expiry date saved" : "Freigabe-Ablaufdatum gespeichert",
+ "Share hide-download state saved" : "\"Download verbergen\"-Status der Freigabe gespeichert",
+ "Share label saved" : "Freigabe-Label gespeichert",
+ "Share note for recipient saved" : "Freigabe-Notiz für Empfänger gespeichert",
+ "Share password saved" : "Freigabe-Passwort gespeichert",
+ "Share permissions saved" : "Freigabeberechtigungen gespeichert",
+ "To upload files to {folder}, you need to provide your name first." : "Um Dateien nach {folder} hochzuladen, müssen Sie zunächst Ihren Namen angeben.",
+ "Upload files to {folder}" : "Dateien hochladen nach {folder}",
+ "Please confirm your name to upload files to {folder}" : "Bitte bestätigen Sie Ihren Namen, um Dateien nach {folder} hochzuladen",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} hat einen Ordner mit Ihnen geteilt.",
+ "Names must not be empty." : "Namen dürfen nicht leer sein.",
+ "Names must not start with a dot." : "Namen dürfen nicht mit einem Punkt beginnen.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" ist innerhalb eines Namens unzulässig.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" ist ein reservierter Name und unzulässig.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" ist kein zulässiger Name.",
+ "Names must not end with \"{extension}\"." : "Namen dürfen nicht mit \"{extension}\" enden.",
+ "Invalid name." : "Ungültiger Name.",
+ "Shared by" : "Geteilt von",
+ "Shared with" : "Geteilt mit",
+ "Password created successfully" : "Passwort erstellt",
+ "Error generating password from password policy" : "Fehler beim Erzeugen des Passworts aufgrund der Passwortrichtlinie",
+ "Shared with you and the group {group} by {owner}" : "{owner} hat dies mit Ihnen und der Gruppe {group} geteilt",
+ "Shared with you and {circle} by {owner}" : "{owner} hat dies mit Ihnen und dem Kreis {circle} geteilt",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} hat diese mit Ihnen und der Unterhaltung {conversation} geteilt",
+ "Shared with you in a conversation by {owner}" : "{owner} hat diese mit Ihnen in einer Unterhaltung geteilt",
+ "Share not found" : "Freigabe nicht gefunden",
+ "Back to %s" : "Zurück zu %s",
+ "Add to your Nextcloud" : "Zu Ihrer Nextcloud hinzufügen",
+ "Waiting…" : "Warte…",
+ "error" : "Fehler",
+ "finished" : "Abgeschlossen",
+ "This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.",
+ "Move or copy" : "Verschieben oder kopieren",
+ "You can upload into this folder" : "Sie können in diesen Ordner hochladen",
+ "Show list view" : "Listenansicht anzeigen",
+ "Show grid view" : "Kachelansicht anzeigen",
+ "No compatible server found at {remote}" : "Keinen kompatiblen Server unter {remote} gefunden",
+ "Invalid server URL" : "Falsche Server-URL",
+ "Failed to add the public link to your Nextcloud" : "Der öffentliche Link konnte nicht zu Ihrer Nextcloud hinzugefügt werden",
+ "You are not allowed to edit link shares that you don't own" : "Sie dürfen keine Linkfreigaben bearbeiten, die Sie nicht besitzen",
+ "Download all files" : "Alle Dateien herunterladen",
+ "Link copied to clipboard" : "Link wurde in die Zwischenablage kopiert",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 E-Mail-Adresse bereits hinzugefügt","{count} E-Mail-Adressen bereits hinzugefügt"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"],
+ "Copy to clipboard" : "In die Zwischenablage kopieren",
+ "Copy internal link to clipboard" : "Internen Link in die Zwischenablage kopieren",
+ "Only works for people with access to this folder" : "Funktioniert nur für Personen mit Zugriff auf diesen Ordner",
+ "Only works for people with access to this file" : "Funktioniert nur für Personen mit Zugriff auf diese Datei",
+ "Copy public link of \"{title}\" to clipboard" : "Öffentlichen Link von \"{title}\" in die Zwischenablage kopieren",
+ "Search globally" : "Global suchen",
+ "Search for share recipients" : "Nach Freigabeempfängern suchen",
+ "No recommendations. Start typing." : "Keine Empfehlungen. Beginnen Sie mit der Eingabe.",
+ "To upload files, you need to provide your name first." : "Um Dateien hochzuladen, müssen Sie zunächst Ihren Namen angeben.",
+ "Enter your name" : "Geben Sie Ihren Namen ein",
+ "Submit name" : "Name übermitteln",
+ "Share with {userName}" : "Mit {userName} teilen",
+ "Show sharing options" : "Freigabeoptionen anzeigen",
"Share note" : "Notiz teilen",
"Upload files to %s" : "Dateien für %s hochladen",
+ "%s shared a folder with you." : "%s hat einen Ordner mit Ihnen geteilt.",
"Note" : "Notiz",
"Select or drop files" : "Dateien auswählen oder hierher ziehen",
"Uploading files" : "Dateien werden hochgeladen",
- "Uploaded files:" : "Hochgeladene Dateien: ",
+ "Uploaded files:" : "Hochgeladene Dateien:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Durch das Hochladen von Dateien stimmen Sie den %1$sNutzungsbedingungen%2$s zu.",
- "Add to your Nextcloud" : "Zu Ihrer Nextcloud hinzufügen",
- "Files and folders others share with you will show up here" : "Mit Ihnen geteilte Dateien und Ordner anderer werden hier erscheinen",
- "Files and folders you share will show up here" : "Dateien und Ordner, die Sie teilen, werden hier erscheinen",
- "Files and folders you share by link will show up here" : "Per Link freigegebene Dateien und Ordner werden hier erscheinen",
- "Shares you deleted will show up here" : "Von Ihnen gelöschte Freigaben werden hier angezeigt",
- "Shares you have received but not confirmed will show up here" : "Freigaben, die Sie erhalten, aber nicht bestätigt haben, werden hier angezeigt",
- "Shares will show up here" : "Freigaben werden hier angezeigt",
- "Restore" : "Wiederherstellen",
- "Something happened. Unable to restore the share." : "Die Freigabe konnte nicht wiederhergestellt werden.",
- "Something happened. Unable to accept the share." : "Die Freigabe konnte nicht akzeptiert werden.",
- "Something happened. Unable to reject the share." : "Die Freigabe konnte nicht abgelehnt werden.",
- "No expiration date set" : "Kein Ablaufdatum gesetzt",
- "Please specify a valid user" : "Bitte geben Sie einen gültigen Benutzer an",
- "Please specify a valid federated user ID" : "Bitte geben Sie eine gültige Federated-Benutzer-ID ein",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Diese App ermöglicht es Benutzern, Dateien innerhalb von Nextcloud zu teilen. Wenn aktiviert, kann der Administrator wählen, welche Gruppen Dateien teilen können. Die entsprechenden Benutzer können dann Dateien und Ordner mit anderen Benutzern und Gruppen innerhalb von Nextcloud teilen. Wenn der Administrator die Funktion zum Teilen von Links aktiviert, kann ein externer Link verwendet werden, um Dateien mit anderen Benutzern außerhalb von Nextcloud zu teilen. Administratoren können auch Passwörter und Ablaufdaten erzwingen und die Freigabe von Server zu Server über Freigabelinks sowie die Freigabe von mobilen Geräten aus aktivieren.\nWenn Sie die Funktion deaktivieren, werden freigegebene Dateien und Ordner auf dem Server für alle Freigabeempfänger und auch auf den Sync-Clients und mobilen Apps entfernt. Weitere Informationen finden Sie in der Nextcloud-Dokumentation.",
- "Accept user and group shares by default" : "Benutzer- und Gruppenfreigaben standardmäßig akzeptieren",
- "Read only" : "Schreibgeschützt",
- "File drop (upload only)" : "Dateien ablegen (nur Hochladen)",
- "Upload" : "Hochladen",
- "Bundled permissions" : "Gebündelte Berechtigungen",
- "Only works for users with access to this folder" : "Funktioniert nur für Benutzer, die Zugriff auf diesen Ordner haben",
- "Only works for users with access to this file" : "Funktioniert nur für Benutzer, die Zugriff auf diese Datei haben",
- "Circle" : "Kreis",
- "Update" : "Aktualisieren",
- "Share with " : "Teilen mit ",
- "No other users with access found" : "Keine anderen Benutzer mit Zugriff gefunden",
- "No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden",
"Name" : "Name",
- "Share time" : "Freigabezeitpunkt",
- "Sorry, this link does not seem to work anymore." : "Leider scheint dieser Link nicht mehr zu funktionieren.",
- "Reasons might be:" : "Gründe könnten sein:",
- "the item was removed" : "Das Element wurde entfernt",
- "the link expired" : "Der Link ist abgelaufen",
- "sharing is disabled" : "Teilen ist deaktiviert",
- "For more info, please ask the person who sent this link." : "Um nähere Informationen zu erhalten, wenden Sie sich bitte an die Person, die Ihnen diesen Link geschickt hat.",
- "Share with remote" : "Mit Entfernten teilen",
- "Share with" : "Teilen mit"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Verwenden Sie diese Methode, um Dateien für Personen oder Teams innerhalb Ihrer Organisation freizugeben. Wenn der Empfänger bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, können Sie ihm den internen Freigabelink für einen einfachen Zugriff senden.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Verwenden Sie diese Methode, um Dateien für Personen oder Organisationen außerhalb Ihrer Organisation freizugeben. Dateien und Ordner können über öffentliche Freigabelinks und E-Mail-Adressen freigegeben werden. Sie können auch Dateien für andere Nextcloud-Konten freigeben, die auf verschiedenen Instanzen gehostet werden, indem Sie deren Federated-Cloud-ID verwenden.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Freigaben, die nicht zu internen oder externen Freigaben gehören. Dies können Freigaben von Apps oder anderen Quellen sein.",
+ "Share with accounts, teams, federated cloud id" : "Teilen mit Konten, Teams, Federated-Cloud-IDs",
+ "Share with accounts and teams" : "Teile mit Konten und Teams",
+ "Federated cloud ID" : "Federated-Cloud-ID",
+ "Email, federated cloud id" : "Name, Federated-Cloud-ID",
+ "Filename must not be empty." : "Dateiname darf nicht leer sein."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/el.js b/apps/files_sharing/l10n/el.js
index 3177d785e81..501b00e058f 100644
--- a/apps/files_sharing/l10n/el.js
+++ b/apps/files_sharing/l10n/el.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Αναμονή...",
- "error" : "σφάλμα ",
- "finished" : "ολοκληρώθηκε",
- "This will stop your current uploads." : "Αυτό θα σταματήσει τις τρέχουσες μεταφορτώσεις.",
- "Move or copy" : "Μετακίνηση ή αντιγραφή",
- "Download" : "Λήψη",
- "Delete" : "Διαγραφή",
- "You can upload into this folder" : "Μπορείτε να μεταφορτώσετε σε αυτόν τον φάκελο",
- "Terms of service" : "Όροι χρήσης",
- "Show list view" : "Προβολή λίστας",
- "Show grid view" : "Προβολή πλέγματος",
- "No compatible server found at {remote}" : "Δεν βρέθηκε συμβατός διακομιστής σε {remote}",
- "Invalid server URL" : "Μη έγκυρο URL διακομιστή",
- "Failed to add the public link to your Nextcloud" : "Αποτυχία στην πρόσθεση του κοινού συνδέσμου στο Nextcloud σας",
"File shares" : "Κοινή χρήση αρχείων",
"Downloaded via public link" : "Μεταφορτώθηκε μέσω δημόσιου συνδέσμου",
"Downloaded by {email}" : "Μεταφορτώθηκε από {email}",
@@ -70,7 +56,7 @@ OC.L10N.register(
"Share for file {file} expired" : "Η κοινή χρήση του αρχείου {file} έληξε",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Ένα αρχείο ή φάκελος διαμοιρασμένο με mail ή με δημόσιο σύνδεσμο <strong>κατέβηκε</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Ένα αρχείο ή φάκελος διαμοιράστηκε από <strong>έναν άλλο διακομιστή</strong>",
- "Files" : "Αρχεία",
+ "Sharing" : "Διαμοιρασμός",
"A file or folder has been <strong>shared</strong>" : "Ένα αρχείο ή φάκελος <strong>διαμοιράστηκε</strong>",
"Shared link" : "Διαμοιρασμένος σύνδεσμος",
"Wrong share ID, share does not exist" : "Λάθος ID κοινής χρήσης, η κοινή χρήση δεν υπάρχει",
@@ -78,28 +64,25 @@ OC.L10N.register(
"Please specify a file or folder path" : "Παρακαλούμε καθορίστε την διαδρομή για το αρχείο ή τον φάκελο",
"Wrong path, file/folder does not exist" : "Λάθος διαδρομή, το αρχείο/φάκελος δεν υπάρχει",
"Could not create share" : "Αδυναμία δημιουργίας κοινόχρηστου",
- "Invalid permissions" : "Μη έγκυρα δικαιώματα",
- "Invalid date, date format must be YYYY-MM-DD" : "Μη έγκυρη ημερομηνία, η μορφή της ημερομηνίας πρέπει να είναι YYYY-MM-DD",
"Please specify a valid account to share with" : "Παρακαλούμε καθορίστε έναν έγκυρο λογαριασμό για κοινή χρήση",
"Group sharing is disabled by the administrator" : "Διαμοιρασμός σε ομάδες είναι απενεργοποιημένος από τον διαχειρηστή",
"Please specify a valid group" : "Παρακαλούμε καθορίστε μια έγκυρη ομάδα",
"Public link sharing is disabled by the administrator" : "Διαμοιρασμός δημόσιου συνδέσμου είναι απενεργοποιημένος από τον διαχειριστή",
- "Public upload disabled by the administrator" : "Δημόσιο ανέβασμα είναι απενεργοποιημένο από τον διαχειριστή",
- "Public upload is only possible for publicly shared folders" : "Δημόσιο ανέβασμα είναι δυνατό μόνο για δημόσια διαμοιρασμένους φακέλους",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Η κοινή χρήση %s της αποστολής του κωδικού πρόσβασης από το Nextcloud Talk απέτυχε επειδή δεν είναι ενεργοποιημένο το Nextcloud Talk",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Διαμοιρασμός %1$s απέτυχε επειδή ο εξυπηρετητής δεν επιτρέπει διαμοιρασμούς από τύπο %2$s",
- "You cannot share to a Circle if the app is not enabled" : "Δεν μπορείτε να διαμοιράσετε σε έναν Κύκλο εάν η εφαρμογή δεν είναι ενεργοποιημένη",
- "Please specify a valid circle" : "Παρακαλούμε προσδιορίστε έναν έγκυρο κύκλο",
"Sharing %s failed because the back end does not support room shares" : "Διαμοιρασμός %s απέτυχε επειδή ο εξυπηρετητής δεν επιτρέπει διαμοιρασμούς δωματίων",
"Unknown share type" : "Άγνωστος τύπος διαμοιρασμού",
"Not a directory" : "Δεν είναι κατάλογος",
"Could not lock node" : "Δεν ήταν δυνατό να κλειδώσει ο κόμβος",
- "Could not lock path" : "Αδυναμία κλειδώματος διαδρομής",
- "Wrong or no update parameter given" : "Λάθος ή καμία παράμετρος αναβάθμισης δεν δόθηκε",
+ "Public upload is only possible for publicly shared folders" : "Δημόσιο ανέβασμα είναι δυνατό μόνο για δημόσια διαμοιρασμένους φακέλους",
"Share must at least have READ or CREATE permissions" : "Το κοινόχρηστο πρέπει να έχει τουλάχιστον άδεια για ΑΝΑΓΝΩΣΗ ή ΔΗΜΙΟΥΡΓΙΑ",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Το κοινόχρηστο πρέπει να έχει άδεια ΑΝΑΓΝΩΣΗ αν οριστεί άδεια ΕΝΗΜΕΡΩΣΗ ή ΔΙΑΓΡΑΦΗ",
+ "Public upload disabled by the administrator" : "Δημόσιο ανέβασμα είναι απενεργοποιημένο από τον διαχειριστή",
+ "Could not lock path" : "Αδυναμία κλειδώματος διαδρομής",
+ "Wrong or no update parameter given" : "Λάθος ή καμία παράμετρος αναβάθμισης δεν δόθηκε",
+ "Wrong password" : "Λάθος κωδικός πρόσβασης",
"shared by %s" : "Διαμοιράστηκε από 1 %s",
- "Download all files" : "Λήψη όλων των αρχείων",
+ "Download" : "Λήψη",
"Direct link" : "Άμεσος σύνδεσμος",
"Share API is disabled" : "API διαμοιρασμού είναι απενεργοποιημένο",
"File sharing" : "Διαμοιρασμός αρχείων",
@@ -109,15 +92,28 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Λάβατε το {share} ομάδας {group} ως κοινή χρήση από τον {user}",
"Accept" : "Αποδοχή",
"Decline" : "Απόρριψη",
- "Sharing" : "Διαμοιρασμός",
- "Accept shares from other accounts and groups by default" : "Αποδοχή κοινόχρηστων από άλλους λογαριασμούς και ομάδες από προεπιλογή",
+ "People" : "Άτομα",
+ "Expiration date" : "Ημερομηνία λήξης",
+ "Set a password" : "Ορισμός συνθηματικού",
+ "Password" : "Συνθηματικό",
+ "Link copied" : "Ο σύνδεσμος αντιγράφηκε",
+ "Share link" : "Διαμοιρασμός συνδέσμου",
+ "Copy" : "Αντιγραφή",
+ "Send link via email" : "Αποστολή συνδέσμου μέσω email",
+ "Select" : "Επιλογή",
+ "Close" : "Κλείσιμο",
+ "Error creating the share: {errorMessage}" : "Σφάλμα κατά τη δημιουργία της κοινής χρήσης: {errorMessage}",
+ "Error creating the share" : "Σφάλμα κατά την δημιουργία κοινόχρηστου",
+ "Cancel" : "Ακύρωση",
+ "Continue" : "Συνεχίστε",
"Error while toggling options" : "Σφάλμα κατά την εναλλαγή επιλογών",
- "Set default folder for accepted shares" : "Ορισμός προεπιλεγμένου φακέλου για αποδεκτά κοινόχρηστα στοιχεία",
- "Reset" : "Επαναφορά",
- "Reset folder to system default" : "Επαναφορά του φακέλου στις προεπιλογές συστήματος",
+ "Accept shares from other accounts and groups by default" : "Αποδοχή κοινόχρηστων από άλλους λογαριασμούς και ομάδες από προεπιλογή",
"Choose a default folder for accepted shares" : "Επιλέξτε έναν προεπιλεγμένο φάκελο για τα κοινόχρηστα στοιχεία που γίνονται αποδεκτά ",
"Invalid path selected" : "Επιλέχθηκε μη έγκυρη διαδρομή",
"Unknown error" : "Άγνωστο σφάλμα",
+ "Set default folder for accepted shares" : "Ορισμός προεπιλεγμένου φακέλου για αποδεκτά κοινόχρηστα στοιχεία",
+ "Reset" : "Επαναφορά",
+ "Reset folder to system default" : "Επαναφορά του φακέλου στις προεπιλογές συστήματος",
"group" : "ομάδα",
"conversation" : "συνομιλία",
"remote" : "απομακρυσμένα",
@@ -129,102 +125,86 @@ OC.L10N.register(
"Added by {initiator}" : "Προστέθηκε από {initiator}",
"Via “{folder}”" : "Μέσω “{folder}”",
"Unshare" : "Αναίρεση διαμοιρασμού",
- "Internal link" : "Εσωτερικός σύνδεσμος",
"Cannot copy, please copy the link manually" : "Δεν μπορεί να αντιγραφεί, παρακαλώ αντιγράψτε χειροκίνητα",
- "Copy internal link to clipboard" : "Αντιγραφή εσωτερικού συνδέσμου στο πρόχειρο",
- "Only works for people with access to this folder" : "Λειτουργεί μόνο για άτομα με πρόσβαση σε αυτόν τον φάκελο",
- "Only works for people with access to this file" : "Λειτουργεί μόνο για άτομα με πρόσβαση σε αυτό το αρχείο",
- "Link copied" : "Ο σύνδεσμος αντιγράφηκε",
+ "Copy internal link" : "Αντιγραφή εσωτερικού συνδέσμου",
+ "Internal link" : "Εσωτερικός σύνδεσμος",
+ "{shareWith} by {initiator}" : "{shareWith} από {initiator}",
+ "Shared via link by {initiator}" : "Διαμοιράστηκε μέσω συνδέσμου {initiator}",
+ "Share link ({label})" : "Σύνδεσμος κοινής χρήσης ({label})",
+ "Share link ({index})" : "Διαμοιρασμός συνδέσμου ({index})",
+ "Create public link" : "Δημιουργία δημόσιου συνδέσμου",
+ "Actions for \"{title}\"" : "Ενέργειες για \"{title}\"",
+ "Error, please enter proper password and/or expiration date" : "Σφάλμα, παρακαλώ εισάγετε τον σωστό κωδικό πρόσβασης και/ή ημερομηνία λήξης",
+ "Link share created" : "Δημιουργήθηκε ο σύνδεσμος κοινής χρήσης",
+ "Error while creating the share" : "Σφάλμα κατά τη δημιουργία κοινόχρηστου",
"Please enter the following required information before creating the share" : "Καταχωρίστε τις ακόλουθες απαιτούμενες πληροφορίες πριν δημιουργήσετε το κοινόχρηστο στοιχείο",
"Password protection (enforced)" : "Προστασία με κωδικό (υποχρεωτικό)",
"Password protection" : "Προστασία συνθηματικού",
"Enter a password" : "Εισάγετε ένα συνθηματικό",
- "Expiration date (enforced)" : "Ημερομηνία λήξης (υποχρεωτικά)",
- "Enter a date" : "Προσθέστε ημερομηνία",
"Create share" : "Δημιουργήστε κοινή χρήση",
- "Cancel" : "Ακύρωση",
"Customize link" : "Προσαρμογή συνδέσμου",
"Generate QR code" : "Δημιουργία QR code",
"Add another link" : "Προσθήκη άλλου συνδέσμου",
"Create a new share link" : "Δημιουργία νέου κοινόχρηστου συνδέσμου",
- "{shareWith} by {initiator}" : "{shareWith} από {initiator}",
- "Shared via link by {initiator}" : "Διαμοιράστηκε μέσω συνδέσμου {initiator}",
- "Share link ({label})" : "Σύνδεσμος κοινής χρήσης ({label})",
- "Share link" : "Διαμοιρασμός συνδέσμου",
- "Actions for \"{title}\"" : "Ενέργειες για \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Αντιγραφή του δημόσιου συνδέσμου \"{title}\" στο πρόχειρο",
- "Error, please enter proper password and/or expiration date" : "Σφάλμα, παρακαλώ εισάγετε τον σωστό κωδικό πρόσβασης και/ή ημερομηνία λήξης",
- "Link share created" : "Δημιουργήθηκε ο σύνδεσμος κοινής χρήσης",
- "Error while creating the share" : "Σφάλμα κατά τη δημιουργία κοινόχρηστου",
"View only" : "Μόνο για προβολή",
"Can edit" : "Δυνατότητα επεξεργασίας",
- "File drop" : "Απόθεση αρχείου",
"Custom permissions" : "Προσαρμοσμένα δικαιώματα",
- "Search for share recipients" : "Αναζήτηση για παραλήπτες διαμοιρασμού",
- "No recommendations. Start typing." : "Δεν υπάρχουν συστάσεις. Αρχίστε να πληκτρολογείτε.",
"Resharing is not allowed" : "Δεν επιτρέπεται ο επαναμοιρασμός",
"Name or email …" : "Όνομα ή διεύθυνση ηλεκτρονικού ταχυδρομείου",
"Name, email, or Federated Cloud ID …" : "Όνομα, διεύθυνση ηλεκτρονικού ταχυδρομείου ή Ομοσπονδιακό αναγνωριστικό Cloud…",
"Searching …" : "Αναζήτηση ...",
"No elements found." : "Δεν βρέθηκαν στοιχεία.",
- "Search globally" : "Γενική αναζήτηση",
+ "Search everywhere" : "Αναζητήστε παντού",
"Guest" : "Επισκέπτης",
"Group" : "Ομάδα",
"Email" : "Email",
"Talk conversation" : "Συνομιλία στο Talk",
"Deck board" : "Πίνακας του Deck",
"on {server}" : "στον {server}",
+ "Note:" : "Σημείωση:",
+ "File drop" : "Απόθεση αρχείου",
+ "Terms of service" : "Όροι χρήσης",
+ "Share with group" : "Κοινή χρήση με ομάδα",
+ "Share in conversation" : "Κοινή χρήση σε συζήτηση",
+ "Share with guest" : "Κοινή χρήση με επισκέπτη",
+ "Update share" : "Ενημέρωση κοινόχρηστου",
+ "Save share" : "Αποθήκευση κοινόχρηστου",
+ "Read" : "Ανάγνωση",
+ "Create" : "Δημιουργία",
+ "Edit" : "Επεξεργασία",
+ "Share" : "Διαμοιρασμός",
+ "Delete" : "Διαγραφή",
"Allow upload and editing" : "Επέτρεψε την μεταφόρτωση και επεξεργασία",
"Allow editing" : "Επιτρέπεται η επεξεργασία",
"Advanced settings" : "Ρυθμίσεις για προχωρημένους",
"Share label" : "Ετικέτα διαμοιρασμού",
"Set password" : "Ορισμός κωδικού πρόσβασης",
- "Password" : "Συνθηματικό",
"Password expired" : "Ο κωδικός πρόσβασης έληξε",
"Video verification" : "Επαλήθευση βίντεο",
+ "Expiration date (enforced)" : "Ημερομηνία λήξης (υποχρεωτικά)",
"Set expiration date" : "Ορισμός ημερομηνίας λήξης",
- "Expiration date" : "Ημερομηνία λήξης",
"Hide download" : "Απόκρυψη λήψης",
- "Allow download" : "Να επιτρέπεται η λήψη",
"Note to recipient" : "Σημείωση προς τον παραλήπτη",
"Enter a note for the share recipient" : "Προσθέτε σημείωση για τους παραλήπτες του κοινόχρηστου",
- "Read" : "Ανάγνωση",
- "Create" : "Δημιουργία",
- "Edit" : "Επεξεργασία",
- "Share" : "Διαμοιρασμός",
"Delete share" : "Διαγραφή κοινόχρηστου",
- "Share with group" : "Κοινή χρήση με ομάδα",
- "Share in conversation" : "Κοινή χρήση σε συζήτηση",
- "Share with guest" : "Κοινή χρήση με επισκέπτη",
- "Update share" : "Ενημέρωση κοινόχρηστου",
- "Save share" : "Αποθήκευση κοινόχρηστου",
"Others with access" : "Άλλοι με πρόσβαση",
"Toggle list of others with access to this directory" : "Εναλλαγή λίστας άλλων με πρόσβαση σε αυτόν τον κατάλογο",
"Toggle list of others with access to this file" : "Εναλλαγή λίστας άλλων με πρόσβαση σε αυτόν το αρχείο",
"Unable to fetch inherited shares" : "Δεν είναι δυνατή η λήψη άλλων διαμοιρασμών",
+ "Shares" : "Κοινόχρηστα",
"Unable to load the shares list" : "Δεν είναι δυνατή η φόρτωση λίστας διαμοιρασμών",
"Expires {relativetime}" : "Λήγει {relativetime}",
"this share just expired." : "το κοινόχρηστο μόλις έληξε.",
"Shared with you by {owner}" : "Διαμοιράστηκε με σας από τον {owner}",
+ "Link to a file" : "Σύνδεσμος σε αρχείο",
"_Accept share_::_Accept shares_" : ["Αποδοχή κοινόχρηστου","Αποδοχή κοινόχρηστων"],
"Open in Files" : "Άνοιγμα στα Αρχεία",
"_Reject share_::_Reject shares_" : ["Απόρριψη κοινόχρηστου","Απόρριψη κοινόχρηστων"],
"_Restore share_::_Restore shares_" : ["Επαναφορά κοινόχρηστου","Επαναφορά κοινόχρηστων"],
"Shared" : "Κοινόχρηστα",
- "Show sharing options" : "Εμφάνιση επιλογών κοινής χρήσης",
- "Link to a file" : "Σύνδεσμος σε αρχείο",
- "Error creating the share: {errorMessage}" : "Σφάλμα κατά τη δημιουργία της κοινής χρήσης: {errorMessage}",
- "Error creating the share" : "Σφάλμα κατά την δημιουργία κοινόχρηστου",
- "Error updating the share: {errorMessage}" : "Σφάλμα κατά τη δημιουργία της κοινής χρήσης: {errorMessage}",
- "Error updating the share" : "Σφάλμα κατά την ενημέρωση του κοινόχρηστου",
- "Shared by" : "Διαμοιράστηκε από",
- "Shared with" : "Διαμοιράστηκε με",
- "Password created successfully" : "Συνθηματικό δημιουργήθηκε με επιτυχία",
- "Shared with you and the group {group} by {owner}" : "Διαμοιράστηκε με σας και με την ομάδα {group} του {owner}",
- "Shared with you and {circle} by {owner}" : "Διαμοιράστηκε με σας και τον {circle} από τον {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Διαμοιράστηκε με σας και με τη συζήτηση {conversation} από {owner}",
- "Shared with you in a conversation by {owner}" : "Διαμοιράστηκε με σας από τον {owner}",
- "Shares" : "Κοινόχρηστα",
+ "Shared with others" : "Διαμοιρασμένα με άλλους",
+ "No file" : "Κανένα αρχείο",
+ "Public share" : "Δημόσια κοινόχρηστο",
"Overview of shared files." : "Επισκόπηση κοινόχρηστων αρχείων.",
"No shares" : "Κανένα κοινόχρηστο",
"Files and folders you shared or have been shared with you will show up here" : "Αρχεία και φάκελοι που μοιραστήκατε ή έχουν μοιραστεί με εσάς θα εμφανιστούν εδώ",
@@ -232,7 +212,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Λίστα αρχείων σε κοινή χρήση με εσάς.",
"Nothing shared with you yet" : "Κανένα αρχείο δεν έχει διαμοιραστεί ακόμα με εσάς.",
"Files and folders others shared with you will show up here" : "Αρχεία και φάκελοι που άλλοι έχουν μοιραστεί μαζί σας θα εμφανιστούν εδώ",
- "Shared with others" : "Διαμοιρασμένα με άλλους",
"List of files that you shared with others." : "Λίστα των αρχείων που μοιραστήκατε με άλλους.",
"Nothing shared yet" : "Δεν έχει διαμοιραστεί τίποτα μέχρι στιγμής",
"Files and folders you shared will show up here" : "Αρχεία και φάκελοι που μοιραστήκατε θα εμφανιστούν εδώ",
@@ -248,6 +227,45 @@ OC.L10N.register(
"List of unapproved shares." : "Λίστα μη αποδεκτών κοινόχρηστων.",
"No pending shares" : "Δεν εκκρεμούν κοινόχρηστα",
"Shares you have received but not approved will show up here" : "Κοινόχρηστα που έχετε λάβει αλλά δεν έχετε εγκρίνει θα εμφανιστούν εδώ",
+ "Error deleting the share" : "Σφάλμα διαγραφής του κοινόχρηστου",
+ "Error updating the share: {errorMessage}" : "Σφάλμα κατά τη δημιουργία της κοινής χρήσης: {errorMessage}",
+ "Error updating the share" : "Σφάλμα κατά την ενημέρωση του κοινόχρηστου",
+ "Share label saved" : "Διαμοιρασμένη ετικέτα αποθηκεύτηκε ",
+ "Share password saved" : "Διαμοιρασμένο συνθηματικό αποθηκεύτηκε ",
+ "Shared by" : "Διαμοιράστηκε από",
+ "Shared with" : "Διαμοιράστηκε με",
+ "Password created successfully" : "Συνθηματικό δημιουργήθηκε με επιτυχία",
+ "Error generating password from password policy" : "Σφάλμα δημιουργίας συνθηματικού από την πολιτική συνθηματικών",
+ "Shared with you and the group {group} by {owner}" : "Διαμοιράστηκε με σας και με την ομάδα {group} του {owner}",
+ "Shared with you and {circle} by {owner}" : "Διαμοιράστηκε με σας και τον {circle} από τον {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Διαμοιράστηκε με σας και με τη συζήτηση {conversation} από {owner}",
+ "Shared with you in a conversation by {owner}" : "Διαμοιράστηκε με σας από τον {owner}",
+ "Share not found" : "Δεν βρέθηκε το κονόχρηστο",
+ "Back to %s" : "Πίσω στο %s",
+ "Add to your Nextcloud" : "Προσθήκη στο Nextcloud σου",
+ "Waiting…" : "Αναμονή...",
+ "error" : "σφάλμα ",
+ "finished" : "ολοκληρώθηκε",
+ "This will stop your current uploads." : "Αυτό θα σταματήσει τις τρέχουσες μεταφορτώσεις.",
+ "Move or copy" : "Μετακίνηση ή αντιγραφή",
+ "You can upload into this folder" : "Μπορείτε να μεταφορτώσετε σε αυτόν τον φάκελο",
+ "Show list view" : "Προβολή λίστας",
+ "Show grid view" : "Προβολή πλέγματος",
+ "No compatible server found at {remote}" : "Δεν βρέθηκε συμβατός διακομιστής σε {remote}",
+ "Invalid server URL" : "Μη έγκυρο URL διακομιστή",
+ "Failed to add the public link to your Nextcloud" : "Αποτυχία στην πρόσθεση του κοινού συνδέσμου στο Nextcloud σας",
+ "Download all files" : "Λήψη όλων των αρχείων",
+ "Link copied to clipboard" : "Ο σύνδεσμος αντιγράφηκε στο πρόχειρο",
+ "Copy to clipboard" : "Αντιγραφή στο πρόχειρο",
+ "Copy internal link to clipboard" : "Αντιγραφή εσωτερικού συνδέσμου στο πρόχειρο",
+ "Only works for people with access to this folder" : "Λειτουργεί μόνο για άτομα με πρόσβαση σε αυτόν τον φάκελο",
+ "Only works for people with access to this file" : "Λειτουργεί μόνο για άτομα με πρόσβαση σε αυτό το αρχείο",
+ "Copy public link of \"{title}\" to clipboard" : "Αντιγραφή του δημόσιου συνδέσμου \"{title}\" στο πρόχειρο",
+ "Search globally" : "Γενική αναζήτηση",
+ "Search for share recipients" : "Αναζήτηση για παραλήπτες διαμοιρασμού",
+ "No recommendations. Start typing." : "Δεν υπάρχουν συστάσεις. Αρχίστε να πληκτρολογείτε.",
+ "Enter your name" : "Προσθέστε το όνομά σας",
+ "Show sharing options" : "Εμφάνιση επιλογών κοινής χρήσης",
"Share note" : "Σημείωση κοινόχρηστου",
"Upload files to %s" : "Αποστολή αρχείων σε %s",
"Note" : "Σημείωση",
@@ -255,40 +273,7 @@ OC.L10N.register(
"Uploading files" : "Μεταφόρτωση αρχείων",
"Uploaded files:" : "Αποστολή αρχείων:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Με την μεταφόρτωση αρχείων, συμφωνείτε με %1$sόρους χρήσεως %2$s.",
- "Add to your Nextcloud" : "Προσθήκη στο Nextcloud σου",
- "Files and folders others share with you will show up here" : "Τα αρχεία και οι φάκελοι που άλλοι διαμοιράζονται με εσάς θα εμφανιστούν εδώ",
- "Files and folders you share will show up here" : "Τα αρχεία και οι φάκελοι που διαμοιράζεστε θα εμφανιστούν εδώ",
- "Files and folders you share by link will show up here" : "Τα αρχεία και οι φάκελοι που διαμοιράζεστε μέσω συνδέσμου θα εμφανιστούν εδώ",
- "Shares you deleted will show up here" : "Τα κοινόχρηστα που διαγράψατε θα εμφανίζονται εδώ",
- "Shares you have received but not confirmed will show up here" : "Κοινόχρηστα που λάβατε αλλά δεν επιβεβαιώθηκαν θα εμφανίζονται εδώ",
- "Shares will show up here" : "Τα κοινόχρηστα θα εμφανιστούν εδώ",
- "Restore" : "Επαναφορά",
- "Something happened. Unable to restore the share." : "Κάτι συνέβη. Δεν μπορεί να γίνει επαναφορά.",
- "Something happened. Unable to accept the share." : "Κάτι συνέβη. Δεν μπορεί να γίνει η αποδοχή.",
- "Something happened. Unable to reject the share." : "Κάτι συνέβη. Δεν μπορεί να απορριφθεί το κοινόχρηστο",
- "No expiration date set" : "Δεν ορίστηκε ημερομηνία λήξης",
- "Please specify a valid user" : "Παρακαλούμε καθορίστε έναν έγκυρο χρήστη",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Η εφαρμογή επιτρέπει στους χρήστες να διαμοιράζονται αρχεία μέσω του Nextcloud. Εάν ενεργοποιηθεί, ο διαχειριστής μπορεί να επιλέξει ποιες ομάδες μπορούν να διαμοιράζονται αρχεία. Αυτοί οι χρήστες μπορούν τότε να διαμοιράζονται αρχεία και φακέλους με άλλους χρήστες και ομάδες μέσα στο Nextcloud. Επιπλέον, εάν ο διαχειριστής ενεργοποιήσει τη δυνατότητα συνδέσμου κοινής χρήσης, μπορεί να χρησιμοποιηθεί ένας εξωτερικός σύνδεσμος για την κοινή χρήση αρχείων με άλλους χρήστες εκτός του Nextcloud. Οι διαχειριστές μπορούν επίσης να επιβάλλουν κωδικούς πρόσβασης, ημερομηνίες λήξης και να επιτρέπουν την κοινή χρήση μεταξύ διακομιστών μέσω συνδέσμων κοινής χρήσης, καθώς και την κοινή χρήση από κινητές συσκευές.\nΗ απενεργοποίηση της λειτουργίας καταργεί τα κοινόχρηστα αρχεία και τους φακέλους στο διακομιστή για όλους τους παραλήπτες κοινής χρήσης, καθώς και για τους υπολογιστές-πελάτες συγχρονισμού και τις εφαρμογές για κινητά. Περισσότερες πληροφορίες διατίθενται στην Τεκμηρίωση Nextcloud.",
- "Accept user and group shares by default" : "Αποδοχή διαμοιρασμών από χρήστες και ομάδες από προεπιλογή",
- "Read only" : "Μόνο για ανάγνωση",
- "File drop (upload only)" : "Απόθεση αρχείου (μόνο μεταφόρτωση)",
- "Upload" : "Μεταφόρτωση",
- "Bundled permissions" : "Ομαδοποιημένα δικαιώματα",
- "Only works for users with access to this folder" : "Δουλεύει μόνο για χρήστες με πρόσβαση σε αυτό το φάκελο",
- "Only works for users with access to this file" : "Δουλεύει μόνο για χρήστες με πρόσβαση στο αρχείο",
- "Circle" : "Κύκλος",
- "Update" : "Ενημέρωση",
- "Share with " : "Κοινή χρήση με",
- "No other users with access found" : "Δεν βρέθηκαν άλλοι χρήστες με πρόσβαση",
- "No entries found in this folder" : "Δεν βρέθηκαν καταχωρήσεις σε αυτόν το φάκελο",
"Name" : "Όνομα",
- "Share time" : "Χρόνος διαμοιρασμού",
- "Sorry, this link does not seem to work anymore." : "Λυπούμαστε, αυτός ο σύνδεσμος δεν φαίνεται να λειτουργεί πλέον.",
- "Reasons might be:" : "Οι λόγοι μπορεί να είναι:",
- "the item was removed" : "το αντικείμενο απομακρύνθηκε",
- "the link expired" : "ο σύνδεσμος έληξε",
- "sharing is disabled" : "ο διαμοιρασμός απενεργοποιήθηκε",
- "For more info, please ask the person who sent this link." : "Για περισσότερες πληροφορίες, παρακαλούμε ρωτήστε το άτομο που σας έστειλε αυτόν τον σύνδεσμο.",
- "Share with" : "Διαμοιρασμός με"
+ "Filename must not be empty." : "Το όνομα αρχείου δεν πρέπει να είναι κενό."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/el.json b/apps/files_sharing/l10n/el.json
index 9ebeaa0041d..696622ce3d3 100644
--- a/apps/files_sharing/l10n/el.json
+++ b/apps/files_sharing/l10n/el.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Αναμονή...",
- "error" : "σφάλμα ",
- "finished" : "ολοκληρώθηκε",
- "This will stop your current uploads." : "Αυτό θα σταματήσει τις τρέχουσες μεταφορτώσεις.",
- "Move or copy" : "Μετακίνηση ή αντιγραφή",
- "Download" : "Λήψη",
- "Delete" : "Διαγραφή",
- "You can upload into this folder" : "Μπορείτε να μεταφορτώσετε σε αυτόν τον φάκελο",
- "Terms of service" : "Όροι χρήσης",
- "Show list view" : "Προβολή λίστας",
- "Show grid view" : "Προβολή πλέγματος",
- "No compatible server found at {remote}" : "Δεν βρέθηκε συμβατός διακομιστής σε {remote}",
- "Invalid server URL" : "Μη έγκυρο URL διακομιστή",
- "Failed to add the public link to your Nextcloud" : "Αποτυχία στην πρόσθεση του κοινού συνδέσμου στο Nextcloud σας",
"File shares" : "Κοινή χρήση αρχείων",
"Downloaded via public link" : "Μεταφορτώθηκε μέσω δημόσιου συνδέσμου",
"Downloaded by {email}" : "Μεταφορτώθηκε από {email}",
@@ -68,7 +54,7 @@
"Share for file {file} expired" : "Η κοινή χρήση του αρχείου {file} έληξε",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Ένα αρχείο ή φάκελος διαμοιρασμένο με mail ή με δημόσιο σύνδεσμο <strong>κατέβηκε</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Ένα αρχείο ή φάκελος διαμοιράστηκε από <strong>έναν άλλο διακομιστή</strong>",
- "Files" : "Αρχεία",
+ "Sharing" : "Διαμοιρασμός",
"A file or folder has been <strong>shared</strong>" : "Ένα αρχείο ή φάκελος <strong>διαμοιράστηκε</strong>",
"Shared link" : "Διαμοιρασμένος σύνδεσμος",
"Wrong share ID, share does not exist" : "Λάθος ID κοινής χρήσης, η κοινή χρήση δεν υπάρχει",
@@ -76,28 +62,25 @@
"Please specify a file or folder path" : "Παρακαλούμε καθορίστε την διαδρομή για το αρχείο ή τον φάκελο",
"Wrong path, file/folder does not exist" : "Λάθος διαδρομή, το αρχείο/φάκελος δεν υπάρχει",
"Could not create share" : "Αδυναμία δημιουργίας κοινόχρηστου",
- "Invalid permissions" : "Μη έγκυρα δικαιώματα",
- "Invalid date, date format must be YYYY-MM-DD" : "Μη έγκυρη ημερομηνία, η μορφή της ημερομηνίας πρέπει να είναι YYYY-MM-DD",
"Please specify a valid account to share with" : "Παρακαλούμε καθορίστε έναν έγκυρο λογαριασμό για κοινή χρήση",
"Group sharing is disabled by the administrator" : "Διαμοιρασμός σε ομάδες είναι απενεργοποιημένος από τον διαχειρηστή",
"Please specify a valid group" : "Παρακαλούμε καθορίστε μια έγκυρη ομάδα",
"Public link sharing is disabled by the administrator" : "Διαμοιρασμός δημόσιου συνδέσμου είναι απενεργοποιημένος από τον διαχειριστή",
- "Public upload disabled by the administrator" : "Δημόσιο ανέβασμα είναι απενεργοποιημένο από τον διαχειριστή",
- "Public upload is only possible for publicly shared folders" : "Δημόσιο ανέβασμα είναι δυνατό μόνο για δημόσια διαμοιρασμένους φακέλους",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Η κοινή χρήση %s της αποστολής του κωδικού πρόσβασης από το Nextcloud Talk απέτυχε επειδή δεν είναι ενεργοποιημένο το Nextcloud Talk",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Διαμοιρασμός %1$s απέτυχε επειδή ο εξυπηρετητής δεν επιτρέπει διαμοιρασμούς από τύπο %2$s",
- "You cannot share to a Circle if the app is not enabled" : "Δεν μπορείτε να διαμοιράσετε σε έναν Κύκλο εάν η εφαρμογή δεν είναι ενεργοποιημένη",
- "Please specify a valid circle" : "Παρακαλούμε προσδιορίστε έναν έγκυρο κύκλο",
"Sharing %s failed because the back end does not support room shares" : "Διαμοιρασμός %s απέτυχε επειδή ο εξυπηρετητής δεν επιτρέπει διαμοιρασμούς δωματίων",
"Unknown share type" : "Άγνωστος τύπος διαμοιρασμού",
"Not a directory" : "Δεν είναι κατάλογος",
"Could not lock node" : "Δεν ήταν δυνατό να κλειδώσει ο κόμβος",
- "Could not lock path" : "Αδυναμία κλειδώματος διαδρομής",
- "Wrong or no update parameter given" : "Λάθος ή καμία παράμετρος αναβάθμισης δεν δόθηκε",
+ "Public upload is only possible for publicly shared folders" : "Δημόσιο ανέβασμα είναι δυνατό μόνο για δημόσια διαμοιρασμένους φακέλους",
"Share must at least have READ or CREATE permissions" : "Το κοινόχρηστο πρέπει να έχει τουλάχιστον άδεια για ΑΝΑΓΝΩΣΗ ή ΔΗΜΙΟΥΡΓΙΑ",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Το κοινόχρηστο πρέπει να έχει άδεια ΑΝΑΓΝΩΣΗ αν οριστεί άδεια ΕΝΗΜΕΡΩΣΗ ή ΔΙΑΓΡΑΦΗ",
+ "Public upload disabled by the administrator" : "Δημόσιο ανέβασμα είναι απενεργοποιημένο από τον διαχειριστή",
+ "Could not lock path" : "Αδυναμία κλειδώματος διαδρομής",
+ "Wrong or no update parameter given" : "Λάθος ή καμία παράμετρος αναβάθμισης δεν δόθηκε",
+ "Wrong password" : "Λάθος κωδικός πρόσβασης",
"shared by %s" : "Διαμοιράστηκε από 1 %s",
- "Download all files" : "Λήψη όλων των αρχείων",
+ "Download" : "Λήψη",
"Direct link" : "Άμεσος σύνδεσμος",
"Share API is disabled" : "API διαμοιρασμού είναι απενεργοποιημένο",
"File sharing" : "Διαμοιρασμός αρχείων",
@@ -107,15 +90,28 @@
"You received {share} to group {group} as a share by {user}" : "Λάβατε το {share} ομάδας {group} ως κοινή χρήση από τον {user}",
"Accept" : "Αποδοχή",
"Decline" : "Απόρριψη",
- "Sharing" : "Διαμοιρασμός",
- "Accept shares from other accounts and groups by default" : "Αποδοχή κοινόχρηστων από άλλους λογαριασμούς και ομάδες από προεπιλογή",
+ "People" : "Άτομα",
+ "Expiration date" : "Ημερομηνία λήξης",
+ "Set a password" : "Ορισμός συνθηματικού",
+ "Password" : "Συνθηματικό",
+ "Link copied" : "Ο σύνδεσμος αντιγράφηκε",
+ "Share link" : "Διαμοιρασμός συνδέσμου",
+ "Copy" : "Αντιγραφή",
+ "Send link via email" : "Αποστολή συνδέσμου μέσω email",
+ "Select" : "Επιλογή",
+ "Close" : "Κλείσιμο",
+ "Error creating the share: {errorMessage}" : "Σφάλμα κατά τη δημιουργία της κοινής χρήσης: {errorMessage}",
+ "Error creating the share" : "Σφάλμα κατά την δημιουργία κοινόχρηστου",
+ "Cancel" : "Ακύρωση",
+ "Continue" : "Συνεχίστε",
"Error while toggling options" : "Σφάλμα κατά την εναλλαγή επιλογών",
- "Set default folder for accepted shares" : "Ορισμός προεπιλεγμένου φακέλου για αποδεκτά κοινόχρηστα στοιχεία",
- "Reset" : "Επαναφορά",
- "Reset folder to system default" : "Επαναφορά του φακέλου στις προεπιλογές συστήματος",
+ "Accept shares from other accounts and groups by default" : "Αποδοχή κοινόχρηστων από άλλους λογαριασμούς και ομάδες από προεπιλογή",
"Choose a default folder for accepted shares" : "Επιλέξτε έναν προεπιλεγμένο φάκελο για τα κοινόχρηστα στοιχεία που γίνονται αποδεκτά ",
"Invalid path selected" : "Επιλέχθηκε μη έγκυρη διαδρομή",
"Unknown error" : "Άγνωστο σφάλμα",
+ "Set default folder for accepted shares" : "Ορισμός προεπιλεγμένου φακέλου για αποδεκτά κοινόχρηστα στοιχεία",
+ "Reset" : "Επαναφορά",
+ "Reset folder to system default" : "Επαναφορά του φακέλου στις προεπιλογές συστήματος",
"group" : "ομάδα",
"conversation" : "συνομιλία",
"remote" : "απομακρυσμένα",
@@ -127,102 +123,86 @@
"Added by {initiator}" : "Προστέθηκε από {initiator}",
"Via “{folder}”" : "Μέσω “{folder}”",
"Unshare" : "Αναίρεση διαμοιρασμού",
- "Internal link" : "Εσωτερικός σύνδεσμος",
"Cannot copy, please copy the link manually" : "Δεν μπορεί να αντιγραφεί, παρακαλώ αντιγράψτε χειροκίνητα",
- "Copy internal link to clipboard" : "Αντιγραφή εσωτερικού συνδέσμου στο πρόχειρο",
- "Only works for people with access to this folder" : "Λειτουργεί μόνο για άτομα με πρόσβαση σε αυτόν τον φάκελο",
- "Only works for people with access to this file" : "Λειτουργεί μόνο για άτομα με πρόσβαση σε αυτό το αρχείο",
- "Link copied" : "Ο σύνδεσμος αντιγράφηκε",
+ "Copy internal link" : "Αντιγραφή εσωτερικού συνδέσμου",
+ "Internal link" : "Εσωτερικός σύνδεσμος",
+ "{shareWith} by {initiator}" : "{shareWith} από {initiator}",
+ "Shared via link by {initiator}" : "Διαμοιράστηκε μέσω συνδέσμου {initiator}",
+ "Share link ({label})" : "Σύνδεσμος κοινής χρήσης ({label})",
+ "Share link ({index})" : "Διαμοιρασμός συνδέσμου ({index})",
+ "Create public link" : "Δημιουργία δημόσιου συνδέσμου",
+ "Actions for \"{title}\"" : "Ενέργειες για \"{title}\"",
+ "Error, please enter proper password and/or expiration date" : "Σφάλμα, παρακαλώ εισάγετε τον σωστό κωδικό πρόσβασης και/ή ημερομηνία λήξης",
+ "Link share created" : "Δημιουργήθηκε ο σύνδεσμος κοινής χρήσης",
+ "Error while creating the share" : "Σφάλμα κατά τη δημιουργία κοινόχρηστου",
"Please enter the following required information before creating the share" : "Καταχωρίστε τις ακόλουθες απαιτούμενες πληροφορίες πριν δημιουργήσετε το κοινόχρηστο στοιχείο",
"Password protection (enforced)" : "Προστασία με κωδικό (υποχρεωτικό)",
"Password protection" : "Προστασία συνθηματικού",
"Enter a password" : "Εισάγετε ένα συνθηματικό",
- "Expiration date (enforced)" : "Ημερομηνία λήξης (υποχρεωτικά)",
- "Enter a date" : "Προσθέστε ημερομηνία",
"Create share" : "Δημιουργήστε κοινή χρήση",
- "Cancel" : "Ακύρωση",
"Customize link" : "Προσαρμογή συνδέσμου",
"Generate QR code" : "Δημιουργία QR code",
"Add another link" : "Προσθήκη άλλου συνδέσμου",
"Create a new share link" : "Δημιουργία νέου κοινόχρηστου συνδέσμου",
- "{shareWith} by {initiator}" : "{shareWith} από {initiator}",
- "Shared via link by {initiator}" : "Διαμοιράστηκε μέσω συνδέσμου {initiator}",
- "Share link ({label})" : "Σύνδεσμος κοινής χρήσης ({label})",
- "Share link" : "Διαμοιρασμός συνδέσμου",
- "Actions for \"{title}\"" : "Ενέργειες για \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Αντιγραφή του δημόσιου συνδέσμου \"{title}\" στο πρόχειρο",
- "Error, please enter proper password and/or expiration date" : "Σφάλμα, παρακαλώ εισάγετε τον σωστό κωδικό πρόσβασης και/ή ημερομηνία λήξης",
- "Link share created" : "Δημιουργήθηκε ο σύνδεσμος κοινής χρήσης",
- "Error while creating the share" : "Σφάλμα κατά τη δημιουργία κοινόχρηστου",
"View only" : "Μόνο για προβολή",
"Can edit" : "Δυνατότητα επεξεργασίας",
- "File drop" : "Απόθεση αρχείου",
"Custom permissions" : "Προσαρμοσμένα δικαιώματα",
- "Search for share recipients" : "Αναζήτηση για παραλήπτες διαμοιρασμού",
- "No recommendations. Start typing." : "Δεν υπάρχουν συστάσεις. Αρχίστε να πληκτρολογείτε.",
"Resharing is not allowed" : "Δεν επιτρέπεται ο επαναμοιρασμός",
"Name or email …" : "Όνομα ή διεύθυνση ηλεκτρονικού ταχυδρομείου",
"Name, email, or Federated Cloud ID …" : "Όνομα, διεύθυνση ηλεκτρονικού ταχυδρομείου ή Ομοσπονδιακό αναγνωριστικό Cloud…",
"Searching …" : "Αναζήτηση ...",
"No elements found." : "Δεν βρέθηκαν στοιχεία.",
- "Search globally" : "Γενική αναζήτηση",
+ "Search everywhere" : "Αναζητήστε παντού",
"Guest" : "Επισκέπτης",
"Group" : "Ομάδα",
"Email" : "Email",
"Talk conversation" : "Συνομιλία στο Talk",
"Deck board" : "Πίνακας του Deck",
"on {server}" : "στον {server}",
+ "Note:" : "Σημείωση:",
+ "File drop" : "Απόθεση αρχείου",
+ "Terms of service" : "Όροι χρήσης",
+ "Share with group" : "Κοινή χρήση με ομάδα",
+ "Share in conversation" : "Κοινή χρήση σε συζήτηση",
+ "Share with guest" : "Κοινή χρήση με επισκέπτη",
+ "Update share" : "Ενημέρωση κοινόχρηστου",
+ "Save share" : "Αποθήκευση κοινόχρηστου",
+ "Read" : "Ανάγνωση",
+ "Create" : "Δημιουργία",
+ "Edit" : "Επεξεργασία",
+ "Share" : "Διαμοιρασμός",
+ "Delete" : "Διαγραφή",
"Allow upload and editing" : "Επέτρεψε την μεταφόρτωση και επεξεργασία",
"Allow editing" : "Επιτρέπεται η επεξεργασία",
"Advanced settings" : "Ρυθμίσεις για προχωρημένους",
"Share label" : "Ετικέτα διαμοιρασμού",
"Set password" : "Ορισμός κωδικού πρόσβασης",
- "Password" : "Συνθηματικό",
"Password expired" : "Ο κωδικός πρόσβασης έληξε",
"Video verification" : "Επαλήθευση βίντεο",
+ "Expiration date (enforced)" : "Ημερομηνία λήξης (υποχρεωτικά)",
"Set expiration date" : "Ορισμός ημερομηνίας λήξης",
- "Expiration date" : "Ημερομηνία λήξης",
"Hide download" : "Απόκρυψη λήψης",
- "Allow download" : "Να επιτρέπεται η λήψη",
"Note to recipient" : "Σημείωση προς τον παραλήπτη",
"Enter a note for the share recipient" : "Προσθέτε σημείωση για τους παραλήπτες του κοινόχρηστου",
- "Read" : "Ανάγνωση",
- "Create" : "Δημιουργία",
- "Edit" : "Επεξεργασία",
- "Share" : "Διαμοιρασμός",
"Delete share" : "Διαγραφή κοινόχρηστου",
- "Share with group" : "Κοινή χρήση με ομάδα",
- "Share in conversation" : "Κοινή χρήση σε συζήτηση",
- "Share with guest" : "Κοινή χρήση με επισκέπτη",
- "Update share" : "Ενημέρωση κοινόχρηστου",
- "Save share" : "Αποθήκευση κοινόχρηστου",
"Others with access" : "Άλλοι με πρόσβαση",
"Toggle list of others with access to this directory" : "Εναλλαγή λίστας άλλων με πρόσβαση σε αυτόν τον κατάλογο",
"Toggle list of others with access to this file" : "Εναλλαγή λίστας άλλων με πρόσβαση σε αυτόν το αρχείο",
"Unable to fetch inherited shares" : "Δεν είναι δυνατή η λήψη άλλων διαμοιρασμών",
+ "Shares" : "Κοινόχρηστα",
"Unable to load the shares list" : "Δεν είναι δυνατή η φόρτωση λίστας διαμοιρασμών",
"Expires {relativetime}" : "Λήγει {relativetime}",
"this share just expired." : "το κοινόχρηστο μόλις έληξε.",
"Shared with you by {owner}" : "Διαμοιράστηκε με σας από τον {owner}",
+ "Link to a file" : "Σύνδεσμος σε αρχείο",
"_Accept share_::_Accept shares_" : ["Αποδοχή κοινόχρηστου","Αποδοχή κοινόχρηστων"],
"Open in Files" : "Άνοιγμα στα Αρχεία",
"_Reject share_::_Reject shares_" : ["Απόρριψη κοινόχρηστου","Απόρριψη κοινόχρηστων"],
"_Restore share_::_Restore shares_" : ["Επαναφορά κοινόχρηστου","Επαναφορά κοινόχρηστων"],
"Shared" : "Κοινόχρηστα",
- "Show sharing options" : "Εμφάνιση επιλογών κοινής χρήσης",
- "Link to a file" : "Σύνδεσμος σε αρχείο",
- "Error creating the share: {errorMessage}" : "Σφάλμα κατά τη δημιουργία της κοινής χρήσης: {errorMessage}",
- "Error creating the share" : "Σφάλμα κατά την δημιουργία κοινόχρηστου",
- "Error updating the share: {errorMessage}" : "Σφάλμα κατά τη δημιουργία της κοινής χρήσης: {errorMessage}",
- "Error updating the share" : "Σφάλμα κατά την ενημέρωση του κοινόχρηστου",
- "Shared by" : "Διαμοιράστηκε από",
- "Shared with" : "Διαμοιράστηκε με",
- "Password created successfully" : "Συνθηματικό δημιουργήθηκε με επιτυχία",
- "Shared with you and the group {group} by {owner}" : "Διαμοιράστηκε με σας και με την ομάδα {group} του {owner}",
- "Shared with you and {circle} by {owner}" : "Διαμοιράστηκε με σας και τον {circle} από τον {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Διαμοιράστηκε με σας και με τη συζήτηση {conversation} από {owner}",
- "Shared with you in a conversation by {owner}" : "Διαμοιράστηκε με σας από τον {owner}",
- "Shares" : "Κοινόχρηστα",
+ "Shared with others" : "Διαμοιρασμένα με άλλους",
+ "No file" : "Κανένα αρχείο",
+ "Public share" : "Δημόσια κοινόχρηστο",
"Overview of shared files." : "Επισκόπηση κοινόχρηστων αρχείων.",
"No shares" : "Κανένα κοινόχρηστο",
"Files and folders you shared or have been shared with you will show up here" : "Αρχεία και φάκελοι που μοιραστήκατε ή έχουν μοιραστεί με εσάς θα εμφανιστούν εδώ",
@@ -230,7 +210,6 @@
"List of files that are shared with you." : "Λίστα αρχείων σε κοινή χρήση με εσάς.",
"Nothing shared with you yet" : "Κανένα αρχείο δεν έχει διαμοιραστεί ακόμα με εσάς.",
"Files and folders others shared with you will show up here" : "Αρχεία και φάκελοι που άλλοι έχουν μοιραστεί μαζί σας θα εμφανιστούν εδώ",
- "Shared with others" : "Διαμοιρασμένα με άλλους",
"List of files that you shared with others." : "Λίστα των αρχείων που μοιραστήκατε με άλλους.",
"Nothing shared yet" : "Δεν έχει διαμοιραστεί τίποτα μέχρι στιγμής",
"Files and folders you shared will show up here" : "Αρχεία και φάκελοι που μοιραστήκατε θα εμφανιστούν εδώ",
@@ -246,6 +225,45 @@
"List of unapproved shares." : "Λίστα μη αποδεκτών κοινόχρηστων.",
"No pending shares" : "Δεν εκκρεμούν κοινόχρηστα",
"Shares you have received but not approved will show up here" : "Κοινόχρηστα που έχετε λάβει αλλά δεν έχετε εγκρίνει θα εμφανιστούν εδώ",
+ "Error deleting the share" : "Σφάλμα διαγραφής του κοινόχρηστου",
+ "Error updating the share: {errorMessage}" : "Σφάλμα κατά τη δημιουργία της κοινής χρήσης: {errorMessage}",
+ "Error updating the share" : "Σφάλμα κατά την ενημέρωση του κοινόχρηστου",
+ "Share label saved" : "Διαμοιρασμένη ετικέτα αποθηκεύτηκε ",
+ "Share password saved" : "Διαμοιρασμένο συνθηματικό αποθηκεύτηκε ",
+ "Shared by" : "Διαμοιράστηκε από",
+ "Shared with" : "Διαμοιράστηκε με",
+ "Password created successfully" : "Συνθηματικό δημιουργήθηκε με επιτυχία",
+ "Error generating password from password policy" : "Σφάλμα δημιουργίας συνθηματικού από την πολιτική συνθηματικών",
+ "Shared with you and the group {group} by {owner}" : "Διαμοιράστηκε με σας και με την ομάδα {group} του {owner}",
+ "Shared with you and {circle} by {owner}" : "Διαμοιράστηκε με σας και τον {circle} από τον {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Διαμοιράστηκε με σας και με τη συζήτηση {conversation} από {owner}",
+ "Shared with you in a conversation by {owner}" : "Διαμοιράστηκε με σας από τον {owner}",
+ "Share not found" : "Δεν βρέθηκε το κονόχρηστο",
+ "Back to %s" : "Πίσω στο %s",
+ "Add to your Nextcloud" : "Προσθήκη στο Nextcloud σου",
+ "Waiting…" : "Αναμονή...",
+ "error" : "σφάλμα ",
+ "finished" : "ολοκληρώθηκε",
+ "This will stop your current uploads." : "Αυτό θα σταματήσει τις τρέχουσες μεταφορτώσεις.",
+ "Move or copy" : "Μετακίνηση ή αντιγραφή",
+ "You can upload into this folder" : "Μπορείτε να μεταφορτώσετε σε αυτόν τον φάκελο",
+ "Show list view" : "Προβολή λίστας",
+ "Show grid view" : "Προβολή πλέγματος",
+ "No compatible server found at {remote}" : "Δεν βρέθηκε συμβατός διακομιστής σε {remote}",
+ "Invalid server URL" : "Μη έγκυρο URL διακομιστή",
+ "Failed to add the public link to your Nextcloud" : "Αποτυχία στην πρόσθεση του κοινού συνδέσμου στο Nextcloud σας",
+ "Download all files" : "Λήψη όλων των αρχείων",
+ "Link copied to clipboard" : "Ο σύνδεσμος αντιγράφηκε στο πρόχειρο",
+ "Copy to clipboard" : "Αντιγραφή στο πρόχειρο",
+ "Copy internal link to clipboard" : "Αντιγραφή εσωτερικού συνδέσμου στο πρόχειρο",
+ "Only works for people with access to this folder" : "Λειτουργεί μόνο για άτομα με πρόσβαση σε αυτόν τον φάκελο",
+ "Only works for people with access to this file" : "Λειτουργεί μόνο για άτομα με πρόσβαση σε αυτό το αρχείο",
+ "Copy public link of \"{title}\" to clipboard" : "Αντιγραφή του δημόσιου συνδέσμου \"{title}\" στο πρόχειρο",
+ "Search globally" : "Γενική αναζήτηση",
+ "Search for share recipients" : "Αναζήτηση για παραλήπτες διαμοιρασμού",
+ "No recommendations. Start typing." : "Δεν υπάρχουν συστάσεις. Αρχίστε να πληκτρολογείτε.",
+ "Enter your name" : "Προσθέστε το όνομά σας",
+ "Show sharing options" : "Εμφάνιση επιλογών κοινής χρήσης",
"Share note" : "Σημείωση κοινόχρηστου",
"Upload files to %s" : "Αποστολή αρχείων σε %s",
"Note" : "Σημείωση",
@@ -253,40 +271,7 @@
"Uploading files" : "Μεταφόρτωση αρχείων",
"Uploaded files:" : "Αποστολή αρχείων:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Με την μεταφόρτωση αρχείων, συμφωνείτε με %1$sόρους χρήσεως %2$s.",
- "Add to your Nextcloud" : "Προσθήκη στο Nextcloud σου",
- "Files and folders others share with you will show up here" : "Τα αρχεία και οι φάκελοι που άλλοι διαμοιράζονται με εσάς θα εμφανιστούν εδώ",
- "Files and folders you share will show up here" : "Τα αρχεία και οι φάκελοι που διαμοιράζεστε θα εμφανιστούν εδώ",
- "Files and folders you share by link will show up here" : "Τα αρχεία και οι φάκελοι που διαμοιράζεστε μέσω συνδέσμου θα εμφανιστούν εδώ",
- "Shares you deleted will show up here" : "Τα κοινόχρηστα που διαγράψατε θα εμφανίζονται εδώ",
- "Shares you have received but not confirmed will show up here" : "Κοινόχρηστα που λάβατε αλλά δεν επιβεβαιώθηκαν θα εμφανίζονται εδώ",
- "Shares will show up here" : "Τα κοινόχρηστα θα εμφανιστούν εδώ",
- "Restore" : "Επαναφορά",
- "Something happened. Unable to restore the share." : "Κάτι συνέβη. Δεν μπορεί να γίνει επαναφορά.",
- "Something happened. Unable to accept the share." : "Κάτι συνέβη. Δεν μπορεί να γίνει η αποδοχή.",
- "Something happened. Unable to reject the share." : "Κάτι συνέβη. Δεν μπορεί να απορριφθεί το κοινόχρηστο",
- "No expiration date set" : "Δεν ορίστηκε ημερομηνία λήξης",
- "Please specify a valid user" : "Παρακαλούμε καθορίστε έναν έγκυρο χρήστη",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Η εφαρμογή επιτρέπει στους χρήστες να διαμοιράζονται αρχεία μέσω του Nextcloud. Εάν ενεργοποιηθεί, ο διαχειριστής μπορεί να επιλέξει ποιες ομάδες μπορούν να διαμοιράζονται αρχεία. Αυτοί οι χρήστες μπορούν τότε να διαμοιράζονται αρχεία και φακέλους με άλλους χρήστες και ομάδες μέσα στο Nextcloud. Επιπλέον, εάν ο διαχειριστής ενεργοποιήσει τη δυνατότητα συνδέσμου κοινής χρήσης, μπορεί να χρησιμοποιηθεί ένας εξωτερικός σύνδεσμος για την κοινή χρήση αρχείων με άλλους χρήστες εκτός του Nextcloud. Οι διαχειριστές μπορούν επίσης να επιβάλλουν κωδικούς πρόσβασης, ημερομηνίες λήξης και να επιτρέπουν την κοινή χρήση μεταξύ διακομιστών μέσω συνδέσμων κοινής χρήσης, καθώς και την κοινή χρήση από κινητές συσκευές.\nΗ απενεργοποίηση της λειτουργίας καταργεί τα κοινόχρηστα αρχεία και τους φακέλους στο διακομιστή για όλους τους παραλήπτες κοινής χρήσης, καθώς και για τους υπολογιστές-πελάτες συγχρονισμού και τις εφαρμογές για κινητά. Περισσότερες πληροφορίες διατίθενται στην Τεκμηρίωση Nextcloud.",
- "Accept user and group shares by default" : "Αποδοχή διαμοιρασμών από χρήστες και ομάδες από προεπιλογή",
- "Read only" : "Μόνο για ανάγνωση",
- "File drop (upload only)" : "Απόθεση αρχείου (μόνο μεταφόρτωση)",
- "Upload" : "Μεταφόρτωση",
- "Bundled permissions" : "Ομαδοποιημένα δικαιώματα",
- "Only works for users with access to this folder" : "Δουλεύει μόνο για χρήστες με πρόσβαση σε αυτό το φάκελο",
- "Only works for users with access to this file" : "Δουλεύει μόνο για χρήστες με πρόσβαση στο αρχείο",
- "Circle" : "Κύκλος",
- "Update" : "Ενημέρωση",
- "Share with " : "Κοινή χρήση με",
- "No other users with access found" : "Δεν βρέθηκαν άλλοι χρήστες με πρόσβαση",
- "No entries found in this folder" : "Δεν βρέθηκαν καταχωρήσεις σε αυτόν το φάκελο",
"Name" : "Όνομα",
- "Share time" : "Χρόνος διαμοιρασμού",
- "Sorry, this link does not seem to work anymore." : "Λυπούμαστε, αυτός ο σύνδεσμος δεν φαίνεται να λειτουργεί πλέον.",
- "Reasons might be:" : "Οι λόγοι μπορεί να είναι:",
- "the item was removed" : "το αντικείμενο απομακρύνθηκε",
- "the link expired" : "ο σύνδεσμος έληξε",
- "sharing is disabled" : "ο διαμοιρασμός απενεργοποιήθηκε",
- "For more info, please ask the person who sent this link." : "Για περισσότερες πληροφορίες, παρακαλούμε ρωτήστε το άτομο που σας έστειλε αυτόν τον σύνδεσμο.",
- "Share with" : "Διαμοιρασμός με"
+ "Filename must not be empty." : "Το όνομα αρχείου δεν πρέπει να είναι κενό."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/en_GB.js b/apps/files_sharing/l10n/en_GB.js
index c952d8659a7..90d518c1854 100644
--- a/apps/files_sharing/l10n/en_GB.js
+++ b/apps/files_sharing/l10n/en_GB.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Waiting…",
- "error" : "error",
- "finished" : "finished",
- "This will stop your current uploads." : "This will stop your current uploads.",
- "Move or copy" : "Move or copy",
- "Download" : "Download",
- "Delete" : "Delete",
- "You can upload into this folder" : "You can upload into this folder",
- "Terms of service" : "Terms of service",
- "Show list view" : "Show list view",
- "Show grid view" : "Show grid view",
- "No compatible server found at {remote}" : "No compatible server found at {remote}",
- "Invalid server URL" : "Invalid server URL",
- "Failed to add the public link to your Nextcloud" : "Failed to add the public link to your Nextcloud",
"File shares" : "File shares",
"Downloaded via public link" : "Downloaded via public link",
"Downloaded by {email}" : "Downloaded by {email}",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "Share for file {file} with {user} expired",
"Share for file {file} expired" : "Share for file {file} expired",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "A file or folder shared by mail or by public link was <strong>downloaded</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link",
"A file or folder was shared from <strong>another server</strong>" : "A file or folder was shared from <strong>another server</strong>",
- "Files" : "Files",
+ "Sharing" : "Sharing",
"A file or folder has been <strong>shared</strong>" : "A file or folder has been <strong>shared</strong>",
"Shared link" : "Shared link",
"Wrong share ID, share does not exist" : "Wrong share ID, share does not exist",
@@ -78,34 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "Please specify a file or folder path",
"Wrong path, file/folder does not exist" : "Wrong path, file/folder does not exist",
"Could not create share" : "Could not create share",
- "Invalid permissions" : "Invalid permissions",
- "Invalid date, date format must be YYYY-MM-DD" : "Invalid date, date format must be YYYY-MM-DD",
"Please specify a valid account to share with" : "Please specify a valid account to share with",
"Group sharing is disabled by the administrator" : "Group sharing is disabled by the administrator",
"Please specify a valid group" : "Please specify a valid group",
"Public link sharing is disabled by the administrator" : "Public link sharing is disabled by the administrator",
- "Public upload disabled by the administrator" : "Public upload disabled by the administrator",
- "Public upload is only possible for publicly shared folders" : "Public upload is only possible for publicly shared folders",
+ "Please specify a valid email address" : "Please specify a valid email address",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Sharing %1$s failed because the back end does not allow shares from type %2$s",
"Please specify a valid federated account ID" : "Please specify a valid federated account ID",
"Please specify a valid federated group ID" : "Please specify a valid federated group ID",
- "You cannot share to a Circle if the app is not enabled" : "You cannot share to a Circle if the app is not enabled",
- "Please specify a valid circle" : "Please specify a valid circle",
+ "You cannot share to a Team if the app is not enabled" : "You cannot share to a Team if the app is not enabled",
+ "Please specify a valid team" : "Please specify a valid team",
"Sharing %s failed because the back end does not support room shares" : "Sharing %s failed because the back end does not support room shares",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Sharing %s failed because the back end does not support ScienceMesh shares",
"Unknown share type" : "Unknown share type",
"Not a directory" : "Not a directory",
"Could not lock node" : "Could not lock node",
- "Could not lock path" : "Could not lock path",
- "Wrong or no update parameter given" : "Wrong or no update parameter given",
+ "Public upload is only possible for publicly shared folders" : "Public upload is only possible for publicly shared folders",
"Share must at least have READ or CREATE permissions" : "Share must at least have READ or CREATE permissions",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Share must have READ permission if UPDATE or DELETE permission is set",
+ "Public upload disabled by the administrator" : "Public upload disabled by the administrator",
+ "Could not lock path" : "Could not lock path",
+ "no sharing rights on this item" : "no sharing rights on this item",
+ "You are not allowed to edit incoming shares" : "You are not allowed to edit incoming shares",
+ "Wrong or no update parameter given" : "Wrong or no update parameter given",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled.",
+ "Custom share link tokens have been disabled by the administrator" : "Custom share link tokens have been disabled by the administrator",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen",
+ "Invalid date. Format must be YYYY-MM-DD" : "Invalid date. Format must be YYYY-MM-DD",
+ "No sharing rights on this item" : "No sharing rights on this item",
+ "Invalid share attributes provided: \"%s\"" : "Invalid share attributes provided: \"%s\"",
+ "You are not allowed to send mail notifications" : "You are not allowed to send mail notifications",
+ "No mail notification configured for this share type" : "No mail notification configured for this share type",
+ "Wrong password" : "Incorrect password",
+ "Error while sending mail notification" : "Error while sending mail notification",
+ "Failed to generate a unique token" : "Failed to generate a unique token",
+ "This share does not exist or is no longer available" : "This share does not exist or is no longer available",
"shared by %s" : "shared by %s",
- "Download all files" : "Download all files",
- "Direct link" : "Direct link",
+ "Download" : "Download",
"Add to your %s" : "Add to your %s",
+ "Direct link" : "Direct link",
"Share API is disabled" : "Share API is disabled",
"File sharing" : "File sharing",
"Share will expire tomorrow" : "Share will expire tomorrow",
@@ -114,70 +113,133 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "You received {share} to group {group} as a share by {user}",
"Accept" : "Accept",
"Decline" : "Decline",
+ "Remember to upload the files to %s" : "Remember to upload the files to %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "We would like to kindly remind you that you have not yet uploaded any files to the shared folder.",
+ "Open \"%s\"" : "Open \"%s\"",
"This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation.",
- "Sharing" : "Sharing",
- "Accept shares from other accounts and groups by default" : "Accept shares from other accounts and groups by default",
+ "People" : "People",
+ "Filter accounts" : "Filter accounts",
+ "The request will expire on {date} at midnight and will be password protected." : "The request will expire on {date} at midnight and will be password protected.",
+ "The request will expire on {date} at midnight." : "The request will expire on {date} at midnight.",
+ "The request will be password protected." : "The request will be password protected.",
+ "When should the request expire?" : "When should the request expire?",
+ "Set a submission expiration date" : "Set a submission expiration date",
+ "Expiration date" : "Expiration date",
+ "Select a date" : "Select a date",
+ "Your administrator has enforced a {count} days expiration policy." : "Your administrator has enforced a {count} days expiration policy.",
+ "What password should be used for the request?" : "What password should be used for the request?",
+ "Set a password" : "Set a password",
+ "Password" : "Password",
+ "Enter a valid password" : "Enter a valid password",
+ "Generate a new password" : "Generate a new password",
+ "Your administrator has enforced a password protection." : "Your administrator has enforced a password protection.",
+ "Automatically copying failed, please copy the share link manually" : "Automatically copying failed, please copy the share link manually",
+ "Link copied" : "Link copied",
+ "Email already added" : "Email already added",
+ "Invalid email address" : "Invalid email address",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["The following email address is not valid: {emails}","The following email addresses are not valid: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} email address already added","{count} email addresses already added"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} email address added","{count} email addresses added"],
+ "You can now share the link below to allow people to upload files to your directory." : "You can now share the link below to allow people to upload files to your directory.",
+ "Share link" : "Share link",
+ "Copy" : "Copy",
+ "Send link via email" : "Send link via email",
+ "Enter an email address or paste a list" : "Enter an email address or paste a list",
+ "Remove email" : "Remove email",
+ "Select a destination" : "Select a destination",
+ "Select" : "Select",
+ "What are you requesting?" : "What are you requesting?",
+ "Request subject" : "Request subject",
+ "Birthday party photos, History assignment…" : "Birthday party photos, History assignment…",
+ "Where should these files go?" : "Where should these files go?",
+ "Upload destination" : "Upload destination",
+ "Revert to default" : "Revert to default",
+ "The uploaded files are visible only to you unless you choose to share them." : "The uploaded files are visible only to you unless you choose to share them.",
+ "Add a note" : "Add a note",
+ "Note for recipient" : "Note for recipient",
+ "Add a note to help people understand what you are requesting." : "Add a note to help people understand what you are requesting.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "You can add links, date or any other information that will help the recipient understand what you are requesting.",
+ "Close" : "Close",
+ "_Send email and close_::_Send {count} emails and close_" : ["Send email and close","Send {count} emails and close"],
+ "Please select a folder, you cannot share the root directory." : "Please select a folder, you cannot share the root directory.",
+ "File request created" : "File request created",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["File request created and email sent","File request created and {count} emails sent"],
+ "Error creating the share: {errorMessage}" : "Error creating the share: {errorMessage}",
+ "Error creating the share" : "Error creating the share",
+ "Error sending emails: {errorMessage}" : "Error sending emails: {errorMessage}",
+ "Error sending emails" : "Error sending emails",
+ "Create a file request" : "Create a file request",
+ "Collect files from others even if they do not have an account." : "Collect files from others even if they do not have an account.",
+ "To ensure you can receive files, verify you have enough storage available." : "To ensure you can receive files, verify you have enough storage available.",
+ "File request" : "File request",
+ "Previous step" : "Previous step",
+ "Cancel" : "Cancel",
+ "Cancel the file request creation" : "Cancel the file request creation",
+ "Close without sending emails" : "Close without sending emails",
+ "Continue" : "Continue",
"Error while toggling options" : "Error while toggling options",
- "Set default folder for accepted shares" : "Set default folder for accepted shares",
- "Reset" : "Reset",
- "Reset folder to system default" : "Reset folder to system default",
+ "Accept shares from other accounts and groups by default" : "Accept shares from other accounts and groups by default",
"Choose a default folder for accepted shares" : "Choose a default folder for accepted shares",
"Invalid path selected" : "Invalid path selected",
"Unknown error" : "Unknown error",
- "Open Sharing Details" : "Open Sharing Details",
+ "Set default folder for accepted shares" : "Set default folder for accepted shares",
+ "Reset" : "Reset",
+ "Reset folder to system default" : "Reset folder to system default",
+ "Share expiration: {date}" : "Share expiration: {date}",
+ "Share Expiration" : "Share Expiration",
"group" : "group",
"conversation" : "conversation",
"remote" : "remote",
"remote group" : "remote group",
"guest" : "guest",
+ "by {initiator}" : "by {initiator}",
"Shared with the group {user} by {owner}" : "Shared with the group {user} by {owner}",
"Shared with the conversation {user} by {owner}" : "Shared with the conversation {user} by {owner}",
"Shared with {user} by {owner}" : "Shared with {user} by {owner}",
+ "Open Sharing Details" : "Open Sharing Details",
"Added by {initiator}" : "Added by {initiator}",
"Via “{folder}”" : "Via “{folder}”",
"Unshare" : "Unshare",
- "Internal link" : "Internal link",
"Cannot copy, please copy the link manually" : "Cannot copy, please copy the link manually",
- "Copy internal link to clipboard" : "Copy internal link to clipboard",
- "Only works for people with access to this folder" : "Only works for people with access to this folder",
- "Only works for people with access to this file" : "Only works for people with access to this file",
- "Link copied" : "Link copied",
- "Please enter the following required information before creating the share" : "Please enter the following required information before creating the share",
- "Password protection (enforced)" : "Password protection (enforced)",
- "Password protection" : "Password protection",
- "Enter a password" : "Enter a password",
- "Expiration date (enforced)" : "Expiration date (enforced)",
- "Enter a date" : "Enter a date",
- "Create share" : "Create share",
- "Cancel" : "Cancel",
- "Customize link" : "Customise link",
- "Generate QR code" : "Generate QR code",
- "Add another link" : "Add another link",
- "Create a new share link" : "Create a new share link",
+ "Copy internal link" : "Copy internal link",
+ "For people who already have access" : "For people who already have access",
+ "Internal link" : "Internal link",
"{shareWith} by {initiator}" : "{shareWith} by {initiator}",
"Shared via link by {initiator}" : "Shared via link by {initiator}",
+ "File request ({label})" : "File request ({label})",
"Mail share ({label})" : "Mail share ({label})",
"Share link ({label})" : "Share link ({label})",
+ "Mail share" : "Mail share",
"Share link ({index})" : "Share link ({index})",
- "Share link" : "Share link",
+ "Create public link" : "Create public link",
"Actions for \"{title}\"" : "Actions for \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Copy public link of \"{title}\" to clipboard",
+ "Copy public link of \"{title}\"" : "Copy public link of \"{title}\"",
"Error, please enter proper password and/or expiration date" : "Error, please enter proper password and/or expiration date",
"Link share created" : "Link share created",
"Error while creating the share" : "Error while creating the share",
+ "Please enter the following required information before creating the share" : "Please enter the following required information before creating the share",
+ "Password protection (enforced)" : "Password protection (enforced)",
+ "Password protection" : "Password protection",
+ "Enter a password" : "Enter a password",
+ "Enable link expiration (enforced)" : "Enable link expiration (enforced)",
+ "Enable link expiration" : "Enable link expiration",
+ "Enter expiration date (enforced)" : "Enter expiration date (enforced)",
+ "Enter expiration date" : "Enter expiration date",
+ "Create share" : "Create share",
+ "Customize link" : "Customise link",
+ "Generate QR code" : "Generate QR code",
+ "Add another link" : "Add another link",
+ "Create a new share link" : "Create a new share link",
"Quick share options, the current selected is \"{selectedOption}\"" : "Quick share options, the current selected is \"{selectedOption}\"",
"View only" : "View only",
"Can edit" : "Can edit",
- "File drop" : "File drop",
"Custom permissions" : "Custom permissions",
- "Search for share recipients" : "Search for share recipients",
- "No recommendations. Start typing." : "No recommendations. Start typing.",
"Resharing is not allowed" : "Resharing is not allowed",
"Name or email …" : "Name or email …",
"Name, email, or Federated Cloud ID …" : "Name, email, or Federated Cloud ID …",
"Searching …" : "Searching …",
"No elements found." : "No elements found.",
- "Search globally" : "Search globally",
+ "Search everywhere" : "Search everywhere",
"Guest" : "Guest",
"Group" : "Group",
"Email" : "Email",
@@ -186,70 +248,99 @@ OC.L10N.register(
"Deck board" : "Deck board",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "on {server}",
+ "Enter external recipients" : "Enter external recipients",
+ "Search for internal recipients" : "Search for internal recipients",
+ "Note from" : "Note from",
+ "Note:" : "Note:",
+ "File drop" : "File drop",
+ "Upload files to {foldername}." : "Upload files to {foldername}.",
+ "By uploading files, you agree to the terms of service." : "By uploading files, you agree to the terms of service.",
+ "Successfully uploaded files" : "Successfully uploaded files",
+ "View terms of service" : "View terms of service",
+ "Terms of service" : "Terms of service",
+ "Share with {user}" : "Share with {user}",
+ "Share with email {email}" : "Share with email {email}",
+ "Share with group" : "Share with group",
+ "Share in conversation" : "Share in conversation",
+ "Share with {user} on remote server {server}" : "Share with {user} on remote server {server}",
+ "Share with remote group" : "Share with remote group",
+ "Share with guest" : "Share with guest",
+ "Update share" : "Update share",
+ "Save share" : "Save share",
+ "Read" : "Read",
+ "Create" : "Create",
+ "Edit" : "Edit",
+ "Share" : "Share",
+ "Delete" : "Delete",
+ "Password field cannot be empty" : "Password field cannot be empty",
+ "Replace current password" : "Replace current password",
+ "Failed to generate a new token" : "Failed to generate a new token",
"Allow upload and editing" : "Allow upload and editing",
"Allow editing" : "Allow editing",
"Upload only" : "Upload only",
"Advanced settings" : "Advanced settings",
"Share label" : "Share label",
+ "Share link token" : "Share link token",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information.",
+ "Generating…" : "Generating…",
+ "Generate new token" : "Generate new token",
"Set password" : "Set password",
- "Password" : "Password",
"Password expires {passwordExpirationTime}" : "Password expires {passwordExpirationTime}",
"Password expired" : "Password expired",
"Video verification" : "Video verification",
+ "Expiration date (enforced)" : "Expiration date (enforced)",
"Set expiration date" : "Set expiration date",
- "Expiration date" : "Expiration date",
"Hide download" : "Hide download",
- "Allow download" : "Allow download",
+ "Allow download and sync" : "Allow download and sync",
"Note to recipient" : "Note to recipient",
"Enter a note for the share recipient" : "Enter a note for the share recipient",
- "Read" : "Read",
- "Create" : "Create",
- "Edit" : "Edit",
- "Share" : "Share",
+ "Show files in grid view" : "Show files in grid view",
"Delete share" : "Delete share",
- "Share with {userName}" : "Share with {userName}",
- "Share with email {email}" : "Share with email {email}",
- "Share with group" : "Share with group",
- "Share in conversation" : "Share in conversation",
- "Share with {user} on remote server {server}" : "Share with {user} on remote server {server}",
- "Share with remote group" : "Share with remote group",
- "Share with guest" : "Share with guest",
- "Update share" : "Update share",
- "Save share" : "Save share",
"Others with access" : "Others with access",
"No other accounts with access found" : "No other accounts with access found",
"Toggle list of others with access to this directory" : "Toggle list of others with access to this directory",
"Toggle list of others with access to this file" : "Toggle list of others with access to this file",
"Unable to fetch inherited shares" : "Unable to fetch inherited shares",
+ "Link shares" : "Link shares",
+ "Shares" : "Shares",
+ "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Share files within your organization. Recipients who can already view the file can also use this link for easy access.",
+ "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID.",
+ "Shares from apps or other sources which are not included in internal or external shares." : "Shares from apps or other sources which are not included in internal or external shares.",
+ "Type names, teams, federated cloud IDs" : "Type names, teams, federated cloud IDs",
+ "Type names or teams" : "Type names or teams",
+ "Type a federated cloud ID" : "Type a federated cloud ID",
+ "Type an email" : "Type an email",
+ "Type an email or federated cloud ID" : "Type an email or federated cloud ID",
"Unable to load the shares list" : "Unable to load the shares list",
"Expires {relativetime}" : "Expires {relativetime}",
"this share just expired." : "this share just expired.",
"Shared with you by {owner}" : "Shared with you by {owner}",
+ "Internal shares" : "Internal shares",
+ "Internal shares explanation" : "Internal shares explanation",
+ "External shares" : "External shares",
+ "External shares explanation" : "External shares explanation",
+ "Additional shares" : "Additional shares",
+ "Additional shares explanation" : "Additional shares explanation",
+ "Link to a file" : "Link to a file",
"_Accept share_::_Accept shares_" : ["Accept share","Accept shares"],
"Open in Files" : "Open in Files",
"_Reject share_::_Reject shares_" : ["Reject share","Reject shares"],
"_Restore share_::_Restore shares_" : ["Restore share","Restore shares"],
"Shared" : "Shared",
- "Shared multiple times with different people" : "Shared multiple times with different people",
"Shared by {ownerDisplayName}" : "Shared by {ownerDisplayName}",
- "Show sharing options" : "Show sharing options",
- "Link to a file" : "Link to a file",
- "Error creating the share: {errorMessage}" : "Error creating the share: {errorMessage}",
- "Error creating the share" : "Error creating the share",
- "Error updating the share: {errorMessage}" : "Error updating the share: {errorMessage}",
- "Error updating the share" : "Error updating the share",
- "File \"{path}\" has been unshared" : "File \"{path}\" has been unshared",
- "Folder \"{path}\" has been unshared" : "Folder \"{path}\" has been unshared",
- "Share {propertyName} saved" : "Share {propertyName} saved",
- "Shared by" : "Shared by",
- "Shared with" : "Shared with",
- "Password created successfully" : "Password created successfully",
- "Error generating password from password policy" : "Error generating password from password policy",
- "Shared with you and the group {group} by {owner}" : "Shared with you and the group {group} by {owner}",
- "Shared with you and {circle} by {owner}" : "Shared with you and {circle} by {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Shared with you and the conversation {conversation} by {owner}",
- "Shared with you in a conversation by {owner}" : "Shared with you in a conversation by {owner}",
- "Shares" : "Shares",
+ "Shared multiple times with different people" : "Shared multiple times with different people",
+ "Sharing options" : "Sharing options",
+ "Shared with others" : "Shared with others",
+ "Create file request" : "Create file request",
+ "Upload files to {foldername}" : "Upload files to {foldername}",
+ "Public file share" : "Public file share",
+ "Publicly shared file." : "Publicly shared file.",
+ "No file" : "No file",
+ "The file shared with you will show up here" : "The file shared with you will show up here",
+ "Public share" : "Public share",
+ "Publicly shared files." : "Publicly shared files.",
+ "No files" : "No files",
+ "Files and folders shared with you will show up here" : "Files and folders shared with you will show up here",
"Overview of shared files." : "Overview of shared files.",
"No shares" : "No shares",
"Files and folders you shared or have been shared with you will show up here" : "Files and folders you shared or have been shared with you will show up here",
@@ -257,7 +348,6 @@ OC.L10N.register(
"List of files that are shared with you." : "List of files that are shared with you.",
"Nothing shared with you yet" : "Nothing shared with you yet",
"Files and folders others shared with you will show up here" : "Files and folders others shared with you will show up here",
- "Shared with others" : "Shared with others",
"List of files that you shared with others." : "List of files that you shared with others.",
"Nothing shared yet" : "Nothing shared yet",
"Files and folders you shared will show up here" : "Files and folders you shared will show up here",
@@ -265,6 +355,10 @@ OC.L10N.register(
"List of files that are shared by link." : "List of files that are shared by link.",
"No shared links" : "No shared links",
"Files and folders you shared by link will show up here" : "Files and folders you shared by link will show up here",
+ "File requests" : "File requests",
+ "List of file requests." : "List of file requests.",
+ "No file requests" : "No file requests",
+ "File requests you have created will show up here" : "File requests you have created will show up here",
"Deleted shares" : "Deleted shares",
"List of shares you left." : "List of shares you left.",
"No deleted shares" : "No deleted shares",
@@ -273,49 +367,87 @@ OC.L10N.register(
"List of unapproved shares." : "List of unapproved shares.",
"No pending shares" : "No pending shares",
"Shares you have received but not approved will show up here" : "Shares you have received but not approved will show up here",
+ "Error deleting the share: {errorMessage}" : "Error deleting the share: {errorMessage}",
+ "Error deleting the share" : "Error deleting the share",
+ "Error updating the share: {errorMessage}" : "Error updating the share: {errorMessage}",
+ "Error updating the share" : "Error updating the share",
+ "File \"{path}\" has been unshared" : "File \"{path}\" has been unshared",
+ "Folder \"{path}\" has been unshared" : "Folder \"{path}\" has been unshared",
+ "Could not update share" : "Could not update share",
+ "Share saved" : "Share saved",
+ "Share expiry date saved" : "Share expiry date saved",
+ "Share hide-download state saved" : "Share hide-download state saved",
+ "Share label saved" : "Share label saved",
+ "Share note for recipient saved" : "Share note for recipient saved",
+ "Share password saved" : "Share password saved",
+ "Share permissions saved" : "Share permissions saved",
+ "To upload files to {folder}, you need to provide your name first." : "To upload files to {folder}, you need to provide your name first.",
+ "Upload files to {folder}" : "Upload files to {folder}",
+ "Please confirm your name to upload files to {folder}" : "Please confirm your name to upload files to {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} shared a folder with you.",
+ "Names must not be empty." : "Names must not be empty.",
+ "Names must not start with a dot." : "Names must not start with a dot.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" is not allowed inside a name.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" is a reserved name and not allowed.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" is not an allowed name.",
+ "Names must not end with \"{extension}\"." : "Names must not end with \"{extension}\".",
+ "Invalid name." : "Invalid name.",
+ "Shared by" : "Shared by",
+ "Shared with" : "Shared with",
+ "Password created successfully" : "Password created successfully",
+ "Error generating password from password policy" : "Error generating password from password policy",
+ "Shared with you and the group {group} by {owner}" : "Shared with you and the group {group} by {owner}",
+ "Shared with you and {circle} by {owner}" : "Shared with you and {circle} by {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Shared with you and the conversation {conversation} by {owner}",
+ "Shared with you in a conversation by {owner}" : "Shared with you in a conversation by {owner}",
+ "Share not found" : "Share not found",
+ "Back to %s" : "Back to %s",
+ "Add to your Nextcloud" : "Add to your Nextcloud",
+ "Waiting…" : "Waiting…",
+ "error" : "error",
+ "finished" : "finished",
+ "This will stop your current uploads." : "This will stop your current uploads.",
+ "Move or copy" : "Move or copy",
+ "You can upload into this folder" : "You can upload into this folder",
+ "Show list view" : "Show list view",
+ "Show grid view" : "Show grid view",
+ "No compatible server found at {remote}" : "No compatible server found at {remote}",
+ "Invalid server URL" : "Invalid server URL",
+ "Failed to add the public link to your Nextcloud" : "Failed to add the public link to your Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "You are not allowed to edit link shares that you don't own",
+ "Download all files" : "Download all files",
+ "Link copied to clipboard" : "Link copied to clipboard",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 email address already added","{count} email addresses already added"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 email address added","{count} email addresses added"],
+ "Copy to clipboard" : "Copy to clipboard",
+ "Copy internal link to clipboard" : "Copy internal link to clipboard",
+ "Only works for people with access to this folder" : "Only works for people with access to this folder",
+ "Only works for people with access to this file" : "Only works for people with access to this file",
+ "Copy public link of \"{title}\" to clipboard" : "Copy public link of \"{title}\" to clipboard",
+ "Search globally" : "Search globally",
+ "Search for share recipients" : "Search for share recipients",
+ "No recommendations. Start typing." : "No recommendations. Start typing.",
+ "To upload files, you need to provide your name first." : "To upload files, you need to provide your name first.",
+ "Enter your name" : "Enter your name",
+ "Submit name" : "Submit name",
+ "Share with {userName}" : "Share with {userName}",
+ "Show sharing options" : "Show sharing options",
"Share note" : "Share note",
"Upload files to %s" : "Upload files to %s",
+ "%s shared a folder with you." : "%s shared a folder with you.",
"Note" : "Note",
"Select or drop files" : "Select or drop files",
"Uploading files" : "Uploading files",
"Uploaded files:" : "Uploaded files:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "By uploading files, you agree to the %1$sterms of service%2$s.",
- "Add to your Nextcloud" : "Add to your Nextcloud",
- "Files and folders others share with you will show up here" : "Files and folders others share with you will show up here",
- "Files and folders you share will show up here" : "Files and folders you share will show up here",
- "Files and folders you share by link will show up here" : "Files and folders you share by link will show up here",
- "Shares you deleted will show up here" : "Shares you deleted will show up here",
- "Shares you have received but not confirmed will show up here" : "Shares you have received but not confirmed will show up here",
- "Shares will show up here" : "Shares will show up here",
- "Restore" : "Restore",
- "Something happened. Unable to restore the share." : "Something happened. Unable to restore the share.",
- "Something happened. Unable to accept the share." : "Something happened. Unable to accept the share.",
- "Something happened. Unable to reject the share." : "Something happened. Unable to reject the share.",
- "No expiration date set" : "No expiration date set",
- "Please specify a valid user" : "Please specify a valid user",
- "Please specify a valid federated user ID" : "Please specify a valid federated user ID",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation.",
- "Accept user and group shares by default" : "Accept user and group shares by default",
- "Read only" : "Read only",
- "File drop (upload only)" : "File drop (upload only)",
- "Upload" : "Upload",
- "Bundled permissions" : "Bundled permissions",
- "Only works for users with access to this folder" : "Only works for users with access to this folder",
- "Only works for users with access to this file" : "Only works for users with access to this file",
- "Circle" : "Circle",
- "Update" : "Update",
- "Share with " : "Share with ",
- "No other users with access found" : "No other users with access found",
- "No entries found in this folder" : "No entries found in this folder",
- "Name" : "Name",
- "Share time" : "Share time",
- "Sorry, this link does not seem to work anymore." : "Sorry, this link does not seem to work any more.",
- "Reasons might be:" : "Reasons might be:",
- "the item was removed" : "the item was removed",
- "the link expired" : "the link expired",
- "sharing is disabled" : "sharing is disabled",
- "For more info, please ask the person who sent this link." : "For more info, please ask the person who sent this link.",
- "Share with remote" : "Share with remote",
- "Share with" : "Share with"
+ "Name" : "Surname",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Shares that are not part of the internal or external shares. This can be shares from apps or other sources.",
+ "Share with accounts, teams, federated cloud id" : "Share with accounts, teams, federated cloud id",
+ "Share with accounts and teams" : "Share with accounts and teams",
+ "Federated cloud ID" : "Federated cloud ID",
+ "Email, federated cloud id" : "Email, federated cloud id",
+ "Filename must not be empty." : "Filename must not be empty."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/en_GB.json b/apps/files_sharing/l10n/en_GB.json
index 8381495cac7..72eea217340 100644
--- a/apps/files_sharing/l10n/en_GB.json
+++ b/apps/files_sharing/l10n/en_GB.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Waiting…",
- "error" : "error",
- "finished" : "finished",
- "This will stop your current uploads." : "This will stop your current uploads.",
- "Move or copy" : "Move or copy",
- "Download" : "Download",
- "Delete" : "Delete",
- "You can upload into this folder" : "You can upload into this folder",
- "Terms of service" : "Terms of service",
- "Show list view" : "Show list view",
- "Show grid view" : "Show grid view",
- "No compatible server found at {remote}" : "No compatible server found at {remote}",
- "Invalid server URL" : "Invalid server URL",
- "Failed to add the public link to your Nextcloud" : "Failed to add the public link to your Nextcloud",
"File shares" : "File shares",
"Downloaded via public link" : "Downloaded via public link",
"Downloaded by {email}" : "Downloaded by {email}",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "Share for file {file} with {user} expired",
"Share for file {file} expired" : "Share for file {file} expired",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "A file or folder shared by mail or by public link was <strong>downloaded</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link",
"A file or folder was shared from <strong>another server</strong>" : "A file or folder was shared from <strong>another server</strong>",
- "Files" : "Files",
+ "Sharing" : "Sharing",
"A file or folder has been <strong>shared</strong>" : "A file or folder has been <strong>shared</strong>",
"Shared link" : "Shared link",
"Wrong share ID, share does not exist" : "Wrong share ID, share does not exist",
@@ -76,34 +63,46 @@
"Please specify a file or folder path" : "Please specify a file or folder path",
"Wrong path, file/folder does not exist" : "Wrong path, file/folder does not exist",
"Could not create share" : "Could not create share",
- "Invalid permissions" : "Invalid permissions",
- "Invalid date, date format must be YYYY-MM-DD" : "Invalid date, date format must be YYYY-MM-DD",
"Please specify a valid account to share with" : "Please specify a valid account to share with",
"Group sharing is disabled by the administrator" : "Group sharing is disabled by the administrator",
"Please specify a valid group" : "Please specify a valid group",
"Public link sharing is disabled by the administrator" : "Public link sharing is disabled by the administrator",
- "Public upload disabled by the administrator" : "Public upload disabled by the administrator",
- "Public upload is only possible for publicly shared folders" : "Public upload is only possible for publicly shared folders",
+ "Please specify a valid email address" : "Please specify a valid email address",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Sharing %1$s failed because the back end does not allow shares from type %2$s",
"Please specify a valid federated account ID" : "Please specify a valid federated account ID",
"Please specify a valid federated group ID" : "Please specify a valid federated group ID",
- "You cannot share to a Circle if the app is not enabled" : "You cannot share to a Circle if the app is not enabled",
- "Please specify a valid circle" : "Please specify a valid circle",
+ "You cannot share to a Team if the app is not enabled" : "You cannot share to a Team if the app is not enabled",
+ "Please specify a valid team" : "Please specify a valid team",
"Sharing %s failed because the back end does not support room shares" : "Sharing %s failed because the back end does not support room shares",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Sharing %s failed because the back end does not support ScienceMesh shares",
"Unknown share type" : "Unknown share type",
"Not a directory" : "Not a directory",
"Could not lock node" : "Could not lock node",
- "Could not lock path" : "Could not lock path",
- "Wrong or no update parameter given" : "Wrong or no update parameter given",
+ "Public upload is only possible for publicly shared folders" : "Public upload is only possible for publicly shared folders",
"Share must at least have READ or CREATE permissions" : "Share must at least have READ or CREATE permissions",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Share must have READ permission if UPDATE or DELETE permission is set",
+ "Public upload disabled by the administrator" : "Public upload disabled by the administrator",
+ "Could not lock path" : "Could not lock path",
+ "no sharing rights on this item" : "no sharing rights on this item",
+ "You are not allowed to edit incoming shares" : "You are not allowed to edit incoming shares",
+ "Wrong or no update parameter given" : "Wrong or no update parameter given",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled.",
+ "Custom share link tokens have been disabled by the administrator" : "Custom share link tokens have been disabled by the administrator",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen",
+ "Invalid date. Format must be YYYY-MM-DD" : "Invalid date. Format must be YYYY-MM-DD",
+ "No sharing rights on this item" : "No sharing rights on this item",
+ "Invalid share attributes provided: \"%s\"" : "Invalid share attributes provided: \"%s\"",
+ "You are not allowed to send mail notifications" : "You are not allowed to send mail notifications",
+ "No mail notification configured for this share type" : "No mail notification configured for this share type",
+ "Wrong password" : "Incorrect password",
+ "Error while sending mail notification" : "Error while sending mail notification",
+ "Failed to generate a unique token" : "Failed to generate a unique token",
+ "This share does not exist or is no longer available" : "This share does not exist or is no longer available",
"shared by %s" : "shared by %s",
- "Download all files" : "Download all files",
- "Direct link" : "Direct link",
+ "Download" : "Download",
"Add to your %s" : "Add to your %s",
+ "Direct link" : "Direct link",
"Share API is disabled" : "Share API is disabled",
"File sharing" : "File sharing",
"Share will expire tomorrow" : "Share will expire tomorrow",
@@ -112,70 +111,133 @@
"You received {share} to group {group} as a share by {user}" : "You received {share} to group {group} as a share by {user}",
"Accept" : "Accept",
"Decline" : "Decline",
+ "Remember to upload the files to %s" : "Remember to upload the files to %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "We would like to kindly remind you that you have not yet uploaded any files to the shared folder.",
+ "Open \"%s\"" : "Open \"%s\"",
"This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation.",
- "Sharing" : "Sharing",
- "Accept shares from other accounts and groups by default" : "Accept shares from other accounts and groups by default",
+ "People" : "People",
+ "Filter accounts" : "Filter accounts",
+ "The request will expire on {date} at midnight and will be password protected." : "The request will expire on {date} at midnight and will be password protected.",
+ "The request will expire on {date} at midnight." : "The request will expire on {date} at midnight.",
+ "The request will be password protected." : "The request will be password protected.",
+ "When should the request expire?" : "When should the request expire?",
+ "Set a submission expiration date" : "Set a submission expiration date",
+ "Expiration date" : "Expiration date",
+ "Select a date" : "Select a date",
+ "Your administrator has enforced a {count} days expiration policy." : "Your administrator has enforced a {count} days expiration policy.",
+ "What password should be used for the request?" : "What password should be used for the request?",
+ "Set a password" : "Set a password",
+ "Password" : "Password",
+ "Enter a valid password" : "Enter a valid password",
+ "Generate a new password" : "Generate a new password",
+ "Your administrator has enforced a password protection." : "Your administrator has enforced a password protection.",
+ "Automatically copying failed, please copy the share link manually" : "Automatically copying failed, please copy the share link manually",
+ "Link copied" : "Link copied",
+ "Email already added" : "Email already added",
+ "Invalid email address" : "Invalid email address",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["The following email address is not valid: {emails}","The following email addresses are not valid: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} email address already added","{count} email addresses already added"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} email address added","{count} email addresses added"],
+ "You can now share the link below to allow people to upload files to your directory." : "You can now share the link below to allow people to upload files to your directory.",
+ "Share link" : "Share link",
+ "Copy" : "Copy",
+ "Send link via email" : "Send link via email",
+ "Enter an email address or paste a list" : "Enter an email address or paste a list",
+ "Remove email" : "Remove email",
+ "Select a destination" : "Select a destination",
+ "Select" : "Select",
+ "What are you requesting?" : "What are you requesting?",
+ "Request subject" : "Request subject",
+ "Birthday party photos, History assignment…" : "Birthday party photos, History assignment…",
+ "Where should these files go?" : "Where should these files go?",
+ "Upload destination" : "Upload destination",
+ "Revert to default" : "Revert to default",
+ "The uploaded files are visible only to you unless you choose to share them." : "The uploaded files are visible only to you unless you choose to share them.",
+ "Add a note" : "Add a note",
+ "Note for recipient" : "Note for recipient",
+ "Add a note to help people understand what you are requesting." : "Add a note to help people understand what you are requesting.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "You can add links, date or any other information that will help the recipient understand what you are requesting.",
+ "Close" : "Close",
+ "_Send email and close_::_Send {count} emails and close_" : ["Send email and close","Send {count} emails and close"],
+ "Please select a folder, you cannot share the root directory." : "Please select a folder, you cannot share the root directory.",
+ "File request created" : "File request created",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["File request created and email sent","File request created and {count} emails sent"],
+ "Error creating the share: {errorMessage}" : "Error creating the share: {errorMessage}",
+ "Error creating the share" : "Error creating the share",
+ "Error sending emails: {errorMessage}" : "Error sending emails: {errorMessage}",
+ "Error sending emails" : "Error sending emails",
+ "Create a file request" : "Create a file request",
+ "Collect files from others even if they do not have an account." : "Collect files from others even if they do not have an account.",
+ "To ensure you can receive files, verify you have enough storage available." : "To ensure you can receive files, verify you have enough storage available.",
+ "File request" : "File request",
+ "Previous step" : "Previous step",
+ "Cancel" : "Cancel",
+ "Cancel the file request creation" : "Cancel the file request creation",
+ "Close without sending emails" : "Close without sending emails",
+ "Continue" : "Continue",
"Error while toggling options" : "Error while toggling options",
- "Set default folder for accepted shares" : "Set default folder for accepted shares",
- "Reset" : "Reset",
- "Reset folder to system default" : "Reset folder to system default",
+ "Accept shares from other accounts and groups by default" : "Accept shares from other accounts and groups by default",
"Choose a default folder for accepted shares" : "Choose a default folder for accepted shares",
"Invalid path selected" : "Invalid path selected",
"Unknown error" : "Unknown error",
- "Open Sharing Details" : "Open Sharing Details",
+ "Set default folder for accepted shares" : "Set default folder for accepted shares",
+ "Reset" : "Reset",
+ "Reset folder to system default" : "Reset folder to system default",
+ "Share expiration: {date}" : "Share expiration: {date}",
+ "Share Expiration" : "Share Expiration",
"group" : "group",
"conversation" : "conversation",
"remote" : "remote",
"remote group" : "remote group",
"guest" : "guest",
+ "by {initiator}" : "by {initiator}",
"Shared with the group {user} by {owner}" : "Shared with the group {user} by {owner}",
"Shared with the conversation {user} by {owner}" : "Shared with the conversation {user} by {owner}",
"Shared with {user} by {owner}" : "Shared with {user} by {owner}",
+ "Open Sharing Details" : "Open Sharing Details",
"Added by {initiator}" : "Added by {initiator}",
"Via “{folder}”" : "Via “{folder}”",
"Unshare" : "Unshare",
- "Internal link" : "Internal link",
"Cannot copy, please copy the link manually" : "Cannot copy, please copy the link manually",
- "Copy internal link to clipboard" : "Copy internal link to clipboard",
- "Only works for people with access to this folder" : "Only works for people with access to this folder",
- "Only works for people with access to this file" : "Only works for people with access to this file",
- "Link copied" : "Link copied",
- "Please enter the following required information before creating the share" : "Please enter the following required information before creating the share",
- "Password protection (enforced)" : "Password protection (enforced)",
- "Password protection" : "Password protection",
- "Enter a password" : "Enter a password",
- "Expiration date (enforced)" : "Expiration date (enforced)",
- "Enter a date" : "Enter a date",
- "Create share" : "Create share",
- "Cancel" : "Cancel",
- "Customize link" : "Customise link",
- "Generate QR code" : "Generate QR code",
- "Add another link" : "Add another link",
- "Create a new share link" : "Create a new share link",
+ "Copy internal link" : "Copy internal link",
+ "For people who already have access" : "For people who already have access",
+ "Internal link" : "Internal link",
"{shareWith} by {initiator}" : "{shareWith} by {initiator}",
"Shared via link by {initiator}" : "Shared via link by {initiator}",
+ "File request ({label})" : "File request ({label})",
"Mail share ({label})" : "Mail share ({label})",
"Share link ({label})" : "Share link ({label})",
+ "Mail share" : "Mail share",
"Share link ({index})" : "Share link ({index})",
- "Share link" : "Share link",
+ "Create public link" : "Create public link",
"Actions for \"{title}\"" : "Actions for \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Copy public link of \"{title}\" to clipboard",
+ "Copy public link of \"{title}\"" : "Copy public link of \"{title}\"",
"Error, please enter proper password and/or expiration date" : "Error, please enter proper password and/or expiration date",
"Link share created" : "Link share created",
"Error while creating the share" : "Error while creating the share",
+ "Please enter the following required information before creating the share" : "Please enter the following required information before creating the share",
+ "Password protection (enforced)" : "Password protection (enforced)",
+ "Password protection" : "Password protection",
+ "Enter a password" : "Enter a password",
+ "Enable link expiration (enforced)" : "Enable link expiration (enforced)",
+ "Enable link expiration" : "Enable link expiration",
+ "Enter expiration date (enforced)" : "Enter expiration date (enforced)",
+ "Enter expiration date" : "Enter expiration date",
+ "Create share" : "Create share",
+ "Customize link" : "Customise link",
+ "Generate QR code" : "Generate QR code",
+ "Add another link" : "Add another link",
+ "Create a new share link" : "Create a new share link",
"Quick share options, the current selected is \"{selectedOption}\"" : "Quick share options, the current selected is \"{selectedOption}\"",
"View only" : "View only",
"Can edit" : "Can edit",
- "File drop" : "File drop",
"Custom permissions" : "Custom permissions",
- "Search for share recipients" : "Search for share recipients",
- "No recommendations. Start typing." : "No recommendations. Start typing.",
"Resharing is not allowed" : "Resharing is not allowed",
"Name or email …" : "Name or email …",
"Name, email, or Federated Cloud ID …" : "Name, email, or Federated Cloud ID …",
"Searching …" : "Searching …",
"No elements found." : "No elements found.",
- "Search globally" : "Search globally",
+ "Search everywhere" : "Search everywhere",
"Guest" : "Guest",
"Group" : "Group",
"Email" : "Email",
@@ -184,70 +246,99 @@
"Deck board" : "Deck board",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "on {server}",
+ "Enter external recipients" : "Enter external recipients",
+ "Search for internal recipients" : "Search for internal recipients",
+ "Note from" : "Note from",
+ "Note:" : "Note:",
+ "File drop" : "File drop",
+ "Upload files to {foldername}." : "Upload files to {foldername}.",
+ "By uploading files, you agree to the terms of service." : "By uploading files, you agree to the terms of service.",
+ "Successfully uploaded files" : "Successfully uploaded files",
+ "View terms of service" : "View terms of service",
+ "Terms of service" : "Terms of service",
+ "Share with {user}" : "Share with {user}",
+ "Share with email {email}" : "Share with email {email}",
+ "Share with group" : "Share with group",
+ "Share in conversation" : "Share in conversation",
+ "Share with {user} on remote server {server}" : "Share with {user} on remote server {server}",
+ "Share with remote group" : "Share with remote group",
+ "Share with guest" : "Share with guest",
+ "Update share" : "Update share",
+ "Save share" : "Save share",
+ "Read" : "Read",
+ "Create" : "Create",
+ "Edit" : "Edit",
+ "Share" : "Share",
+ "Delete" : "Delete",
+ "Password field cannot be empty" : "Password field cannot be empty",
+ "Replace current password" : "Replace current password",
+ "Failed to generate a new token" : "Failed to generate a new token",
"Allow upload and editing" : "Allow upload and editing",
"Allow editing" : "Allow editing",
"Upload only" : "Upload only",
"Advanced settings" : "Advanced settings",
"Share label" : "Share label",
+ "Share link token" : "Share link token",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information.",
+ "Generating…" : "Generating…",
+ "Generate new token" : "Generate new token",
"Set password" : "Set password",
- "Password" : "Password",
"Password expires {passwordExpirationTime}" : "Password expires {passwordExpirationTime}",
"Password expired" : "Password expired",
"Video verification" : "Video verification",
+ "Expiration date (enforced)" : "Expiration date (enforced)",
"Set expiration date" : "Set expiration date",
- "Expiration date" : "Expiration date",
"Hide download" : "Hide download",
- "Allow download" : "Allow download",
+ "Allow download and sync" : "Allow download and sync",
"Note to recipient" : "Note to recipient",
"Enter a note for the share recipient" : "Enter a note for the share recipient",
- "Read" : "Read",
- "Create" : "Create",
- "Edit" : "Edit",
- "Share" : "Share",
+ "Show files in grid view" : "Show files in grid view",
"Delete share" : "Delete share",
- "Share with {userName}" : "Share with {userName}",
- "Share with email {email}" : "Share with email {email}",
- "Share with group" : "Share with group",
- "Share in conversation" : "Share in conversation",
- "Share with {user} on remote server {server}" : "Share with {user} on remote server {server}",
- "Share with remote group" : "Share with remote group",
- "Share with guest" : "Share with guest",
- "Update share" : "Update share",
- "Save share" : "Save share",
"Others with access" : "Others with access",
"No other accounts with access found" : "No other accounts with access found",
"Toggle list of others with access to this directory" : "Toggle list of others with access to this directory",
"Toggle list of others with access to this file" : "Toggle list of others with access to this file",
"Unable to fetch inherited shares" : "Unable to fetch inherited shares",
+ "Link shares" : "Link shares",
+ "Shares" : "Shares",
+ "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Share files within your organization. Recipients who can already view the file can also use this link for easy access.",
+ "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID.",
+ "Shares from apps or other sources which are not included in internal or external shares." : "Shares from apps or other sources which are not included in internal or external shares.",
+ "Type names, teams, federated cloud IDs" : "Type names, teams, federated cloud IDs",
+ "Type names or teams" : "Type names or teams",
+ "Type a federated cloud ID" : "Type a federated cloud ID",
+ "Type an email" : "Type an email",
+ "Type an email or federated cloud ID" : "Type an email or federated cloud ID",
"Unable to load the shares list" : "Unable to load the shares list",
"Expires {relativetime}" : "Expires {relativetime}",
"this share just expired." : "this share just expired.",
"Shared with you by {owner}" : "Shared with you by {owner}",
+ "Internal shares" : "Internal shares",
+ "Internal shares explanation" : "Internal shares explanation",
+ "External shares" : "External shares",
+ "External shares explanation" : "External shares explanation",
+ "Additional shares" : "Additional shares",
+ "Additional shares explanation" : "Additional shares explanation",
+ "Link to a file" : "Link to a file",
"_Accept share_::_Accept shares_" : ["Accept share","Accept shares"],
"Open in Files" : "Open in Files",
"_Reject share_::_Reject shares_" : ["Reject share","Reject shares"],
"_Restore share_::_Restore shares_" : ["Restore share","Restore shares"],
"Shared" : "Shared",
- "Shared multiple times with different people" : "Shared multiple times with different people",
"Shared by {ownerDisplayName}" : "Shared by {ownerDisplayName}",
- "Show sharing options" : "Show sharing options",
- "Link to a file" : "Link to a file",
- "Error creating the share: {errorMessage}" : "Error creating the share: {errorMessage}",
- "Error creating the share" : "Error creating the share",
- "Error updating the share: {errorMessage}" : "Error updating the share: {errorMessage}",
- "Error updating the share" : "Error updating the share",
- "File \"{path}\" has been unshared" : "File \"{path}\" has been unshared",
- "Folder \"{path}\" has been unshared" : "Folder \"{path}\" has been unshared",
- "Share {propertyName} saved" : "Share {propertyName} saved",
- "Shared by" : "Shared by",
- "Shared with" : "Shared with",
- "Password created successfully" : "Password created successfully",
- "Error generating password from password policy" : "Error generating password from password policy",
- "Shared with you and the group {group} by {owner}" : "Shared with you and the group {group} by {owner}",
- "Shared with you and {circle} by {owner}" : "Shared with you and {circle} by {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Shared with you and the conversation {conversation} by {owner}",
- "Shared with you in a conversation by {owner}" : "Shared with you in a conversation by {owner}",
- "Shares" : "Shares",
+ "Shared multiple times with different people" : "Shared multiple times with different people",
+ "Sharing options" : "Sharing options",
+ "Shared with others" : "Shared with others",
+ "Create file request" : "Create file request",
+ "Upload files to {foldername}" : "Upload files to {foldername}",
+ "Public file share" : "Public file share",
+ "Publicly shared file." : "Publicly shared file.",
+ "No file" : "No file",
+ "The file shared with you will show up here" : "The file shared with you will show up here",
+ "Public share" : "Public share",
+ "Publicly shared files." : "Publicly shared files.",
+ "No files" : "No files",
+ "Files and folders shared with you will show up here" : "Files and folders shared with you will show up here",
"Overview of shared files." : "Overview of shared files.",
"No shares" : "No shares",
"Files and folders you shared or have been shared with you will show up here" : "Files and folders you shared or have been shared with you will show up here",
@@ -255,7 +346,6 @@
"List of files that are shared with you." : "List of files that are shared with you.",
"Nothing shared with you yet" : "Nothing shared with you yet",
"Files and folders others shared with you will show up here" : "Files and folders others shared with you will show up here",
- "Shared with others" : "Shared with others",
"List of files that you shared with others." : "List of files that you shared with others.",
"Nothing shared yet" : "Nothing shared yet",
"Files and folders you shared will show up here" : "Files and folders you shared will show up here",
@@ -263,6 +353,10 @@
"List of files that are shared by link." : "List of files that are shared by link.",
"No shared links" : "No shared links",
"Files and folders you shared by link will show up here" : "Files and folders you shared by link will show up here",
+ "File requests" : "File requests",
+ "List of file requests." : "List of file requests.",
+ "No file requests" : "No file requests",
+ "File requests you have created will show up here" : "File requests you have created will show up here",
"Deleted shares" : "Deleted shares",
"List of shares you left." : "List of shares you left.",
"No deleted shares" : "No deleted shares",
@@ -271,49 +365,87 @@
"List of unapproved shares." : "List of unapproved shares.",
"No pending shares" : "No pending shares",
"Shares you have received but not approved will show up here" : "Shares you have received but not approved will show up here",
+ "Error deleting the share: {errorMessage}" : "Error deleting the share: {errorMessage}",
+ "Error deleting the share" : "Error deleting the share",
+ "Error updating the share: {errorMessage}" : "Error updating the share: {errorMessage}",
+ "Error updating the share" : "Error updating the share",
+ "File \"{path}\" has been unshared" : "File \"{path}\" has been unshared",
+ "Folder \"{path}\" has been unshared" : "Folder \"{path}\" has been unshared",
+ "Could not update share" : "Could not update share",
+ "Share saved" : "Share saved",
+ "Share expiry date saved" : "Share expiry date saved",
+ "Share hide-download state saved" : "Share hide-download state saved",
+ "Share label saved" : "Share label saved",
+ "Share note for recipient saved" : "Share note for recipient saved",
+ "Share password saved" : "Share password saved",
+ "Share permissions saved" : "Share permissions saved",
+ "To upload files to {folder}, you need to provide your name first." : "To upload files to {folder}, you need to provide your name first.",
+ "Upload files to {folder}" : "Upload files to {folder}",
+ "Please confirm your name to upload files to {folder}" : "Please confirm your name to upload files to {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} shared a folder with you.",
+ "Names must not be empty." : "Names must not be empty.",
+ "Names must not start with a dot." : "Names must not start with a dot.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" is not allowed inside a name.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" is a reserved name and not allowed.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" is not an allowed name.",
+ "Names must not end with \"{extension}\"." : "Names must not end with \"{extension}\".",
+ "Invalid name." : "Invalid name.",
+ "Shared by" : "Shared by",
+ "Shared with" : "Shared with",
+ "Password created successfully" : "Password created successfully",
+ "Error generating password from password policy" : "Error generating password from password policy",
+ "Shared with you and the group {group} by {owner}" : "Shared with you and the group {group} by {owner}",
+ "Shared with you and {circle} by {owner}" : "Shared with you and {circle} by {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Shared with you and the conversation {conversation} by {owner}",
+ "Shared with you in a conversation by {owner}" : "Shared with you in a conversation by {owner}",
+ "Share not found" : "Share not found",
+ "Back to %s" : "Back to %s",
+ "Add to your Nextcloud" : "Add to your Nextcloud",
+ "Waiting…" : "Waiting…",
+ "error" : "error",
+ "finished" : "finished",
+ "This will stop your current uploads." : "This will stop your current uploads.",
+ "Move or copy" : "Move or copy",
+ "You can upload into this folder" : "You can upload into this folder",
+ "Show list view" : "Show list view",
+ "Show grid view" : "Show grid view",
+ "No compatible server found at {remote}" : "No compatible server found at {remote}",
+ "Invalid server URL" : "Invalid server URL",
+ "Failed to add the public link to your Nextcloud" : "Failed to add the public link to your Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "You are not allowed to edit link shares that you don't own",
+ "Download all files" : "Download all files",
+ "Link copied to clipboard" : "Link copied to clipboard",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 email address already added","{count} email addresses already added"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 email address added","{count} email addresses added"],
+ "Copy to clipboard" : "Copy to clipboard",
+ "Copy internal link to clipboard" : "Copy internal link to clipboard",
+ "Only works for people with access to this folder" : "Only works for people with access to this folder",
+ "Only works for people with access to this file" : "Only works for people with access to this file",
+ "Copy public link of \"{title}\" to clipboard" : "Copy public link of \"{title}\" to clipboard",
+ "Search globally" : "Search globally",
+ "Search for share recipients" : "Search for share recipients",
+ "No recommendations. Start typing." : "No recommendations. Start typing.",
+ "To upload files, you need to provide your name first." : "To upload files, you need to provide your name first.",
+ "Enter your name" : "Enter your name",
+ "Submit name" : "Submit name",
+ "Share with {userName}" : "Share with {userName}",
+ "Show sharing options" : "Show sharing options",
"Share note" : "Share note",
"Upload files to %s" : "Upload files to %s",
+ "%s shared a folder with you." : "%s shared a folder with you.",
"Note" : "Note",
"Select or drop files" : "Select or drop files",
"Uploading files" : "Uploading files",
"Uploaded files:" : "Uploaded files:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "By uploading files, you agree to the %1$sterms of service%2$s.",
- "Add to your Nextcloud" : "Add to your Nextcloud",
- "Files and folders others share with you will show up here" : "Files and folders others share with you will show up here",
- "Files and folders you share will show up here" : "Files and folders you share will show up here",
- "Files and folders you share by link will show up here" : "Files and folders you share by link will show up here",
- "Shares you deleted will show up here" : "Shares you deleted will show up here",
- "Shares you have received but not confirmed will show up here" : "Shares you have received but not confirmed will show up here",
- "Shares will show up here" : "Shares will show up here",
- "Restore" : "Restore",
- "Something happened. Unable to restore the share." : "Something happened. Unable to restore the share.",
- "Something happened. Unable to accept the share." : "Something happened. Unable to accept the share.",
- "Something happened. Unable to reject the share." : "Something happened. Unable to reject the share.",
- "No expiration date set" : "No expiration date set",
- "Please specify a valid user" : "Please specify a valid user",
- "Please specify a valid federated user ID" : "Please specify a valid federated user ID",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation.",
- "Accept user and group shares by default" : "Accept user and group shares by default",
- "Read only" : "Read only",
- "File drop (upload only)" : "File drop (upload only)",
- "Upload" : "Upload",
- "Bundled permissions" : "Bundled permissions",
- "Only works for users with access to this folder" : "Only works for users with access to this folder",
- "Only works for users with access to this file" : "Only works for users with access to this file",
- "Circle" : "Circle",
- "Update" : "Update",
- "Share with " : "Share with ",
- "No other users with access found" : "No other users with access found",
- "No entries found in this folder" : "No entries found in this folder",
- "Name" : "Name",
- "Share time" : "Share time",
- "Sorry, this link does not seem to work anymore." : "Sorry, this link does not seem to work any more.",
- "Reasons might be:" : "Reasons might be:",
- "the item was removed" : "the item was removed",
- "the link expired" : "the link expired",
- "sharing is disabled" : "sharing is disabled",
- "For more info, please ask the person who sent this link." : "For more info, please ask the person who sent this link.",
- "Share with remote" : "Share with remote",
- "Share with" : "Share with"
+ "Name" : "Surname",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Shares that are not part of the internal or external shares. This can be shares from apps or other sources.",
+ "Share with accounts, teams, federated cloud id" : "Share with accounts, teams, federated cloud id",
+ "Share with accounts and teams" : "Share with accounts and teams",
+ "Federated cloud ID" : "Federated cloud ID",
+ "Email, federated cloud id" : "Email, federated cloud id",
+ "Filename must not be empty." : "Filename must not be empty."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/eo.js b/apps/files_sharing/l10n/eo.js
deleted file mode 100644
index a8c0cf6db42..00000000000
--- a/apps/files_sharing/l10n/eo.js
+++ /dev/null
@@ -1,209 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "error" : "eraro",
- "This will stop your current uploads." : "Tio haltigos viajn nunajn alŝutojn.",
- "Move or copy" : "Movi aŭ kopii",
- "Download" : "Elŝuti",
- "Delete" : "Forigi",
- "You can upload into this folder" : "Vi povas alŝuti en ĉi tiun dosierujon",
- "Terms of service" : "Kondiĉoj de uzado",
- "Show list view" : "Montri listan vidon",
- "Show grid view" : "Montri kradan vidon",
- "No compatible server found at {remote}" : "Neniu kongrua servilo trovita je {remote}",
- "Invalid server URL" : "Nevalida servila retadreso",
- "Failed to add the public link to your Nextcloud" : "Ne eblis aldoni la publikan ligilon al via Nextcloud",
- "File shares" : "Dosieraj kunhavoj",
- "Downloaded via public link" : "Elŝutita per publika ligilo",
- "Downloaded by {email}" : "Elŝutita de {email}",
- "{file} downloaded via public link" : "{file} elŝutita per publika ligilo",
- "{email} downloaded {file}" : "{email} elŝutis la dosieron {file}",
- "Shared with group {group}" : "Kunhavata kun grupo {group}",
- "Removed share for group {group}" : "Foriĝis kunhavo kun grupo {group}",
- "{actor} shared with group {group}" : "{actor} kunhavigis kun grupo {group}",
- "{actor} removed share for group {group}" : "{actor} forigis kunhavon kun grupo {group}",
- "Share for group {group} expired" : "Kunhavo kun grupo {group} senvalidiĝis",
- "You shared {file} with group {group}" : "Vi kunhavigis {file} kun grupo {group}",
- "You removed group {group} from {file}" : "Vi forigis grupon {group} el {file}",
- "{actor} shared {file} with group {group}" : "{actor} kunhavigis dosieron {file} kun grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} forigis grupon {group} el dosiero {file}",
- "Share for file {file} with group {group} expired" : "Kunhavo de dosiero {file} kun grupo {group} senvalidiĝis",
- "Shared as public link" : "Kunhavigita per publika ligilo",
- "Removed public link" : "Foriĝis publika ligilo",
- "Public link expired" : "Publika ligilo senvalidiĝis",
- "{actor} shared as public link" : "{actor} kunhavigis per publika ligilo",
- "{actor} removed public link" : "{actor} forigis publikan ligilon",
- "Public link of {actor} expired" : "Publika ligilo de {actor} senvalidiĝis",
- "You shared {file} as public link" : "Vi kunhavigis dosieron {file} kiel publika ligilo",
- "You removed public link for {file}" : "Vi forigis publikan ligilon por {file}",
- "Public link expired for {file}" : "Publika ligilo de dosiero {file} senvalidiĝis",
- "{actor} shared {file} as public link" : "{actor} kunhavigis dosieron {file} kiel publika ligilo",
- "{actor} removed public link for {file}" : "{actor} forigis publikan ligilon el {file}",
- "Public link of {actor} for {file} expired" : "Publika ligilo de {actor} pri {file} senvalidiĝis",
- "{user} accepted the remote share" : "{user} akceptis la foran kunhavon",
- "{user} declined the remote share" : "{user} malakceptis la foran kunhavon",
- "You received a new remote share {file} from {user}" : "Vi ricevis novan foran kunhavon {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} akceptis la foran kunhavon de {file}",
- "{user} declined the remote share of {file}" : "{user} malakceptis la foran kunhavon de {file}",
- "{user} unshared {file} from you" : "{user} malkunhavigis {file} al vi",
- "Shared with {user}" : "Kunhavigita kun {user}",
- "Removed share for {user}" : "Kunhavo forigita el {user}",
- "You removed yourself" : "Vi forigis vin mem",
- "{actor} removed themselves" : "{actor} forigis sin mem",
- "{actor} shared with {user}" : "{actor} kunhavigis kun {user}",
- "{actor} removed share for {user}" : "{actor} forigis kunhavon kun {user}",
- "Shared by {actor}" : "Kunhavigita de {actor}",
- "{actor} removed share" : "{actor} forigis kunhavon",
- "Share for {user} expired" : "Kunhavo por {user} senvalidiĝis",
- "Share expired" : "Kunhavo senvalidiĝis",
- "You shared {file} with {user}" : "Vi kunhavigis {file} kun {user}",
- "You removed {user} from {file}" : "Vi forigis {user} el {file}",
- "You removed yourself from {file}" : "Vi forigis vin mem el {file}",
- "{actor} removed themselves from {file}" : "{actor} forigis sin mem el {file}",
- "{actor} shared {file} with {user}" : "{actor} kunhavigis dosieron {file} kun {group}",
- "{actor} removed {user} from {file}" : "{actor} forigis {user} el {file}",
- "{actor} shared {file} with you" : "{actor} kunhavigis {file} kun vi",
- "{actor} removed you from the share named {file}" : "{actor} forigis vin el la kunhavo nomita {file}",
- "Share for file {file} with {user} expired" : "Kunhavo de dosiero {file} kun {user} senvalidiĝis",
- "Share for file {file} expired" : "Kunhavo de dosiero {file} senvalidiĝis",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Dosiero aŭ dosierujo kunhavigita per retpoŝte aŭ publika ligilo <strong>elŝutiĝis</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Dosiero aŭ dosierujo kunhaviĝis el <strong>alia servilo</strong>",
- "Files" : "Dosieroj",
- "A file or folder has been <strong>shared</strong>" : "Dosiero aŭ dosierujo <strong>kunhaviĝis</strong>",
- "Could not delete share" : "Ne eblis forigi kunhavon",
- "Please specify a file or folder path" : "Bv. entajpi vojon al dosiero aŭ dosierujo",
- "Could not create share" : "Ne eblis krei kunhavon",
- "Invalid date, date format must be YYYY-MM-DD" : "Nevalida dato; datoformo estu JJJJ-MM-TT",
- "Group sharing is disabled by the administrator" : "Grup-kunhavigon malebligis la administranto",
- "Please specify a valid group" : "Bv. doni validan grupon",
- "Public link sharing is disabled by the administrator" : "Kunhavigon per publika ligilo malebligis la administranto",
- "Public upload disabled by the administrator" : "Publikan alŝuton malebligis la administranto",
- "Public upload is only possible for publicly shared folders" : "Publika alŝuto eblas nur por publike kunhavigitaj dosierujoj",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Kunhavigo de %s per sendado de la pasvorto per „Nextcloud Talk“ malsukcesis, ĉar Nextcloud Talk ne estas ebligita.",
- "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Kunhavigo de %1$s malsukcesis, ĉar la servilo ne permesas kunhavon de tipo %2$s",
- "You cannot share to a Circle if the app is not enabled" : "Vi ne povas kunhavigi per Rondo, se la aplikaĵo „Rondo“ ne estas ebligita",
- "Please specify a valid circle" : "Bv. doni validan rondon",
- "Sharing %s failed because the back end does not support room shares" : "Kunhavigo de %s malsukcesis, ĉar la servilo ne subtenas kunhavon de ĉambro",
- "Unknown share type" : "Nekonata kunhava tipo",
- "Not a directory" : "Ne estas dosierujo",
- "Could not lock path" : "Ne eblis ŝlosi vojon",
- "Wrong or no update parameter given" : "Neniu aŭ neĝusta ĝisdatiga parametro donita",
- "shared by %s" : "kunhavigita de %s",
- "Download all files" : "Elŝuti ĉiujn dosierojn",
- "Direct link" : "Direkta ligilo",
- "Share API is disabled" : "Kunhavo-API estas malebligita",
- "File sharing" : "Kunhavigo de dosieroj",
- "Share will expire tomorrow" : "La kunhavo senvalidiĝos morgaŭ",
- "Your share of {node} will expire tomorrow" : "Via kunhavo „{node} “ senvalidiĝos morgaŭ",
- "You received {share} as a share by {user}" : "Vi ricevis „{share}“ kiel kunhavon el {user}",
- "You received {share} to group {group} as a share by {user}" : "Vi ricevis „{share}“ al grupo {group} kiel kunhavon el {user}",
- "Accept" : "Akcepti",
- "Decline" : "Malakcepti",
- "Sharing" : "Kunhavigo",
- "Reset" : "Restarigi",
- "Unknown error" : "Nekonata eraro",
- "group" : "grupo",
- "conversation" : "konversacio",
- "remote" : "fora",
- "remote group" : "fora grupo",
- "guest" : "gasto",
- "Shared with the group {user} by {owner}" : "Kunhavigita kun la grupo {group} fare de {owner}",
- "Shared with the conversation {user} by {owner}" : "Kunhavigita kun la konversacio {user} fare de {owner}",
- "Shared with {user} by {owner}" : "Kunhavigita kun {user} fare de {owner}",
- "Unshare" : "Malkunhavigi",
- "Internal link" : "Interna ligilo",
- "Cannot copy, please copy the link manually" : "Ne eblis kopii la ligilon; kopiu ĝin permane.",
- "Link copied" : "Ligilo kopiita",
- "Please enter the following required information before creating the share" : "Entajpu la jenajn neprajn informojn antaŭ ol krei la kunhavigon",
- "Password protection (enforced)" : "Pasvorta protekto (efektiva)",
- "Password protection" : "Protektita per pasvorto",
- "Enter a password" : "Entajpu pasvorton",
- "Expiration date (enforced)" : "Limdato (efektiva)",
- "Enter a date" : "Entajpu daton",
- "Cancel" : "Nuligi",
- "Add another link" : "Aldoni plian ligilon",
- "Create a new share link" : "Krei novan kunhavan ligilon",
- "Shared via link by {initiator}" : "Kunhavata per ligilo de {initiator}",
- "Share link" : "Kunhavigi ligilon",
- "Error, please enter proper password and/or expiration date" : "Eraro; entajpu ĝustan pasvorton aŭ limdaton",
- "Can edit" : "Povas redakti",
- "No recommendations. Start typing." : "Neniu propono. Ektajpu.",
- "Resharing is not allowed" : "Re-kunhavigi ne estas permesita",
- "Searching …" : "Serĉado ...",
- "No elements found." : "Nenio trovita.",
- "Search globally" : "Serĉi ĉie",
- "Guest" : "Gasto",
- "Group" : "Grupo",
- "Email" : "Retpoŝtadreso",
- "on {server}" : "ĉe {server}",
- "Allow upload and editing" : "Permesi alŝuton kaj redakton",
- "Allow editing" : "Permesi modifon",
- "Advanced settings" : "Altanivela agordo",
- "Set expiration date" : "Uzi limdaton",
- "Expiration date" : "Limdato",
- "Hide download" : "Kaŝi elŝuton",
- "Note to recipient" : "Noto por la ricevonto",
- "Enter a note for the share recipient" : "Entajpu noton por la ricevonto",
- "Read" : "Legi",
- "Edit" : "Modifi",
- "Share" : "Kunhavigi",
- "Delete share" : "Forigi kunhavigon",
- "Unable to load the shares list" : "Ne eblas ricevi kunhavliston",
- "Expires {relativetime}" : "Senvalidiĝas {relativetime}",
- "this share just expired." : "Tiu kunhavo ĵus senvalidiĝis.",
- "Shared with you by {owner}" : "Kunhavigita kun vi de {owner}",
- "Shared" : "Kunhavigita",
- "Link to a file" : "Ligilo al dosiero",
- "Error creating the share" : "Eraro dum kreo de la kunhavigo",
- "Error updating the share" : "Eraro dum ĝisdatigo de la kunhavigo",
- "Shared by" : "Kunhavigita de",
- "Shared with" : "Kunhavigita kun",
- "Shared with you and the group {group} by {owner}" : "Kunhavigita kun vi kaj la grupo {group} de {owner}",
- "Shared with you and {circle} by {owner}" : "Kunhavigita kun vi kaj {circle} de {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Kunhavigita kun vi kaj la konversacio {conversation} fare de {owner}",
- "Shared with you in a conversation by {owner}" : "Kunhavigita kun vi en konversacio de {owner}",
- "Shares" : "Kunhavoj",
- "No shares" : "Neniu kunhavo",
- "Shared with you" : "Kunhavata kun vi",
- "Nothing shared with you yet" : "Nenio kunhavatas kun vi ankoraŭ",
- "Shared with others" : "Kunhavata kun aliaj",
- "Nothing shared yet" : "Nenio kunhavatas ankoraŭ",
- "Shared by link" : "Kunhavata per ligilo",
- "No shared links" : "Neniu kunhavata ligilo",
- "Deleted shares" : "Forigitaj kunhavigoj",
- "No deleted shares" : "Neniu forigita kunhavigo",
- "Share note" : "Kunhavigo noton",
- "Upload files to %s" : "Alŝuti dosierojn al %s",
- "Note" : "Noto",
- "Select or drop files" : "Elekti aŭ demeti dosierojn",
- "Uploaded files:" : "Alŝutitaj dosieroj:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "Se vi alŝutas dosierojn, vi konsentas pri %1$skondiĉoj de uzado%2$s.",
- "Add to your Nextcloud" : "Aldoni al via Nextcloud",
- "Files and folders others share with you will show up here" : "Dosieroj kaj dosierujoj, kiujn aliuloj kunhavigas, aperos ĉi tie",
- "Files and folders you share will show up here" : "Dosieroj kaj dosierujoj, kiujn vi kunhavigas, aperos ĉi tie",
- "Files and folders you share by link will show up here" : "Dosieroj kaj dosierujoj, kiujn vi kunhavigas per ligilo, aperos ĉi tie",
- "Shares you deleted will show up here" : "Kunhavoj, kiujn vi forigis, aperos ĉi tie",
- "Shares will show up here" : "Kunhavoj aperos ĉi tie",
- "Restore" : "Restaŭri",
- "Something happened. Unable to restore the share." : "Io okazis. Ne eblis restaŭri la kunhavon. ",
- "No expiration date set" : "Neniu limdato agordita",
- "Please specify a valid user" : "Bv. doni validan uzanton",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Tiu aplikaĵo ebligas al uzantoj kunhavigi dosieroj ene de Nextcloud. Se ebligita, la administranto povas elekti, kiuj grupoj povas kunhavigi dosierojn. Tiam, uzantoj povas kunhavigi dosierojn kaj dosierujojn kun aliaj uzantoj kaj grupoj ene de Nextcloud. Cetere, se la administranto permesas kunhavigi ligilojn, ekstera ligilo uzeblas por kunhavigi dosieroj kun aliaj uzantoj ekster Nextcloud. Administrantoj povas ankaŭ devigi uzon de pasvortoj, limdatoj, kaj permesi servil-al-servila kunhavigon per kunhaviga ligilo, kaj kunhavigon el porteblaj aparatoj.\nMalebligi tiun funkcion forigas kunhavigitajn dosierojn kaj dosierujon el la servilo por ĉiuj kunhavaj ricevantoj, kaj ankaŭ por la sinkronigaj klientoj kaj la porteblaj aplikaĵoj. Pli da informoj en la dokumentaro de Nextcloud.",
- "Read only" : "Nurlega",
- "File drop (upload only)" : "Demeti dosieron (nur alŝuto)",
- "Upload" : "Alŝuti",
- "Only works for users with access to this folder" : "Nur validas por uzantoj, kiuj povas aliri al tiu dosierujo",
- "Only works for users with access to this file" : "Nur validas por uzantoj, kiuj povas aliri al tiu dosiero",
- "Circle" : "Rondo",
- "Update" : "Ĝisdatigi",
- "No entries found in this folder" : "Neniu enigo troviĝis en ĉi tiu dosierujo",
- "Name" : "Nomo",
- "Share time" : "Kunhavotempo",
- "Reasons might be:" : "Kialoj povas esti:",
- "the item was removed" : "la ero foriĝis",
- "the link expired" : "la ligilo eksvalidiĝis",
- "sharing is disabled" : "kunhavigo malkapablas",
- "For more info, please ask the person who sent this link." : "Por plia informo, bonvolu peti al la persono, kiu sendis ĉi tiun ligilon.",
- "Share with" : "Kunhavigi kun"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/eo.json b/apps/files_sharing/l10n/eo.json
deleted file mode 100644
index 07ab8d46ed3..00000000000
--- a/apps/files_sharing/l10n/eo.json
+++ /dev/null
@@ -1,207 +0,0 @@
-{ "translations": {
- "error" : "eraro",
- "This will stop your current uploads." : "Tio haltigos viajn nunajn alŝutojn.",
- "Move or copy" : "Movi aŭ kopii",
- "Download" : "Elŝuti",
- "Delete" : "Forigi",
- "You can upload into this folder" : "Vi povas alŝuti en ĉi tiun dosierujon",
- "Terms of service" : "Kondiĉoj de uzado",
- "Show list view" : "Montri listan vidon",
- "Show grid view" : "Montri kradan vidon",
- "No compatible server found at {remote}" : "Neniu kongrua servilo trovita je {remote}",
- "Invalid server URL" : "Nevalida servila retadreso",
- "Failed to add the public link to your Nextcloud" : "Ne eblis aldoni la publikan ligilon al via Nextcloud",
- "File shares" : "Dosieraj kunhavoj",
- "Downloaded via public link" : "Elŝutita per publika ligilo",
- "Downloaded by {email}" : "Elŝutita de {email}",
- "{file} downloaded via public link" : "{file} elŝutita per publika ligilo",
- "{email} downloaded {file}" : "{email} elŝutis la dosieron {file}",
- "Shared with group {group}" : "Kunhavata kun grupo {group}",
- "Removed share for group {group}" : "Foriĝis kunhavo kun grupo {group}",
- "{actor} shared with group {group}" : "{actor} kunhavigis kun grupo {group}",
- "{actor} removed share for group {group}" : "{actor} forigis kunhavon kun grupo {group}",
- "Share for group {group} expired" : "Kunhavo kun grupo {group} senvalidiĝis",
- "You shared {file} with group {group}" : "Vi kunhavigis {file} kun grupo {group}",
- "You removed group {group} from {file}" : "Vi forigis grupon {group} el {file}",
- "{actor} shared {file} with group {group}" : "{actor} kunhavigis dosieron {file} kun grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} forigis grupon {group} el dosiero {file}",
- "Share for file {file} with group {group} expired" : "Kunhavo de dosiero {file} kun grupo {group} senvalidiĝis",
- "Shared as public link" : "Kunhavigita per publika ligilo",
- "Removed public link" : "Foriĝis publika ligilo",
- "Public link expired" : "Publika ligilo senvalidiĝis",
- "{actor} shared as public link" : "{actor} kunhavigis per publika ligilo",
- "{actor} removed public link" : "{actor} forigis publikan ligilon",
- "Public link of {actor} expired" : "Publika ligilo de {actor} senvalidiĝis",
- "You shared {file} as public link" : "Vi kunhavigis dosieron {file} kiel publika ligilo",
- "You removed public link for {file}" : "Vi forigis publikan ligilon por {file}",
- "Public link expired for {file}" : "Publika ligilo de dosiero {file} senvalidiĝis",
- "{actor} shared {file} as public link" : "{actor} kunhavigis dosieron {file} kiel publika ligilo",
- "{actor} removed public link for {file}" : "{actor} forigis publikan ligilon el {file}",
- "Public link of {actor} for {file} expired" : "Publika ligilo de {actor} pri {file} senvalidiĝis",
- "{user} accepted the remote share" : "{user} akceptis la foran kunhavon",
- "{user} declined the remote share" : "{user} malakceptis la foran kunhavon",
- "You received a new remote share {file} from {user}" : "Vi ricevis novan foran kunhavon {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} akceptis la foran kunhavon de {file}",
- "{user} declined the remote share of {file}" : "{user} malakceptis la foran kunhavon de {file}",
- "{user} unshared {file} from you" : "{user} malkunhavigis {file} al vi",
- "Shared with {user}" : "Kunhavigita kun {user}",
- "Removed share for {user}" : "Kunhavo forigita el {user}",
- "You removed yourself" : "Vi forigis vin mem",
- "{actor} removed themselves" : "{actor} forigis sin mem",
- "{actor} shared with {user}" : "{actor} kunhavigis kun {user}",
- "{actor} removed share for {user}" : "{actor} forigis kunhavon kun {user}",
- "Shared by {actor}" : "Kunhavigita de {actor}",
- "{actor} removed share" : "{actor} forigis kunhavon",
- "Share for {user} expired" : "Kunhavo por {user} senvalidiĝis",
- "Share expired" : "Kunhavo senvalidiĝis",
- "You shared {file} with {user}" : "Vi kunhavigis {file} kun {user}",
- "You removed {user} from {file}" : "Vi forigis {user} el {file}",
- "You removed yourself from {file}" : "Vi forigis vin mem el {file}",
- "{actor} removed themselves from {file}" : "{actor} forigis sin mem el {file}",
- "{actor} shared {file} with {user}" : "{actor} kunhavigis dosieron {file} kun {group}",
- "{actor} removed {user} from {file}" : "{actor} forigis {user} el {file}",
- "{actor} shared {file} with you" : "{actor} kunhavigis {file} kun vi",
- "{actor} removed you from the share named {file}" : "{actor} forigis vin el la kunhavo nomita {file}",
- "Share for file {file} with {user} expired" : "Kunhavo de dosiero {file} kun {user} senvalidiĝis",
- "Share for file {file} expired" : "Kunhavo de dosiero {file} senvalidiĝis",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Dosiero aŭ dosierujo kunhavigita per retpoŝte aŭ publika ligilo <strong>elŝutiĝis</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Dosiero aŭ dosierujo kunhaviĝis el <strong>alia servilo</strong>",
- "Files" : "Dosieroj",
- "A file or folder has been <strong>shared</strong>" : "Dosiero aŭ dosierujo <strong>kunhaviĝis</strong>",
- "Could not delete share" : "Ne eblis forigi kunhavon",
- "Please specify a file or folder path" : "Bv. entajpi vojon al dosiero aŭ dosierujo",
- "Could not create share" : "Ne eblis krei kunhavon",
- "Invalid date, date format must be YYYY-MM-DD" : "Nevalida dato; datoformo estu JJJJ-MM-TT",
- "Group sharing is disabled by the administrator" : "Grup-kunhavigon malebligis la administranto",
- "Please specify a valid group" : "Bv. doni validan grupon",
- "Public link sharing is disabled by the administrator" : "Kunhavigon per publika ligilo malebligis la administranto",
- "Public upload disabled by the administrator" : "Publikan alŝuton malebligis la administranto",
- "Public upload is only possible for publicly shared folders" : "Publika alŝuto eblas nur por publike kunhavigitaj dosierujoj",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Kunhavigo de %s per sendado de la pasvorto per „Nextcloud Talk“ malsukcesis, ĉar Nextcloud Talk ne estas ebligita.",
- "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Kunhavigo de %1$s malsukcesis, ĉar la servilo ne permesas kunhavon de tipo %2$s",
- "You cannot share to a Circle if the app is not enabled" : "Vi ne povas kunhavigi per Rondo, se la aplikaĵo „Rondo“ ne estas ebligita",
- "Please specify a valid circle" : "Bv. doni validan rondon",
- "Sharing %s failed because the back end does not support room shares" : "Kunhavigo de %s malsukcesis, ĉar la servilo ne subtenas kunhavon de ĉambro",
- "Unknown share type" : "Nekonata kunhava tipo",
- "Not a directory" : "Ne estas dosierujo",
- "Could not lock path" : "Ne eblis ŝlosi vojon",
- "Wrong or no update parameter given" : "Neniu aŭ neĝusta ĝisdatiga parametro donita",
- "shared by %s" : "kunhavigita de %s",
- "Download all files" : "Elŝuti ĉiujn dosierojn",
- "Direct link" : "Direkta ligilo",
- "Share API is disabled" : "Kunhavo-API estas malebligita",
- "File sharing" : "Kunhavigo de dosieroj",
- "Share will expire tomorrow" : "La kunhavo senvalidiĝos morgaŭ",
- "Your share of {node} will expire tomorrow" : "Via kunhavo „{node} “ senvalidiĝos morgaŭ",
- "You received {share} as a share by {user}" : "Vi ricevis „{share}“ kiel kunhavon el {user}",
- "You received {share} to group {group} as a share by {user}" : "Vi ricevis „{share}“ al grupo {group} kiel kunhavon el {user}",
- "Accept" : "Akcepti",
- "Decline" : "Malakcepti",
- "Sharing" : "Kunhavigo",
- "Reset" : "Restarigi",
- "Unknown error" : "Nekonata eraro",
- "group" : "grupo",
- "conversation" : "konversacio",
- "remote" : "fora",
- "remote group" : "fora grupo",
- "guest" : "gasto",
- "Shared with the group {user} by {owner}" : "Kunhavigita kun la grupo {group} fare de {owner}",
- "Shared with the conversation {user} by {owner}" : "Kunhavigita kun la konversacio {user} fare de {owner}",
- "Shared with {user} by {owner}" : "Kunhavigita kun {user} fare de {owner}",
- "Unshare" : "Malkunhavigi",
- "Internal link" : "Interna ligilo",
- "Cannot copy, please copy the link manually" : "Ne eblis kopii la ligilon; kopiu ĝin permane.",
- "Link copied" : "Ligilo kopiita",
- "Please enter the following required information before creating the share" : "Entajpu la jenajn neprajn informojn antaŭ ol krei la kunhavigon",
- "Password protection (enforced)" : "Pasvorta protekto (efektiva)",
- "Password protection" : "Protektita per pasvorto",
- "Enter a password" : "Entajpu pasvorton",
- "Expiration date (enforced)" : "Limdato (efektiva)",
- "Enter a date" : "Entajpu daton",
- "Cancel" : "Nuligi",
- "Add another link" : "Aldoni plian ligilon",
- "Create a new share link" : "Krei novan kunhavan ligilon",
- "Shared via link by {initiator}" : "Kunhavata per ligilo de {initiator}",
- "Share link" : "Kunhavigi ligilon",
- "Error, please enter proper password and/or expiration date" : "Eraro; entajpu ĝustan pasvorton aŭ limdaton",
- "Can edit" : "Povas redakti",
- "No recommendations. Start typing." : "Neniu propono. Ektajpu.",
- "Resharing is not allowed" : "Re-kunhavigi ne estas permesita",
- "Searching …" : "Serĉado ...",
- "No elements found." : "Nenio trovita.",
- "Search globally" : "Serĉi ĉie",
- "Guest" : "Gasto",
- "Group" : "Grupo",
- "Email" : "Retpoŝtadreso",
- "on {server}" : "ĉe {server}",
- "Allow upload and editing" : "Permesi alŝuton kaj redakton",
- "Allow editing" : "Permesi modifon",
- "Advanced settings" : "Altanivela agordo",
- "Set expiration date" : "Uzi limdaton",
- "Expiration date" : "Limdato",
- "Hide download" : "Kaŝi elŝuton",
- "Note to recipient" : "Noto por la ricevonto",
- "Enter a note for the share recipient" : "Entajpu noton por la ricevonto",
- "Read" : "Legi",
- "Edit" : "Modifi",
- "Share" : "Kunhavigi",
- "Delete share" : "Forigi kunhavigon",
- "Unable to load the shares list" : "Ne eblas ricevi kunhavliston",
- "Expires {relativetime}" : "Senvalidiĝas {relativetime}",
- "this share just expired." : "Tiu kunhavo ĵus senvalidiĝis.",
- "Shared with you by {owner}" : "Kunhavigita kun vi de {owner}",
- "Shared" : "Kunhavigita",
- "Link to a file" : "Ligilo al dosiero",
- "Error creating the share" : "Eraro dum kreo de la kunhavigo",
- "Error updating the share" : "Eraro dum ĝisdatigo de la kunhavigo",
- "Shared by" : "Kunhavigita de",
- "Shared with" : "Kunhavigita kun",
- "Shared with you and the group {group} by {owner}" : "Kunhavigita kun vi kaj la grupo {group} de {owner}",
- "Shared with you and {circle} by {owner}" : "Kunhavigita kun vi kaj {circle} de {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Kunhavigita kun vi kaj la konversacio {conversation} fare de {owner}",
- "Shared with you in a conversation by {owner}" : "Kunhavigita kun vi en konversacio de {owner}",
- "Shares" : "Kunhavoj",
- "No shares" : "Neniu kunhavo",
- "Shared with you" : "Kunhavata kun vi",
- "Nothing shared with you yet" : "Nenio kunhavatas kun vi ankoraŭ",
- "Shared with others" : "Kunhavata kun aliaj",
- "Nothing shared yet" : "Nenio kunhavatas ankoraŭ",
- "Shared by link" : "Kunhavata per ligilo",
- "No shared links" : "Neniu kunhavata ligilo",
- "Deleted shares" : "Forigitaj kunhavigoj",
- "No deleted shares" : "Neniu forigita kunhavigo",
- "Share note" : "Kunhavigo noton",
- "Upload files to %s" : "Alŝuti dosierojn al %s",
- "Note" : "Noto",
- "Select or drop files" : "Elekti aŭ demeti dosierojn",
- "Uploaded files:" : "Alŝutitaj dosieroj:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "Se vi alŝutas dosierojn, vi konsentas pri %1$skondiĉoj de uzado%2$s.",
- "Add to your Nextcloud" : "Aldoni al via Nextcloud",
- "Files and folders others share with you will show up here" : "Dosieroj kaj dosierujoj, kiujn aliuloj kunhavigas, aperos ĉi tie",
- "Files and folders you share will show up here" : "Dosieroj kaj dosierujoj, kiujn vi kunhavigas, aperos ĉi tie",
- "Files and folders you share by link will show up here" : "Dosieroj kaj dosierujoj, kiujn vi kunhavigas per ligilo, aperos ĉi tie",
- "Shares you deleted will show up here" : "Kunhavoj, kiujn vi forigis, aperos ĉi tie",
- "Shares will show up here" : "Kunhavoj aperos ĉi tie",
- "Restore" : "Restaŭri",
- "Something happened. Unable to restore the share." : "Io okazis. Ne eblis restaŭri la kunhavon. ",
- "No expiration date set" : "Neniu limdato agordita",
- "Please specify a valid user" : "Bv. doni validan uzanton",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Tiu aplikaĵo ebligas al uzantoj kunhavigi dosieroj ene de Nextcloud. Se ebligita, la administranto povas elekti, kiuj grupoj povas kunhavigi dosierojn. Tiam, uzantoj povas kunhavigi dosierojn kaj dosierujojn kun aliaj uzantoj kaj grupoj ene de Nextcloud. Cetere, se la administranto permesas kunhavigi ligilojn, ekstera ligilo uzeblas por kunhavigi dosieroj kun aliaj uzantoj ekster Nextcloud. Administrantoj povas ankaŭ devigi uzon de pasvortoj, limdatoj, kaj permesi servil-al-servila kunhavigon per kunhaviga ligilo, kaj kunhavigon el porteblaj aparatoj.\nMalebligi tiun funkcion forigas kunhavigitajn dosierojn kaj dosierujon el la servilo por ĉiuj kunhavaj ricevantoj, kaj ankaŭ por la sinkronigaj klientoj kaj la porteblaj aplikaĵoj. Pli da informoj en la dokumentaro de Nextcloud.",
- "Read only" : "Nurlega",
- "File drop (upload only)" : "Demeti dosieron (nur alŝuto)",
- "Upload" : "Alŝuti",
- "Only works for users with access to this folder" : "Nur validas por uzantoj, kiuj povas aliri al tiu dosierujo",
- "Only works for users with access to this file" : "Nur validas por uzantoj, kiuj povas aliri al tiu dosiero",
- "Circle" : "Rondo",
- "Update" : "Ĝisdatigi",
- "No entries found in this folder" : "Neniu enigo troviĝis en ĉi tiu dosierujo",
- "Name" : "Nomo",
- "Share time" : "Kunhavotempo",
- "Reasons might be:" : "Kialoj povas esti:",
- "the item was removed" : "la ero foriĝis",
- "the link expired" : "la ligilo eksvalidiĝis",
- "sharing is disabled" : "kunhavigo malkapablas",
- "For more info, please ask the person who sent this link." : "Por plia informo, bonvolu peti al la persono, kiu sendis ĉi tiun ligilon.",
- "Share with" : "Kunhavigi kun"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es.js b/apps/files_sharing/l10n/es.js
index b030b5ac412..bac32f0113b 100644
--- a/apps/files_sharing/l10n/es.js
+++ b/apps/files_sharing/l10n/es.js
@@ -1,22 +1,8 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Esperando…",
- "error" : "error",
- "finished" : "terminó",
- "This will stop your current uploads." : "Esto detendrá tus subidas actuales.",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Eliminar",
- "You can upload into this folder" : "Puedes subir archivos en esta carpeta",
- "Terms of service" : "Términos del servicio",
- "Show list view" : "Mostrar vista de lista",
- "Show grid view" : "Mostrar vista de cuadrícula",
- "No compatible server found at {remote}" : "No se ha encontrado un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválida",
- "Failed to add the public link to your Nextcloud" : "No se ha podido añadir el enlace público a tu Nextcloud",
"File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado vía enlace público",
+ "Downloaded via public link" : "Descargado a través de enlace público",
"Downloaded by {email}" : "Descargado por {email}",
"{file} downloaded via public link" : "{file} descargado vía enlace público",
"{email} downloaded {file}" : "{email} descargó {file}",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "Ha caducado el compartir el archivo {file} con {user} ",
"Share for file {file} expired" : "Ha caducado el compartir el archivo {file}",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta compartido por correo o mediante un enlace público fue <strong>descargado</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Los archivos se <strong>cargaron</strong> a una carpeta compartida por correo o enlace público",
"A file or folder was shared from <strong>another server</strong>" : "Se ha compartido un archivo o carpeta desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
+ "Sharing" : "Compartir",
"A file or folder has been <strong>shared</strong>" : "Se ha <strong>compartido</strong> un archivo o carpeta",
"Shared link" : "Enlace compartido",
"Wrong share ID, share does not exist" : "ID de recurso compartido errónea, el recurso no existe",
@@ -78,34 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "Por favor, especifica la ubicación de un archivo o carpeta",
"Wrong path, file/folder does not exist" : "Ubicación incorrecta, el archivo/carpeta no existe",
"Could not create share" : "No se ha podido compartir",
- "Invalid permissions" : "Permisos no válidos",
- "Invalid date, date format must be YYYY-MM-DD" : "Fecha inválida, el formato de las fechas debe ser YYYY-MM-DD",
- "Please specify a valid account to share with" : "Por favor, especifique una cuenta válida con la que compartirla",
+ "Please specify a valid account to share with" : "Por favor, especifique una cuenta válida con la que compartir",
"Group sharing is disabled by the administrator" : "Compartir en grupo está deshabilitado por el administrador",
"Please specify a valid group" : "Por favor, especifica un grupo válido",
"Public link sharing is disabled by the administrator" : "Compartir enlaces de forma pública está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "La subida pública está deshabilitado por el administrador",
- "Public upload is only possible for publicly shared folders" : "La subida publica solo es posible para las carpetas publicas compartidas",
+ "Please specify a valid email address" : "Por favor, especifique una dirección de correo electrónico válida",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Compartir %s enviando la contraseña por Nextcloud Talk ha falllado porque Nextcloud Talk no está activado",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Compartir %1$s ha fallado porque el backend no permite compartidos del tipo %2$s",
"Please specify a valid federated account ID" : "Por favor, especifique un ID válido de cuenta federada.",
"Please specify a valid federated group ID" : "Por favor, especifique un ID de grupo federado válido",
- "You cannot share to a Circle if the app is not enabled" : "No puede compartir a un Circulo si la aplicación no esta activada",
- "Please specify a valid circle" : "Por favor especifique un circulo valido",
+ "You cannot share to a Team if the app is not enabled" : "No puede compartir a un equipo si la aplicación no está habilitada",
+ "Please specify a valid team" : "Por favor, especifique un equipo válido",
"Sharing %s failed because the back end does not support room shares" : "Compartir %s ha fallado porque el backend no soporta habitaciones compartidas",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Compartir %s ha fallado porque el backend no soporta recursos compartidos de ScienceMesh",
"Unknown share type" : "Tipo de recurso compartido desconocido",
"Not a directory" : "No es un directorio",
"Could not lock node" : "No se ha podido bloquear el nodo",
- "Could not lock path" : "No se ha podido bloquear la ruta",
- "Wrong or no update parameter given" : "No se ha suministrado un parametro correcto",
+ "Public upload is only possible for publicly shared folders" : "La subida publica solo es posible para las carpetas publicas compartidas",
"Share must at least have READ or CREATE permissions" : "El recurso compartido debe tener al menos el permiso de LECTURA o CREACIÓN",
"Share must have READ permission if UPDATE or DELETE permission is set" : "El recurso compartido debe tener el permiso de LECTURA si el permiso de ACTUALIZAR o ELIMINAR está activado.",
+ "Public upload disabled by the administrator" : "La subida pública está deshabilitado por el administrador",
+ "Could not lock path" : "No se ha podido bloquear la ruta",
+ "no sharing rights on this item" : "sin permisos para compartir en este elemento",
+ "You are not allowed to edit incoming shares" : "No tiene permitido editar los recursos compartidos entrantes",
+ "Wrong or no update parameter given" : "No se ha suministrado un parametro correcto",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"El envío de la contraseña por Nextcloud Talk\" para compartir un archivo o carpeta falló porque Nextcloud Talk no está habilitado.",
+ "Custom share link tokens have been disabled by the administrator" : "Los tokens para enlaces de recursos compartidos personalizados han sido deshabilitados por el administrador",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Los tokens deben contener al menos un carácter y solo deben contener letras, números o un guion",
+ "Invalid date. Format must be YYYY-MM-DD" : "Fecha inválida. El formato debe ser AAAA-MM-DD",
+ "No sharing rights on this item" : "Sin permisos para compartir este elemento",
+ "Invalid share attributes provided: \"%s\"" : "Se proporcionaron atributos inválidos para el recurso compartido: \"%s\"",
+ "You are not allowed to send mail notifications" : "No tiene permitido enviar notificaciones por correo",
+ "No mail notification configured for this share type" : "No hay notificaciones por correo configuradas para este tipo de recurso compartido",
+ "Wrong password" : "Contraseña incorrecta",
+ "Error while sending mail notification" : "Error al enviar correo de notificación",
+ "Failed to generate a unique token" : "Error al generar un token único",
+ "This share does not exist or is no longer available" : "El recurso compartido no existe o ya no está disponible",
"shared by %s" : "compartido por %s",
- "Download all files" : "Descargar todos los archivos",
- "Direct link" : "Enlace directo",
+ "Download" : "Descargar",
"Add to your %s" : "Añadir a tu %s",
+ "Direct link" : "Enlace directo",
"Share API is disabled" : "El API de compartir está deshabilitado",
"File sharing" : "Compartir archivos",
"Share will expire tomorrow" : "El recurso compartido caducará mañana",
@@ -113,71 +112,134 @@ OC.L10N.register(
"You received {share} as a share by {user}" : "Has recibido {share} como un recurso compartido de {user}",
"You received {share} to group {group} as a share by {user}" : "Has recibido {share} para el grupo {group} como un recurso compartido de {user}",
"Accept" : "Aceptar",
- "Decline" : "Declinar",
- "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permite a los usuarios compartir archivos dentro de Nextcloud. Si se activa, el administrador puede elegir qué grupos pueden compartir archivos. Los usuarios aplicables pueden entonces compartir archivos y carpetas con otros usuarios y grupos dentro de Nextcloud. Además, si el administrador activa la característica de enlace compartido, se puede usar un enlace externo para compartir archivos con otros usuarios fuera de Nextcloud. Los administradores pueden obligar a usar contraseñas o fechas de caducidad y activar el compartir de servidor a servidor vía enlaces compartidos, así como compartir desde dispositivos móviles.\nQuitar esta característica elimina los archivos compartidos y las carpetas en el servidor, para todos los receptores, y también los clientes de sincronización y móviles. Más información disponible en la Documentación de Nextcloud.",
- "Sharing" : "Compartir",
- "Accept shares from other accounts and groups by default" : "Aceptar recursos compartidos de otras cuentas y grupos por defecto",
+ "Decline" : "Rechazar",
+ "Remember to upload the files to %s" : "Recuerde subir los archivos a %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Queremos recordarle amablemente que Ud. todavía no ha subido archivos a la carpeta compartida.",
+ "Open \"%s\"" : "Abrir \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permite a las personas compartir archivos dentro de Nextcloud. Si se activa, el administrador puede elegir qué grupos pueden compartir archivos. Los usuarios aplicables pueden entonces compartir archivos y carpetas con otros usuarios y grupos dentro de Nextcloud. Además, si el administrador activa la característica de enlaces de recurso compartido, se puede usar un enlace externo para compartir archivos con otros usuarios fuera de Nextcloud. Los administradores pueden obligar a usar contraseñas o fechas de caducidad y activar el compartir de servidor a servidor vía enlaces de recursos compartidos, así como compartir desde dispositivos móviles.\nSi se apaga esta característica, se quitarán los recursos compartidos de archivos y carpetas en el servidor para todos los receptores, y también los clientes de sincronización y móviles. Hay más información disponible en la Documentación de Nextcloud.",
+ "People" : "Personas",
+ "Filter accounts" : "Filtrar cuentas",
+ "The request will expire on {date} at midnight and will be password protected." : "La solicitud caducará el {date} a la medianoche y estará protegida por contraseña.",
+ "The request will expire on {date} at midnight." : "La solicitud caducará el {date} a la medianoche.",
+ "The request will be password protected." : "La solicitud estará protegida por contraseña.",
+ "When should the request expire?" : "¿Cuándo debería caducar la solicitud?",
+ "Set a submission expiration date" : "Establecer una fecha de caducidad para el envío",
+ "Expiration date" : "Fecha de caducidad",
+ "Select a date" : "Seleccione una fecha",
+ "Your administrator has enforced a {count} days expiration policy." : "Su administrador ha impuesto una política de caducidad de {count} días.",
+ "What password should be used for the request?" : "¿Qué contraseña debería usarse para la solicitud?",
+ "Set a password" : "Configure una contraseña",
+ "Password" : "Contraseña",
+ "Enter a valid password" : "Ingrese una contraseña válida",
+ "Generate a new password" : "Generar una nueva contraseña",
+ "Your administrator has enforced a password protection." : "Su administrador ha hecho obligatoria una protección con contraseñas.",
+ "Automatically copying failed, please copy the share link manually" : "La copia automática falló, por favor, copie el enlace compartido manualmente",
+ "Link copied" : "Enlace copiado",
+ "Email already added" : "El correo electrónico ya fue añadido",
+ "Invalid email address" : "Dirección de correo electrónico inválida",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["La siguiente dirección de correo electrónico no es válida: {emails}","Las siguientes direcciones de correo electrónicas no son válidas: {emails}","Las siguientes direcciones de correo electrónicas no son válidas: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["Ya se añadió {count} dirección de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico"],
+ "_{count} email address added_::_{count} email addresses added_" : ["Se añadió {count}dirección de correo electrónico","Se añadieron {count} direcciones de correo electrónico","Se añadieron {count} direcciones de correo electrónico"],
+ "You can now share the link below to allow people to upload files to your directory." : "Ahora puede compartir el enlace de abajo para permitir a otros que carguen archivos a su directorio.",
+ "Share link" : "Compartir enlace",
+ "Copy" : "Copiar",
+ "Send link via email" : "Enviar el link via correo electrónico",
+ "Enter an email address or paste a list" : "Ingrese una dirección de correo electrónico o pegue una lista",
+ "Remove email" : "Quitar correo electrónico",
+ "Select a destination" : "Seleccionar un destino",
+ "Select" : "Seleccionar",
+ "What are you requesting?" : "¿Qué está solicitando?",
+ "Request subject" : "Asunto de la solicitud",
+ "Birthday party photos, History assignment…" : "Fotos de fiestas de cumpleaños, tarea de historia…",
+ "Where should these files go?" : "¿Dónde deberían ir estos archivos?",
+ "Upload destination" : "Destino de la subida",
+ "Revert to default" : "Revertir a los valores predeterminados",
+ "The uploaded files are visible only to you unless you choose to share them." : "Los archivos subidos son visibles únicamente para Ud., a menos que elija compartirlos.",
+ "Add a note" : "Añadir una nota",
+ "Note for recipient" : "Nota para el destinatario",
+ "Add a note to help people understand what you are requesting." : "Añada una nota para ayudar a los demás a entender lo que está solicitando.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Puede añadir enlaces, una fecha, o, cualquier otra información que ayude al destinatario a entender lo que está solicitando.",
+ "Close" : "Cerrar",
+ "_Send email and close_::_Send {count} emails and close_" : ["Enviar correo electrónico y cerrar","Enviar {count} correos electrónicos y cerrar","Enviar {count}correos electrónicos y cerrar"],
+ "Please select a folder, you cannot share the root directory." : "Por favor, seleccione una carpeta. Ud. no puede compartir el directorio raiz.",
+ "File request created" : "Solicitud de archivo creada",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Solicitud de archivo creada y un correo electrónico enviado","Solicitud de archivo creada y {count} correos electrónicos enviados","Solicitud de archivo creada y {count} correos electrónicos enviados"],
+ "Error creating the share: {errorMessage}" : "Error al crear el recurso compartido: {errorMessage}",
+ "Error creating the share" : "Error quitando el recurso compartido",
+ "Error sending emails: {errorMessage}" : "Error al enviar los correos electrónicos: {errorMessage}",
+ "Error sending emails" : "Error al enviar los correos electrónicos",
+ "Create a file request" : "Crear una solicitud de archivo",
+ "Collect files from others even if they do not have an account." : "Recolectar archivos de terceros incluso si no poseen una cuenta.",
+ "To ensure you can receive files, verify you have enough storage available." : "Para asegurar que puede recibir archivos, verifique que tiene suficiente espacio de almacenamiento disponible.",
+ "File request" : "Solicitud de archivo",
+ "Previous step" : "Paso previo",
+ "Cancel" : "Cancelar",
+ "Cancel the file request creation" : "Cancelar la creación de la solicitud de archivo",
+ "Close without sending emails" : "Cerrar sin enviar los correos electrónicos",
+ "Continue" : "Continuar",
"Error while toggling options" : "Error cambiar las opciones",
- "Set default folder for accepted shares" : "Establecer la carpeta por defecto para los recursos compartidos aceptados",
- "Reset" : "Restaurar",
- "Reset folder to system default" : "Restaurar la carpeta por defecto del sistema",
+ "Accept shares from other accounts and groups by default" : "Aceptar recursos compartidos de otras cuentas y grupos de manera predeterminada",
"Choose a default folder for accepted shares" : "Elije la carpeta por defecto para los recursos compartidos aceptados",
"Invalid path selected" : "Ruta seleccionada no válida.",
"Unknown error" : "Error desconocido",
- "Open Sharing Details" : "Abrir detalles de recurso compartido",
+ "Set default folder for accepted shares" : "Establecer la carpeta por defecto para los recursos compartidos aceptados",
+ "Reset" : "Restaurar",
+ "Reset folder to system default" : "Restaurar la carpeta por defecto del sistema",
+ "Share expiration: {date}" : "El recurso compartido caduca el: {date}",
+ "Share Expiration" : "Caducidad del recurso compartido",
"group" : "grupo",
"conversation" : "conversación",
"remote" : "remoto",
"remote group" : "grupo remoto",
"guest" : "invitado",
+ "by {initiator}" : "por {initiator}",
"Shared with the group {user} by {owner}" : "Compartido con el grupo {user} por {owner}",
"Shared with the conversation {user} by {owner}" : "Compartido con la conversación {user} por {owner}",
"Shared with {user} by {owner}" : "Compartido con {user} por {owner}",
+ "Open Sharing Details" : "Abrir detalles de recurso compartido",
"Added by {initiator}" : "Añadido por {initiator}",
"Via “{folder}”" : "Vía \"{folder}\"",
"Unshare" : "No compartir",
- "Internal link" : "Enlace interno",
"Cannot copy, please copy the link manually" : "No se ha podido copiar, por favor, copia el enlace manualmente",
- "Copy internal link to clipboard" : "Copiar enlace interno al portapapeles",
- "Only works for people with access to this folder" : "Sólo funciona para personas con acceso a esta carpeta",
- "Only works for people with access to this file" : "Sólo funciona para personas con acceso a este archivo",
- "Link copied" : "Enlace copiado",
+ "Copy internal link" : "Copiar enlace interno",
+ "For people who already have access" : "Para las personas que ya tienen acceso",
+ "Internal link" : "Enlace interno",
+ "{shareWith} by {initiator}" : "{shareWith} por {initiator}",
+ "Shared via link by {initiator}" : "Compartido vía enlace por {initiator}",
+ "File request ({label})" : "Solicitud de archivo ({label})",
+ "Mail share ({label})" : "Compartir correo ({label})",
+ "Share link ({label})" : "Compartir enlace ({label})",
+ "Mail share" : "Recurso compartido de correo",
+ "Share link ({index})" : "Enlace de recurso compartido ({index})",
+ "Create public link" : "Crear un enlace público",
+ "Actions for \"{title}\"" : "Acciones para \"{title}\"",
+ "Copy public link of \"{title}\"" : "Copiar enlace público de \"{title}\"",
+ "Error, please enter proper password and/or expiration date" : "Error, por favor, introduce la contraseña y/o fecha de caducidad adecuada",
+ "Link share created" : "Se creó el enlace del recurso compartido",
+ "Error while creating the share" : "Error mientras se creaba el recurso compartido",
"Please enter the following required information before creating the share" : "Por favor, escriba la información necesaria antes de crear el recurso compartido",
"Password protection (enforced)" : "Protección con contraseña (impuesta)",
"Password protection" : "Protección por contraseña",
"Enter a password" : "Introduzca una contraseña",
- "Expiration date (enforced)" : "Fecha de caducidad (impuesta)",
- "Enter a date" : "Introduzca una fecha",
+ "Enable link expiration (enforced)" : "Activar la caducidad del enlace (obligatoria)",
+ "Enable link expiration" : "Activar la caducidad del enlace",
+ "Enter expiration date (enforced)" : "Introduzca la fecha de caducidad (obligatoria)",
+ "Enter expiration date" : "Introduzca la fecha de caducidad",
"Create share" : "Crear un recurso compartido",
- "Cancel" : "Cancelar",
"Customize link" : "Personalizar enlace",
"Generate QR code" : "Generar código QR",
"Add another link" : "Añadir otro enlace",
"Create a new share link" : "Crear un nuevo enlace compartido",
- "{shareWith} by {initiator}" : "{shareWith} por {initiator}",
- "Shared via link by {initiator}" : "Compartido vía enlace por {initiator}",
- "Mail share ({label})" : "Compartir correo ({label})",
- "Share link ({label})" : "Compartir enlace ({label})",
- "Share link ({index})" : "Compartir enlace ({index})",
- "Share link" : "Compartir enlace",
- "Actions for \"{title}\"" : "Acciones para \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Copiar enlace público de \"{title}\" al portapapeles",
- "Error, please enter proper password and/or expiration date" : "Error, por favor, introduce la contraseña y/o fecha de caducidad adecuada",
- "Link share created" : "Se creó el enlace de compartición",
- "Error while creating the share" : "Error mientras se creaba el recurso compartido",
"Quick share options, the current selected is \"{selectedOption}\"" : "Opciones rápidas de compartir, la seleccionada actualmente es \"{selectedOption}\"",
"View only" : "Solo lectura",
"Can edit" : "Puede editar",
- "File drop" : "Entrega de archivos",
"Custom permissions" : "Permisos personalizados",
- "Search for share recipients" : "Buscar destinatarios del compartido",
- "No recommendations. Start typing." : "No hay recomendaciones. Comience a escribir.",
"Resharing is not allowed" : "No se permite compartir de nuevo",
"Name or email …" : "Nombre o correo electrónico …",
"Name, email, or Federated Cloud ID …" : "Nombre, correo electrónico o ID de nube federada...",
"Searching …" : "Buscando ...",
"No elements found." : "No se encontraron elementos.",
- "Search globally" : "Buscar globalmente",
+ "Search everywhere" : "Buscar en todas partes",
"Guest" : "Invitado",
"Group" : "Grupo",
"Email" : "Correo electrónico",
@@ -186,134 +248,206 @@ OC.L10N.register(
"Deck board" : "Tablero Deck",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "en {server}",
+ "Enter external recipients" : "Ingrese los recipientes externos",
+ "Search for internal recipients" : "Buscar recipientes internos",
+ "Note from" : "Nota de",
+ "Note:" : "Nota:",
+ "File drop" : "Entrega de archivos",
+ "Upload files to {foldername}." : "Subir archivos a {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Al subir archivos, acepta los términos del servicio.",
+ "Successfully uploaded files" : "Se cargaron los archivos de manera exitosa",
+ "View terms of service" : "Ver los términos del servicio",
+ "Terms of service" : "Términos del servicio",
+ "Share with {user}" : "Compartir con {user}",
+ "Share with email {email}" : "Compartido con {email}",
+ "Share with group" : "Compartir con grupo",
+ "Share in conversation" : "Compartir en conversación",
+ "Share with {user} on remote server {server}" : "Compartir con {user} en el servidor remoto {server}",
+ "Share with remote group" : "Compartir con grupo remoto",
+ "Share with guest" : "Compartir con invitado",
+ "Update share" : "Actualizar recurso compartido",
+ "Save share" : "Guardar recurso compartido",
+ "Read" : "Lectura",
+ "Create" : "Crear",
+ "Edit" : "Editar",
+ "Share" : "Compartir",
+ "Delete" : "Eliminar",
+ "Password field cannot be empty" : "El campo de contraseña no puede estar vacío",
+ "Replace current password" : "Reemplazar la contraseña actual",
+ "Failed to generate a new token" : "Fallo al generar un nuevo token",
"Allow upload and editing" : "Permitir la subida y la edición",
"Allow editing" : "Permitir edición",
"Upload only" : "Sólo subir",
- "Advanced settings" : "Configuración avanzada",
+ "Advanced settings" : "Ajustes avanzados",
"Share label" : "Compartir etiqueta",
- "Set password" : "Crear contraseña",
- "Password" : "Contraseña",
+ "Share link token" : "Compartir el token del enlace",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Establezca el token del enlace público del recurso compartido a algo fácil de recordar, o, genere un token nuevo. No recomendamos el uso de tokens fáciles de deducir para recursos compartidos que contengan información sensible.",
+ "Generating…" : "Generando…",
+ "Generate new token" : "Generar nuevo token",
+ "Set password" : "Establecer contraseña",
"Password expires {passwordExpirationTime}" : "La contraseña caduca el {passwordExpirationTime}",
"Password expired" : "Contraseña caducada",
"Video verification" : "Verificación por vídeo",
+ "Expiration date (enforced)" : "Fecha de caducidad (impuesta)",
"Set expiration date" : "Fijar fecha de caducidad",
- "Expiration date" : "Fecha de caducidad",
"Hide download" : "Ocultar descarga",
- "Allow download" : "Permitir descarga",
+ "Allow download and sync" : "Permitir descarga y sincronización",
"Note to recipient" : "Nota para el destinatario",
"Enter a note for the share recipient" : "Escriba una nota para el recurso compartido del destinatario",
- "Read" : "Lectura",
- "Create" : "Crear",
- "Edit" : "Editar",
- "Share" : "Compartir",
- "Delete share" : "Borrar recurso compartido",
- "Share with {userName}" : "Compartir con {userName}",
- "Share with group" : "Compartir con grupo",
- "Share in conversation" : "Compartir en conversación",
- "Share with remote group" : "Compartir con grupo remoto",
- "Share with guest" : "Compartir con invitado",
- "Update share" : "Actualizar recurso compartido",
- "Save share" : "Guardar recurso compartido",
+ "Show files in grid view" : "Mostrar archivos en vista de cuadrícula",
+ "Delete share" : "Eliminar recurso compartido",
"Others with access" : "Otros con acceso",
"No other accounts with access found" : "No se encontraron otras cuentas con acceso",
"Toggle list of others with access to this directory" : "Pasar la lista de otros con acceso a este carpeta",
"Toggle list of others with access to this file" : "Pasar la lista de otros con acceso a este archivo",
"Unable to fetch inherited shares" : "No se ha podido recoger los recursos compartidos heredados",
+ "Link shares" : "Enlaces del recurso compartido",
+ "Shares" : "Compartidos",
+ "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Comparta archivos con su organización. Los destinatarios que ya pueden ver el archivo también pueden utilizar este enlace para un acceso fácil.",
+ "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Comparta archivos con otros fuera de su organización vía enlaces públicos y direcciones de correo electrónico. Ud. puede también compartir con cuentas de Nextcloud en otras instancias utilizando su ID de nube federada.",
+ "Shares from apps or other sources which are not included in internal or external shares." : "Los recursos compartidos desde las apps o de otras fuentes que no están incluidos en recursos compartidos internos o externos.",
+ "Type names, teams, federated cloud IDs" : "Escriba nombres, equipos, IDs de nubes federadas",
+ "Type names or teams" : "Escriba nombres o equipos",
+ "Type a federated cloud ID" : "Escriba un ID de nube federada",
+ "Type an email" : "Escriba una dirección de correo electrónico",
+ "Type an email or federated cloud ID" : "Escriba una dirección de correo electrónico o un ID de nube federada",
"Unable to load the shares list" : "No se pudo cargar la lista de recursos compartidos",
"Expires {relativetime}" : "Caduca en {relativetime}",
"this share just expired." : "este recurso compartido acaba de caducar.",
"Shared with you by {owner}" : "Compartido contigo por {owner}",
+ "Internal shares" : "Recursos compartidos internamente",
+ "Internal shares explanation" : "Explicación de los recursos compartidos externos",
+ "External shares" : "Recursos compartidos externos",
+ "External shares explanation" : "Explicación de los recursos compartidos externos",
+ "Additional shares" : "Recursos compartidos adicionales",
+ "Additional shares explanation" : "Explicación de los recursos compartidos adicionales",
+ "Link to a file" : "Enlace al archivo",
"_Accept share_::_Accept shares_" : ["Aceptar recurso compartido","Aceptar recursos compartidos","Aceptar recursos compartidos"],
"Open in Files" : "Abrir en Archivos",
"_Reject share_::_Reject shares_" : ["Rechazar recurso compartido","Rechazar recursos compartidos","Rechazar recursos compartidos"],
"_Restore share_::_Restore shares_" : ["Restaurar recurso compartido","Restaurar recursos compartidos","Restaurar recursos compartidos"],
"Shared" : "Compartido",
- "Shared multiple times with different people" : "Compartido múltiples veces con diferentes personas",
"Shared by {ownerDisplayName}" : "Compartido por {ownerDisplayName}",
- "Show sharing options" : "Mostrar opciones de compartir",
- "Link to a file" : "Enlace al archivo",
- "Error creating the share: {errorMessage}" : "Error al crear el recurso compartido: {errorMessage}",
- "Error creating the share" : "Error quitando el recurso compartido",
- "Error updating the share: {errorMessage}" : "Error al actualizar el recurso compartido: {errorMessage}",
- "Error updating the share" : "Error actualizando el recurso compartido",
- "File \"{path}\" has been unshared" : "El archivo \"{path}\" se dejó de compartir",
- "Folder \"{path}\" has been unshared" : "La carpeta \"{path}\" se dejó de compartir",
- "Share {propertyName} saved" : "Se guardó la propiedad {propertyName} de la compartición",
- "Shared by" : "Compartido por",
- "Shared with" : "Compartido con",
- "Password created successfully" : "Contraseña creada exitosamente",
- "Error generating password from password policy" : "Error generando contraseña desde la política de contraseñas",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "Shared with you and {circle} by {owner}" : "Compartido contigo y {circle} por {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Compartido contigo y con la conversación {conversation} por {owner}",
- "Shared with you in a conversation by {owner}" : "Compartido contigo por {owner} en una conversación",
- "Shares" : "Compartidos",
- "Overview of shared files." : "Vista previa de los recursos compartidos",
+ "Shared multiple times with different people" : "Compartido múltiples veces con diferentes personas",
+ "Sharing options" : "Opciones de compartir",
+ "Shared with others" : "Compartido con otros",
+ "Create file request" : "Crear solicitud de archivo",
+ "Upload files to {foldername}" : "Subir archivos a {foldername}",
+ "Public file share" : "Recurso compartido público de archivo",
+ "Publicly shared file." : "Archivo compartido públicamente.",
+ "No file" : "Sin archivo",
+ "The file shared with you will show up here" : "El archivo compartido con Ud. aparecerá aquí",
+ "Public share" : "Recurso compartido público",
+ "Publicly shared files." : "Archivos compartidos públicamente.",
+ "No files" : "Sin archivos",
+ "Files and folders shared with you will show up here" : "Los archivos y carpetas compartidos con Ud. aparecerán aquí",
+ "Overview of shared files." : "Resumen de archivos compartidos.",
"No shares" : "No compartidos",
- "Files and folders you shared or have been shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que has compartido o que se han compartido con ud",
+ "Files and folders you shared or have been shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que ha compartido o que se han compartido con Ud.",
"Shared with you" : "Compartido conmigo",
- "List of files that are shared with you." : "Lista de archivos que se han compartido contigo.",
+ "List of files that are shared with you." : "Lista de archivos que se han compartido con Ud.",
"Nothing shared with you yet" : "Aún no hay nada compartido contigo",
- "Files and folders others shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que otros han compartido con ud",
- "Shared with others" : "Compartido con otros",
- "List of files that you shared with others." : "Lista de archivos que has compartido con otros.",
+ "Files and folders others shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que otros han compartido con Ud.",
+ "List of files that you shared with others." : "Lista de archivos que ha compartido con otros.",
"Nothing shared yet" : "Aún no hay nada compartido",
"Files and folders you shared will show up here" : "Aquí aparecerán los archivos y carpetas que ha compartido",
"Shared by link" : "Compartido por enlace",
"List of files that are shared by link." : "Lista de archivos que se han compartido por enlace.",
"No shared links" : "No hay enlaces compartidos",
"Files and folders you shared by link will show up here" : "Aquí aparecerán los archivos y carpetas que ha compartido mediante enlace",
+ "File requests" : "Solicitudes de archivos",
+ "List of file requests." : "Lista de solicitudes de archivos.",
+ "No file requests" : "Sin solicitudes de archivos",
+ "File requests you have created will show up here" : "Las solicitudes de archivos que haya creado aparecerán aquí",
"Deleted shares" : "Recursos compartidos eliminados",
- "List of shares you left." : "Lista de compartidos que abandonó.",
+ "List of shares you left." : "Lista de recursos compartidos que abandonó.",
"No deleted shares" : "No hay recursos compartidos eliminados",
- "Shares you have left will show up here" : "Aquí aparecerán los compartidos que ha abandonado",
+ "Shares you have left will show up here" : "Aquí aparecerán los recursos compartidos que ha abandonado",
"Pending shares" : "Recursos compartidos pendientes",
- "List of unapproved shares." : "Lista de recursos compartidos no aprobados",
+ "List of unapproved shares." : "Lista de recursos compartidos no aprobados.",
"No pending shares" : "No hay recursos compartidos pendientes",
- "Shares you have received but not approved will show up here" : "Aquí aparecerán los compartidos que ha recibido pero que no ha aprobado",
+ "Shares you have received but not approved will show up here" : "Aquí aparecerán los recursos compartidos que ha recibido pero que no ha aprobado",
+ "Error deleting the share: {errorMessage}" : "Error al eliminar el recurso compartido: {errorMessage}",
+ "Error deleting the share" : "Error borrando el recurso compartido",
+ "Error updating the share: {errorMessage}" : "Error al actualizar el recurso compartido: {errorMessage}",
+ "Error updating the share" : "Error actualizando el recurso compartido",
+ "File \"{path}\" has been unshared" : "El archivo \"{path}\" se dejó de compartir",
+ "Folder \"{path}\" has been unshared" : "La carpeta \"{path}\" se dejó de compartir",
+ "Could not update share" : "No se ha podido actualizar el recurso compartido",
+ "Share saved" : "Recurso compartido guardado",
+ "Share expiry date saved" : "Fecha de caducidad del recurso compartido guardada",
+ "Share hide-download state saved" : "Estado de prevención de descargas para el recurso compartido guardado",
+ "Share label saved" : "Se ha guardado la etiqueta del recurso compartido",
+ "Share note for recipient saved" : "Nota para el destinatario del recurso compartido guardada",
+ "Share password saved" : "Se ha guardado la contraseña del recurso compartido",
+ "Share permissions saved" : "Permisos del recurso compartido guardados",
+ "To upload files to {folder}, you need to provide your name first." : "Para cargar archivos a {folder}, necesita proporcionar primero su nombre.",
+ "Upload files to {folder}" : "Subir archivos a {folder}",
+ "Please confirm your name to upload files to {folder}" : "Por favor, confirme su nombre para cargar archivos a {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha compartido una carpeta con Ud.",
+ "Names must not be empty." : "Los nombres no deben estar vacíos.",
+ "Names must not start with a dot." : "Los nombres no deben comenzar con un punto.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" no está permitido dentro de un nombre.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" es un nombre reservado y no está permitido.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" no es un nombre permitido.",
+ "Names must not end with \"{extension}\"." : "Los nombres no deben terminar con \"{extension}\".",
+ "Invalid name." : "Nombre inválido.",
+ "Shared by" : "Compartido por",
+ "Shared with" : "Compartido con",
+ "Password created successfully" : "Contraseña creada exitosamente",
+ "Error generating password from password policy" : "Error generando contraseña desde la política de contraseñas",
+ "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
+ "Shared with you and {circle} by {owner}" : "Compartido contigo y {circle} por {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Compartido contigo y con la conversación {conversation} por {owner}",
+ "Shared with you in a conversation by {owner}" : "Compartido contigo por {owner} en una conversación",
+ "Share not found" : "Recurso compartido no encontrado",
+ "Back to %s" : "Volver a %s",
+ "Add to your Nextcloud" : "Añadir a tu Nextcloud",
+ "Waiting…" : "Esperando…",
+ "error" : "error",
+ "finished" : "terminó",
+ "This will stop your current uploads." : "Esto detendrá tus subidas actuales.",
+ "Move or copy" : "Mover o copiar",
+ "You can upload into this folder" : "Puedes subir archivos en esta carpeta",
+ "Show list view" : "Mostrar vista de lista",
+ "Show grid view" : "Mostrar vista de cuadrícula",
+ "No compatible server found at {remote}" : "No se ha encontrado un servidor compatible en {remote}",
+ "Invalid server URL" : "URL del servidor inválida",
+ "Failed to add the public link to your Nextcloud" : "No se ha podido añadir el enlace público a tu Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "No tiene permitido editar los enlaces compartidos que no le pertenecen",
+ "Download all files" : "Descargar todos los archivos",
+ "Link copied to clipboard" : "Enlace copiado al portapapeles",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Ya se ha añadido 1 dirección de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico"],
+ "_1 email address added_::_{count} email addresses added_" : ["Se ha añadido 1 dirección de correo","Se han añadido {count} direcciones de correo","Se han añadido {count} direcciones de correo"],
+ "Copy to clipboard" : "Copiar al portapapeles",
+ "Copy internal link to clipboard" : "Copiar enlace interno al portapapeles",
+ "Only works for people with access to this folder" : "Sólo funciona para personas con acceso a esta carpeta",
+ "Only works for people with access to this file" : "Sólo funciona para personas con acceso a este archivo",
+ "Copy public link of \"{title}\" to clipboard" : "Copiar enlace público de \"{title}\" al portapapeles",
+ "Search globally" : "Buscar globalmente",
+ "Search for share recipients" : "Buscar destinatarios para el recurso compartido",
+ "No recommendations. Start typing." : "No hay recomendaciones. Comience a escribir.",
+ "To upload files, you need to provide your name first." : "Para subir archivos, primero debe indicar su nombre.",
+ "Enter your name" : "Escriba su nombre",
+ "Submit name" : "Enviar nombre",
+ "Share with {userName}" : "Compartir con {userName}",
+ "Show sharing options" : "Mostrar opciones de compartir",
"Share note" : "Compartir nota",
"Upload files to %s" : "Subir archivos a %s",
+ "%s shared a folder with you." : "%s ha compartido una carpeta con Ud.",
"Note" : "Nota",
"Select or drop files" : "Seleccione o arrastre y suelte archivos",
"Uploading files" : "Subiendo archivos",
"Uploaded files:" : "Archivos subidos:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al subir archivos, aceptas los %1$stérminos del servicio%2$s.",
- "Add to your Nextcloud" : "Añadir a tu Nextcloud",
- "Files and folders others share with you will show up here" : "Aquí aparecerán archivos y carpetas que otros compartan contigo",
- "Files and folders you share will show up here" : "Aquí aparecerán los archivos y carpetas que compartas con otros",
- "Files and folders you share by link will show up here" : "Aquí aparecerán los archivos y carpetas que compartas mediante un enlace",
- "Shares you deleted will show up here" : "Los recursos compartidos que elimines aparecerán aquí",
- "Shares you have received but not confirmed will show up here" : "Aquí aparecerán los recursos compatidos que hayas recibido pero no confirmado",
- "Shares will show up here" : "Los archivos que compartas aparecerán aquí",
- "Restore" : "Restaurar",
- "Something happened. Unable to restore the share." : "Algo ha sucedido. No se pudo restaurar el recurso compartido.",
- "Something happened. Unable to accept the share." : "Algo ha ocurrido. No es posible aceptar el recurso compartido.",
- "Something happened. Unable to reject the share." : "Algo ha ocurrido. No es posible rechazar el recurso compartido",
- "No expiration date set" : "No se ha establecido fecha de caducidad",
- "Please specify a valid user" : "Por favor, especifica un usuario válido",
- "Please specify a valid federated user ID" : "Por favor, especifique un ID de usuario federado válido",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permite a los usuarios compartir archivos dentro de Nextcloud. Si se activa, el administrador puede elegir qué grupos pueden compartir archivos. Los usuarios aplicables pueden entonces compartir archivos y carpetas con otros usuarios y grupos dentro de Nextcloud. Además, si el administrador activa la característica de enlace compartido, se puede usar un enlace externo para compartir archivos con otros usuarios fuera de Nextcloud. Los administradores pueden obligar a usar contraseñas o fechas de caducidad y activar el compartir de servidor a servidor vía enlaces compartidos, así como compartir desde dispositivos móviles.\nQuitar esta característica elimina los archivos compartidos y las carpetas en el servidor, para todos los receptores, y también los clientes de sincronización y móviles. Más información disponible en la Documentación de Nextcloud.",
- "Accept user and group shares by default" : "Aceptar los recursos compartidos de usuario y grupo por defecto",
- "Read only" : "Solo lectura",
- "File drop (upload only)" : "Entrega de archivos (solo subida)",
- "Upload" : "Subir",
- "Bundled permissions" : "Permisos agrupados",
- "Only works for users with access to this folder" : "Sólo funciona para usuarios con acceso a esta carpeta",
- "Only works for users with access to this file" : "Sólo funciona para usuarios con acceso a este archivo",
- "Circle" : "Círculo",
- "Update" : "Actualizar",
- "Share with " : "Compartir con",
- "No other users with access found" : "No se encontraron otros usuarios con acceso",
- "No entries found in this folder" : "No hay nada en esta carpeta",
"Name" : "Nombre",
- "Share time" : "Compartido hace",
- "Sorry, this link does not seem to work anymore." : "Lo sentimos, este enlace no parece funcionar ya.",
- "Reasons might be:" : "Las causas podrían ser: ",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "el enlace caducó",
- "sharing is disabled" : "compartir está desactivado",
- "For more info, please ask the person who sent this link." : "Para más información, pregunte a la persona que le envió el enlace.",
- "Share with remote" : "Compartir con remoto",
- "Share with" : "Compartir con"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utilice este método para compartir archivos con individuos o equipos dentro de su organización. Si el destinatario ya tiene acceso pero no puede encontrarlos, puede enviarle este enlace interno para facilitarle el acceso.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Use este método para compartir archivos con individuos u organizaciones fuera de su organización. Los archivos y carpetas pueden ser compartidos mediante enlaces públicos y por correo electrónico. También puede compartir con otras cuentas de Nextcloud alojadas en otras instancias utilizando su ID de nube federada.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Recursos compartidos que no son internos o externos. Estos pueden ser recursos compartidos de apps u otras fuentes.",
+ "Share with accounts, teams, federated cloud id" : "Comparta con cuentas, equipos, id de nube federada",
+ "Share with accounts and teams" : "Compartir con cuentas y equipos",
+ "Federated cloud ID" : "ID de nube federada",
+ "Email, federated cloud id" : "Email, ID de nube federada",
+ "Filename must not be empty." : "El nombre de archivo no debe estar vacío."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json
index e08fb005bac..535f8b8e98b 100644
--- a/apps/files_sharing/l10n/es.json
+++ b/apps/files_sharing/l10n/es.json
@@ -1,20 +1,6 @@
{ "translations": {
- "Waiting…" : "Esperando…",
- "error" : "error",
- "finished" : "terminó",
- "This will stop your current uploads." : "Esto detendrá tus subidas actuales.",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Eliminar",
- "You can upload into this folder" : "Puedes subir archivos en esta carpeta",
- "Terms of service" : "Términos del servicio",
- "Show list view" : "Mostrar vista de lista",
- "Show grid view" : "Mostrar vista de cuadrícula",
- "No compatible server found at {remote}" : "No se ha encontrado un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválida",
- "Failed to add the public link to your Nextcloud" : "No se ha podido añadir el enlace público a tu Nextcloud",
"File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado vía enlace público",
+ "Downloaded via public link" : "Descargado a través de enlace público",
"Downloaded by {email}" : "Descargado por {email}",
"{file} downloaded via public link" : "{file} descargado vía enlace público",
"{email} downloaded {file}" : "{email} descargó {file}",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "Ha caducado el compartir el archivo {file} con {user} ",
"Share for file {file} expired" : "Ha caducado el compartir el archivo {file}",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta compartido por correo o mediante un enlace público fue <strong>descargado</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Los archivos se <strong>cargaron</strong> a una carpeta compartida por correo o enlace público",
"A file or folder was shared from <strong>another server</strong>" : "Se ha compartido un archivo o carpeta desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
+ "Sharing" : "Compartir",
"A file or folder has been <strong>shared</strong>" : "Se ha <strong>compartido</strong> un archivo o carpeta",
"Shared link" : "Enlace compartido",
"Wrong share ID, share does not exist" : "ID de recurso compartido errónea, el recurso no existe",
@@ -76,34 +63,46 @@
"Please specify a file or folder path" : "Por favor, especifica la ubicación de un archivo o carpeta",
"Wrong path, file/folder does not exist" : "Ubicación incorrecta, el archivo/carpeta no existe",
"Could not create share" : "No se ha podido compartir",
- "Invalid permissions" : "Permisos no válidos",
- "Invalid date, date format must be YYYY-MM-DD" : "Fecha inválida, el formato de las fechas debe ser YYYY-MM-DD",
- "Please specify a valid account to share with" : "Por favor, especifique una cuenta válida con la que compartirla",
+ "Please specify a valid account to share with" : "Por favor, especifique una cuenta válida con la que compartir",
"Group sharing is disabled by the administrator" : "Compartir en grupo está deshabilitado por el administrador",
"Please specify a valid group" : "Por favor, especifica un grupo válido",
"Public link sharing is disabled by the administrator" : "Compartir enlaces de forma pública está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "La subida pública está deshabilitado por el administrador",
- "Public upload is only possible for publicly shared folders" : "La subida publica solo es posible para las carpetas publicas compartidas",
+ "Please specify a valid email address" : "Por favor, especifique una dirección de correo electrónico válida",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Compartir %s enviando la contraseña por Nextcloud Talk ha falllado porque Nextcloud Talk no está activado",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Compartir %1$s ha fallado porque el backend no permite compartidos del tipo %2$s",
"Please specify a valid federated account ID" : "Por favor, especifique un ID válido de cuenta federada.",
"Please specify a valid federated group ID" : "Por favor, especifique un ID de grupo federado válido",
- "You cannot share to a Circle if the app is not enabled" : "No puede compartir a un Circulo si la aplicación no esta activada",
- "Please specify a valid circle" : "Por favor especifique un circulo valido",
+ "You cannot share to a Team if the app is not enabled" : "No puede compartir a un equipo si la aplicación no está habilitada",
+ "Please specify a valid team" : "Por favor, especifique un equipo válido",
"Sharing %s failed because the back end does not support room shares" : "Compartir %s ha fallado porque el backend no soporta habitaciones compartidas",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Compartir %s ha fallado porque el backend no soporta recursos compartidos de ScienceMesh",
"Unknown share type" : "Tipo de recurso compartido desconocido",
"Not a directory" : "No es un directorio",
"Could not lock node" : "No se ha podido bloquear el nodo",
- "Could not lock path" : "No se ha podido bloquear la ruta",
- "Wrong or no update parameter given" : "No se ha suministrado un parametro correcto",
+ "Public upload is only possible for publicly shared folders" : "La subida publica solo es posible para las carpetas publicas compartidas",
"Share must at least have READ or CREATE permissions" : "El recurso compartido debe tener al menos el permiso de LECTURA o CREACIÓN",
"Share must have READ permission if UPDATE or DELETE permission is set" : "El recurso compartido debe tener el permiso de LECTURA si el permiso de ACTUALIZAR o ELIMINAR está activado.",
+ "Public upload disabled by the administrator" : "La subida pública está deshabilitado por el administrador",
+ "Could not lock path" : "No se ha podido bloquear la ruta",
+ "no sharing rights on this item" : "sin permisos para compartir en este elemento",
+ "You are not allowed to edit incoming shares" : "No tiene permitido editar los recursos compartidos entrantes",
+ "Wrong or no update parameter given" : "No se ha suministrado un parametro correcto",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"El envío de la contraseña por Nextcloud Talk\" para compartir un archivo o carpeta falló porque Nextcloud Talk no está habilitado.",
+ "Custom share link tokens have been disabled by the administrator" : "Los tokens para enlaces de recursos compartidos personalizados han sido deshabilitados por el administrador",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Los tokens deben contener al menos un carácter y solo deben contener letras, números o un guion",
+ "Invalid date. Format must be YYYY-MM-DD" : "Fecha inválida. El formato debe ser AAAA-MM-DD",
+ "No sharing rights on this item" : "Sin permisos para compartir este elemento",
+ "Invalid share attributes provided: \"%s\"" : "Se proporcionaron atributos inválidos para el recurso compartido: \"%s\"",
+ "You are not allowed to send mail notifications" : "No tiene permitido enviar notificaciones por correo",
+ "No mail notification configured for this share type" : "No hay notificaciones por correo configuradas para este tipo de recurso compartido",
+ "Wrong password" : "Contraseña incorrecta",
+ "Error while sending mail notification" : "Error al enviar correo de notificación",
+ "Failed to generate a unique token" : "Error al generar un token único",
+ "This share does not exist or is no longer available" : "El recurso compartido no existe o ya no está disponible",
"shared by %s" : "compartido por %s",
- "Download all files" : "Descargar todos los archivos",
- "Direct link" : "Enlace directo",
+ "Download" : "Descargar",
"Add to your %s" : "Añadir a tu %s",
+ "Direct link" : "Enlace directo",
"Share API is disabled" : "El API de compartir está deshabilitado",
"File sharing" : "Compartir archivos",
"Share will expire tomorrow" : "El recurso compartido caducará mañana",
@@ -111,71 +110,134 @@
"You received {share} as a share by {user}" : "Has recibido {share} como un recurso compartido de {user}",
"You received {share} to group {group} as a share by {user}" : "Has recibido {share} para el grupo {group} como un recurso compartido de {user}",
"Accept" : "Aceptar",
- "Decline" : "Declinar",
- "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permite a los usuarios compartir archivos dentro de Nextcloud. Si se activa, el administrador puede elegir qué grupos pueden compartir archivos. Los usuarios aplicables pueden entonces compartir archivos y carpetas con otros usuarios y grupos dentro de Nextcloud. Además, si el administrador activa la característica de enlace compartido, se puede usar un enlace externo para compartir archivos con otros usuarios fuera de Nextcloud. Los administradores pueden obligar a usar contraseñas o fechas de caducidad y activar el compartir de servidor a servidor vía enlaces compartidos, así como compartir desde dispositivos móviles.\nQuitar esta característica elimina los archivos compartidos y las carpetas en el servidor, para todos los receptores, y también los clientes de sincronización y móviles. Más información disponible en la Documentación de Nextcloud.",
- "Sharing" : "Compartir",
- "Accept shares from other accounts and groups by default" : "Aceptar recursos compartidos de otras cuentas y grupos por defecto",
+ "Decline" : "Rechazar",
+ "Remember to upload the files to %s" : "Recuerde subir los archivos a %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Queremos recordarle amablemente que Ud. todavía no ha subido archivos a la carpeta compartida.",
+ "Open \"%s\"" : "Abrir \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permite a las personas compartir archivos dentro de Nextcloud. Si se activa, el administrador puede elegir qué grupos pueden compartir archivos. Los usuarios aplicables pueden entonces compartir archivos y carpetas con otros usuarios y grupos dentro de Nextcloud. Además, si el administrador activa la característica de enlaces de recurso compartido, se puede usar un enlace externo para compartir archivos con otros usuarios fuera de Nextcloud. Los administradores pueden obligar a usar contraseñas o fechas de caducidad y activar el compartir de servidor a servidor vía enlaces de recursos compartidos, así como compartir desde dispositivos móviles.\nSi se apaga esta característica, se quitarán los recursos compartidos de archivos y carpetas en el servidor para todos los receptores, y también los clientes de sincronización y móviles. Hay más información disponible en la Documentación de Nextcloud.",
+ "People" : "Personas",
+ "Filter accounts" : "Filtrar cuentas",
+ "The request will expire on {date} at midnight and will be password protected." : "La solicitud caducará el {date} a la medianoche y estará protegida por contraseña.",
+ "The request will expire on {date} at midnight." : "La solicitud caducará el {date} a la medianoche.",
+ "The request will be password protected." : "La solicitud estará protegida por contraseña.",
+ "When should the request expire?" : "¿Cuándo debería caducar la solicitud?",
+ "Set a submission expiration date" : "Establecer una fecha de caducidad para el envío",
+ "Expiration date" : "Fecha de caducidad",
+ "Select a date" : "Seleccione una fecha",
+ "Your administrator has enforced a {count} days expiration policy." : "Su administrador ha impuesto una política de caducidad de {count} días.",
+ "What password should be used for the request?" : "¿Qué contraseña debería usarse para la solicitud?",
+ "Set a password" : "Configure una contraseña",
+ "Password" : "Contraseña",
+ "Enter a valid password" : "Ingrese una contraseña válida",
+ "Generate a new password" : "Generar una nueva contraseña",
+ "Your administrator has enforced a password protection." : "Su administrador ha hecho obligatoria una protección con contraseñas.",
+ "Automatically copying failed, please copy the share link manually" : "La copia automática falló, por favor, copie el enlace compartido manualmente",
+ "Link copied" : "Enlace copiado",
+ "Email already added" : "El correo electrónico ya fue añadido",
+ "Invalid email address" : "Dirección de correo electrónico inválida",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["La siguiente dirección de correo electrónico no es válida: {emails}","Las siguientes direcciones de correo electrónicas no son válidas: {emails}","Las siguientes direcciones de correo electrónicas no son válidas: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["Ya se añadió {count} dirección de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico"],
+ "_{count} email address added_::_{count} email addresses added_" : ["Se añadió {count}dirección de correo electrónico","Se añadieron {count} direcciones de correo electrónico","Se añadieron {count} direcciones de correo electrónico"],
+ "You can now share the link below to allow people to upload files to your directory." : "Ahora puede compartir el enlace de abajo para permitir a otros que carguen archivos a su directorio.",
+ "Share link" : "Compartir enlace",
+ "Copy" : "Copiar",
+ "Send link via email" : "Enviar el link via correo electrónico",
+ "Enter an email address or paste a list" : "Ingrese una dirección de correo electrónico o pegue una lista",
+ "Remove email" : "Quitar correo electrónico",
+ "Select a destination" : "Seleccionar un destino",
+ "Select" : "Seleccionar",
+ "What are you requesting?" : "¿Qué está solicitando?",
+ "Request subject" : "Asunto de la solicitud",
+ "Birthday party photos, History assignment…" : "Fotos de fiestas de cumpleaños, tarea de historia…",
+ "Where should these files go?" : "¿Dónde deberían ir estos archivos?",
+ "Upload destination" : "Destino de la subida",
+ "Revert to default" : "Revertir a los valores predeterminados",
+ "The uploaded files are visible only to you unless you choose to share them." : "Los archivos subidos son visibles únicamente para Ud., a menos que elija compartirlos.",
+ "Add a note" : "Añadir una nota",
+ "Note for recipient" : "Nota para el destinatario",
+ "Add a note to help people understand what you are requesting." : "Añada una nota para ayudar a los demás a entender lo que está solicitando.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Puede añadir enlaces, una fecha, o, cualquier otra información que ayude al destinatario a entender lo que está solicitando.",
+ "Close" : "Cerrar",
+ "_Send email and close_::_Send {count} emails and close_" : ["Enviar correo electrónico y cerrar","Enviar {count} correos electrónicos y cerrar","Enviar {count}correos electrónicos y cerrar"],
+ "Please select a folder, you cannot share the root directory." : "Por favor, seleccione una carpeta. Ud. no puede compartir el directorio raiz.",
+ "File request created" : "Solicitud de archivo creada",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Solicitud de archivo creada y un correo electrónico enviado","Solicitud de archivo creada y {count} correos electrónicos enviados","Solicitud de archivo creada y {count} correos electrónicos enviados"],
+ "Error creating the share: {errorMessage}" : "Error al crear el recurso compartido: {errorMessage}",
+ "Error creating the share" : "Error quitando el recurso compartido",
+ "Error sending emails: {errorMessage}" : "Error al enviar los correos electrónicos: {errorMessage}",
+ "Error sending emails" : "Error al enviar los correos electrónicos",
+ "Create a file request" : "Crear una solicitud de archivo",
+ "Collect files from others even if they do not have an account." : "Recolectar archivos de terceros incluso si no poseen una cuenta.",
+ "To ensure you can receive files, verify you have enough storage available." : "Para asegurar que puede recibir archivos, verifique que tiene suficiente espacio de almacenamiento disponible.",
+ "File request" : "Solicitud de archivo",
+ "Previous step" : "Paso previo",
+ "Cancel" : "Cancelar",
+ "Cancel the file request creation" : "Cancelar la creación de la solicitud de archivo",
+ "Close without sending emails" : "Cerrar sin enviar los correos electrónicos",
+ "Continue" : "Continuar",
"Error while toggling options" : "Error cambiar las opciones",
- "Set default folder for accepted shares" : "Establecer la carpeta por defecto para los recursos compartidos aceptados",
- "Reset" : "Restaurar",
- "Reset folder to system default" : "Restaurar la carpeta por defecto del sistema",
+ "Accept shares from other accounts and groups by default" : "Aceptar recursos compartidos de otras cuentas y grupos de manera predeterminada",
"Choose a default folder for accepted shares" : "Elije la carpeta por defecto para los recursos compartidos aceptados",
"Invalid path selected" : "Ruta seleccionada no válida.",
"Unknown error" : "Error desconocido",
- "Open Sharing Details" : "Abrir detalles de recurso compartido",
+ "Set default folder for accepted shares" : "Establecer la carpeta por defecto para los recursos compartidos aceptados",
+ "Reset" : "Restaurar",
+ "Reset folder to system default" : "Restaurar la carpeta por defecto del sistema",
+ "Share expiration: {date}" : "El recurso compartido caduca el: {date}",
+ "Share Expiration" : "Caducidad del recurso compartido",
"group" : "grupo",
"conversation" : "conversación",
"remote" : "remoto",
"remote group" : "grupo remoto",
"guest" : "invitado",
+ "by {initiator}" : "por {initiator}",
"Shared with the group {user} by {owner}" : "Compartido con el grupo {user} por {owner}",
"Shared with the conversation {user} by {owner}" : "Compartido con la conversación {user} por {owner}",
"Shared with {user} by {owner}" : "Compartido con {user} por {owner}",
+ "Open Sharing Details" : "Abrir detalles de recurso compartido",
"Added by {initiator}" : "Añadido por {initiator}",
"Via “{folder}”" : "Vía \"{folder}\"",
"Unshare" : "No compartir",
- "Internal link" : "Enlace interno",
"Cannot copy, please copy the link manually" : "No se ha podido copiar, por favor, copia el enlace manualmente",
- "Copy internal link to clipboard" : "Copiar enlace interno al portapapeles",
- "Only works for people with access to this folder" : "Sólo funciona para personas con acceso a esta carpeta",
- "Only works for people with access to this file" : "Sólo funciona para personas con acceso a este archivo",
- "Link copied" : "Enlace copiado",
+ "Copy internal link" : "Copiar enlace interno",
+ "For people who already have access" : "Para las personas que ya tienen acceso",
+ "Internal link" : "Enlace interno",
+ "{shareWith} by {initiator}" : "{shareWith} por {initiator}",
+ "Shared via link by {initiator}" : "Compartido vía enlace por {initiator}",
+ "File request ({label})" : "Solicitud de archivo ({label})",
+ "Mail share ({label})" : "Compartir correo ({label})",
+ "Share link ({label})" : "Compartir enlace ({label})",
+ "Mail share" : "Recurso compartido de correo",
+ "Share link ({index})" : "Enlace de recurso compartido ({index})",
+ "Create public link" : "Crear un enlace público",
+ "Actions for \"{title}\"" : "Acciones para \"{title}\"",
+ "Copy public link of \"{title}\"" : "Copiar enlace público de \"{title}\"",
+ "Error, please enter proper password and/or expiration date" : "Error, por favor, introduce la contraseña y/o fecha de caducidad adecuada",
+ "Link share created" : "Se creó el enlace del recurso compartido",
+ "Error while creating the share" : "Error mientras se creaba el recurso compartido",
"Please enter the following required information before creating the share" : "Por favor, escriba la información necesaria antes de crear el recurso compartido",
"Password protection (enforced)" : "Protección con contraseña (impuesta)",
"Password protection" : "Protección por contraseña",
"Enter a password" : "Introduzca una contraseña",
- "Expiration date (enforced)" : "Fecha de caducidad (impuesta)",
- "Enter a date" : "Introduzca una fecha",
+ "Enable link expiration (enforced)" : "Activar la caducidad del enlace (obligatoria)",
+ "Enable link expiration" : "Activar la caducidad del enlace",
+ "Enter expiration date (enforced)" : "Introduzca la fecha de caducidad (obligatoria)",
+ "Enter expiration date" : "Introduzca la fecha de caducidad",
"Create share" : "Crear un recurso compartido",
- "Cancel" : "Cancelar",
"Customize link" : "Personalizar enlace",
"Generate QR code" : "Generar código QR",
"Add another link" : "Añadir otro enlace",
"Create a new share link" : "Crear un nuevo enlace compartido",
- "{shareWith} by {initiator}" : "{shareWith} por {initiator}",
- "Shared via link by {initiator}" : "Compartido vía enlace por {initiator}",
- "Mail share ({label})" : "Compartir correo ({label})",
- "Share link ({label})" : "Compartir enlace ({label})",
- "Share link ({index})" : "Compartir enlace ({index})",
- "Share link" : "Compartir enlace",
- "Actions for \"{title}\"" : "Acciones para \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Copiar enlace público de \"{title}\" al portapapeles",
- "Error, please enter proper password and/or expiration date" : "Error, por favor, introduce la contraseña y/o fecha de caducidad adecuada",
- "Link share created" : "Se creó el enlace de compartición",
- "Error while creating the share" : "Error mientras se creaba el recurso compartido",
"Quick share options, the current selected is \"{selectedOption}\"" : "Opciones rápidas de compartir, la seleccionada actualmente es \"{selectedOption}\"",
"View only" : "Solo lectura",
"Can edit" : "Puede editar",
- "File drop" : "Entrega de archivos",
"Custom permissions" : "Permisos personalizados",
- "Search for share recipients" : "Buscar destinatarios del compartido",
- "No recommendations. Start typing." : "No hay recomendaciones. Comience a escribir.",
"Resharing is not allowed" : "No se permite compartir de nuevo",
"Name or email …" : "Nombre o correo electrónico …",
"Name, email, or Federated Cloud ID …" : "Nombre, correo electrónico o ID de nube federada...",
"Searching …" : "Buscando ...",
"No elements found." : "No se encontraron elementos.",
- "Search globally" : "Buscar globalmente",
+ "Search everywhere" : "Buscar en todas partes",
"Guest" : "Invitado",
"Group" : "Grupo",
"Email" : "Correo electrónico",
@@ -184,134 +246,206 @@
"Deck board" : "Tablero Deck",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "en {server}",
+ "Enter external recipients" : "Ingrese los recipientes externos",
+ "Search for internal recipients" : "Buscar recipientes internos",
+ "Note from" : "Nota de",
+ "Note:" : "Nota:",
+ "File drop" : "Entrega de archivos",
+ "Upload files to {foldername}." : "Subir archivos a {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Al subir archivos, acepta los términos del servicio.",
+ "Successfully uploaded files" : "Se cargaron los archivos de manera exitosa",
+ "View terms of service" : "Ver los términos del servicio",
+ "Terms of service" : "Términos del servicio",
+ "Share with {user}" : "Compartir con {user}",
+ "Share with email {email}" : "Compartido con {email}",
+ "Share with group" : "Compartir con grupo",
+ "Share in conversation" : "Compartir en conversación",
+ "Share with {user} on remote server {server}" : "Compartir con {user} en el servidor remoto {server}",
+ "Share with remote group" : "Compartir con grupo remoto",
+ "Share with guest" : "Compartir con invitado",
+ "Update share" : "Actualizar recurso compartido",
+ "Save share" : "Guardar recurso compartido",
+ "Read" : "Lectura",
+ "Create" : "Crear",
+ "Edit" : "Editar",
+ "Share" : "Compartir",
+ "Delete" : "Eliminar",
+ "Password field cannot be empty" : "El campo de contraseña no puede estar vacío",
+ "Replace current password" : "Reemplazar la contraseña actual",
+ "Failed to generate a new token" : "Fallo al generar un nuevo token",
"Allow upload and editing" : "Permitir la subida y la edición",
"Allow editing" : "Permitir edición",
"Upload only" : "Sólo subir",
- "Advanced settings" : "Configuración avanzada",
+ "Advanced settings" : "Ajustes avanzados",
"Share label" : "Compartir etiqueta",
- "Set password" : "Crear contraseña",
- "Password" : "Contraseña",
+ "Share link token" : "Compartir el token del enlace",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Establezca el token del enlace público del recurso compartido a algo fácil de recordar, o, genere un token nuevo. No recomendamos el uso de tokens fáciles de deducir para recursos compartidos que contengan información sensible.",
+ "Generating…" : "Generando…",
+ "Generate new token" : "Generar nuevo token",
+ "Set password" : "Establecer contraseña",
"Password expires {passwordExpirationTime}" : "La contraseña caduca el {passwordExpirationTime}",
"Password expired" : "Contraseña caducada",
"Video verification" : "Verificación por vídeo",
+ "Expiration date (enforced)" : "Fecha de caducidad (impuesta)",
"Set expiration date" : "Fijar fecha de caducidad",
- "Expiration date" : "Fecha de caducidad",
"Hide download" : "Ocultar descarga",
- "Allow download" : "Permitir descarga",
+ "Allow download and sync" : "Permitir descarga y sincronización",
"Note to recipient" : "Nota para el destinatario",
"Enter a note for the share recipient" : "Escriba una nota para el recurso compartido del destinatario",
- "Read" : "Lectura",
- "Create" : "Crear",
- "Edit" : "Editar",
- "Share" : "Compartir",
- "Delete share" : "Borrar recurso compartido",
- "Share with {userName}" : "Compartir con {userName}",
- "Share with group" : "Compartir con grupo",
- "Share in conversation" : "Compartir en conversación",
- "Share with remote group" : "Compartir con grupo remoto",
- "Share with guest" : "Compartir con invitado",
- "Update share" : "Actualizar recurso compartido",
- "Save share" : "Guardar recurso compartido",
+ "Show files in grid view" : "Mostrar archivos en vista de cuadrícula",
+ "Delete share" : "Eliminar recurso compartido",
"Others with access" : "Otros con acceso",
"No other accounts with access found" : "No se encontraron otras cuentas con acceso",
"Toggle list of others with access to this directory" : "Pasar la lista de otros con acceso a este carpeta",
"Toggle list of others with access to this file" : "Pasar la lista de otros con acceso a este archivo",
"Unable to fetch inherited shares" : "No se ha podido recoger los recursos compartidos heredados",
+ "Link shares" : "Enlaces del recurso compartido",
+ "Shares" : "Compartidos",
+ "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Comparta archivos con su organización. Los destinatarios que ya pueden ver el archivo también pueden utilizar este enlace para un acceso fácil.",
+ "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Comparta archivos con otros fuera de su organización vía enlaces públicos y direcciones de correo electrónico. Ud. puede también compartir con cuentas de Nextcloud en otras instancias utilizando su ID de nube federada.",
+ "Shares from apps or other sources which are not included in internal or external shares." : "Los recursos compartidos desde las apps o de otras fuentes que no están incluidos en recursos compartidos internos o externos.",
+ "Type names, teams, federated cloud IDs" : "Escriba nombres, equipos, IDs de nubes federadas",
+ "Type names or teams" : "Escriba nombres o equipos",
+ "Type a federated cloud ID" : "Escriba un ID de nube federada",
+ "Type an email" : "Escriba una dirección de correo electrónico",
+ "Type an email or federated cloud ID" : "Escriba una dirección de correo electrónico o un ID de nube federada",
"Unable to load the shares list" : "No se pudo cargar la lista de recursos compartidos",
"Expires {relativetime}" : "Caduca en {relativetime}",
"this share just expired." : "este recurso compartido acaba de caducar.",
"Shared with you by {owner}" : "Compartido contigo por {owner}",
+ "Internal shares" : "Recursos compartidos internamente",
+ "Internal shares explanation" : "Explicación de los recursos compartidos externos",
+ "External shares" : "Recursos compartidos externos",
+ "External shares explanation" : "Explicación de los recursos compartidos externos",
+ "Additional shares" : "Recursos compartidos adicionales",
+ "Additional shares explanation" : "Explicación de los recursos compartidos adicionales",
+ "Link to a file" : "Enlace al archivo",
"_Accept share_::_Accept shares_" : ["Aceptar recurso compartido","Aceptar recursos compartidos","Aceptar recursos compartidos"],
"Open in Files" : "Abrir en Archivos",
"_Reject share_::_Reject shares_" : ["Rechazar recurso compartido","Rechazar recursos compartidos","Rechazar recursos compartidos"],
"_Restore share_::_Restore shares_" : ["Restaurar recurso compartido","Restaurar recursos compartidos","Restaurar recursos compartidos"],
"Shared" : "Compartido",
- "Shared multiple times with different people" : "Compartido múltiples veces con diferentes personas",
"Shared by {ownerDisplayName}" : "Compartido por {ownerDisplayName}",
- "Show sharing options" : "Mostrar opciones de compartir",
- "Link to a file" : "Enlace al archivo",
- "Error creating the share: {errorMessage}" : "Error al crear el recurso compartido: {errorMessage}",
- "Error creating the share" : "Error quitando el recurso compartido",
- "Error updating the share: {errorMessage}" : "Error al actualizar el recurso compartido: {errorMessage}",
- "Error updating the share" : "Error actualizando el recurso compartido",
- "File \"{path}\" has been unshared" : "El archivo \"{path}\" se dejó de compartir",
- "Folder \"{path}\" has been unshared" : "La carpeta \"{path}\" se dejó de compartir",
- "Share {propertyName} saved" : "Se guardó la propiedad {propertyName} de la compartición",
- "Shared by" : "Compartido por",
- "Shared with" : "Compartido con",
- "Password created successfully" : "Contraseña creada exitosamente",
- "Error generating password from password policy" : "Error generando contraseña desde la política de contraseñas",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "Shared with you and {circle} by {owner}" : "Compartido contigo y {circle} por {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Compartido contigo y con la conversación {conversation} por {owner}",
- "Shared with you in a conversation by {owner}" : "Compartido contigo por {owner} en una conversación",
- "Shares" : "Compartidos",
- "Overview of shared files." : "Vista previa de los recursos compartidos",
+ "Shared multiple times with different people" : "Compartido múltiples veces con diferentes personas",
+ "Sharing options" : "Opciones de compartir",
+ "Shared with others" : "Compartido con otros",
+ "Create file request" : "Crear solicitud de archivo",
+ "Upload files to {foldername}" : "Subir archivos a {foldername}",
+ "Public file share" : "Recurso compartido público de archivo",
+ "Publicly shared file." : "Archivo compartido públicamente.",
+ "No file" : "Sin archivo",
+ "The file shared with you will show up here" : "El archivo compartido con Ud. aparecerá aquí",
+ "Public share" : "Recurso compartido público",
+ "Publicly shared files." : "Archivos compartidos públicamente.",
+ "No files" : "Sin archivos",
+ "Files and folders shared with you will show up here" : "Los archivos y carpetas compartidos con Ud. aparecerán aquí",
+ "Overview of shared files." : "Resumen de archivos compartidos.",
"No shares" : "No compartidos",
- "Files and folders you shared or have been shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que has compartido o que se han compartido con ud",
+ "Files and folders you shared or have been shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que ha compartido o que se han compartido con Ud.",
"Shared with you" : "Compartido conmigo",
- "List of files that are shared with you." : "Lista de archivos que se han compartido contigo.",
+ "List of files that are shared with you." : "Lista de archivos que se han compartido con Ud.",
"Nothing shared with you yet" : "Aún no hay nada compartido contigo",
- "Files and folders others shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que otros han compartido con ud",
- "Shared with others" : "Compartido con otros",
- "List of files that you shared with others." : "Lista de archivos que has compartido con otros.",
+ "Files and folders others shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que otros han compartido con Ud.",
+ "List of files that you shared with others." : "Lista de archivos que ha compartido con otros.",
"Nothing shared yet" : "Aún no hay nada compartido",
"Files and folders you shared will show up here" : "Aquí aparecerán los archivos y carpetas que ha compartido",
"Shared by link" : "Compartido por enlace",
"List of files that are shared by link." : "Lista de archivos que se han compartido por enlace.",
"No shared links" : "No hay enlaces compartidos",
"Files and folders you shared by link will show up here" : "Aquí aparecerán los archivos y carpetas que ha compartido mediante enlace",
+ "File requests" : "Solicitudes de archivos",
+ "List of file requests." : "Lista de solicitudes de archivos.",
+ "No file requests" : "Sin solicitudes de archivos",
+ "File requests you have created will show up here" : "Las solicitudes de archivos que haya creado aparecerán aquí",
"Deleted shares" : "Recursos compartidos eliminados",
- "List of shares you left." : "Lista de compartidos que abandonó.",
+ "List of shares you left." : "Lista de recursos compartidos que abandonó.",
"No deleted shares" : "No hay recursos compartidos eliminados",
- "Shares you have left will show up here" : "Aquí aparecerán los compartidos que ha abandonado",
+ "Shares you have left will show up here" : "Aquí aparecerán los recursos compartidos que ha abandonado",
"Pending shares" : "Recursos compartidos pendientes",
- "List of unapproved shares." : "Lista de recursos compartidos no aprobados",
+ "List of unapproved shares." : "Lista de recursos compartidos no aprobados.",
"No pending shares" : "No hay recursos compartidos pendientes",
- "Shares you have received but not approved will show up here" : "Aquí aparecerán los compartidos que ha recibido pero que no ha aprobado",
+ "Shares you have received but not approved will show up here" : "Aquí aparecerán los recursos compartidos que ha recibido pero que no ha aprobado",
+ "Error deleting the share: {errorMessage}" : "Error al eliminar el recurso compartido: {errorMessage}",
+ "Error deleting the share" : "Error borrando el recurso compartido",
+ "Error updating the share: {errorMessage}" : "Error al actualizar el recurso compartido: {errorMessage}",
+ "Error updating the share" : "Error actualizando el recurso compartido",
+ "File \"{path}\" has been unshared" : "El archivo \"{path}\" se dejó de compartir",
+ "Folder \"{path}\" has been unshared" : "La carpeta \"{path}\" se dejó de compartir",
+ "Could not update share" : "No se ha podido actualizar el recurso compartido",
+ "Share saved" : "Recurso compartido guardado",
+ "Share expiry date saved" : "Fecha de caducidad del recurso compartido guardada",
+ "Share hide-download state saved" : "Estado de prevención de descargas para el recurso compartido guardado",
+ "Share label saved" : "Se ha guardado la etiqueta del recurso compartido",
+ "Share note for recipient saved" : "Nota para el destinatario del recurso compartido guardada",
+ "Share password saved" : "Se ha guardado la contraseña del recurso compartido",
+ "Share permissions saved" : "Permisos del recurso compartido guardados",
+ "To upload files to {folder}, you need to provide your name first." : "Para cargar archivos a {folder}, necesita proporcionar primero su nombre.",
+ "Upload files to {folder}" : "Subir archivos a {folder}",
+ "Please confirm your name to upload files to {folder}" : "Por favor, confirme su nombre para cargar archivos a {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha compartido una carpeta con Ud.",
+ "Names must not be empty." : "Los nombres no deben estar vacíos.",
+ "Names must not start with a dot." : "Los nombres no deben comenzar con un punto.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" no está permitido dentro de un nombre.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" es un nombre reservado y no está permitido.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" no es un nombre permitido.",
+ "Names must not end with \"{extension}\"." : "Los nombres no deben terminar con \"{extension}\".",
+ "Invalid name." : "Nombre inválido.",
+ "Shared by" : "Compartido por",
+ "Shared with" : "Compartido con",
+ "Password created successfully" : "Contraseña creada exitosamente",
+ "Error generating password from password policy" : "Error generando contraseña desde la política de contraseñas",
+ "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
+ "Shared with you and {circle} by {owner}" : "Compartido contigo y {circle} por {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Compartido contigo y con la conversación {conversation} por {owner}",
+ "Shared with you in a conversation by {owner}" : "Compartido contigo por {owner} en una conversación",
+ "Share not found" : "Recurso compartido no encontrado",
+ "Back to %s" : "Volver a %s",
+ "Add to your Nextcloud" : "Añadir a tu Nextcloud",
+ "Waiting…" : "Esperando…",
+ "error" : "error",
+ "finished" : "terminó",
+ "This will stop your current uploads." : "Esto detendrá tus subidas actuales.",
+ "Move or copy" : "Mover o copiar",
+ "You can upload into this folder" : "Puedes subir archivos en esta carpeta",
+ "Show list view" : "Mostrar vista de lista",
+ "Show grid view" : "Mostrar vista de cuadrícula",
+ "No compatible server found at {remote}" : "No se ha encontrado un servidor compatible en {remote}",
+ "Invalid server URL" : "URL del servidor inválida",
+ "Failed to add the public link to your Nextcloud" : "No se ha podido añadir el enlace público a tu Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "No tiene permitido editar los enlaces compartidos que no le pertenecen",
+ "Download all files" : "Descargar todos los archivos",
+ "Link copied to clipboard" : "Enlace copiado al portapapeles",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Ya se ha añadido 1 dirección de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico"],
+ "_1 email address added_::_{count} email addresses added_" : ["Se ha añadido 1 dirección de correo","Se han añadido {count} direcciones de correo","Se han añadido {count} direcciones de correo"],
+ "Copy to clipboard" : "Copiar al portapapeles",
+ "Copy internal link to clipboard" : "Copiar enlace interno al portapapeles",
+ "Only works for people with access to this folder" : "Sólo funciona para personas con acceso a esta carpeta",
+ "Only works for people with access to this file" : "Sólo funciona para personas con acceso a este archivo",
+ "Copy public link of \"{title}\" to clipboard" : "Copiar enlace público de \"{title}\" al portapapeles",
+ "Search globally" : "Buscar globalmente",
+ "Search for share recipients" : "Buscar destinatarios para el recurso compartido",
+ "No recommendations. Start typing." : "No hay recomendaciones. Comience a escribir.",
+ "To upload files, you need to provide your name first." : "Para subir archivos, primero debe indicar su nombre.",
+ "Enter your name" : "Escriba su nombre",
+ "Submit name" : "Enviar nombre",
+ "Share with {userName}" : "Compartir con {userName}",
+ "Show sharing options" : "Mostrar opciones de compartir",
"Share note" : "Compartir nota",
"Upload files to %s" : "Subir archivos a %s",
+ "%s shared a folder with you." : "%s ha compartido una carpeta con Ud.",
"Note" : "Nota",
"Select or drop files" : "Seleccione o arrastre y suelte archivos",
"Uploading files" : "Subiendo archivos",
"Uploaded files:" : "Archivos subidos:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al subir archivos, aceptas los %1$stérminos del servicio%2$s.",
- "Add to your Nextcloud" : "Añadir a tu Nextcloud",
- "Files and folders others share with you will show up here" : "Aquí aparecerán archivos y carpetas que otros compartan contigo",
- "Files and folders you share will show up here" : "Aquí aparecerán los archivos y carpetas que compartas con otros",
- "Files and folders you share by link will show up here" : "Aquí aparecerán los archivos y carpetas que compartas mediante un enlace",
- "Shares you deleted will show up here" : "Los recursos compartidos que elimines aparecerán aquí",
- "Shares you have received but not confirmed will show up here" : "Aquí aparecerán los recursos compatidos que hayas recibido pero no confirmado",
- "Shares will show up here" : "Los archivos que compartas aparecerán aquí",
- "Restore" : "Restaurar",
- "Something happened. Unable to restore the share." : "Algo ha sucedido. No se pudo restaurar el recurso compartido.",
- "Something happened. Unable to accept the share." : "Algo ha ocurrido. No es posible aceptar el recurso compartido.",
- "Something happened. Unable to reject the share." : "Algo ha ocurrido. No es posible rechazar el recurso compartido",
- "No expiration date set" : "No se ha establecido fecha de caducidad",
- "Please specify a valid user" : "Por favor, especifica un usuario válido",
- "Please specify a valid federated user ID" : "Por favor, especifique un ID de usuario federado válido",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permite a los usuarios compartir archivos dentro de Nextcloud. Si se activa, el administrador puede elegir qué grupos pueden compartir archivos. Los usuarios aplicables pueden entonces compartir archivos y carpetas con otros usuarios y grupos dentro de Nextcloud. Además, si el administrador activa la característica de enlace compartido, se puede usar un enlace externo para compartir archivos con otros usuarios fuera de Nextcloud. Los administradores pueden obligar a usar contraseñas o fechas de caducidad y activar el compartir de servidor a servidor vía enlaces compartidos, así como compartir desde dispositivos móviles.\nQuitar esta característica elimina los archivos compartidos y las carpetas en el servidor, para todos los receptores, y también los clientes de sincronización y móviles. Más información disponible en la Documentación de Nextcloud.",
- "Accept user and group shares by default" : "Aceptar los recursos compartidos de usuario y grupo por defecto",
- "Read only" : "Solo lectura",
- "File drop (upload only)" : "Entrega de archivos (solo subida)",
- "Upload" : "Subir",
- "Bundled permissions" : "Permisos agrupados",
- "Only works for users with access to this folder" : "Sólo funciona para usuarios con acceso a esta carpeta",
- "Only works for users with access to this file" : "Sólo funciona para usuarios con acceso a este archivo",
- "Circle" : "Círculo",
- "Update" : "Actualizar",
- "Share with " : "Compartir con",
- "No other users with access found" : "No se encontraron otros usuarios con acceso",
- "No entries found in this folder" : "No hay nada en esta carpeta",
"Name" : "Nombre",
- "Share time" : "Compartido hace",
- "Sorry, this link does not seem to work anymore." : "Lo sentimos, este enlace no parece funcionar ya.",
- "Reasons might be:" : "Las causas podrían ser: ",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "el enlace caducó",
- "sharing is disabled" : "compartir está desactivado",
- "For more info, please ask the person who sent this link." : "Para más información, pregunte a la persona que le envió el enlace.",
- "Share with remote" : "Compartir con remoto",
- "Share with" : "Compartir con"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utilice este método para compartir archivos con individuos o equipos dentro de su organización. Si el destinatario ya tiene acceso pero no puede encontrarlos, puede enviarle este enlace interno para facilitarle el acceso.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Use este método para compartir archivos con individuos u organizaciones fuera de su organización. Los archivos y carpetas pueden ser compartidos mediante enlaces públicos y por correo electrónico. También puede compartir con otras cuentas de Nextcloud alojadas en otras instancias utilizando su ID de nube federada.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Recursos compartidos que no son internos o externos. Estos pueden ser recursos compartidos de apps u otras fuentes.",
+ "Share with accounts, teams, federated cloud id" : "Comparta con cuentas, equipos, id de nube federada",
+ "Share with accounts and teams" : "Compartir con cuentas y equipos",
+ "Federated cloud ID" : "ID de nube federada",
+ "Email, federated cloud id" : "Email, ID de nube federada",
+ "Filename must not be empty." : "El nombre de archivo no debe estar vacío."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_419.js b/apps/files_sharing/l10n/es_419.js
deleted file mode 100644
index f75de45ce7c..00000000000
--- a/apps/files_sharing/l10n/es_419.js
+++ /dev/null
@@ -1,138 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restaurar",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow creating" : "Permitir crear",
- "Allow deleting" : "Permitir borrar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Add another link" : "Agregar otra liga",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_419.json b/apps/files_sharing/l10n/es_419.json
deleted file mode 100644
index 352da573a70..00000000000
--- a/apps/files_sharing/l10n/es_419.json
+++ /dev/null
@@ -1,136 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restaurar",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow creating" : "Permitir crear",
- "Allow deleting" : "Permitir borrar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Add another link" : "Agregar otra liga",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_AR.js b/apps/files_sharing/l10n/es_AR.js
deleted file mode 100644
index cd847afa2f4..00000000000
--- a/apps/files_sharing/l10n/es_AR.js
+++ /dev/null
@@ -1,148 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "error" : "error",
- "Move or copy" : "Mover o Copiar",
- "Download" : "Descargar",
- "Delete" : "Eliminar",
- "You can upload into this folder" : "Usted puede cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar el link público a su Nextcloud",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante un link público",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una link público",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Usted ha compartido {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Usted eliminó al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} lo eliminó del grupo {group} de {file}",
- "Shared as public link" : "Compartido como un link público",
- "Removed public link" : "Link público eliminado",
- "Public link expired" : "El link público ha expirado",
- "{actor} shared as public link" : "{actor} compartió como un link público",
- "{actor} removed public link" : "{actor} eliminó el link público",
- "Public link of {actor} expired" : "El link público de {actor} ha expirado",
- "You shared {file} as public link" : "Usted ha compartido {file} como un link público",
- "You removed public link for {file}" : "Usted ha eliminado el link público de {file}",
- "Public link expired for {file}" : "El link público para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compatido {file} como un link público",
- "{actor} removed public link for {file}" : "{actor} eliminó el link público de {file}",
- "Public link of {actor} for {file} expired" : "El link público de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Usted ha recibido un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} con usted",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Usted ha compartido {file} con {user}",
- "You removed {user} from {file}" : "Usted eliminó a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} con usted",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta compartido por correo o por link público ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Favor de especificar un archivo o ruta de carpeta",
- "Could not create share" : "no fue posible crear el elemento compartido",
- "Please specify a valid user" : "Favor de especificar un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Favor de especificar un grupo valido",
- "Public link sharing is disabled by the administrator" : "Compartir links públicos está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, favor de seguir el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "Usted no puede compartir al Círculo si la aplicación no esta habilitada",
- "Please specify a valid circle" : "Favor de especificar un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización esta erróneo o faltante",
- "Direct link" : "Link directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Solo lectura",
- "Allow upload and editing" : "Permitir cargar y editar",
- "File drop (upload only)" : "Soltar archivo (solo para carga)",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow creating" : "Permitir crear",
- "Allow deleting" : "Permitir borrar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de caducidad",
- "Note to recipient" : "Nota al destinatario",
- "Unshare" : "No compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Cannot copy, please copy the link manually" : "No es posible copiar, por favor copia el enlace manualmente",
- "Only works for users with access to this folder" : "Solo funciona para usuarios con acceso a esta carpeta",
- "Link copied" : "Link copiado",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingrese una contraseña",
- "Cancel" : "Cancelar",
- "Hide download" : "Ocultar descarga",
- "Password protect" : "Proteger con contraseña",
- "Add another link" : "Agregar otro enlace",
- "Share link" : "Compartir enlace",
- "No recommendations. Start typing." : "No hay sugerencias. Comenzar a escribir",
- "Resharing is not allowed" : "No está permitido volver a compartir",
- "Searching …" : "Buscando ...",
- "No elements found." : "No se encontraron elementos",
- "Guest" : "Invitado",
- "Group" : "Grupo",
- "Email" : "Correo electrónico",
- "Circle" : "Círculo",
- "Shared with you by {owner}" : "Compartido con usted por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared by" : "Compartido por",
- "Shared with you and the group {group} by {owner}" : "Compartido con usted y el grupo {group} por {owner}",
- "Shares" : "Shares",
- "Shared with you" : "Compartido con usted",
- "Shared with others" : "Compartido con otros",
- "Shared by link" : "Compartido por link",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Tiempo de compartir",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "el link expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacte a la persona que le envió este link.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Note" : "Nota",
- "Select or drop files" : "Seleccione o suelte los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a su Nextcloud",
- "Nothing shared with you yet" : "Nada ha sido compartido aún con usted",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos con usted se mostrarán aquí",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que comparta se mostrarán aquí",
- "No shared links" : "No hay links compartidos",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que comparta por links se mostrarán aquí",
- "Restore" : "Restaurar",
- "No expiration date set" : "No se ha establecido la fecha de expiración"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_AR.json b/apps/files_sharing/l10n/es_AR.json
deleted file mode 100644
index 0c402bb35d1..00000000000
--- a/apps/files_sharing/l10n/es_AR.json
+++ /dev/null
@@ -1,146 +0,0 @@
-{ "translations": {
- "error" : "error",
- "Move or copy" : "Mover o Copiar",
- "Download" : "Descargar",
- "Delete" : "Eliminar",
- "You can upload into this folder" : "Usted puede cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar el link público a su Nextcloud",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante un link público",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una link público",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Usted ha compartido {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Usted eliminó al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} lo eliminó del grupo {group} de {file}",
- "Shared as public link" : "Compartido como un link público",
- "Removed public link" : "Link público eliminado",
- "Public link expired" : "El link público ha expirado",
- "{actor} shared as public link" : "{actor} compartió como un link público",
- "{actor} removed public link" : "{actor} eliminó el link público",
- "Public link of {actor} expired" : "El link público de {actor} ha expirado",
- "You shared {file} as public link" : "Usted ha compartido {file} como un link público",
- "You removed public link for {file}" : "Usted ha eliminado el link público de {file}",
- "Public link expired for {file}" : "El link público para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compatido {file} como un link público",
- "{actor} removed public link for {file}" : "{actor} eliminó el link público de {file}",
- "Public link of {actor} for {file} expired" : "El link público de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Usted ha recibido un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} con usted",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Usted ha compartido {file} con {user}",
- "You removed {user} from {file}" : "Usted eliminó a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} con usted",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta compartido por correo o por link público ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Favor de especificar un archivo o ruta de carpeta",
- "Could not create share" : "no fue posible crear el elemento compartido",
- "Please specify a valid user" : "Favor de especificar un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Favor de especificar un grupo valido",
- "Public link sharing is disabled by the administrator" : "Compartir links públicos está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, favor de seguir el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "Usted no puede compartir al Círculo si la aplicación no esta habilitada",
- "Please specify a valid circle" : "Favor de especificar un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización esta erróneo o faltante",
- "Direct link" : "Link directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Solo lectura",
- "Allow upload and editing" : "Permitir cargar y editar",
- "File drop (upload only)" : "Soltar archivo (solo para carga)",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow creating" : "Permitir crear",
- "Allow deleting" : "Permitir borrar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de caducidad",
- "Note to recipient" : "Nota al destinatario",
- "Unshare" : "No compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Cannot copy, please copy the link manually" : "No es posible copiar, por favor copia el enlace manualmente",
- "Only works for users with access to this folder" : "Solo funciona para usuarios con acceso a esta carpeta",
- "Link copied" : "Link copiado",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingrese una contraseña",
- "Cancel" : "Cancelar",
- "Hide download" : "Ocultar descarga",
- "Password protect" : "Proteger con contraseña",
- "Add another link" : "Agregar otro enlace",
- "Share link" : "Compartir enlace",
- "No recommendations. Start typing." : "No hay sugerencias. Comenzar a escribir",
- "Resharing is not allowed" : "No está permitido volver a compartir",
- "Searching …" : "Buscando ...",
- "No elements found." : "No se encontraron elementos",
- "Guest" : "Invitado",
- "Group" : "Grupo",
- "Email" : "Correo electrónico",
- "Circle" : "Círculo",
- "Shared with you by {owner}" : "Compartido con usted por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared by" : "Compartido por",
- "Shared with you and the group {group} by {owner}" : "Compartido con usted y el grupo {group} por {owner}",
- "Shares" : "Shares",
- "Shared with you" : "Compartido con usted",
- "Shared with others" : "Compartido con otros",
- "Shared by link" : "Compartido por link",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Tiempo de compartir",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "el link expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacte a la persona que le envió este link.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Note" : "Nota",
- "Select or drop files" : "Seleccione o suelte los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a su Nextcloud",
- "Nothing shared with you yet" : "Nada ha sido compartido aún con usted",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos con usted se mostrarán aquí",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que comparta se mostrarán aquí",
- "No shared links" : "No hay links compartidos",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que comparta por links se mostrarán aquí",
- "Restore" : "Restaurar",
- "No expiration date set" : "No se ha establecido la fecha de expiración"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_CL.js b/apps/files_sharing/l10n/es_CL.js
deleted file mode 100644
index b2beba46938..00000000000
--- a/apps/files_sharing/l10n/es_CL.js
+++ /dev/null
@@ -1,138 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Se presentó un error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_CL.json b/apps/files_sharing/l10n/es_CL.json
deleted file mode 100644
index f7ccb907f58..00000000000
--- a/apps/files_sharing/l10n/es_CL.json
+++ /dev/null
@@ -1,136 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Se presentó un error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_CO.js b/apps/files_sharing/l10n/es_CO.js
deleted file mode 100644
index 14d2bae7edd..00000000000
--- a/apps/files_sharing/l10n/es_CO.js
+++ /dev/null
@@ -1,143 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Reiniciar",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Link copied" : "Enlace copiado",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Add another link" : "Añadir otro enlace",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Guest" : "Invitado",
- "Group" : "Grupo",
- "Email" : "Correo electrónico",
- "Circle" : "Círculo",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_CO.json b/apps/files_sharing/l10n/es_CO.json
deleted file mode 100644
index 4a69b23abb2..00000000000
--- a/apps/files_sharing/l10n/es_CO.json
+++ /dev/null
@@ -1,141 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Reiniciar",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Link copied" : "Enlace copiado",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Add another link" : "Añadir otro enlace",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Guest" : "Invitado",
- "Group" : "Grupo",
- "Email" : "Correo electrónico",
- "Circle" : "Círculo",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_CR.js b/apps/files_sharing/l10n/es_CR.js
deleted file mode 100644
index 01b8c23159d..00000000000
--- a/apps/files_sharing/l10n/es_CR.js
+++ /dev/null
@@ -1,138 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_CR.json b/apps/files_sharing/l10n/es_CR.json
deleted file mode 100644
index 00480fcc844..00000000000
--- a/apps/files_sharing/l10n/es_CR.json
+++ /dev/null
@@ -1,136 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_DO.js b/apps/files_sharing/l10n/es_DO.js
deleted file mode 100644
index dd4a04dce7a..00000000000
--- a/apps/files_sharing/l10n/es_DO.js
+++ /dev/null
@@ -1,144 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow creating" : "Permitir crear",
- "Allow deleting" : "Permitir borrar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Add another link" : "Añadir otro enlace",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Guest" : "Invitado",
- "Group" : "Grupo",
- "Email" : "Correo electrónico",
- "Circle" : "Círculo",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_DO.json b/apps/files_sharing/l10n/es_DO.json
deleted file mode 100644
index 026306267c3..00000000000
--- a/apps/files_sharing/l10n/es_DO.json
+++ /dev/null
@@ -1,142 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow creating" : "Permitir crear",
- "Allow deleting" : "Permitir borrar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Add another link" : "Añadir otro enlace",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Guest" : "Invitado",
- "Group" : "Grupo",
- "Email" : "Correo electrónico",
- "Circle" : "Círculo",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_EC.js b/apps/files_sharing/l10n/es_EC.js
index 450885f0bb9..33a22ba78a2 100644
--- a/apps/files_sharing/l10n/es_EC.js
+++ b/apps/files_sharing/l10n/es_EC.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Esperando...",
- "error" : "error",
- "finished" : "finalizado",
- "This will stop your current uploads." : "Esto detendrá tus cargas actuales.",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "Terms of service" : "Terms of service",
- "Show list view" : "Mostrar vista de lista",
- "Show grid view" : "Mostrar vista de cuadrícula",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar el enlace público a tu Nextcloud",
"File shares" : "Archivos compartidos",
"Downloaded via public link" : "Descargado mediante un enlace público",
"Downloaded by {email}" : "Descargado por {email}",
@@ -70,7 +56,7 @@ OC.L10N.register(
"Share for file {file} expired" : "La compartición para el archivo {file} ha expirado",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por enlace público ha sido <strong>descargado</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
+ "Sharing" : "Compartiendo",
"A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
"Shared link" : "Enlace compartido",
"Wrong share ID, share does not exist" : "ID de compartición incorrecto, la compartición no existe",
@@ -78,32 +64,29 @@ OC.L10N.register(
"Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
"Wrong path, file/folder does not exist" : "Ruta incorrecta, el archivo/carpeta no existe",
"Could not create share" : "No fue posible crear el elemento compartido",
- "Invalid permissions" : "Permisos inválidos",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
"Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
"Please specify a valid group" : "Por favor especifica un grupo válido",
"Public link sharing is disabled by the administrator" : "Compartir enlaces públicos está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Error al enviar la contraseña por Nextcloud Talk al compartir",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Error al compartir %1$s porque el servidor no permite comparticiones del tipo %2$s",
"Please specify a valid federated group ID" : "Por favor, especifica un ID de grupo federado válido",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
"Sharing %s failed because the back end does not support room shares" : "Error al compartir %s porque el servidor no admite comparticiones de salas",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Error al compartir %s porque el servidor no admite comparticiones de ScienceMesh",
"Unknown share type" : "Tipo de elemento compartido desconocido",
"Not a directory" : "No es una carpeta",
"Could not lock node" : "No se pudo bloquear el nodo",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
+ "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
"Share must at least have READ or CREATE permissions" : "La compartición debe tener al menos permisos de LECTURA o CREACIÓN",
"Share must have READ permission if UPDATE or DELETE permission is set" : "La compartición debe tener permisos de LECTURA si se establecen permisos de ACTUALIZACIÓN o ELIMINACIÓN",
+ "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
+ "Could not lock path" : "No fue posible bloquear la ruta",
+ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Error al enviar la contraseña por Nextcloud Talk\" al compartir un archivo o carpeta porque Nextcloud Talk no está habilitado.",
+ "Wrong password" : "Contraseña incorrecta",
"shared by %s" : "compartido por %s",
- "Download all files" : "Descargar todos los archivos",
- "Direct link" : "Enlace directo",
+ "Download" : "Descargar",
"Add to your %s" : "Añadir a tu %s",
+ "Direct link" : "Enlace directo",
"Share API is disabled" : "El API para compartir está deshabilitado",
"File sharing" : "Compartir archivos",
"Share will expire tomorrow" : "La compartición expirará mañana",
@@ -112,14 +95,24 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Recibiste {share} como compartición de {user} al grupo {group}",
"Accept" : "Aceptar",
"Decline" : "Declinar",
- "Sharing" : "Compartiendo",
+ "People" : "Personas",
+ "Expiration date" : "Fecha de expiración",
+ "Set a password" : "Establecer una contraseña",
+ "Link copied" : "Enlace copiado",
+ "Share link" : "Compartir enlace",
+ "Copy" : "Copiar",
+ "Close" : "Cerrar",
+ "Error creating the share: {errorMessage}" : "Error al crear la compartición: {errorMessage}",
+ "Error creating the share" : "Error al crear la compartición",
+ "Cancel" : "Cancelar",
+ "Continue" : "Continuar",
"Error while toggling options" : "Error al cambiar las opciones",
- "Set default folder for accepted shares" : "Establecer carpeta predeterminada para comparticiones aceptadas",
- "Reset" : "Restablecer",
- "Reset folder to system default" : "Restablecer carpeta a la predeterminada del sistema",
"Choose a default folder for accepted shares" : "Elige una carpeta predeterminada para las comparticiones aceptadas",
"Invalid path selected" : "Ruta seleccionada no válida.",
"Unknown error" : "Error desconocido",
+ "Set default folder for accepted shares" : "Establecer carpeta predeterminada para comparticiones aceptadas",
+ "Reset" : "Restablecer",
+ "Reset folder to system default" : "Restablecer carpeta a la predeterminada del sistema",
"group" : "grupo",
"conversation" : "conversación",
"remote" : "remoto",
@@ -131,42 +124,33 @@ OC.L10N.register(
"Added by {initiator}" : "Agregado por {initiator}",
"Via “{folder}”" : "A través de \"{folder}\"",
"Unshare" : "Dejar de compartir",
- "Internal link" : "Enlace interno",
"Cannot copy, please copy the link manually" : "No se puede copiar, por favor copia el enlace manualmente",
- "Copy internal link to clipboard" : "Copiar enlace interno al portapapeles",
- "Link copied" : "Enlace copiado",
- "Please enter the following required information before creating the share" : "Por favor, introduce la siguiente información requerida antes de crear la compartición",
- "Password protection (enforced)" : "Protección de contraseña (exigida)",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Expiration date (enforced)" : "Fecha de vencimiento (exigida)",
- "Enter a date" : "Ingresa una fecha",
- "Create share" : "Crear compartición",
- "Cancel" : "Cancelar",
- "Add another link" : "Agregar otro enlace",
- "Create a new share link" : "Crear un nuevo enlace compartido",
+ "Copy internal link" : "Copiar enlace interno",
+ "Internal link" : "Enlace interno",
"{shareWith} by {initiator}" : "{shareWith} por {initiator}",
"Shared via link by {initiator}" : "Compartido a través de enlace por {initiator}",
"Mail share ({label})" : "Compartir por correo electrónico ({label})",
"Share link ({label})" : "Enlace compartido ({label})",
"Share link ({index})" : "Enlace compartido ({index})",
- "Share link" : "Compartir enlace",
+ "Create public link" : "Crear enlace público",
"Actions for \"{title}\"" : "Acciones para \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Copiar enlace público de \"{title}\" al portapapeles",
"Error, please enter proper password and/or expiration date" : "Error, por favor ingresa una contraseña y/o fecha de vencimiento adecuadas",
"Link share created" : "Enlace compartido creado",
"Error while creating the share" : "Error al crear la compartición",
+ "Please enter the following required information before creating the share" : "Por favor, introduce la siguiente información requerida antes de crear la compartición",
+ "Password protection (enforced)" : "Protección de contraseña (exigida)",
+ "Password protection" : "Protección con contraseña",
+ "Enter a password" : "Ingresa una contraseña",
+ "Create share" : "Crear compartición",
+ "Add another link" : "Agregar otro enlace",
+ "Create a new share link" : "Crear un nuevo enlace compartido",
"View only" : "Solo vista",
- "File drop" : "Soltar archivo",
"Custom permissions" : "Permisos personalizados",
- "Search for share recipients" : "Buscar destinatarios de la compartición",
- "No recommendations. Start typing." : "No hay recomendaciones. Comienza a escribir.",
"Resharing is not allowed" : "No se permite volver a compartir",
"Name or email …" : "Nombre o correo electrónico...",
"Name, email, or Federated Cloud ID …" : "Nombre, correo electrónico o ID de la nube federada...",
"Searching …" : "Buscando...",
"No elements found." : "No se encontraron elementos.",
- "Search globally" : "Buscar globalmente",
"Guest" : "Invitado",
"Group" : "Grupo",
"Email" : "Correo electrónico",
@@ -174,6 +158,13 @@ OC.L10N.register(
"Deck board" : "Tablero de Deck",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "en {server}",
+ "File drop" : "Soltar archivo",
+ "Terms of service" : "Terms of service",
+ "Read" : "Leer",
+ "Create" : "Crear",
+ "Edit" : "Editar",
+ "Share" : "Compartir",
+ "Delete" : "Borrar",
"Allow upload and editing" : "Permitir carga y edición",
"Allow editing" : "Permitir edición",
"Advanced settings" : "Configuraciones avanzados",
@@ -181,45 +172,27 @@ OC.L10N.register(
"Password expires {passwordExpirationTime}" : "La contraseña expira el {passwordExpirationTime}",
"Password expired" : "Contraseña expirada",
"Video verification" : "Verificación de video",
+ "Expiration date (enforced)" : "Fecha de vencimiento (exigida)",
"Set expiration date" : "Establecer fecha de expiración",
- "Expiration date" : "Fecha de expiración",
"Hide download" : "Ocultar descarga",
- "Allow download" : "Permitir descarga",
"Note to recipient" : "Nota para el destinatario",
"Enter a note for the share recipient" : "Ingresa una nota para el destinatario de la compartición",
- "Read" : "Leer",
- "Create" : "Crear",
- "Edit" : "Editar",
- "Share" : "Compartir",
"Others with access" : "Otros con acceso",
"Toggle list of others with access to this directory" : "Alternar lista de otros con acceso a este directorio",
"Toggle list of others with access to this file" : "Alternar lista de otros con acceso a este archivo",
"Unable to fetch inherited shares" : "No se pueden obtener las comparticiones heredadas",
+ "Shares" : "Elementos compartidos",
"Unable to load the shares list" : "No se puede cargar la lista de comparticiones",
"Expires {relativetime}" : "Expira {relativetime}",
"this share just expired." : "esta compartición acaba de expirar.",
"Shared with you by {owner}" : "Compartido contigo por {owner}",
+ "Link to a file" : "Enlazar a un archivo",
"_Accept share_::_Accept shares_" : ["Aceptar compartición","Aceptar comparticiones","Aceptar comparticiones"],
"_Reject share_::_Reject shares_" : ["Rechazar compartición","Rechazar comparticiones","Rechazar comparticiones"],
"_Restore share_::_Restore shares_" : ["Restaurar compartición","Restaurar comparticiones","Restaurar comparticiones"],
"Shared" : "Compartido",
- "Link to a file" : "Enlazar a un archivo",
- "Error creating the share: {errorMessage}" : "Error al crear la compartición: {errorMessage}",
- "Error creating the share" : "Error al crear la compartición",
- "Error updating the share: {errorMessage}" : "Error al actualizar la compartición: {errorMessage}",
- "Error updating the share" : "Error al actualizar la compartición",
- "File \"{path}\" has been unshared" : "El archivo \"{path}\" ha dejado de compartirse",
- "Folder \"{path}\" has been unshared" : "La carpeta \"{path}\" ha dejado de compartirse",
- "Share {propertyName} saved" : "La propiedad de compartición {propertyName} se ha guardado",
- "Shared by" : "Compartido por",
- "Shared with" : "Compartido con",
- "Password created successfully" : "Contraseña creada exitosamente",
- "Error generating password from password policy" : "Error al generar la contraseña según la política de contraseñas",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "Shared with you and {circle} by {owner}" : "Compartido contigo y {circle} por {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Compartido contigo y la conversación {conversation} por {owner}",
- "Shared with you in a conversation by {owner}" : "Compartido contigo en una conversación por {owner}",
- "Shares" : "Elementos compartidos",
+ "Shared with others" : "Compartido con otros",
+ "No file" : "Ningún archivo",
"Overview of shared files." : "Resumen de archivos compartidos.",
"No shares" : "No hay comparticiones",
"Files and folders you shared or have been shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que has compartido o que se han compartido contigo",
@@ -227,7 +200,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Lista de archivos compartidos contigo.",
"Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
"Files and folders others shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que otros han compartido contigo",
- "Shared with others" : "Compartido con otros",
"List of files that you shared with others." : "Lista de archivos que compartiste con otros.",
"Nothing shared yet" : "Nada compartido aún",
"Files and folders you shared will show up here" : "Aquí aparecerán los archivos y carpetas que has compartido",
@@ -243,6 +215,40 @@ OC.L10N.register(
"List of unapproved shares." : "Lista de comparticiones pendientes.",
"No pending shares" : "No hay comparticiones pendientes",
"Shares you have received but not approved will show up here" : "Aquí aparecerán los compartidos que has recibido pero no has aprobado",
+ "Error updating the share: {errorMessage}" : "Error al actualizar la compartición: {errorMessage}",
+ "Error updating the share" : "Error al actualizar la compartición",
+ "File \"{path}\" has been unshared" : "El archivo \"{path}\" ha dejado de compartirse",
+ "Folder \"{path}\" has been unshared" : "La carpeta \"{path}\" ha dejado de compartirse",
+ "Shared by" : "Compartido por",
+ "Shared with" : "Compartido con",
+ "Password created successfully" : "Contraseña creada exitosamente",
+ "Error generating password from password policy" : "Error al generar la contraseña según la política de contraseñas",
+ "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
+ "Shared with you and {circle} by {owner}" : "Compartido contigo y {circle} por {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Compartido contigo y la conversación {conversation} por {owner}",
+ "Shared with you in a conversation by {owner}" : "Compartido contigo en una conversación por {owner}",
+ "Share not found" : "No se encontró el elemento compartido",
+ "Back to %s" : "Volver a %s",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
+ "Waiting…" : "Esperando...",
+ "error" : "error",
+ "finished" : "finalizado",
+ "This will stop your current uploads." : "Esto detendrá tus cargas actuales.",
+ "Move or copy" : "Mover o copiar",
+ "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
+ "Show list view" : "Mostrar vista de lista",
+ "Show grid view" : "Mostrar vista de cuadrícula",
+ "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
+ "Invalid server URL" : "URL del servidor inválido",
+ "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar el enlace público a tu Nextcloud",
+ "Download all files" : "Descargar todos los archivos",
+ "Link copied to clipboard" : "Enlace copiado al portapapeles",
+ "Copy to clipboard" : "Copiar al portapapeles",
+ "Copy internal link to clipboard" : "Copiar enlace interno al portapapeles",
+ "Copy public link of \"{title}\" to clipboard" : "Copiar enlace público de \"{title}\" al portapapeles",
+ "Search globally" : "Buscar globalmente",
+ "Search for share recipients" : "Buscar destinatarios de la compartición",
+ "No recommendations. Start typing." : "No hay recomendaciones. Comienza a escribir.",
"Share note" : "Compartir nota",
"Upload files to %s" : "Cargar archivos a %s",
"Note" : "Nota",
@@ -250,39 +256,6 @@ OC.L10N.register(
"Uploading files" : "Subiendo archivos",
"Uploaded files:" : "Archivos cargados:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al subir archivos, aceptas los %1$stérminos de servicio%2$s.",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas mediante enlaces se mostrarán aquí",
- "Shares you deleted will show up here" : "Las comparticiones que eliminaste aparecerán aquí",
- "Shares you have received but not confirmed will show up here" : "Las comparticiones que has recibido pero no confirmaste aparecerán aquí",
- "Shares will show up here" : "Aquí aparecerán las comparticiones",
- "Restore" : "Restaurar",
- "Something happened. Unable to restore the share." : "Ha ocurrido algo. No se puede restaurar la compartición.",
- "Something happened. Unable to accept the share." : "Ha ocurrido algo. No se puede aceptar la compartición.",
- "Something happened. Unable to reject the share." : "Ha ocurrido algo. No se puede rechazar la compartición.",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Please specify a valid federated user ID" : "Por favor, especifica un ID de usuario federado válido",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permite a los usuarios compartir archivos dentro de Nextcloud. Si está habilitada, el administrador puede elegir qué grupos pueden compartir archivos. Los usuarios correspondientes pueden compartir archivos y carpetas con otros usuarios y grupos dentro de Nextcloud. Además, si el administrador habilita la función de enlace compartido, se puede utilizar un enlace externo para compartir archivos con otros usuarios fuera de Nextcloud. Los administradores también pueden exigir contraseñas, fechas de vencimiento y habilitar la compartición entre servidores a través de enlaces compartidos, así como la compartición desde dispositivos móviles.\n Desactivar esta función eliminará los archivos y carpetas compartidos en el servidor para todos los destinatarios de la compartición, así como en los clientes de sincronización y las aplicaciones móviles. Más información está disponible en la Documentación de Nextcloud.",
- "Accept user and group shares by default" : "Aceptar comparticiones de usuarios y grupos por defecto",
- "Read only" : "Sólo lectura",
- "File drop (upload only)" : "Permitir carga",
- "Upload" : "Cargar",
- "Bundled permissions" : "Permisos integrados",
- "Only works for users with access to this folder" : "Solo funciona para usuarios con acceso a esta carpeta",
- "Only works for users with access to this file" : "Solo funciona para usuarios con acceso a este archivo",
- "Circle" : "Círculo",
- "Update" : "Actualizar",
- "No other users with access found" : "No se encontraron otros usuarios con acceso",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Sorry, this link does not seem to work anymore." : "Lo siento, este enlace parece ya no funcionar.",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "el enlace caducó",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayor información, contacte a la persona que le envió este enlace."
+ "Name" : "Nombre"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_EC.json b/apps/files_sharing/l10n/es_EC.json
index 775f97601d4..e023396cace 100644
--- a/apps/files_sharing/l10n/es_EC.json
+++ b/apps/files_sharing/l10n/es_EC.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Esperando...",
- "error" : "error",
- "finished" : "finalizado",
- "This will stop your current uploads." : "Esto detendrá tus cargas actuales.",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "Terms of service" : "Terms of service",
- "Show list view" : "Mostrar vista de lista",
- "Show grid view" : "Mostrar vista de cuadrícula",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar el enlace público a tu Nextcloud",
"File shares" : "Archivos compartidos",
"Downloaded via public link" : "Descargado mediante un enlace público",
"Downloaded by {email}" : "Descargado por {email}",
@@ -68,7 +54,7 @@
"Share for file {file} expired" : "La compartición para el archivo {file} ha expirado",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por enlace público ha sido <strong>descargado</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
+ "Sharing" : "Compartiendo",
"A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
"Shared link" : "Enlace compartido",
"Wrong share ID, share does not exist" : "ID de compartición incorrecto, la compartición no existe",
@@ -76,32 +62,29 @@
"Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
"Wrong path, file/folder does not exist" : "Ruta incorrecta, el archivo/carpeta no existe",
"Could not create share" : "No fue posible crear el elemento compartido",
- "Invalid permissions" : "Permisos inválidos",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
"Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
"Please specify a valid group" : "Por favor especifica un grupo válido",
"Public link sharing is disabled by the administrator" : "Compartir enlaces públicos está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Error al enviar la contraseña por Nextcloud Talk al compartir",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Error al compartir %1$s porque el servidor no permite comparticiones del tipo %2$s",
"Please specify a valid federated group ID" : "Por favor, especifica un ID de grupo federado válido",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
"Sharing %s failed because the back end does not support room shares" : "Error al compartir %s porque el servidor no admite comparticiones de salas",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Error al compartir %s porque el servidor no admite comparticiones de ScienceMesh",
"Unknown share type" : "Tipo de elemento compartido desconocido",
"Not a directory" : "No es una carpeta",
"Could not lock node" : "No se pudo bloquear el nodo",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
+ "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
"Share must at least have READ or CREATE permissions" : "La compartición debe tener al menos permisos de LECTURA o CREACIÓN",
"Share must have READ permission if UPDATE or DELETE permission is set" : "La compartición debe tener permisos de LECTURA si se establecen permisos de ACTUALIZACIÓN o ELIMINACIÓN",
+ "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
+ "Could not lock path" : "No fue posible bloquear la ruta",
+ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Error al enviar la contraseña por Nextcloud Talk\" al compartir un archivo o carpeta porque Nextcloud Talk no está habilitado.",
+ "Wrong password" : "Contraseña incorrecta",
"shared by %s" : "compartido por %s",
- "Download all files" : "Descargar todos los archivos",
- "Direct link" : "Enlace directo",
+ "Download" : "Descargar",
"Add to your %s" : "Añadir a tu %s",
+ "Direct link" : "Enlace directo",
"Share API is disabled" : "El API para compartir está deshabilitado",
"File sharing" : "Compartir archivos",
"Share will expire tomorrow" : "La compartición expirará mañana",
@@ -110,14 +93,24 @@
"You received {share} to group {group} as a share by {user}" : "Recibiste {share} como compartición de {user} al grupo {group}",
"Accept" : "Aceptar",
"Decline" : "Declinar",
- "Sharing" : "Compartiendo",
+ "People" : "Personas",
+ "Expiration date" : "Fecha de expiración",
+ "Set a password" : "Establecer una contraseña",
+ "Link copied" : "Enlace copiado",
+ "Share link" : "Compartir enlace",
+ "Copy" : "Copiar",
+ "Close" : "Cerrar",
+ "Error creating the share: {errorMessage}" : "Error al crear la compartición: {errorMessage}",
+ "Error creating the share" : "Error al crear la compartición",
+ "Cancel" : "Cancelar",
+ "Continue" : "Continuar",
"Error while toggling options" : "Error al cambiar las opciones",
- "Set default folder for accepted shares" : "Establecer carpeta predeterminada para comparticiones aceptadas",
- "Reset" : "Restablecer",
- "Reset folder to system default" : "Restablecer carpeta a la predeterminada del sistema",
"Choose a default folder for accepted shares" : "Elige una carpeta predeterminada para las comparticiones aceptadas",
"Invalid path selected" : "Ruta seleccionada no válida.",
"Unknown error" : "Error desconocido",
+ "Set default folder for accepted shares" : "Establecer carpeta predeterminada para comparticiones aceptadas",
+ "Reset" : "Restablecer",
+ "Reset folder to system default" : "Restablecer carpeta a la predeterminada del sistema",
"group" : "grupo",
"conversation" : "conversación",
"remote" : "remoto",
@@ -129,42 +122,33 @@
"Added by {initiator}" : "Agregado por {initiator}",
"Via “{folder}”" : "A través de \"{folder}\"",
"Unshare" : "Dejar de compartir",
- "Internal link" : "Enlace interno",
"Cannot copy, please copy the link manually" : "No se puede copiar, por favor copia el enlace manualmente",
- "Copy internal link to clipboard" : "Copiar enlace interno al portapapeles",
- "Link copied" : "Enlace copiado",
- "Please enter the following required information before creating the share" : "Por favor, introduce la siguiente información requerida antes de crear la compartición",
- "Password protection (enforced)" : "Protección de contraseña (exigida)",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Expiration date (enforced)" : "Fecha de vencimiento (exigida)",
- "Enter a date" : "Ingresa una fecha",
- "Create share" : "Crear compartición",
- "Cancel" : "Cancelar",
- "Add another link" : "Agregar otro enlace",
- "Create a new share link" : "Crear un nuevo enlace compartido",
+ "Copy internal link" : "Copiar enlace interno",
+ "Internal link" : "Enlace interno",
"{shareWith} by {initiator}" : "{shareWith} por {initiator}",
"Shared via link by {initiator}" : "Compartido a través de enlace por {initiator}",
"Mail share ({label})" : "Compartir por correo electrónico ({label})",
"Share link ({label})" : "Enlace compartido ({label})",
"Share link ({index})" : "Enlace compartido ({index})",
- "Share link" : "Compartir enlace",
+ "Create public link" : "Crear enlace público",
"Actions for \"{title}\"" : "Acciones para \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Copiar enlace público de \"{title}\" al portapapeles",
"Error, please enter proper password and/or expiration date" : "Error, por favor ingresa una contraseña y/o fecha de vencimiento adecuadas",
"Link share created" : "Enlace compartido creado",
"Error while creating the share" : "Error al crear la compartición",
+ "Please enter the following required information before creating the share" : "Por favor, introduce la siguiente información requerida antes de crear la compartición",
+ "Password protection (enforced)" : "Protección de contraseña (exigida)",
+ "Password protection" : "Protección con contraseña",
+ "Enter a password" : "Ingresa una contraseña",
+ "Create share" : "Crear compartición",
+ "Add another link" : "Agregar otro enlace",
+ "Create a new share link" : "Crear un nuevo enlace compartido",
"View only" : "Solo vista",
- "File drop" : "Soltar archivo",
"Custom permissions" : "Permisos personalizados",
- "Search for share recipients" : "Buscar destinatarios de la compartición",
- "No recommendations. Start typing." : "No hay recomendaciones. Comienza a escribir.",
"Resharing is not allowed" : "No se permite volver a compartir",
"Name or email …" : "Nombre o correo electrónico...",
"Name, email, or Federated Cloud ID …" : "Nombre, correo electrónico o ID de la nube federada...",
"Searching …" : "Buscando...",
"No elements found." : "No se encontraron elementos.",
- "Search globally" : "Buscar globalmente",
"Guest" : "Invitado",
"Group" : "Grupo",
"Email" : "Correo electrónico",
@@ -172,6 +156,13 @@
"Deck board" : "Tablero de Deck",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "en {server}",
+ "File drop" : "Soltar archivo",
+ "Terms of service" : "Terms of service",
+ "Read" : "Leer",
+ "Create" : "Crear",
+ "Edit" : "Editar",
+ "Share" : "Compartir",
+ "Delete" : "Borrar",
"Allow upload and editing" : "Permitir carga y edición",
"Allow editing" : "Permitir edición",
"Advanced settings" : "Configuraciones avanzados",
@@ -179,45 +170,27 @@
"Password expires {passwordExpirationTime}" : "La contraseña expira el {passwordExpirationTime}",
"Password expired" : "Contraseña expirada",
"Video verification" : "Verificación de video",
+ "Expiration date (enforced)" : "Fecha de vencimiento (exigida)",
"Set expiration date" : "Establecer fecha de expiración",
- "Expiration date" : "Fecha de expiración",
"Hide download" : "Ocultar descarga",
- "Allow download" : "Permitir descarga",
"Note to recipient" : "Nota para el destinatario",
"Enter a note for the share recipient" : "Ingresa una nota para el destinatario de la compartición",
- "Read" : "Leer",
- "Create" : "Crear",
- "Edit" : "Editar",
- "Share" : "Compartir",
"Others with access" : "Otros con acceso",
"Toggle list of others with access to this directory" : "Alternar lista de otros con acceso a este directorio",
"Toggle list of others with access to this file" : "Alternar lista de otros con acceso a este archivo",
"Unable to fetch inherited shares" : "No se pueden obtener las comparticiones heredadas",
+ "Shares" : "Elementos compartidos",
"Unable to load the shares list" : "No se puede cargar la lista de comparticiones",
"Expires {relativetime}" : "Expira {relativetime}",
"this share just expired." : "esta compartición acaba de expirar.",
"Shared with you by {owner}" : "Compartido contigo por {owner}",
+ "Link to a file" : "Enlazar a un archivo",
"_Accept share_::_Accept shares_" : ["Aceptar compartición","Aceptar comparticiones","Aceptar comparticiones"],
"_Reject share_::_Reject shares_" : ["Rechazar compartición","Rechazar comparticiones","Rechazar comparticiones"],
"_Restore share_::_Restore shares_" : ["Restaurar compartición","Restaurar comparticiones","Restaurar comparticiones"],
"Shared" : "Compartido",
- "Link to a file" : "Enlazar a un archivo",
- "Error creating the share: {errorMessage}" : "Error al crear la compartición: {errorMessage}",
- "Error creating the share" : "Error al crear la compartición",
- "Error updating the share: {errorMessage}" : "Error al actualizar la compartición: {errorMessage}",
- "Error updating the share" : "Error al actualizar la compartición",
- "File \"{path}\" has been unshared" : "El archivo \"{path}\" ha dejado de compartirse",
- "Folder \"{path}\" has been unshared" : "La carpeta \"{path}\" ha dejado de compartirse",
- "Share {propertyName} saved" : "La propiedad de compartición {propertyName} se ha guardado",
- "Shared by" : "Compartido por",
- "Shared with" : "Compartido con",
- "Password created successfully" : "Contraseña creada exitosamente",
- "Error generating password from password policy" : "Error al generar la contraseña según la política de contraseñas",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "Shared with you and {circle} by {owner}" : "Compartido contigo y {circle} por {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Compartido contigo y la conversación {conversation} por {owner}",
- "Shared with you in a conversation by {owner}" : "Compartido contigo en una conversación por {owner}",
- "Shares" : "Elementos compartidos",
+ "Shared with others" : "Compartido con otros",
+ "No file" : "Ningún archivo",
"Overview of shared files." : "Resumen de archivos compartidos.",
"No shares" : "No hay comparticiones",
"Files and folders you shared or have been shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que has compartido o que se han compartido contigo",
@@ -225,7 +198,6 @@
"List of files that are shared with you." : "Lista de archivos compartidos contigo.",
"Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
"Files and folders others shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que otros han compartido contigo",
- "Shared with others" : "Compartido con otros",
"List of files that you shared with others." : "Lista de archivos que compartiste con otros.",
"Nothing shared yet" : "Nada compartido aún",
"Files and folders you shared will show up here" : "Aquí aparecerán los archivos y carpetas que has compartido",
@@ -241,6 +213,40 @@
"List of unapproved shares." : "Lista de comparticiones pendientes.",
"No pending shares" : "No hay comparticiones pendientes",
"Shares you have received but not approved will show up here" : "Aquí aparecerán los compartidos que has recibido pero no has aprobado",
+ "Error updating the share: {errorMessage}" : "Error al actualizar la compartición: {errorMessage}",
+ "Error updating the share" : "Error al actualizar la compartición",
+ "File \"{path}\" has been unshared" : "El archivo \"{path}\" ha dejado de compartirse",
+ "Folder \"{path}\" has been unshared" : "La carpeta \"{path}\" ha dejado de compartirse",
+ "Shared by" : "Compartido por",
+ "Shared with" : "Compartido con",
+ "Password created successfully" : "Contraseña creada exitosamente",
+ "Error generating password from password policy" : "Error al generar la contraseña según la política de contraseñas",
+ "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
+ "Shared with you and {circle} by {owner}" : "Compartido contigo y {circle} por {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Compartido contigo y la conversación {conversation} por {owner}",
+ "Shared with you in a conversation by {owner}" : "Compartido contigo en una conversación por {owner}",
+ "Share not found" : "No se encontró el elemento compartido",
+ "Back to %s" : "Volver a %s",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
+ "Waiting…" : "Esperando...",
+ "error" : "error",
+ "finished" : "finalizado",
+ "This will stop your current uploads." : "Esto detendrá tus cargas actuales.",
+ "Move or copy" : "Mover o copiar",
+ "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
+ "Show list view" : "Mostrar vista de lista",
+ "Show grid view" : "Mostrar vista de cuadrícula",
+ "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
+ "Invalid server URL" : "URL del servidor inválido",
+ "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar el enlace público a tu Nextcloud",
+ "Download all files" : "Descargar todos los archivos",
+ "Link copied to clipboard" : "Enlace copiado al portapapeles",
+ "Copy to clipboard" : "Copiar al portapapeles",
+ "Copy internal link to clipboard" : "Copiar enlace interno al portapapeles",
+ "Copy public link of \"{title}\" to clipboard" : "Copiar enlace público de \"{title}\" al portapapeles",
+ "Search globally" : "Buscar globalmente",
+ "Search for share recipients" : "Buscar destinatarios de la compartición",
+ "No recommendations. Start typing." : "No hay recomendaciones. Comienza a escribir.",
"Share note" : "Compartir nota",
"Upload files to %s" : "Cargar archivos a %s",
"Note" : "Nota",
@@ -248,39 +254,6 @@
"Uploading files" : "Subiendo archivos",
"Uploaded files:" : "Archivos cargados:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al subir archivos, aceptas los %1$stérminos de servicio%2$s.",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas mediante enlaces se mostrarán aquí",
- "Shares you deleted will show up here" : "Las comparticiones que eliminaste aparecerán aquí",
- "Shares you have received but not confirmed will show up here" : "Las comparticiones que has recibido pero no confirmaste aparecerán aquí",
- "Shares will show up here" : "Aquí aparecerán las comparticiones",
- "Restore" : "Restaurar",
- "Something happened. Unable to restore the share." : "Ha ocurrido algo. No se puede restaurar la compartición.",
- "Something happened. Unable to accept the share." : "Ha ocurrido algo. No se puede aceptar la compartición.",
- "Something happened. Unable to reject the share." : "Ha ocurrido algo. No se puede rechazar la compartición.",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Please specify a valid federated user ID" : "Por favor, especifica un ID de usuario federado válido",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permite a los usuarios compartir archivos dentro de Nextcloud. Si está habilitada, el administrador puede elegir qué grupos pueden compartir archivos. Los usuarios correspondientes pueden compartir archivos y carpetas con otros usuarios y grupos dentro de Nextcloud. Además, si el administrador habilita la función de enlace compartido, se puede utilizar un enlace externo para compartir archivos con otros usuarios fuera de Nextcloud. Los administradores también pueden exigir contraseñas, fechas de vencimiento y habilitar la compartición entre servidores a través de enlaces compartidos, así como la compartición desde dispositivos móviles.\n Desactivar esta función eliminará los archivos y carpetas compartidos en el servidor para todos los destinatarios de la compartición, así como en los clientes de sincronización y las aplicaciones móviles. Más información está disponible en la Documentación de Nextcloud.",
- "Accept user and group shares by default" : "Aceptar comparticiones de usuarios y grupos por defecto",
- "Read only" : "Sólo lectura",
- "File drop (upload only)" : "Permitir carga",
- "Upload" : "Cargar",
- "Bundled permissions" : "Permisos integrados",
- "Only works for users with access to this folder" : "Solo funciona para usuarios con acceso a esta carpeta",
- "Only works for users with access to this file" : "Solo funciona para usuarios con acceso a este archivo",
- "Circle" : "Círculo",
- "Update" : "Actualizar",
- "No other users with access found" : "No se encontraron otros usuarios con acceso",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Sorry, this link does not seem to work anymore." : "Lo siento, este enlace parece ya no funcionar.",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "el enlace caducó",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayor información, contacte a la persona que le envió este enlace."
+ "Name" : "Nombre"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_GT.js b/apps/files_sharing/l10n/es_GT.js
deleted file mode 100644
index 01b8c23159d..00000000000
--- a/apps/files_sharing/l10n/es_GT.js
+++ /dev/null
@@ -1,138 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_GT.json b/apps/files_sharing/l10n/es_GT.json
deleted file mode 100644
index 00480fcc844..00000000000
--- a/apps/files_sharing/l10n/es_GT.json
+++ /dev/null
@@ -1,136 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_HN.js b/apps/files_sharing/l10n/es_HN.js
deleted file mode 100644
index cac9c37587e..00000000000
--- a/apps/files_sharing/l10n/es_HN.js
+++ /dev/null
@@ -1,136 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_HN.json b/apps/files_sharing/l10n/es_HN.json
deleted file mode 100644
index 679b4735769..00000000000
--- a/apps/files_sharing/l10n/es_HN.json
+++ /dev/null
@@ -1,134 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_MX.js b/apps/files_sharing/l10n/es_MX.js
index bb99de0579c..a4fbebfd969 100644
--- a/apps/files_sharing/l10n/es_MX.js
+++ b/apps/files_sharing/l10n/es_MX.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Esperando...",
- "error" : "error",
- "finished" : "finalizado",
- "This will stop your current uploads." : "Se detendrán las cargas en curso",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "Terms of service" : "Términos del servicio",
- "Show list view" : "Mostrar vista de lista",
- "Show grid view" : "Mostrar vista de cuadrícula",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
"File shares" : "Archivos compartidos",
"Downloaded via public link" : "Descargado mediante una liga pública",
"Downloaded by {email}" : "Descargado por {email}",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "El archivo {file} compartido con {user} ha caducado",
"Share for file {file} expired" : "El archivo compartido {file} ha caducado",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Los archivos se <strong>cargaron</strong> a una carpeta compartida por correo o enlace público",
"A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
+ "Sharing" : "Compartiendo",
"A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
"Shared link" : "Enlace compartido",
"Wrong share ID, share does not exist" : "Identificador de recurso compartido incorrecto, el recurso no existe",
@@ -78,34 +65,43 @@ OC.L10N.register(
"Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
"Wrong path, file/folder does not exist" : "Ruta incorrecta, el archivo/carpeta no existe",
"Could not create share" : "No fue posible crear el elemento compartido",
- "Invalid permissions" : "Permisos inválidos",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
"Please specify a valid account to share with" : "Por favor, especifique una cuenta válida para compartir",
"Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
"Please specify a valid group" : "Por favor especifica un grupo válido",
"Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
+ "Please specify a valid email address" : "Por favor, especifique un correo electrónico válido",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Compartir %s enviando la contraseña por Nextcloud Talk falló porque Nextcloud Talk no está habilitado",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Compartir %1$s falló porque el servidor no permite compartir recursos del tipo %2$s",
"Please specify a valid federated account ID" : "Por favor, especifique un identificador de cuenta federada válido",
"Please specify a valid federated group ID" : "Por favor, especifique un identificador de grupo federado válido",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
+ "You cannot share to a Team if the app is not enabled" : "No puede compartir a un equipo si la aplicación no está habilitada",
+ "Please specify a valid team" : "Por favor, especifique un equipo válido",
"Sharing %s failed because the back end does not support room shares" : "Compartir %s falló porque el servidor no soporta salas compartidas",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Compartir %s falló porque el servidor no soporta recursos compartidos de ScienceMesh",
"Unknown share type" : "Tipo de elemento compartido desconocido",
"Not a directory" : "No es una carpeta",
"Could not lock node" : "No se pudo bloquear el nodo",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
+ "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
"Share must at least have READ or CREATE permissions" : "El recurso compartido debe tener al menos el permiso de LECTURA o CREACIÓN",
"Share must have READ permission if UPDATE or DELETE permission is set" : "El recurso compartido debe tener el permiso de LECTURA si el permiso de ACTUALIZAR o ELIMINAR está configurado",
+ "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
+ "Could not lock path" : "No fue posible bloquear la ruta",
+ "no sharing rights on this item" : "sin permisos para compartir este elemento",
+ "You are not allowed to edit incoming shares" : "No tiene permitido editar los recursos compartidos entrantes",
+ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Enviar la contraseña por Nextcloud Talk\" para compartir un archivo o carpeta falló porque Nextcloud Talk no está habilitado.",
+ "Invalid date. Format must be YYYY-MM-DD" : "Fecha inválida. El formato debe ser AAAA-MM-DD",
+ "No sharing rights on this item" : "Sin permisos para compartir este elemento",
+ "Invalid share attributes provided: \"%s\"" : "Se proporcionaron atributos inválidos del recurso compartido: \"%s\"",
+ "You are not allowed to send mail notifications" : "No tiene permitido enviar notificaciones por correo",
+ "No mail notification configured for this share type" : "No hay notificaciones por correo configuradas para este tipo de recurso compartido",
+ "Wrong password" : "Contraseña incorrecta",
+ "Error while sending mail notification" : "Error al enviar el correo de notificación",
+ "This share does not exist or is no longer available" : "El recurso compartido no existe o ya no está disponible",
"shared by %s" : "compartido por %s",
- "Download all files" : "Descargar todos los archivos",
- "Direct link" : "Liga directa",
+ "Download" : "Descargar",
"Add to your %s" : "Añadir a su %s",
+ "Direct link" : "Liga directa",
"Share API is disabled" : "El API para compartir está deshabilitado",
"File sharing" : "Compartir archivos",
"Share will expire tomorrow" : "El recurso compartido caducará mañana",
@@ -114,16 +110,72 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Ha recibido {share} para el grupo {group} como un recurso compartido por {user}",
"Accept" : "Aceptar",
"Decline" : "Rechazar",
- "Sharing" : "Compartiendo",
- "Accept shares from other accounts and groups by default" : "Aceptar recursos compartidos de otros usuarios y grupos por defecto",
+ "People" : "Personas",
+ "Filter accounts" : "Filtrar cuentas",
+ "The request will expire on {date} at midnight and will be password protected." : "La solicitud caducará el {date} a la medianoche y estará protegida por contraseña.",
+ "The request will expire on {date} at midnight." : "La solicitud caducará el {date} a la medianoche.",
+ "The request will be password protected." : "La solicitud estará protegida por contraseña.",
+ "When should the request expire?" : "¿Cuándo debería caducar la solicitud?",
+ "Set a submission expiration date" : "Establecer una fecha de caducidad para el envío",
+ "Expiration date" : "Fecha de expiración",
+ "Select a date" : "Seleccionar una fecha",
+ "Your administrator has enforced a {count} days expiration policy." : "Su administrador ha impuesto una política de caducidad de {count} días.",
+ "What password should be used for the request?" : "¿Qué contraseña debería usarse para la solicitud?",
+ "Set a password" : "Establecer una contraseña",
+ "Password" : "Contraseña",
+ "Enter a valid password" : "Ingrese una contraseña válida",
+ "Generate a new password" : "Generar una nueva contraseña",
+ "Your administrator has enforced a password protection." : "Su administrador ha impuesto la protección por contraseña.",
+ "Automatically copying failed, please copy the share link manually" : "La copia automática falló, por favor, copie el enlace compartido manualmente",
+ "Link copied" : "Vinculo copiado",
+ "Email already added" : "El correo electrónico ya está añadido",
+ "Invalid email address" : "Correo electrónico inválido",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Las siguiente dirección de correo electrónico es inválida: {emails}","Las siguientes direcciones de correo electrónico son inválidas: {emails}","Las siguientes direcciones de correo electrónico son inválidas: {emails}"],
+ "You can now share the link below to allow people to upload files to your directory." : "Ahora puede compartir el enlace de abajo para permitir a otros que carguen archivos a su directorio.",
+ "Share link" : "Compartir liga",
+ "Copy" : "Copiar",
+ "Send link via email" : "Enviar la liga por correo electrónico",
+ "Enter an email address or paste a list" : "Ingrese una dirección de correo electrónico o pegue una lista",
+ "Remove email" : "Eliminar correo electrónico",
+ "Select a destination" : "Seleccionar un destino",
+ "Select" : "Seleccionar",
+ "What are you requesting?" : "¿Qué está solicitando?",
+ "Request subject" : "Asunto de la solicitud",
+ "Birthday party photos, History assignment…" : "Fotos de fiestas de cumpleaños, tarea de historia...",
+ "Where should these files go?" : "¿Dónde deberían de ir estos archivos?",
+ "Upload destination" : "Destino de la carga",
+ "Revert to default" : "Revertir a los valores predeterminados",
+ "The uploaded files are visible only to you unless you choose to share them." : "Los archivos cargados son visibles únicamente para Ud., a menos que elija compartirlos.",
+ "Add a note" : "Añadir una nota",
+ "Note for recipient" : "Nota para el destinatario",
+ "Add a note to help people understand what you are requesting." : "Añada una nota para ayudar a que los demás entiendan su solicitud.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Puede añadir enlaces, fecha o cualquier información adicional para ayudar a que el destinatario entienda su solicitud.",
+ "Close" : "Cerrar",
+ "_Send email and close_::_Send {count} emails and close_" : ["Enviar el correo electrónico y cerrar","Enviar {count} correos electrónicos y cerrar","Enviar {count} correos electrónicos y cerrar"],
+ "Please select a folder, you cannot share the root directory." : "Por favor seleccione una carpeta, no puede compartir el directorio raíz.",
+ "File request created" : "Solicitud de archivo creada",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Solicitud de archivo creada y un correo electrónico enviado","Solicitud de archivo creada y {count} correos electrónicos enviados","Solicitud de archivo creada y {count} correos electrónicos enviados"],
+ "Error creating the share: {errorMessage}" : "Error al crear el recurso compartido: {errorMessage}",
+ "Error creating the share" : "Error al crear el recurso compartido",
+ "Error sending emails: {errorMessage}" : "Error al mandar los correos electrónicos: {errorMessage}",
+ "Error sending emails" : "Error al mandar los correos electrónicos",
+ "Create a file request" : "Crear una solicitud de archivo",
+ "Collect files from others even if they do not have an account." : "Recolectar archivo de otros incluso cuando no tengan una cuenta.",
+ "To ensure you can receive files, verify you have enough storage available." : "Para asegurar que pueda recibir archivos, compruebe que tenga suficiente espacio de almacenamiento disponible.",
+ "File request" : "Solicitud de archivo",
+ "Previous step" : "Paso anterior",
+ "Cancel" : "Cancelar",
+ "Cancel the file request creation" : "Cancelar la creación de solicitud de archivo",
+ "Close without sending emails" : "Cerrar sin enviar los correos electrónicos",
+ "Continue" : "Continuar",
"Error while toggling options" : "Error al alternar las opciones",
- "Set default folder for accepted shares" : "Establecer la carpeta predeterminada para los recursos compartidos aceptados",
- "Reset" : "Reiniciar",
- "Reset folder to system default" : "Restablecer carpeta a la predeterminada del sistema",
+ "Accept shares from other accounts and groups by default" : "Aceptar recursos compartidos de otros usuarios y grupos por defecto",
"Choose a default folder for accepted shares" : "Elegir la carpeta predeterminada para los recursos compartidos aceptados",
"Invalid path selected" : "Ruta seleccionada no válida.",
"Unknown error" : "Se presentó un error desconocido",
- "Open Sharing Details" : "Abrir detalles de compartir",
+ "Set default folder for accepted shares" : "Establecer la carpeta predeterminada para los recursos compartidos aceptados",
+ "Reset" : "Reiniciar",
+ "Reset folder to system default" : "Restablecer carpeta a la predeterminada del sistema",
"group" : "grupo",
"conversation" : "conversación",
"remote" : "remoto",
@@ -132,51 +184,44 @@ OC.L10N.register(
"Shared with the group {user} by {owner}" : "Compartido con el grupo {user} por {owner}",
"Shared with the conversation {user} by {owner}" : "Compartido con la conversación {user} por {owner}",
"Shared with {user} by {owner}" : "Compartido con {user} por {owner}",
+ "Open Sharing Details" : "Abrir detalles de compartir",
"Added by {initiator}" : "Añadido por {initiator}",
"Via “{folder}”" : "Vía \"{folder}\"",
"Unshare" : "Dejar de compartir",
- "Internal link" : "Enlace interno",
"Cannot copy, please copy the link manually" : "No se ha podido copiar, por favor, copia el enlace manualmente",
- "Copy internal link to clipboard" : "Copiar enlace interno al portapapeles",
- "Only works for people with access to this folder" : "Sólo funciona para personas con acceso a esta carpeta",
- "Only works for people with access to this file" : "Sólo funciona para personas con acceso a este archivo",
- "Link copied" : "Vinculo copiado",
- "Please enter the following required information before creating the share" : "Por favor, ingrese la siguiente información requerida antes de crear el recurso compartido",
- "Password protection (enforced)" : "Protección con contraseña (exigida)",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Expiration date (enforced)" : "Fecha de caducidad (impuesta)",
- "Enter a date" : "Ingrese una fecha",
- "Create share" : "Crear recurso compartido",
- "Cancel" : "Cancelar",
- "Customize link" : "Personalizar enlace",
- "Generate QR code" : "Generar código QR",
- "Add another link" : "Añadir otro enlace",
- "Create a new share link" : "Crear un nuevo enlace compartido",
+ "Copy internal link" : "Copiar enlace interno",
+ "Internal link" : "Enlace interno",
"{shareWith} by {initiator}" : "{shareWith} por {initiator}",
"Shared via link by {initiator}" : "Compartido vía enlace por {initiator}",
+ "File request ({label})" : "Solicitud de archivo ({label})",
"Mail share ({label})" : "Compartir correo ({label})",
"Share link ({label})" : "Compartir enlace ({label})",
+ "Mail share" : "Compartido por correo",
"Share link ({index})" : "Compartir enlace ({index})",
- "Share link" : "Compartir liga",
+ "Create public link" : "Crear enlace público",
"Actions for \"{title}\"" : "Acciones para \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Copiar enlace público de \"{title}\" al portapapeles",
"Error, please enter proper password and/or expiration date" : "Error, por favor ingrese una contraseña y/o fecha de caducidad adecuadas",
"Link share created" : "Enlace compartido creado",
"Error while creating the share" : "Error al crear el recurso compartido",
+ "Please enter the following required information before creating the share" : "Por favor, ingrese la siguiente información requerida antes de crear el recurso compartido",
+ "Password protection (enforced)" : "Protección con contraseña (exigida)",
+ "Password protection" : "Protección con contraseña",
+ "Enter a password" : "Ingresa una contraseña",
+ "Create share" : "Crear recurso compartido",
+ "Customize link" : "Personalizar enlace",
+ "Generate QR code" : "Generar código QR",
+ "Add another link" : "Añadir otro enlace",
+ "Create a new share link" : "Crear un nuevo enlace compartido",
"Quick share options, the current selected is \"{selectedOption}\"" : "Opciones rápidas de compartir, la seleccionada actualmente es \"{selectedOption}\"",
"View only" : "Sólo lectura",
"Can edit" : "Puede editar",
- "File drop" : "Soltar archivo",
"Custom permissions" : "Permisos personalizados",
- "Search for share recipients" : "Buscar destinatarios del recurso compartido",
- "No recommendations. Start typing." : "Sin recomendaciones. Empiece a escribir.",
"Resharing is not allowed" : "No está permitido recompartir",
"Name or email …" : "Nombre o correo electrónico …",
"Name, email, or Federated Cloud ID …" : "Nombre, correo electrónico o identificador de la nube federada ...",
"Searching …" : "Buscando …",
"No elements found." : "No se encontraron elementos",
- "Search globally" : "Búsqueda global",
+ "Search everywhere" : "Buscar en todas partes",
"Guest" : "Invitado",
"Group" : "Grupo",
"Email" : "Correo electrónico",
@@ -185,68 +230,59 @@ OC.L10N.register(
"Deck board" : "Tablero de Deck",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "en {server}",
+ "Note from" : "Nota de",
+ "Note:" : "Nota:",
+ "File drop" : "Soltar archivo",
+ "Terms of service" : "Términos del servicio",
+ "Share with email {email}" : "Compartir al correo electrónico {email}",
+ "Share with group" : "Compartir con el grupo",
+ "Share in conversation" : "Compartir en la conversación",
+ "Share with {user} on remote server {server}" : "Compartir con {user} en el servidor remoto {server}",
+ "Share with remote group" : "Compartir con un grupo remoto",
+ "Share with guest" : "Compartir con un invitado",
+ "Update share" : "Actualizar recurso compartido",
+ "Save share" : "Guardar recurso compartido",
+ "Read" : "Leer",
+ "Create" : "Crear",
+ "Edit" : "Editar",
+ "Share" : "Compartir",
+ "Delete" : "Borrar",
"Allow upload and editing" : "Permitir carga y edición",
"Allow editing" : "Permitir edición",
"Upload only" : "Sólo carga",
"Advanced settings" : "Configuraciones avanzadas",
"Share label" : "Etiqueta del recurso compartido",
"Set password" : "Establecer contraseña",
- "Password" : "Contraseña",
"Password expires {passwordExpirationTime}" : "La contraseña caduca el {passwordExpirationTime}",
"Password expired" : "Contraseña caduca",
"Video verification" : "Verificación de video",
+ "Expiration date (enforced)" : "Fecha de caducidad (impuesta)",
"Set expiration date" : "Establece la fecha de expiración",
- "Expiration date" : "Fecha de expiración",
"Hide download" : "Ocultar descarga",
- "Allow download" : "Permitir descarga",
"Note to recipient" : "Nota al destinatario",
"Enter a note for the share recipient" : "Ingrese una nota para el destinatario del recurso compartido",
- "Read" : "Leer",
- "Create" : "Crear",
- "Edit" : "Editar",
- "Share" : "Compartir",
"Delete share" : "Borrar recurso compartido",
- "Share with {userName}" : "Compartir con {userName}",
- "Share with group" : "Compartir con el grupo",
- "Share in conversation" : "Compartir en la conversación",
- "Share with remote group" : "Compartir con un grupo remoto",
- "Share with guest" : "Compartir con un invitado",
- "Update share" : "Actualizar recurso compartido",
- "Save share" : "Guardar recurso compartido",
"Others with access" : "Otros con acceso",
"No other accounts with access found" : "No se encontraron otros usuarios con acceso",
"Toggle list of others with access to this directory" : "Alternar lista de otros con acceso a este directorio",
"Toggle list of others with access to this file" : "Alternar lista de otros con acceso a este archivo",
"Unable to fetch inherited shares" : "No se pueden obtener los recursos compartidos heredados",
+ "Shares" : "Elementos compartidos",
"Unable to load the shares list" : "No se pudo cargar la lista de recursos compartidos",
"Expires {relativetime}" : "Caduca en {relativetime}",
"this share just expired." : "este recurso compartido acaba de caducar.",
"Shared with you by {owner}" : "Compartido contigo por {owner}",
+ "Link to a file" : "Enlazar a un archivo",
"_Accept share_::_Accept shares_" : ["Aceptar recurso compartido","Aceptar recursos compartidos","Aceptar recursos compartidos"],
"Open in Files" : "Abrir en Archivos",
"_Reject share_::_Reject shares_" : ["Rechazar recurso compartido","Rechazar recursos compartidos","Rechazar recursos compartidos"],
"_Restore share_::_Restore shares_" : ["Restaurar recurso compartido","Restaurar recursos compartidos","Restaurar recursos compartidos"],
"Shared" : "Compartido",
- "Shared multiple times with different people" : "Compartido múltiples veces con diferentes personas",
"Shared by {ownerDisplayName}" : "Compartido por {ownerDisplayName}",
- "Show sharing options" : "Mostrar opciones de compartir",
- "Link to a file" : "Enlazar a un archivo",
- "Error creating the share: {errorMessage}" : "Error al crear el recurso compartido: {errorMessage}",
- "Error creating the share" : "Error al crear el recurso compartido",
- "Error updating the share: {errorMessage}" : "Error al actualizar el recurso compartido: {errorMessage}",
- "Error updating the share" : "Error al actualizar el recurso compartido",
- "File \"{path}\" has been unshared" : "Se dejó de compartir el archivo \"{path}\"",
- "Folder \"{path}\" has been unshared" : "Se dejó de compartir la carpeta \"{path}\"",
- "Share {propertyName} saved" : "Se guardó la propiedad {propertyName} del recurso compartido",
- "Shared by" : "Compartido por",
- "Shared with" : "Compartido con",
- "Password created successfully" : "Contraseña creada exitosamente",
- "Error generating password from password policy" : "Error al generar la contraseña según la política de contraseñas",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "Shared with you and {circle} by {owner}" : "Compartido con Ud. y {circle} por {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Compartido con Ud. y la conversación {conversation} por {owner}",
- "Shared with you in a conversation by {owner}" : "Compartido con Ud. en una conversación por {owner}",
- "Shares" : "Elementos compartidos",
+ "Shared multiple times with different people" : "Compartido múltiples veces con diferentes personas",
+ "Shared with others" : "Compartido con otros",
+ "Create file request" : "Crear solicitud de archivo",
+ "No file" : "Sin archivo",
"Overview of shared files." : "Resumen de archivos compartidos.",
"No shares" : "No hay recursos compartidos",
"Files and folders you shared or have been shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que ha compartido o que se han compartido con Ud.",
@@ -254,7 +290,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Lista de archivos compartidos con Ud.",
"Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
"Files and folders others shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que otros han compartido con Ud.",
- "Shared with others" : "Compartido con otros",
"List of files that you shared with others." : "Lista de archivos que ha compartido con otros.",
"Nothing shared yet" : "Nada compartido aún",
"Files and folders you shared will show up here" : "Aquí aparecerán los archivos y carpetas que ha compartido",
@@ -262,6 +297,10 @@ OC.L10N.register(
"List of files that are shared by link." : "Lista de archivos compartidos mediante enlace.",
"No shared links" : "No hay ligas compartidas",
"Files and folders you shared by link will show up here" : "Aquí aparecerán los archivos y carpetas que ha compartido mediante enlace",
+ "File requests" : "Solicitudes de archivos",
+ "List of file requests." : "Lista de solicitudes de archivos.",
+ "No file requests" : "No hay solicitudes de archivos",
+ "File requests you have created will show up here" : "Las solicitudes de archivos que haya creado aparecerán aquí",
"Deleted shares" : "Recursos compartidos eliminados",
"List of shares you left." : "Lista de recursos compartidos que abandonó.",
"No deleted shares" : "No hay recursos compartidos eliminados",
@@ -270,49 +309,61 @@ OC.L10N.register(
"List of unapproved shares." : "Lista de recursos compartidos no aprobados",
"No pending shares" : "No hay recursos compartidos pendientes",
"Shares you have received but not approved will show up here" : "Aquí aparecerán los recursos compartidos que ha recibido pero que no ha aprobado",
+ "Error updating the share: {errorMessage}" : "Error al actualizar el recurso compartido: {errorMessage}",
+ "Error updating the share" : "Error al actualizar el recurso compartido",
+ "File \"{path}\" has been unshared" : "Se dejó de compartir el archivo \"{path}\"",
+ "Folder \"{path}\" has been unshared" : "Se dejó de compartir la carpeta \"{path}\"",
+ "Upload files to {folder}" : "Cargar archivos a {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} le compartió una carpeta.",
+ "Shared by" : "Compartido por",
+ "Shared with" : "Compartido con",
+ "Password created successfully" : "Contraseña creada exitosamente",
+ "Error generating password from password policy" : "Error al generar la contraseña según la política de contraseñas",
+ "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
+ "Shared with you and {circle} by {owner}" : "Compartido con Ud. y {circle} por {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Compartido con Ud. y la conversación {conversation} por {owner}",
+ "Shared with you in a conversation by {owner}" : "Compartido con Ud. en una conversación por {owner}",
+ "Share not found" : "No se encontró el elemento compartido",
+ "Back to %s" : "Volver a %s",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
+ "Waiting…" : "Esperando...",
+ "error" : "error",
+ "finished" : "finalizado",
+ "This will stop your current uploads." : "Se detendrán las cargas en curso",
+ "Move or copy" : "Mover o copiar",
+ "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
+ "Show list view" : "Mostrar vista de lista",
+ "Show grid view" : "Mostrar vista de cuadrícula",
+ "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
+ "Invalid server URL" : "URL del servidor inválido",
+ "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "No tiene permitido editar los enlaces compartidos que no le pertenecen",
+ "Download all files" : "Descargar todos los archivos",
+ "Link copied to clipboard" : "Enlace copiado al portapapeles",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Ya se ha añadido 1 dirección de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico"],
+ "_1 email address added_::_{count} email addresses added_" : ["Se añadió 1 dirección de correo electrónico","Se añadieron {count} direcciones de correo electrónico","Se añadieron {count} direcciones de correo electrónico"],
+ "Copy to clipboard" : "Copiar al portapapeles",
+ "Copy internal link to clipboard" : "Copiar enlace interno al portapapeles",
+ "Only works for people with access to this folder" : "Sólo funciona para personas con acceso a esta carpeta",
+ "Only works for people with access to this file" : "Sólo funciona para personas con acceso a este archivo",
+ "Copy public link of \"{title}\" to clipboard" : "Copiar enlace público de \"{title}\" al portapapeles",
+ "Search globally" : "Búsqueda global",
+ "Search for share recipients" : "Buscar destinatarios del recurso compartido",
+ "No recommendations. Start typing." : "Sin recomendaciones. Empiece a escribir.",
+ "To upload files, you need to provide your name first." : "Para cargar archivos, primero debe proveer su nombre.",
+ "Enter your name" : "Ingrese su nombre",
+ "Submit name" : "Enviar nombre",
+ "Share with {userName}" : "Compartir con {userName}",
+ "Show sharing options" : "Mostrar opciones de compartir",
"Share note" : "Compartir nota",
"Upload files to %s" : "Cargar archivos a %s",
+ "%s shared a folder with you." : "%s le compartió una carpeta.",
"Note" : "Nota",
"Select or drop files" : "Selecciona o suelta los archivos",
"Uploading files" : "Cargando archivos",
"Uploaded files:" : "Archivos cargados:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al cargar archivos, acepta los %1$stérminos de servicio%2$s.",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares you deleted will show up here" : "Los recursos compartidos que haya eliminado aparecerán aquí",
- "Shares you have received but not confirmed will show up here" : "Aquí aparecerán los recursos compartidos que haya recibido pero no confirmado",
- "Shares will show up here" : "Aquí aparecerán los recursos compartidos",
- "Restore" : "Restaurar",
- "Something happened. Unable to restore the share." : "Ocurrió algo. No se puede restaurar el recurso compartido.",
- "Something happened. Unable to accept the share." : "Ocurrió algo. No se puede aceptar el recurso compartido.",
- "Something happened. Unable to reject the share." : "Ocurrió algo. No se puede rechazar el recurso compartido.",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Please specify a valid federated user ID" : "Por favor, especifique un identificador de usuario federado válido",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación le permite a los usuarios compartir archivos dentro de Nextcloud. Si está habilitada, el administrador puede elegir que grupos pueden compartir archivos. Los usuarios correspondientes entonces pueden compartir archivos y carpetas con otros usuarios y grupos dentro de Nextcloid. Además, si el adminsitrador habilita la funcionalidad de compartir liga, una liga externa puede ser usada para compartir archivos con otros usuarios fuera de Nextcloud. Los administradores también pueden forzar contraseñas, fechas de expiración, y habilitar el compartir de servidor-a-servidor mediante ligas, asi como compartir desde dispositivos móviles. \nEl deshabilitar la funcionalidad, elimina en el servidor a los archivos y carpetas compartidos para todos los destinatarios del elemento compartido y también en los clientes de sincronización y dispositivos móviles. Hay mas información disponible en la Documentación de Nextcloud.",
- "Accept user and group shares by default" : "Aceptar los recursos compartidos de usuario y grupo por defecto",
- "Read only" : "Sólo lectura",
- "File drop (upload only)" : "Soltar archivo (solo carga)",
- "Upload" : "Cargar",
- "Bundled permissions" : "Permisos integrados",
- "Only works for users with access to this folder" : "Sólo funciona para usuarios con acceso a esta carpeta",
- "Only works for users with access to this file" : "Sólo funciona para usuarios con acceso a este archivo",
- "Circle" : "Círculo",
- "Update" : "Actualizar",
- "Share with " : "Compartir con",
- "No other users with access found" : "No se encontraron otros usuarios con acceso",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
"Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Sorry, this link does not seem to work anymore." : "Lo sentimos, este enlace no parece que ya no funciona.",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share with remote" : "Compartir con remoto",
- "Share with" : "Compartir con"
+ "Filename must not be empty." : "El nombre de archivo no puede estar vacío."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_MX.json b/apps/files_sharing/l10n/es_MX.json
index dec7ea4d56d..a7bd8fdb9a3 100644
--- a/apps/files_sharing/l10n/es_MX.json
+++ b/apps/files_sharing/l10n/es_MX.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Esperando...",
- "error" : "error",
- "finished" : "finalizado",
- "This will stop your current uploads." : "Se detendrán las cargas en curso",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "Terms of service" : "Términos del servicio",
- "Show list view" : "Mostrar vista de lista",
- "Show grid view" : "Mostrar vista de cuadrícula",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
"File shares" : "Archivos compartidos",
"Downloaded via public link" : "Descargado mediante una liga pública",
"Downloaded by {email}" : "Descargado por {email}",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "El archivo {file} compartido con {user} ha caducado",
"Share for file {file} expired" : "El archivo compartido {file} ha caducado",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Los archivos se <strong>cargaron</strong> a una carpeta compartida por correo o enlace público",
"A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
+ "Sharing" : "Compartiendo",
"A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
"Shared link" : "Enlace compartido",
"Wrong share ID, share does not exist" : "Identificador de recurso compartido incorrecto, el recurso no existe",
@@ -76,34 +63,43 @@
"Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
"Wrong path, file/folder does not exist" : "Ruta incorrecta, el archivo/carpeta no existe",
"Could not create share" : "No fue posible crear el elemento compartido",
- "Invalid permissions" : "Permisos inválidos",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
"Please specify a valid account to share with" : "Por favor, especifique una cuenta válida para compartir",
"Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
"Please specify a valid group" : "Por favor especifica un grupo válido",
"Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
+ "Please specify a valid email address" : "Por favor, especifique un correo electrónico válido",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Compartir %s enviando la contraseña por Nextcloud Talk falló porque Nextcloud Talk no está habilitado",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Compartir %1$s falló porque el servidor no permite compartir recursos del tipo %2$s",
"Please specify a valid federated account ID" : "Por favor, especifique un identificador de cuenta federada válido",
"Please specify a valid federated group ID" : "Por favor, especifique un identificador de grupo federado válido",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
+ "You cannot share to a Team if the app is not enabled" : "No puede compartir a un equipo si la aplicación no está habilitada",
+ "Please specify a valid team" : "Por favor, especifique un equipo válido",
"Sharing %s failed because the back end does not support room shares" : "Compartir %s falló porque el servidor no soporta salas compartidas",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Compartir %s falló porque el servidor no soporta recursos compartidos de ScienceMesh",
"Unknown share type" : "Tipo de elemento compartido desconocido",
"Not a directory" : "No es una carpeta",
"Could not lock node" : "No se pudo bloquear el nodo",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
+ "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
"Share must at least have READ or CREATE permissions" : "El recurso compartido debe tener al menos el permiso de LECTURA o CREACIÓN",
"Share must have READ permission if UPDATE or DELETE permission is set" : "El recurso compartido debe tener el permiso de LECTURA si el permiso de ACTUALIZAR o ELIMINAR está configurado",
+ "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
+ "Could not lock path" : "No fue posible bloquear la ruta",
+ "no sharing rights on this item" : "sin permisos para compartir este elemento",
+ "You are not allowed to edit incoming shares" : "No tiene permitido editar los recursos compartidos entrantes",
+ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Enviar la contraseña por Nextcloud Talk\" para compartir un archivo o carpeta falló porque Nextcloud Talk no está habilitado.",
+ "Invalid date. Format must be YYYY-MM-DD" : "Fecha inválida. El formato debe ser AAAA-MM-DD",
+ "No sharing rights on this item" : "Sin permisos para compartir este elemento",
+ "Invalid share attributes provided: \"%s\"" : "Se proporcionaron atributos inválidos del recurso compartido: \"%s\"",
+ "You are not allowed to send mail notifications" : "No tiene permitido enviar notificaciones por correo",
+ "No mail notification configured for this share type" : "No hay notificaciones por correo configuradas para este tipo de recurso compartido",
+ "Wrong password" : "Contraseña incorrecta",
+ "Error while sending mail notification" : "Error al enviar el correo de notificación",
+ "This share does not exist or is no longer available" : "El recurso compartido no existe o ya no está disponible",
"shared by %s" : "compartido por %s",
- "Download all files" : "Descargar todos los archivos",
- "Direct link" : "Liga directa",
+ "Download" : "Descargar",
"Add to your %s" : "Añadir a su %s",
+ "Direct link" : "Liga directa",
"Share API is disabled" : "El API para compartir está deshabilitado",
"File sharing" : "Compartir archivos",
"Share will expire tomorrow" : "El recurso compartido caducará mañana",
@@ -112,16 +108,72 @@
"You received {share} to group {group} as a share by {user}" : "Ha recibido {share} para el grupo {group} como un recurso compartido por {user}",
"Accept" : "Aceptar",
"Decline" : "Rechazar",
- "Sharing" : "Compartiendo",
- "Accept shares from other accounts and groups by default" : "Aceptar recursos compartidos de otros usuarios y grupos por defecto",
+ "People" : "Personas",
+ "Filter accounts" : "Filtrar cuentas",
+ "The request will expire on {date} at midnight and will be password protected." : "La solicitud caducará el {date} a la medianoche y estará protegida por contraseña.",
+ "The request will expire on {date} at midnight." : "La solicitud caducará el {date} a la medianoche.",
+ "The request will be password protected." : "La solicitud estará protegida por contraseña.",
+ "When should the request expire?" : "¿Cuándo debería caducar la solicitud?",
+ "Set a submission expiration date" : "Establecer una fecha de caducidad para el envío",
+ "Expiration date" : "Fecha de expiración",
+ "Select a date" : "Seleccionar una fecha",
+ "Your administrator has enforced a {count} days expiration policy." : "Su administrador ha impuesto una política de caducidad de {count} días.",
+ "What password should be used for the request?" : "¿Qué contraseña debería usarse para la solicitud?",
+ "Set a password" : "Establecer una contraseña",
+ "Password" : "Contraseña",
+ "Enter a valid password" : "Ingrese una contraseña válida",
+ "Generate a new password" : "Generar una nueva contraseña",
+ "Your administrator has enforced a password protection." : "Su administrador ha impuesto la protección por contraseña.",
+ "Automatically copying failed, please copy the share link manually" : "La copia automática falló, por favor, copie el enlace compartido manualmente",
+ "Link copied" : "Vinculo copiado",
+ "Email already added" : "El correo electrónico ya está añadido",
+ "Invalid email address" : "Correo electrónico inválido",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Las siguiente dirección de correo electrónico es inválida: {emails}","Las siguientes direcciones de correo electrónico son inválidas: {emails}","Las siguientes direcciones de correo electrónico son inválidas: {emails}"],
+ "You can now share the link below to allow people to upload files to your directory." : "Ahora puede compartir el enlace de abajo para permitir a otros que carguen archivos a su directorio.",
+ "Share link" : "Compartir liga",
+ "Copy" : "Copiar",
+ "Send link via email" : "Enviar la liga por correo electrónico",
+ "Enter an email address or paste a list" : "Ingrese una dirección de correo electrónico o pegue una lista",
+ "Remove email" : "Eliminar correo electrónico",
+ "Select a destination" : "Seleccionar un destino",
+ "Select" : "Seleccionar",
+ "What are you requesting?" : "¿Qué está solicitando?",
+ "Request subject" : "Asunto de la solicitud",
+ "Birthday party photos, History assignment…" : "Fotos de fiestas de cumpleaños, tarea de historia...",
+ "Where should these files go?" : "¿Dónde deberían de ir estos archivos?",
+ "Upload destination" : "Destino de la carga",
+ "Revert to default" : "Revertir a los valores predeterminados",
+ "The uploaded files are visible only to you unless you choose to share them." : "Los archivos cargados son visibles únicamente para Ud., a menos que elija compartirlos.",
+ "Add a note" : "Añadir una nota",
+ "Note for recipient" : "Nota para el destinatario",
+ "Add a note to help people understand what you are requesting." : "Añada una nota para ayudar a que los demás entiendan su solicitud.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Puede añadir enlaces, fecha o cualquier información adicional para ayudar a que el destinatario entienda su solicitud.",
+ "Close" : "Cerrar",
+ "_Send email and close_::_Send {count} emails and close_" : ["Enviar el correo electrónico y cerrar","Enviar {count} correos electrónicos y cerrar","Enviar {count} correos electrónicos y cerrar"],
+ "Please select a folder, you cannot share the root directory." : "Por favor seleccione una carpeta, no puede compartir el directorio raíz.",
+ "File request created" : "Solicitud de archivo creada",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Solicitud de archivo creada y un correo electrónico enviado","Solicitud de archivo creada y {count} correos electrónicos enviados","Solicitud de archivo creada y {count} correos electrónicos enviados"],
+ "Error creating the share: {errorMessage}" : "Error al crear el recurso compartido: {errorMessage}",
+ "Error creating the share" : "Error al crear el recurso compartido",
+ "Error sending emails: {errorMessage}" : "Error al mandar los correos electrónicos: {errorMessage}",
+ "Error sending emails" : "Error al mandar los correos electrónicos",
+ "Create a file request" : "Crear una solicitud de archivo",
+ "Collect files from others even if they do not have an account." : "Recolectar archivo de otros incluso cuando no tengan una cuenta.",
+ "To ensure you can receive files, verify you have enough storage available." : "Para asegurar que pueda recibir archivos, compruebe que tenga suficiente espacio de almacenamiento disponible.",
+ "File request" : "Solicitud de archivo",
+ "Previous step" : "Paso anterior",
+ "Cancel" : "Cancelar",
+ "Cancel the file request creation" : "Cancelar la creación de solicitud de archivo",
+ "Close without sending emails" : "Cerrar sin enviar los correos electrónicos",
+ "Continue" : "Continuar",
"Error while toggling options" : "Error al alternar las opciones",
- "Set default folder for accepted shares" : "Establecer la carpeta predeterminada para los recursos compartidos aceptados",
- "Reset" : "Reiniciar",
- "Reset folder to system default" : "Restablecer carpeta a la predeterminada del sistema",
+ "Accept shares from other accounts and groups by default" : "Aceptar recursos compartidos de otros usuarios y grupos por defecto",
"Choose a default folder for accepted shares" : "Elegir la carpeta predeterminada para los recursos compartidos aceptados",
"Invalid path selected" : "Ruta seleccionada no válida.",
"Unknown error" : "Se presentó un error desconocido",
- "Open Sharing Details" : "Abrir detalles de compartir",
+ "Set default folder for accepted shares" : "Establecer la carpeta predeterminada para los recursos compartidos aceptados",
+ "Reset" : "Reiniciar",
+ "Reset folder to system default" : "Restablecer carpeta a la predeterminada del sistema",
"group" : "grupo",
"conversation" : "conversación",
"remote" : "remoto",
@@ -130,51 +182,44 @@
"Shared with the group {user} by {owner}" : "Compartido con el grupo {user} por {owner}",
"Shared with the conversation {user} by {owner}" : "Compartido con la conversación {user} por {owner}",
"Shared with {user} by {owner}" : "Compartido con {user} por {owner}",
+ "Open Sharing Details" : "Abrir detalles de compartir",
"Added by {initiator}" : "Añadido por {initiator}",
"Via “{folder}”" : "Vía \"{folder}\"",
"Unshare" : "Dejar de compartir",
- "Internal link" : "Enlace interno",
"Cannot copy, please copy the link manually" : "No se ha podido copiar, por favor, copia el enlace manualmente",
- "Copy internal link to clipboard" : "Copiar enlace interno al portapapeles",
- "Only works for people with access to this folder" : "Sólo funciona para personas con acceso a esta carpeta",
- "Only works for people with access to this file" : "Sólo funciona para personas con acceso a este archivo",
- "Link copied" : "Vinculo copiado",
- "Please enter the following required information before creating the share" : "Por favor, ingrese la siguiente información requerida antes de crear el recurso compartido",
- "Password protection (enforced)" : "Protección con contraseña (exigida)",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Expiration date (enforced)" : "Fecha de caducidad (impuesta)",
- "Enter a date" : "Ingrese una fecha",
- "Create share" : "Crear recurso compartido",
- "Cancel" : "Cancelar",
- "Customize link" : "Personalizar enlace",
- "Generate QR code" : "Generar código QR",
- "Add another link" : "Añadir otro enlace",
- "Create a new share link" : "Crear un nuevo enlace compartido",
+ "Copy internal link" : "Copiar enlace interno",
+ "Internal link" : "Enlace interno",
"{shareWith} by {initiator}" : "{shareWith} por {initiator}",
"Shared via link by {initiator}" : "Compartido vía enlace por {initiator}",
+ "File request ({label})" : "Solicitud de archivo ({label})",
"Mail share ({label})" : "Compartir correo ({label})",
"Share link ({label})" : "Compartir enlace ({label})",
+ "Mail share" : "Compartido por correo",
"Share link ({index})" : "Compartir enlace ({index})",
- "Share link" : "Compartir liga",
+ "Create public link" : "Crear enlace público",
"Actions for \"{title}\"" : "Acciones para \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Copiar enlace público de \"{title}\" al portapapeles",
"Error, please enter proper password and/or expiration date" : "Error, por favor ingrese una contraseña y/o fecha de caducidad adecuadas",
"Link share created" : "Enlace compartido creado",
"Error while creating the share" : "Error al crear el recurso compartido",
+ "Please enter the following required information before creating the share" : "Por favor, ingrese la siguiente información requerida antes de crear el recurso compartido",
+ "Password protection (enforced)" : "Protección con contraseña (exigida)",
+ "Password protection" : "Protección con contraseña",
+ "Enter a password" : "Ingresa una contraseña",
+ "Create share" : "Crear recurso compartido",
+ "Customize link" : "Personalizar enlace",
+ "Generate QR code" : "Generar código QR",
+ "Add another link" : "Añadir otro enlace",
+ "Create a new share link" : "Crear un nuevo enlace compartido",
"Quick share options, the current selected is \"{selectedOption}\"" : "Opciones rápidas de compartir, la seleccionada actualmente es \"{selectedOption}\"",
"View only" : "Sólo lectura",
"Can edit" : "Puede editar",
- "File drop" : "Soltar archivo",
"Custom permissions" : "Permisos personalizados",
- "Search for share recipients" : "Buscar destinatarios del recurso compartido",
- "No recommendations. Start typing." : "Sin recomendaciones. Empiece a escribir.",
"Resharing is not allowed" : "No está permitido recompartir",
"Name or email …" : "Nombre o correo electrónico …",
"Name, email, or Federated Cloud ID …" : "Nombre, correo electrónico o identificador de la nube federada ...",
"Searching …" : "Buscando …",
"No elements found." : "No se encontraron elementos",
- "Search globally" : "Búsqueda global",
+ "Search everywhere" : "Buscar en todas partes",
"Guest" : "Invitado",
"Group" : "Grupo",
"Email" : "Correo electrónico",
@@ -183,68 +228,59 @@
"Deck board" : "Tablero de Deck",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "en {server}",
+ "Note from" : "Nota de",
+ "Note:" : "Nota:",
+ "File drop" : "Soltar archivo",
+ "Terms of service" : "Términos del servicio",
+ "Share with email {email}" : "Compartir al correo electrónico {email}",
+ "Share with group" : "Compartir con el grupo",
+ "Share in conversation" : "Compartir en la conversación",
+ "Share with {user} on remote server {server}" : "Compartir con {user} en el servidor remoto {server}",
+ "Share with remote group" : "Compartir con un grupo remoto",
+ "Share with guest" : "Compartir con un invitado",
+ "Update share" : "Actualizar recurso compartido",
+ "Save share" : "Guardar recurso compartido",
+ "Read" : "Leer",
+ "Create" : "Crear",
+ "Edit" : "Editar",
+ "Share" : "Compartir",
+ "Delete" : "Borrar",
"Allow upload and editing" : "Permitir carga y edición",
"Allow editing" : "Permitir edición",
"Upload only" : "Sólo carga",
"Advanced settings" : "Configuraciones avanzadas",
"Share label" : "Etiqueta del recurso compartido",
"Set password" : "Establecer contraseña",
- "Password" : "Contraseña",
"Password expires {passwordExpirationTime}" : "La contraseña caduca el {passwordExpirationTime}",
"Password expired" : "Contraseña caduca",
"Video verification" : "Verificación de video",
+ "Expiration date (enforced)" : "Fecha de caducidad (impuesta)",
"Set expiration date" : "Establece la fecha de expiración",
- "Expiration date" : "Fecha de expiración",
"Hide download" : "Ocultar descarga",
- "Allow download" : "Permitir descarga",
"Note to recipient" : "Nota al destinatario",
"Enter a note for the share recipient" : "Ingrese una nota para el destinatario del recurso compartido",
- "Read" : "Leer",
- "Create" : "Crear",
- "Edit" : "Editar",
- "Share" : "Compartir",
"Delete share" : "Borrar recurso compartido",
- "Share with {userName}" : "Compartir con {userName}",
- "Share with group" : "Compartir con el grupo",
- "Share in conversation" : "Compartir en la conversación",
- "Share with remote group" : "Compartir con un grupo remoto",
- "Share with guest" : "Compartir con un invitado",
- "Update share" : "Actualizar recurso compartido",
- "Save share" : "Guardar recurso compartido",
"Others with access" : "Otros con acceso",
"No other accounts with access found" : "No se encontraron otros usuarios con acceso",
"Toggle list of others with access to this directory" : "Alternar lista de otros con acceso a este directorio",
"Toggle list of others with access to this file" : "Alternar lista de otros con acceso a este archivo",
"Unable to fetch inherited shares" : "No se pueden obtener los recursos compartidos heredados",
+ "Shares" : "Elementos compartidos",
"Unable to load the shares list" : "No se pudo cargar la lista de recursos compartidos",
"Expires {relativetime}" : "Caduca en {relativetime}",
"this share just expired." : "este recurso compartido acaba de caducar.",
"Shared with you by {owner}" : "Compartido contigo por {owner}",
+ "Link to a file" : "Enlazar a un archivo",
"_Accept share_::_Accept shares_" : ["Aceptar recurso compartido","Aceptar recursos compartidos","Aceptar recursos compartidos"],
"Open in Files" : "Abrir en Archivos",
"_Reject share_::_Reject shares_" : ["Rechazar recurso compartido","Rechazar recursos compartidos","Rechazar recursos compartidos"],
"_Restore share_::_Restore shares_" : ["Restaurar recurso compartido","Restaurar recursos compartidos","Restaurar recursos compartidos"],
"Shared" : "Compartido",
- "Shared multiple times with different people" : "Compartido múltiples veces con diferentes personas",
"Shared by {ownerDisplayName}" : "Compartido por {ownerDisplayName}",
- "Show sharing options" : "Mostrar opciones de compartir",
- "Link to a file" : "Enlazar a un archivo",
- "Error creating the share: {errorMessage}" : "Error al crear el recurso compartido: {errorMessage}",
- "Error creating the share" : "Error al crear el recurso compartido",
- "Error updating the share: {errorMessage}" : "Error al actualizar el recurso compartido: {errorMessage}",
- "Error updating the share" : "Error al actualizar el recurso compartido",
- "File \"{path}\" has been unshared" : "Se dejó de compartir el archivo \"{path}\"",
- "Folder \"{path}\" has been unshared" : "Se dejó de compartir la carpeta \"{path}\"",
- "Share {propertyName} saved" : "Se guardó la propiedad {propertyName} del recurso compartido",
- "Shared by" : "Compartido por",
- "Shared with" : "Compartido con",
- "Password created successfully" : "Contraseña creada exitosamente",
- "Error generating password from password policy" : "Error al generar la contraseña según la política de contraseñas",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "Shared with you and {circle} by {owner}" : "Compartido con Ud. y {circle} por {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Compartido con Ud. y la conversación {conversation} por {owner}",
- "Shared with you in a conversation by {owner}" : "Compartido con Ud. en una conversación por {owner}",
- "Shares" : "Elementos compartidos",
+ "Shared multiple times with different people" : "Compartido múltiples veces con diferentes personas",
+ "Shared with others" : "Compartido con otros",
+ "Create file request" : "Crear solicitud de archivo",
+ "No file" : "Sin archivo",
"Overview of shared files." : "Resumen de archivos compartidos.",
"No shares" : "No hay recursos compartidos",
"Files and folders you shared or have been shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que ha compartido o que se han compartido con Ud.",
@@ -252,7 +288,6 @@
"List of files that are shared with you." : "Lista de archivos compartidos con Ud.",
"Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
"Files and folders others shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que otros han compartido con Ud.",
- "Shared with others" : "Compartido con otros",
"List of files that you shared with others." : "Lista de archivos que ha compartido con otros.",
"Nothing shared yet" : "Nada compartido aún",
"Files and folders you shared will show up here" : "Aquí aparecerán los archivos y carpetas que ha compartido",
@@ -260,6 +295,10 @@
"List of files that are shared by link." : "Lista de archivos compartidos mediante enlace.",
"No shared links" : "No hay ligas compartidas",
"Files and folders you shared by link will show up here" : "Aquí aparecerán los archivos y carpetas que ha compartido mediante enlace",
+ "File requests" : "Solicitudes de archivos",
+ "List of file requests." : "Lista de solicitudes de archivos.",
+ "No file requests" : "No hay solicitudes de archivos",
+ "File requests you have created will show up here" : "Las solicitudes de archivos que haya creado aparecerán aquí",
"Deleted shares" : "Recursos compartidos eliminados",
"List of shares you left." : "Lista de recursos compartidos que abandonó.",
"No deleted shares" : "No hay recursos compartidos eliminados",
@@ -268,49 +307,61 @@
"List of unapproved shares." : "Lista de recursos compartidos no aprobados",
"No pending shares" : "No hay recursos compartidos pendientes",
"Shares you have received but not approved will show up here" : "Aquí aparecerán los recursos compartidos que ha recibido pero que no ha aprobado",
+ "Error updating the share: {errorMessage}" : "Error al actualizar el recurso compartido: {errorMessage}",
+ "Error updating the share" : "Error al actualizar el recurso compartido",
+ "File \"{path}\" has been unshared" : "Se dejó de compartir el archivo \"{path}\"",
+ "Folder \"{path}\" has been unshared" : "Se dejó de compartir la carpeta \"{path}\"",
+ "Upload files to {folder}" : "Cargar archivos a {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} le compartió una carpeta.",
+ "Shared by" : "Compartido por",
+ "Shared with" : "Compartido con",
+ "Password created successfully" : "Contraseña creada exitosamente",
+ "Error generating password from password policy" : "Error al generar la contraseña según la política de contraseñas",
+ "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
+ "Shared with you and {circle} by {owner}" : "Compartido con Ud. y {circle} por {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Compartido con Ud. y la conversación {conversation} por {owner}",
+ "Shared with you in a conversation by {owner}" : "Compartido con Ud. en una conversación por {owner}",
+ "Share not found" : "No se encontró el elemento compartido",
+ "Back to %s" : "Volver a %s",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
+ "Waiting…" : "Esperando...",
+ "error" : "error",
+ "finished" : "finalizado",
+ "This will stop your current uploads." : "Se detendrán las cargas en curso",
+ "Move or copy" : "Mover o copiar",
+ "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
+ "Show list view" : "Mostrar vista de lista",
+ "Show grid view" : "Mostrar vista de cuadrícula",
+ "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
+ "Invalid server URL" : "URL del servidor inválido",
+ "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "No tiene permitido editar los enlaces compartidos que no le pertenecen",
+ "Download all files" : "Descargar todos los archivos",
+ "Link copied to clipboard" : "Enlace copiado al portapapeles",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Ya se ha añadido 1 dirección de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico"],
+ "_1 email address added_::_{count} email addresses added_" : ["Se añadió 1 dirección de correo electrónico","Se añadieron {count} direcciones de correo electrónico","Se añadieron {count} direcciones de correo electrónico"],
+ "Copy to clipboard" : "Copiar al portapapeles",
+ "Copy internal link to clipboard" : "Copiar enlace interno al portapapeles",
+ "Only works for people with access to this folder" : "Sólo funciona para personas con acceso a esta carpeta",
+ "Only works for people with access to this file" : "Sólo funciona para personas con acceso a este archivo",
+ "Copy public link of \"{title}\" to clipboard" : "Copiar enlace público de \"{title}\" al portapapeles",
+ "Search globally" : "Búsqueda global",
+ "Search for share recipients" : "Buscar destinatarios del recurso compartido",
+ "No recommendations. Start typing." : "Sin recomendaciones. Empiece a escribir.",
+ "To upload files, you need to provide your name first." : "Para cargar archivos, primero debe proveer su nombre.",
+ "Enter your name" : "Ingrese su nombre",
+ "Submit name" : "Enviar nombre",
+ "Share with {userName}" : "Compartir con {userName}",
+ "Show sharing options" : "Mostrar opciones de compartir",
"Share note" : "Compartir nota",
"Upload files to %s" : "Cargar archivos a %s",
+ "%s shared a folder with you." : "%s le compartió una carpeta.",
"Note" : "Nota",
"Select or drop files" : "Selecciona o suelta los archivos",
"Uploading files" : "Cargando archivos",
"Uploaded files:" : "Archivos cargados:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al cargar archivos, acepta los %1$stérminos de servicio%2$s.",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares you deleted will show up here" : "Los recursos compartidos que haya eliminado aparecerán aquí",
- "Shares you have received but not confirmed will show up here" : "Aquí aparecerán los recursos compartidos que haya recibido pero no confirmado",
- "Shares will show up here" : "Aquí aparecerán los recursos compartidos",
- "Restore" : "Restaurar",
- "Something happened. Unable to restore the share." : "Ocurrió algo. No se puede restaurar el recurso compartido.",
- "Something happened. Unable to accept the share." : "Ocurrió algo. No se puede aceptar el recurso compartido.",
- "Something happened. Unable to reject the share." : "Ocurrió algo. No se puede rechazar el recurso compartido.",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Please specify a valid federated user ID" : "Por favor, especifique un identificador de usuario federado válido",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación le permite a los usuarios compartir archivos dentro de Nextcloud. Si está habilitada, el administrador puede elegir que grupos pueden compartir archivos. Los usuarios correspondientes entonces pueden compartir archivos y carpetas con otros usuarios y grupos dentro de Nextcloid. Además, si el adminsitrador habilita la funcionalidad de compartir liga, una liga externa puede ser usada para compartir archivos con otros usuarios fuera de Nextcloud. Los administradores también pueden forzar contraseñas, fechas de expiración, y habilitar el compartir de servidor-a-servidor mediante ligas, asi como compartir desde dispositivos móviles. \nEl deshabilitar la funcionalidad, elimina en el servidor a los archivos y carpetas compartidos para todos los destinatarios del elemento compartido y también en los clientes de sincronización y dispositivos móviles. Hay mas información disponible en la Documentación de Nextcloud.",
- "Accept user and group shares by default" : "Aceptar los recursos compartidos de usuario y grupo por defecto",
- "Read only" : "Sólo lectura",
- "File drop (upload only)" : "Soltar archivo (solo carga)",
- "Upload" : "Cargar",
- "Bundled permissions" : "Permisos integrados",
- "Only works for users with access to this folder" : "Sólo funciona para usuarios con acceso a esta carpeta",
- "Only works for users with access to this file" : "Sólo funciona para usuarios con acceso a este archivo",
- "Circle" : "Círculo",
- "Update" : "Actualizar",
- "Share with " : "Compartir con",
- "No other users with access found" : "No se encontraron otros usuarios con acceso",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
"Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Sorry, this link does not seem to work anymore." : "Lo sentimos, este enlace no parece que ya no funciona.",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share with remote" : "Compartir con remoto",
- "Share with" : "Compartir con"
+ "Filename must not be empty." : "El nombre de archivo no puede estar vacío."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_NI.js b/apps/files_sharing/l10n/es_NI.js
deleted file mode 100644
index a59be44409b..00000000000
--- a/apps/files_sharing/l10n/es_NI.js
+++ /dev/null
@@ -1,135 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_NI.json b/apps/files_sharing/l10n/es_NI.json
deleted file mode 100644
index 560501d858d..00000000000
--- a/apps/files_sharing/l10n/es_NI.json
+++ /dev/null
@@ -1,133 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_PA.js b/apps/files_sharing/l10n/es_PA.js
deleted file mode 100644
index a59be44409b..00000000000
--- a/apps/files_sharing/l10n/es_PA.js
+++ /dev/null
@@ -1,135 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_PA.json b/apps/files_sharing/l10n/es_PA.json
deleted file mode 100644
index 560501d858d..00000000000
--- a/apps/files_sharing/l10n/es_PA.json
+++ /dev/null
@@ -1,133 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_PE.js b/apps/files_sharing/l10n/es_PE.js
deleted file mode 100644
index c4c0f42d818..00000000000
--- a/apps/files_sharing/l10n/es_PE.js
+++ /dev/null
@@ -1,138 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "This will stop your current uploads." : "Se detendrán las cargas en curso",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "Show list view" : "Mostrar vista de lista",
- "Show grid view" : "Mostrar lista en grilla",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el archivo/carpeta no existe",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_PE.json b/apps/files_sharing/l10n/es_PE.json
deleted file mode 100644
index 4682d999b1a..00000000000
--- a/apps/files_sharing/l10n/es_PE.json
+++ /dev/null
@@ -1,136 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "This will stop your current uploads." : "Se detendrán las cargas en curso",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "Show list view" : "Mostrar vista de lista",
- "Show grid view" : "Mostrar lista en grilla",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el archivo/carpeta no existe",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_PR.js b/apps/files_sharing/l10n/es_PR.js
deleted file mode 100644
index a59be44409b..00000000000
--- a/apps/files_sharing/l10n/es_PR.js
+++ /dev/null
@@ -1,135 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_PR.json b/apps/files_sharing/l10n/es_PR.json
deleted file mode 100644
index 560501d858d..00000000000
--- a/apps/files_sharing/l10n/es_PR.json
+++ /dev/null
@@ -1,133 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_PY.js b/apps/files_sharing/l10n/es_PY.js
deleted file mode 100644
index f6c8fb305b2..00000000000
--- a/apps/files_sharing/l10n/es_PY.js
+++ /dev/null
@@ -1,136 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "This will stop your current uploads." : "Esto detendrá tus cargas actuales.",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_PY.json b/apps/files_sharing/l10n/es_PY.json
deleted file mode 100644
index 5888ea1de63..00000000000
--- a/apps/files_sharing/l10n/es_PY.json
+++ /dev/null
@@ -1,134 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "This will stop your current uploads." : "Esto detendrá tus cargas actuales.",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_SV.js b/apps/files_sharing/l10n/es_SV.js
deleted file mode 100644
index 01b8c23159d..00000000000
--- a/apps/files_sharing/l10n/es_SV.js
+++ /dev/null
@@ -1,138 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_SV.json b/apps/files_sharing/l10n/es_SV.json
deleted file mode 100644
index 00480fcc844..00000000000
--- a/apps/files_sharing/l10n/es_SV.json
+++ /dev/null
@@ -1,136 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_UY.js b/apps/files_sharing/l10n/es_UY.js
deleted file mode 100644
index 604651eddaa..00000000000
--- a/apps/files_sharing/l10n/es_UY.js
+++ /dev/null
@@ -1,138 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow creating" : "Permitir creació",
- "Allow deleting" : "Permitir eliminació",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Add another link" : "Añadir otro enlace",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_UY.json b/apps/files_sharing/l10n/es_UY.json
deleted file mode 100644
index 32010d2045e..00000000000
--- a/apps/files_sharing/l10n/es_UY.json
+++ /dev/null
@@ -1,136 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow creating" : "Permitir creació",
- "Allow deleting" : "Permitir eliminació",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Add another link" : "Añadir otro enlace",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/et_EE.js b/apps/files_sharing/l10n/et_EE.js
index 5ac4a4c4558..82f61954554 100644
--- a/apps/files_sharing/l10n/et_EE.js
+++ b/apps/files_sharing/l10n/et_EE.js
@@ -1,32 +1,21 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Ootan...",
- "error" : "viga",
- "finished" : "lõpetatud",
- "This will stop your current uploads." : "See peatab praegused üleslaadimised.",
- "Move or copy" : "Liiguta või kopeeri",
- "Download" : "Lae alla",
- "Delete" : "Kustuta",
- "You can upload into this folder" : "Sa saad sellesse kausta faile üles laadida",
- "Terms of service" : "Kasutustingimused",
- "Show list view" : "Näita loendivaadet",
- "No compatible server found at {remote}" : "Aadressil {remote} ei leitud ühilduvat serverit",
- "Invalid server URL" : "Vigane serveri URL",
- "Failed to add the public link to your Nextcloud" : "Avaliku lingi lisamine sinu Nextcloudi ebaõnnestus",
"File shares" : "Jagatud failid",
- "Downloaded via public link" : "Alla laetud avalikult lingilt",
- "Downloaded by {email}" : "Alla laetud {email} poolt",
- "{file} downloaded via public link" : "{file} laeti alla avaliku lingi kaudu",
+ "Downloaded via public link" : "Alla laaditud avaliku lingi abil",
+ "Downloaded by {email}" : "Alla laaditud {email} poolt",
+ "{file} downloaded via public link" : "{file} laaditi alla avaliku lingi abil",
"{email} downloaded {file}" : "{email} laadis {file} alla",
"Shared with group {group}" : "Jagatud grupiga {group}",
"Removed share for group {group}" : "Eemaldas jagamise grupiga {group}",
"{actor} shared with group {group}" : "{actor} jagas grupiga {group}",
"{actor} removed share for group {group}" : "{actor} eemaldas jagamise grupiga {group}",
+ "Share for group {group} expired" : "Jagamine „{group}“ grupile aegus",
"You shared {file} with group {group}" : "Sa jagasid faili {file} grupiga {group}",
"You removed group {group} from {file}" : "Sa eemaldasid grupi {group} faili {file} jagamisest",
"{actor} shared {file} with group {group}" : "{actor} jagas faili {file} grupiga {group}",
"{actor} removed group {group} from {file}" : "{actor} eemaldas grupi {group} faili {file} jagamisest",
+ "Share for file {file} with group {group} expired" : "Grupile „{group}“ mõeldud jagatud fail „{file}“ aegus",
"Shared as public link" : "Jaga avaliku lingina",
"Removed public link" : "Avalik link on eemaldatud",
"Public link expired" : "Avalik link aegus",
@@ -53,124 +42,400 @@ OC.L10N.register(
"{actor} removed share for {user}" : "{actor} eemaldas jagamise kasutajaga {user}",
"Shared by {actor}" : "Jagatud kasutajalt {actor}",
"{actor} removed share" : "{actor} eemaldas jagamise",
+ "Share for {user} expired" : "Kasutajale „{user}“ mõeldud jaosmeedia aegus",
"Share expired" : "Jagamine aegus",
"You shared {file} with {user}" : "Sa jagasid {file} kasutajaga {user}",
"You removed {user} from {file}" : "Sa eemaldasid faili {file} jagamise kasutajaga {user} ",
+ "You removed yourself from {file}" : "Sa eemaldasid end „{file}“ failist",
+ "{actor} removed themselves from {file}" : "„{actor}“ eemaldas end „{file}“ failist",
"{actor} shared {file} with {user}" : "{actor} jagas {file} kasutajaga {user}",
"{actor} removed {user} from {file}" : "{actor} eemaldas {user} jagamise faililt {file}",
"{actor} shared {file} with you" : "{actor} jagas sinuga {file}",
"{actor} removed you from the share named {file}" : "{actor} lõpetas sinuga {file} jagamise",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Fail või kaust mis on jagatud e-posti või avaliku lingiga <strong>laeti alla</strong>",
+ "Share for file {file} with {user} expired" : "Kasutajale „{user}“ mõeldud jagatud fail „{file}“ aegus",
+ "Share for file {file} expired" : "„{file}“ faili jagamine aegus",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Fail või kaust mis on jagatud e-posti või avaliku lingiga <strong>laaditi alla</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Failid on <strong>laaditud üles</strong> kausta, mida on jagatud e-posti või avaliku lingiga",
"A file or folder was shared from <strong>another server</strong>" : "Fail või kaust jagati <strong>teisest serverist</strong>",
- "Files" : "Failid",
- "A file or folder has been <strong>shared</strong>" : "Fail või kataloog on <strong>jagatud</strong>",
+ "Sharing" : "Jagamine",
+ "A file or folder has been <strong>shared</strong>" : "Fail või kaust on <strong>jagatud</strong>",
"Shared link" : "Jagatud link",
+ "Wrong share ID, share does not exist" : "Jaosmedia vigane tunnus - sellist pole olemas",
"Could not delete share" : "Ei saanud jagamist eemaldada",
"Please specify a file or folder path" : "Palun määra faili või kausta rada",
+ "Wrong path, file/folder does not exist" : "Vale asukoht faili või kausta pole olemas",
"Could not create share" : "Ei saanud jagamist luua",
- "Invalid date, date format must be YYYY-MM-DD" : "Vigane kuupäev, formaat peab olema YYYY-MM-DD",
+ "Please specify a valid account to share with" : "Palun määra korrektne kasutajakonto, kellega soovid jagada",
"Group sharing is disabled by the administrator" : "Grupiga jagamine on administraatori poolt keelatud",
"Please specify a valid group" : "Palun määra kehtiv grupp",
"Public link sharing is disabled by the administrator" : "Avaliku lingiga jagamine on administraatori poolt keelatud",
- "Public upload disabled by the administrator" : "Avalik üleslaadimine on administraatori poolt keelatud",
- "Public upload is only possible for publicly shared folders" : "Avalik üleslaadminie on võimalik ainult avalikult jagatud kaustades",
- "You cannot share to a Circle if the app is not enabled" : "Sa ei saa jagada Ringi kui see rakendus pole lubatud",
- "Please specify a valid circle" : "Palun määra kehtiv ring",
+ "Please specify a valid email address" : "Palun määra kehtiv e-posti aadress",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Kuna Nextcloud Talk pole serverisse paigaldatud, siis ei saanud selle teenuse abil ka „%s“ jaosmeedia salasõna jagada",
+ "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "„%1$s“ jagamine ei õnnestunud, sest server ei luba „%2$s“ tüüpi jagamisi",
+ "Please specify a valid federated account ID" : "Palun määra korrektne kasutaja liitpilves, kellega soovid jagada",
+ "Please specify a valid federated group ID" : "Palun määra korrektne grupp liitpilves, kellega soovid jagada",
+ "You cannot share to a Team if the app is not enabled" : "Sa ei saa jagada tiimiga, kui see rakendus pole lubatud",
+ "Please specify a valid team" : "Palun määratle korrektne tiim",
+ "Sharing %s failed because the back end does not support room shares" : "„%s“ jagamine ei õnnestunud, sest taustateenus ei toeta jututubadesse jagamist",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "„%s“ jagamine ei õnnestunud, sest taustateenus ei toeta ScienceMeshi meedia jagamist",
"Unknown share type" : "Tundmatu jagamise tüüp",
"Not a directory" : "Ei ole kaust",
- "Could not lock path" : "Ei saanud rada lukustada",
+ "Could not lock node" : "Sõlme lukustamine ei õnnestunud",
+ "Public upload is only possible for publicly shared folders" : "Avalik üleslaadminie on võimalik ainult avalikult jagatud kaustades",
+ "Share must at least have READ or CREATE permissions" : "jaosmeedial peavad olema vähemalt logemis- ja loomisõigused",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "Kui jaosmeedial on muutmis ja kustutamisõigus, siis peab olema ka lugemisõigus",
+ "Public upload disabled by the administrator" : "Avalik üleslaadimine on administraatori poolt keelatud",
+ "Could not lock path" : "Asukoha lukustamine ei õnnestunud",
+ "no sharing rights on this item" : "selle objekti kontekstis pole jagamisõigusi",
+ "You are not allowed to edit incoming shares" : "Sul pole lubatud vastuvõetud jaosmeediat muuta",
"Wrong or no update parameter given" : "Antud vale või aegunud parameeter",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Kuna Nextcloud Talk pole serverisse paigaldatud, siis ei saanud selle teenuse abil ka jaosmeedia salasõna jagada",
+ "Custom share link tokens have been disabled by the administrator" : "Jaosmeediale oma tunnuslubade loomine pole peakasutaja poolt lubatud",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tunnuslubades peab olema vähemalt 1 tähemärk ning võib olla vaid tähti, numbreid ja sisekriipse",
+ "Invalid date. Format must be YYYY-MM-DD" : "Vigane kuupäev, vorming peab olema YYYY-MM-DD",
+ "No sharing rights on this item" : "Selle objekti kontekstis pole jagamisõigusi",
+ "Invalid share attributes provided: \"%s\"" : "Vigased jagamisatribuudid: „%s“",
+ "You are not allowed to send mail notifications" : "Sul pole lubatud e-postiga teavitusi saata",
+ "No mail notification configured for this share type" : "Selle jagamistüübi kohta pole e-posti teel saadetavat teavitust lisatud",
+ "Wrong password" : "Vale salasõna",
+ "Error while sending mail notification" : "Viga e-postiga teavituse saatmisel",
+ "Failed to generate a unique token" : "Ei õnnestunud luua unikaalset tunnusluba",
+ "This share does not exist or is no longer available" : "See jaosmeedia pole enam olemas või saadaval",
"shared by %s" : "jagas %s",
- "Download all files" : "Lae kõik failid alla",
+ "Download" : "Laadi alla",
+ "Add to your %s" : "Lisa oma teenusesse: %s",
"Direct link" : "Otsene link",
"Share API is disabled" : "Jagamise API on keelatud",
"File sharing" : "Faide jagamine",
"Share will expire tomorrow" : "Jagamine aegub homme",
+ "Your share of {node} will expire tomorrow" : "Sinu „{node}“ jaosmeedia aegub homme",
+ "You received {share} as a share by {user}" : "Kasutaja „{user}“ on saatnud sulle „{share}“ jaosmeedia",
+ "You received {share} to group {group} as a share by {user}" : "Kasutaja „{user}“ on saatnud „{group}“ grupile „{share}“ jaosmeedia",
"Accept" : "Nõustu",
"Decline" : "Keeldu",
- "Sharing" : "Jagamine",
- "Reset" : "Lähtesta",
+ "Remember to upload the files to %s" : "Ära unusta laadida faile kausta %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Me lahkesti tuletame sulle meelde, et sa pole veel ühtegi faili lisanud jagatud kausta.",
+ "Open \"%s\"" : "Ava „%s“",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "See rakendus võimaldab kasutajatel jagada Nextcloudis faile. Kui see on lubatud, saab peakasutaja valida, millised grupid võivad faile jagada. Seejärel saavad asjaomased inimesed jagada faile ja kaustu teiste kontode ja gruppidega Nextcloudis. Lisaks sellele, kui administraator lubab lingiga jagamise, saab failide jagamiseks teiste inimestega väljaspool Nextcloudi kasutada välist linki. Peakasutajad saavad ka muuta nõutavaks salasõnade ja aegumistähtaegade kasutamise ning lubada serverist serverisse jagamist jagamislinkide kaudu, samuti jagamist nutiseadmetest.\nSelle rakenduse väljalülitamine eemaldab jagatud failid ja kaustad serveris kõigi jagamise saajate jaoks ning sama ka sünkroonimisklientides ja nutirakendustes. Lisateavet leiad Nextcloudi dokumentatsioonist.",
+ "People" : "Inimesed",
+ "Filter accounts" : "Filtreeri kasutajakontosid",
+ "The request will expire on {date} at midnight and will be password protected." : "Päring aegub {date} keskööl ning on kaitstud salasõnaga.",
+ "The request will expire on {date} at midnight." : "Päring aegub {date} keskööl.",
+ "The request will be password protected." : "Päring on kaitstud salasõnaga.",
+ "When should the request expire?" : "Millal peaks see päring aeguma?",
+ "Set a submission expiration date" : "Määra aegumise kuupäev",
+ "Expiration date" : "Aegumise kuupäev",
+ "Select a date" : "Vali kuupäev",
+ "Your administrator has enforced a {count} days expiration policy." : "Sinu serveri peakasutaja on kehtestanud {count}-päevase aegumisreegli.",
+ "What password should be used for the request?" : "Mis salasõna peaks selle päringu puhul kasutama?",
+ "Set a password" : "Lisa salasõna",
+ "Password" : "Salasõna",
+ "Enter a valid password" : "Sisesta korrektne salasõna",
+ "Generate a new password" : "Loo uus salasõna",
+ "Your administrator has enforced a password protection." : "Sinu serveri peakasutaja on kehtestanud salasõna kasutamise reegli.",
+ "Automatically copying failed, please copy the share link manually" : "Automaatne kopeerimine ei toimi, palun kopeeri jagamislink käsitsi",
+ "Link copied" : "Link kopeeritud",
+ "Email already added" : "E-posti aadress on juba lisatud",
+ "Invalid email address" : "Vigane e-posti aadress",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Järgnev e-posti aadress pole korrektne: {emails}","Järgnevad e-posti aadressid pole korrektsed: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} e-posti aadress on juba lisatud","{count} e-posti aadressi on juba lisatud"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} e-posti aadress on lisatud","{count} e-posti aadressi on lisatud"],
+ "You can now share the link below to allow people to upload files to your directory." : "Nüüd saad teistega jagada alltoodud linki ning neil on võimalik faile sinu kausta üles laadida.",
+ "Share link" : "Jaga link",
+ "Copy" : "Kopeeri",
+ "Send link via email" : "Saada link e-kirjaga",
+ "Enter an email address or paste a list" : "Sisesta e-posti aadress või lisa loend",
+ "Remove email" : "Eemalda e-posti aadress",
+ "Select a destination" : "Vali sihtkaust",
+ "Select" : "Vali",
+ "What are you requesting?" : "Missugust faili soovid saada?",
+ "Request subject" : "Päringu teema",
+ "Birthday party photos, History assignment…" : "Sünnipäevapeo fotod, uurimistöö…",
+ "Where should these files go?" : "Kuhu peaksid need failid sattuma?",
+ "Upload destination" : "Üleslaadimise sihtkaust",
+ "Revert to default" : "Kasuta vaikimisi kausta",
+ "The uploaded files are visible only to you unless you choose to share them." : "Kui sa just neid edasi ei jaga, siis on üleslaaditud failid nähtavad vaid sulle.",
+ "Add a note" : "Lisa märge",
+ "Note for recipient" : "Märge saajale",
+ "Add a note to help people understand what you are requesting." : "Lisa teise osapoole jaoks märge, mis aitab tal mõista, missugust faili sa temalt soovid.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Lisa teise osapoole jaoks linke, kuupäevi või muud teavet, mis aitab tal mõista, missugust faili sa temalt soovid.",
+ "Close" : "Sulge",
+ "_Send email and close_::_Send {count} emails and close_" : ["Saada e-kiri ja sulge","Saada {count} e-kirja ja sulge"],
+ "Please select a folder, you cannot share the root directory." : "Palun vali kaust ülaltpool - sa ei saa jagada juurkausta.",
+ "File request created" : "Failipäring on loodud",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Failipäring on loodud ja e-kiri on saadetud","Failipäring on loodud ja {count} e-kirja on saadetud"],
+ "Error creating the share: {errorMessage}" : "Viga jaosmeedia loomisel: {errorMessage}",
+ "Error creating the share" : "Viga jaosmeedia loomisel",
+ "Error sending emails: {errorMessage}" : "Viga e-kirjade saatmisel: {errorMessage}",
+ "Error sending emails" : "Viga e-kirjade saatmisel",
+ "Create a file request" : "Koosta failipäring",
+ "Collect files from others even if they do not have an account." : "Kogu faile teistelt ka siis, kui neil pole selles teenuses kasutajakontot.",
+ "To ensure you can receive files, verify you have enough storage available." : "Selleks et faile vastu võtta, palun kontrolli, et sinu seadmes on piisavalt andmeruumi saadaval.",
+ "File request" : "Failipäring",
+ "Previous step" : "Eelmine samm",
+ "Cancel" : "Loobu",
+ "Cancel the file request creation" : "Katkesta failipäringu koostamine",
+ "Close without sending emails" : "Sulge ilma e-kirju saatmata",
+ "Continue" : "Jätka",
+ "Error while toggling options" : "Viga valikute sisse/välja lülitamisel",
+ "Accept shares from other accounts and groups by default" : "Aktsepteeri vaikimisi muude kasutajakontode ja rühmade jagamisi automaatselt",
+ "Choose a default folder for accepted shares" : "Vali vaikimisi kaust jaosmeedia vastuvõtmiseks",
+ "Invalid path selected" : "Vigane asukoht on valitud",
"Unknown error" : "Tundmatu viga",
+ "Set default folder for accepted shares" : "Määra vastuvõetava jaosmeedia jaoks vaikimisi kaust",
+ "Reset" : "Lähtesta",
+ "Reset folder to system default" : "Kasuta süsteemi vaikimisi kausta",
+ "Share expiration: {date}" : "Jagamise aegumine: {date}",
+ "Share Expiration" : "Jagamise aegumine",
"group" : "grupp",
"conversation" : "vestlus",
"remote" : "kaug",
"remote group" : "Kauggrupp",
"guest" : "külaline",
+ "by {initiator}" : "kasutajalt {initiator}",
+ "Shared with the group {user} by {owner}" : "„{owner}“ jagas seda sinuga ja „{user}“ grupiga",
+ "Shared with the conversation {user} by {owner}" : "„{owner}“ jagas seda vestluses „{user}“ grupiga või kasutajaga",
+ "Shared with {user} by {owner}" : "„{owner}“ jagas seda „{user}“ kasutajaga",
+ "Open Sharing Details" : "Ava jaosmeedia üksikasjad",
+ "Added by {initiator}" : "Selle lisas {initiator}",
+ "Via “{folder}”" : "„{folder}“ kausta kaudu",
"Unshare" : "Lõpeta jagamine",
- "Internal link" : "Sisemine link",
"Cannot copy, please copy the link manually" : "Ei saa kopeerida, palun kopeeri link käsitsi",
- "Link copied" : "Link kopeeritud",
+ "Copy internal link" : "Kopeeri sisemine link",
+ "Internal link" : "Sisemine link",
+ "{shareWith} by {initiator}" : "{shareWith} kasutajalt {initiator}",
+ "Shared via link by {initiator}" : "„{initiator}“ jagas seda lingiga",
+ "File request ({label})" : "Failipäring ({label})",
+ "Mail share ({label})" : "Jagamine e-kirjaga ({label})",
+ "Share link ({label})" : "Jagamise link ({label})",
+ "Mail share" : "E-posti jagamine",
+ "Share link ({index})" : "Jagamise link ({index})",
+ "Create public link" : "Loo avalik link",
+ "Actions for \"{title}\"" : "„{title}“ tegevused",
+ "Error, please enter proper password and/or expiration date" : "Viga, palun sisesta korrektne salasõna ja/või aegumise kuupäev",
+ "Link share created" : "Lingi jagamine on loodud",
+ "Error while creating the share" : "Viga jaosmeedia loomisel",
+ "Please enter the following required information before creating the share" : "Enne jaosmeedia loomist palun sisesta järgmine vajalik teave",
"Password protection (enforced)" : "Paroolikaitse (jõustatud)",
"Password protection" : "Password protection",
"Enter a password" : "Enter a password",
- "Expiration date (enforced)" : "Aegumise kuupäev (jõustatud)",
- "Enter a date" : "Sisesta kuupäev",
- "Cancel" : "Loobu",
+ "Enable link expiration (enforced)" : "Kasuta lingi aegumist (jõustatud)",
+ "Enable link expiration" : "Kasuta lingi aegumist",
+ "Enter expiration date (enforced)" : "Sisesta aegumise kuupäev (jõustatud)",
+ "Enter expiration date" : "Sisesta aegumise kuupäev",
+ "Create share" : "Lisa jagamine",
+ "Customize link" : "Kohanda linki",
+ "Generate QR code" : "Loo QR-kood",
"Add another link" : "Lisa veel üks link",
- "Share link" : "Jaga link",
- "Can edit" : "Võib redigeerida",
- "No recommendations. Start typing." : "Soovitusi pole. Alusta trükkimist.",
+ "Create a new share link" : "Loo uus jagamislink",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Kiirjagamise valikud, hetkel on valitud „{selectedOption}“",
+ "View only" : "Ainult vaatamine",
+ "Can edit" : "Võib muuta",
+ "Custom permissions" : "Kohandatud õigused",
"Resharing is not allowed" : "Edasijagamine pole lubatud",
- "Searching …" : "Otsin ...",
+ "Name or email …" : "Nimi või e-posti aadress…",
+ "Name, email, or Federated Cloud ID …" : "Nimi, e-posti aadress või liitpilve kasutajatunnus…",
+ "Searching …" : "Otsin...",
+ "No elements found." : "Elemente ei leidu.",
+ "Search everywhere" : "Otsi kõikjalt",
"Guest" : "Külaline",
"Group" : "Grupp",
"Email" : "Epost",
+ "Team" : "Tiim",
+ "Talk conversation" : "Talk suhtlus",
+ "Deck board" : "Kanbani tahvel",
+ "ScienceMesh" : "ScienceMesh",
+ "on {server}" : " {server}",
+ "Enter external recipients" : "Lisa välised saajad",
+ "Search for internal recipients" : "Otsi rakendusesiseseid saajaid",
+ "Note from" : "Märge kasutajalt",
+ "Note:" : "Märkus:",
+ "File drop" : "Failiedastus",
+ "Upload files to {foldername}." : "Laadi failid üles kausta {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Faile üleslaadides nõustud sa kasutustingimustega.",
+ "Successfully uploaded files" : "Failide üleslaadimine õnnestus",
+ "View terms of service" : "Vaata kasutustingimusi",
+ "Terms of service" : "Kasutustingimused",
+ "Share with email {email}" : "Jaga e-posti aadressile {email}",
+ "Share with group" : "Jaga grupiga",
+ "Share in conversation" : "Jaga vestluses",
+ "Share with {user} on remote server {server}" : "Jaga kasutajaga {user} kaugserveris {server}",
+ "Share with remote group" : "Jaga grupiga liitpilves",
+ "Share with guest" : "Jaga külalisega",
+ "Update share" : "Uuenda jaosmeediat",
+ "Save share" : "Salvesta jaosmeedia",
+ "Read" : "Lugemine",
+ "Create" : "Lisa",
+ "Edit" : "Muuda",
+ "Share" : "Jaga",
+ "Delete" : "Kustuta",
+ "Password field cannot be empty" : "Salasõna väli ei saa olla tühi",
+ "Replace current password" : "Asenda praegune salasõna",
+ "Failed to generate a new token" : "Uue tunnusloa loomine ei õnnestunud",
"Allow upload and editing" : "Luba üleslaadimine ja muutmine",
"Allow editing" : "Luba muutmine",
+ "Upload only" : "Ainult üleslaadimiseks",
"Advanced settings" : "Lisavalikud",
+ "Share label" : "Jaga silti",
+ "Share link token" : "Jagamislingi tunnusluba",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Sisesta avaliku jagamislingi jaoks midagi lihtsalt meeldejäetavat või genereeri uus tunnusluba. Kui link viitab delikaatsetele andmetele, siis palun ära kasuta kergesti aimatavaid tunnuslube.",
+ "Generating…" : "Loomisel…",
+ "Generate new token" : "Loo uus tunnusluba",
+ "Set password" : "Määra salasõna",
+ "Password expires {passwordExpirationTime}" : "Salasõna aegub {passwordExpirationTime}",
+ "Password expired" : "Salasõna on aegunud",
+ "Video verification" : "Verifitseerimine videoga",
+ "Expiration date (enforced)" : "Aegumise kuupäev (jõustatud)",
"Set expiration date" : "Määra aegumise kuupäev",
- "Expiration date" : "Aegumise kuupäev",
+ "Hide download" : "Peida allalaaditu",
+ "Allow download and sync" : "Luba allalaadimine ja sünkroonimine",
"Note to recipient" : "Märge saajale",
- "Read" : "Lugemine",
- "Create" : "Lisa",
- "Edit" : "Redigeeri",
- "Share" : "Jaga",
+ "Enter a note for the share recipient" : "Lisa märkus jaosmeedia saajale",
+ "Show files in grid view" : "Näita faile ruudustikuvaates",
+ "Delete share" : "Kustuta jagamine",
+ "Others with access" : "Teised, kellel on ligipääs",
+ "No other accounts with access found" : "Teisi ligipääsuga kasutajakontosid ei leidu",
+ "Toggle list of others with access to this directory" : "Näita teisi, kellele on ligipääs sellele kaustale või peida nad",
+ "Toggle list of others with access to this file" : "Näita teisi, kellele on ligipääs sellele failile või peida nad",
+ "Unable to fetch inherited shares" : "Päritud jaosmeedia laadimine ei õnnestu",
+ "Link shares" : "Jaoslingid",
+ "Shares" : "Jagamisi",
+ "Unable to load the shares list" : "Jaosmeedia loendi laadimine ei õnnestu",
"Expires {relativetime}" : "Aegub {relativetime}",
"this share just expired." : "see jagamine aegus äsja",
"Shared with you by {owner}" : "Jagatud sinuga {owner} poolt",
+ "Internal shares" : "Sisemised jaoskaustad",
+ "Internal shares explanation" : "Sisemiste jaoskaustade selgitus",
+ "External shares" : "Välised jaoskaustad",
+ "External shares explanation" : "Väliste jaoskaustade selgitus",
+ "Additional shares" : "Täiendavad jaoskaustad",
+ "Additional shares explanation" : "Täiendavate jaoskaustade selgitus",
+ "Link to a file" : "Link failile",
+ "_Accept share_::_Accept shares_" : ["Võta jaosmeedia vastu","Võta jaosmeedia vastu"],
+ "Open in Files" : "Ava failirakenduses",
+ "_Reject share_::_Reject shares_" : ["Keeldu jaosmeediast","Keeldu jaosmeediast"],
+ "_Restore share_::_Restore shares_" : ["Taasta jaosmeedia","Taasta jaosmeedia"],
"Shared" : "Jagatud",
- "Shared by" : "Jagas",
- "Shared with" : "Jagatud",
- "Shared with you and the group {group} by {owner}" : "Jagatud sinu ja grupiga {group} {owner} poolt",
- "Shares" : "Jagamisi",
+ "Shared by {ownerDisplayName}" : "Jagaja: {ownerDisplayName}",
+ "Shared multiple times with different people" : "Jagatud mitu korda eri kasutajate poolt",
+ "Shared with others" : "Teistega jagatud",
+ "Create file request" : "Koosta failipäring",
+ "Upload files to {foldername}" : "Laadi failid üles kausta {foldername}",
+ "Public file share" : "Avalikud jaosfailid",
+ "Publicly shared file." : "Avalikult jagatud fail.",
+ "No file" : "Faile pole",
+ "The file shared with you will show up here" : "Sinuga jagatud fail on siin nähtav",
+ "Public share" : "Avalik jaosmeedia",
+ "Publicly shared files." : "Avalikult jagatud failid.",
+ "No files" : "Faile pole",
+ "Files and folders shared with you will show up here" : "Sinuga jagatud failid ja kaustad on siin nähtavad",
+ "Overview of shared files." : "Jagatud failide ülevaade.",
"No shares" : "Jagamisi pole",
+ "Files and folders you shared or have been shared with you will show up here" : "Sinu poolt jagatud ning sinuga jagatud failid ja kaustad saavad olema nähtavad siin",
"Shared with you" : "Sinuga jagatud",
+ "List of files that are shared with you." : "Sinuga jagatud failide loend.",
"Nothing shared with you yet" : "Sinuga pole veel midagi jagatud",
- "Shared with others" : "Teistega jagatud",
+ "Files and folders others shared with you will show up here" : "Sinuga jagatud failid ja kaustad saavad olema nähtavad siin",
+ "List of files that you shared with others." : "Sinu poolt teisega jagatud failide loend.",
"Nothing shared yet" : "Midagi pole veel jagatud",
+ "Files and folders you shared will show up here" : "Sinu poolt jagatud failid ja kaustad saavad olema nähtavad siin",
"Shared by link" : "Jagatud lingiga",
+ "List of files that are shared by link." : "Lingiga jagatud failide loend.",
"No shared links" : "Jagatud linke pole",
+ "Files and folders you shared by link will show up here" : "Sinu poolt lingiga jagatud failid ja kaustad saavad olema nähtavad siin",
+ "File requests" : "Failipäringud",
+ "List of file requests." : "Failipäringute loend.",
+ "No file requests" : "Failipäringuid ei leidu",
+ "File requests you have created will show up here" : "Sinu loodud failipäringud saavad olema nähtavad siin.",
"Deleted shares" : "Kustutatud jagamised",
+ "List of shares you left." : "Jaosmeedia loend, kust sa oled lahkunud.",
"No deleted shares" : "Kustutatud jagamisi pole",
+ "Shares you have left will show up here" : "Jaosmeedia loend, kust sa oled lahkunud, saab olema nähtav siin",
"Pending shares" : "Ootel jagamised",
+ "List of unapproved shares." : "Vastuvõtmata jaosmeedia loend.",
"No pending shares" : "Ootel jagamisi pole",
+ "Shares you have received but not approved will show up here" : "Jaosmeedia, mille oled saanud, kuid pole nõustunud, saab olema nähtav siin",
+ "Error deleting the share: {errorMessage}" : "Viga jagamise kustutamisel: {errorMessage}",
+ "Error deleting the share" : "Viga jagamise kustutamisel",
+ "Error updating the share: {errorMessage}" : "Viga jaosmeedia uuendamisel: {errorMessage}",
+ "Error updating the share" : "Viga jaosmeedia uuendamisel",
+ "File \"{path}\" has been unshared" : "„{path}“ faili jagamine on lõpetatud",
+ "Folder \"{path}\" has been unshared" : "„{path}“ kausta jagamine on lõpetatud",
+ "Could not update share" : "Jaosmeedia andmete uuendamine ei õnnestunud",
+ "Share saved" : "Jaosmeedia andmed on salvestatud",
+ "Share expiry date saved" : "Jaosmeedia aegumise kuupäev on salvestatud",
+ "Share hide-download state saved" : "Jaosmeedia „peida allalaadimine“ olek on salvestatud",
+ "Share label saved" : "Jaosmeedia silt on salvestatud",
+ "Share note for recipient saved" : "Jaosmeedia märge saajale on salvestatud",
+ "Share password saved" : "Jaosmeedia salasõna on salvestatud",
+ "Share permissions saved" : "Jaosmeedia õigused on salvestatud",
+ "To upload files to {folder}, you need to provide your name first." : "Laadimaks faile {folder} kausta, pead esmalt sisestama oma nime",
+ "Upload files to {folder}" : "Laadi failid üles kausta {folder}",
+ "Please confirm your name to upload files to {folder}" : "Laadimaks faile {folder} kausta, palun kinnita oma nimi",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} jagas sinuga kausta.",
+ "Names must not be empty." : "Nimed ei tohi ollla tühjad.",
+ "Names must not start with a dot." : "Nime alguses ei tohi olla punkti.",
+ "\"{char}\" is not allowed inside a name." : "„{char}“ pole failinimedes lubatud.",
+ "\"{segment}\" is a reserved name and not allowed." : "„{segment}“ on reserveeritud nimi ja seda ei saa kasutada.",
+ "\"{extension}\" is not an allowed name." : "„{extension}“ pole lubatud nimi.",
+ "Names must not end with \"{extension}\"." : "Nimede lõpus ei tohi olla „{extension}“.",
+ "Invalid name." : "Vigane nimi.",
+ "Shared by" : "Jagas",
+ "Shared with" : "Jagatud",
+ "Password created successfully" : "Salasõna loomine õnnestus",
+ "Error generating password from password policy" : "Viga salasõnareeglitele vastava salasõna loomisel",
+ "Shared with you and the group {group} by {owner}" : "Jagatud sinu ja grupiga {group} {owner} poolt",
+ "Shared with you and {circle} by {owner}" : "„{owner}“ jagas seda sinuga ja „{circle}“ tiimiga",
+ "Shared with you and the conversation {conversation} by {owner}" : "„{owner}“ jagas seda sinuga ja vestlusega „{conversation}“",
+ "Shared with you in a conversation by {owner}" : "„{owner}“ jagas seda sinuga vestluses",
+ "Share not found" : "Jagamist ei leidu",
+ "Back to %s" : "Tagasi siia: %s",
+ "Add to your Nextcloud" : "Lisa oma Nextcloudi",
+ "Waiting…" : "Ootan...",
+ "error" : "viga",
+ "finished" : "lõpetatud",
+ "This will stop your current uploads." : "See peatab praegused üleslaadimised.",
+ "Move or copy" : "Liiguta või kopeeri",
+ "You can upload into this folder" : "Sa saad sellesse kausta faile üles laadida",
+ "Show list view" : "Näita loendivaadet",
+ "Show grid view" : "Näita ruudustikuvaadet",
+ "No compatible server found at {remote}" : "Aadressil {remote} ei leitud ühilduvat serverit",
+ "Invalid server URL" : "Vigane serveri URL",
+ "Failed to add the public link to your Nextcloud" : "Avaliku lingi lisamine sinu Nextcloudi ebaõnnestus",
+ "You are not allowed to edit link shares that you don't own" : "Sa ei saa muuta lingi jagamist, mis pole sinu oma",
+ "Download all files" : "Laadi kõik failid alla",
+ "Link copied to clipboard" : "Link on lõikelauale kopeeritud",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-posti aadress on juba lisatud","{count} e-posti aadressi on juba lisatud"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 e-posti aadress on lisatud","{count} e-posti aadressi on lisatud"],
+ "Copy to clipboard" : "Kopeeri lõikepuhvrisse",
+ "Copy internal link to clipboard" : "Kopeeri sisemine link lõikelauale",
+ "Only works for people with access to this folder" : "Toimib vaid kasutajate puhul, kellel on ligipääs siia kausta",
+ "Only works for people with access to this file" : "Toimib vaid kasutajate puhul, kellel on ligipääs sellele failile",
+ "Copy public link of \"{title}\" to clipboard" : "Kopeeri „{title}“ avalik link lõikelauale",
+ "Search globally" : "Otsi kõikjalt",
+ "Search for share recipients" : "Otsi jaosmeedia saajaid",
+ "No recommendations. Start typing." : "Soovitusi pole. Alusta trükkimist.",
+ "To upload files, you need to provide your name first." : "Faili üleslaadimiseks pead esmalt oma nime sisestama.",
+ "Enter your name" : "Sisesta oma nimi",
+ "Submit name" : "Salvesta nimi",
+ "Share with {userName}" : "Jaga kasutajaga {userName}",
+ "Show sharing options" : "Näita jagamise valikuid",
"Share note" : "Jaga märget",
"Upload files to %s" : "Laadi failid %s",
+ "%s shared a folder with you." : "%s jagas sinuga kausta.",
"Note" : "Märge",
"Select or drop files" : "Vali või lohista failid",
- "Uploaded files:" : "Üleslaetud failid:",
- "Add to your Nextcloud" : "Lisa oma Nextcloudi",
- "Files and folders others share with you will show up here" : "Siin näidatakse faile ja kaustasid, mida teised on sulle jaganud",
- "Files and folders you share will show up here" : "Siin kuvatakse faile ja kaustasid, mida sa oled teistega jaganud",
- "Files and folders you share by link will show up here" : "Siin kuvatakse faile ja kaustasid, mida sa jagad lingiga",
- "Shares you deleted will show up here" : "Sinu kustutatud jagamisi näidatakse siin",
- "Shares will show up here" : "Jagamisi näidatakse siin",
- "Restore" : "Taasta",
- "Something happened. Unable to restore the share." : "Midagi juhtus. Ei saa jagamist taastada.",
- "No expiration date set" : "Aegumise kuupäeva pole määratud",
- "Please specify a valid user" : "Palun määra kehtiv kasutaja",
- "Read only" : "kirjutuskaitstud",
- "File drop (upload only)" : "Faili lohistamine (ainult üleslaadimine)",
- "Upload" : "Lae üles",
- "Circle" : "Ring",
- "Update" : "Uuenda",
- "No entries found in this folder" : "Selles kaustas ei leitud kirjeid",
+ "Uploading files" : "Failid on üleslaadimisel",
+ "Uploaded files:" : "Üleslaaditud failid:",
+ "By uploading files, you agree to the %1$sterms of service%2$s." : "Faile üleslaadides nõustud sa „%2$s“ teenuse „%1$s“ kasutustingimustega.",
"Name" : "Nimi",
- "Share time" : "Jagamise aeg",
- "Reasons might be:" : "Põhjused võivad olla:",
- "the item was removed" : "üksus on eemaldatud",
- "the link expired" : "link on aegunud",
- "sharing is disabled" : "jagamine on peatatud",
- "For more info, please ask the person who sent this link." : "Täpsema info saamiseks palun pöördu lingi saatnud isiku poole."
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Kasuta seda jagamismeetodit jagamisel oma organisatsiooni kasutajatega ja tiimidega. Kui kasutajal juba on jaosmeediale ligipääs, kuid ei suuad seda leida, siis lihtsuse mõttes saada talle süsteemisisene jagamislink.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Kasuta seda meetodit failide jagamiset erinevate inimeste ja organisatsioonidega väljaspool seda serverit. Faile ja kaustu saad jagada avaliku jaosmeedia abil, kui e-posti teel jagamisel. Lisaks saad jagada kasutajatele muudes Nextcloudi serverites ehk liitpilves.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Jaosmeedia, mis pole sisemise või välise jagamise osa. Näiteks jagamine rakendustest või muudest allikatest.",
+ "Share with accounts, teams, federated cloud id" : "Jaga kasutajatega, tiimidega ja liitpilves osalejatega",
+ "Share with accounts and teams" : "Jaga kasutajate ja tiimidega",
+ "Federated cloud ID" : "Liitpilve tunnus",
+ "Email, federated cloud id" : "E-posti aadress, liitpilve kasutajatunnus",
+ "Filename must not be empty." : "Failinimi ei saa olla tühi."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/et_EE.json b/apps/files_sharing/l10n/et_EE.json
index 80204d618d9..5cfcf31b318 100644
--- a/apps/files_sharing/l10n/et_EE.json
+++ b/apps/files_sharing/l10n/et_EE.json
@@ -1,30 +1,19 @@
{ "translations": {
- "Waiting…" : "Ootan...",
- "error" : "viga",
- "finished" : "lõpetatud",
- "This will stop your current uploads." : "See peatab praegused üleslaadimised.",
- "Move or copy" : "Liiguta või kopeeri",
- "Download" : "Lae alla",
- "Delete" : "Kustuta",
- "You can upload into this folder" : "Sa saad sellesse kausta faile üles laadida",
- "Terms of service" : "Kasutustingimused",
- "Show list view" : "Näita loendivaadet",
- "No compatible server found at {remote}" : "Aadressil {remote} ei leitud ühilduvat serverit",
- "Invalid server URL" : "Vigane serveri URL",
- "Failed to add the public link to your Nextcloud" : "Avaliku lingi lisamine sinu Nextcloudi ebaõnnestus",
"File shares" : "Jagatud failid",
- "Downloaded via public link" : "Alla laetud avalikult lingilt",
- "Downloaded by {email}" : "Alla laetud {email} poolt",
- "{file} downloaded via public link" : "{file} laeti alla avaliku lingi kaudu",
+ "Downloaded via public link" : "Alla laaditud avaliku lingi abil",
+ "Downloaded by {email}" : "Alla laaditud {email} poolt",
+ "{file} downloaded via public link" : "{file} laaditi alla avaliku lingi abil",
"{email} downloaded {file}" : "{email} laadis {file} alla",
"Shared with group {group}" : "Jagatud grupiga {group}",
"Removed share for group {group}" : "Eemaldas jagamise grupiga {group}",
"{actor} shared with group {group}" : "{actor} jagas grupiga {group}",
"{actor} removed share for group {group}" : "{actor} eemaldas jagamise grupiga {group}",
+ "Share for group {group} expired" : "Jagamine „{group}“ grupile aegus",
"You shared {file} with group {group}" : "Sa jagasid faili {file} grupiga {group}",
"You removed group {group} from {file}" : "Sa eemaldasid grupi {group} faili {file} jagamisest",
"{actor} shared {file} with group {group}" : "{actor} jagas faili {file} grupiga {group}",
"{actor} removed group {group} from {file}" : "{actor} eemaldas grupi {group} faili {file} jagamisest",
+ "Share for file {file} with group {group} expired" : "Grupile „{group}“ mõeldud jagatud fail „{file}“ aegus",
"Shared as public link" : "Jaga avaliku lingina",
"Removed public link" : "Avalik link on eemaldatud",
"Public link expired" : "Avalik link aegus",
@@ -51,124 +40,400 @@
"{actor} removed share for {user}" : "{actor} eemaldas jagamise kasutajaga {user}",
"Shared by {actor}" : "Jagatud kasutajalt {actor}",
"{actor} removed share" : "{actor} eemaldas jagamise",
+ "Share for {user} expired" : "Kasutajale „{user}“ mõeldud jaosmeedia aegus",
"Share expired" : "Jagamine aegus",
"You shared {file} with {user}" : "Sa jagasid {file} kasutajaga {user}",
"You removed {user} from {file}" : "Sa eemaldasid faili {file} jagamise kasutajaga {user} ",
+ "You removed yourself from {file}" : "Sa eemaldasid end „{file}“ failist",
+ "{actor} removed themselves from {file}" : "„{actor}“ eemaldas end „{file}“ failist",
"{actor} shared {file} with {user}" : "{actor} jagas {file} kasutajaga {user}",
"{actor} removed {user} from {file}" : "{actor} eemaldas {user} jagamise faililt {file}",
"{actor} shared {file} with you" : "{actor} jagas sinuga {file}",
"{actor} removed you from the share named {file}" : "{actor} lõpetas sinuga {file} jagamise",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Fail või kaust mis on jagatud e-posti või avaliku lingiga <strong>laeti alla</strong>",
+ "Share for file {file} with {user} expired" : "Kasutajale „{user}“ mõeldud jagatud fail „{file}“ aegus",
+ "Share for file {file} expired" : "„{file}“ faili jagamine aegus",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Fail või kaust mis on jagatud e-posti või avaliku lingiga <strong>laaditi alla</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Failid on <strong>laaditud üles</strong> kausta, mida on jagatud e-posti või avaliku lingiga",
"A file or folder was shared from <strong>another server</strong>" : "Fail või kaust jagati <strong>teisest serverist</strong>",
- "Files" : "Failid",
- "A file or folder has been <strong>shared</strong>" : "Fail või kataloog on <strong>jagatud</strong>",
+ "Sharing" : "Jagamine",
+ "A file or folder has been <strong>shared</strong>" : "Fail või kaust on <strong>jagatud</strong>",
"Shared link" : "Jagatud link",
+ "Wrong share ID, share does not exist" : "Jaosmedia vigane tunnus - sellist pole olemas",
"Could not delete share" : "Ei saanud jagamist eemaldada",
"Please specify a file or folder path" : "Palun määra faili või kausta rada",
+ "Wrong path, file/folder does not exist" : "Vale asukoht faili või kausta pole olemas",
"Could not create share" : "Ei saanud jagamist luua",
- "Invalid date, date format must be YYYY-MM-DD" : "Vigane kuupäev, formaat peab olema YYYY-MM-DD",
+ "Please specify a valid account to share with" : "Palun määra korrektne kasutajakonto, kellega soovid jagada",
"Group sharing is disabled by the administrator" : "Grupiga jagamine on administraatori poolt keelatud",
"Please specify a valid group" : "Palun määra kehtiv grupp",
"Public link sharing is disabled by the administrator" : "Avaliku lingiga jagamine on administraatori poolt keelatud",
- "Public upload disabled by the administrator" : "Avalik üleslaadimine on administraatori poolt keelatud",
- "Public upload is only possible for publicly shared folders" : "Avalik üleslaadminie on võimalik ainult avalikult jagatud kaustades",
- "You cannot share to a Circle if the app is not enabled" : "Sa ei saa jagada Ringi kui see rakendus pole lubatud",
- "Please specify a valid circle" : "Palun määra kehtiv ring",
+ "Please specify a valid email address" : "Palun määra kehtiv e-posti aadress",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Kuna Nextcloud Talk pole serverisse paigaldatud, siis ei saanud selle teenuse abil ka „%s“ jaosmeedia salasõna jagada",
+ "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "„%1$s“ jagamine ei õnnestunud, sest server ei luba „%2$s“ tüüpi jagamisi",
+ "Please specify a valid federated account ID" : "Palun määra korrektne kasutaja liitpilves, kellega soovid jagada",
+ "Please specify a valid federated group ID" : "Palun määra korrektne grupp liitpilves, kellega soovid jagada",
+ "You cannot share to a Team if the app is not enabled" : "Sa ei saa jagada tiimiga, kui see rakendus pole lubatud",
+ "Please specify a valid team" : "Palun määratle korrektne tiim",
+ "Sharing %s failed because the back end does not support room shares" : "„%s“ jagamine ei õnnestunud, sest taustateenus ei toeta jututubadesse jagamist",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "„%s“ jagamine ei õnnestunud, sest taustateenus ei toeta ScienceMeshi meedia jagamist",
"Unknown share type" : "Tundmatu jagamise tüüp",
"Not a directory" : "Ei ole kaust",
- "Could not lock path" : "Ei saanud rada lukustada",
+ "Could not lock node" : "Sõlme lukustamine ei õnnestunud",
+ "Public upload is only possible for publicly shared folders" : "Avalik üleslaadminie on võimalik ainult avalikult jagatud kaustades",
+ "Share must at least have READ or CREATE permissions" : "jaosmeedial peavad olema vähemalt logemis- ja loomisõigused",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "Kui jaosmeedial on muutmis ja kustutamisõigus, siis peab olema ka lugemisõigus",
+ "Public upload disabled by the administrator" : "Avalik üleslaadimine on administraatori poolt keelatud",
+ "Could not lock path" : "Asukoha lukustamine ei õnnestunud",
+ "no sharing rights on this item" : "selle objekti kontekstis pole jagamisõigusi",
+ "You are not allowed to edit incoming shares" : "Sul pole lubatud vastuvõetud jaosmeediat muuta",
"Wrong or no update parameter given" : "Antud vale või aegunud parameeter",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Kuna Nextcloud Talk pole serverisse paigaldatud, siis ei saanud selle teenuse abil ka jaosmeedia salasõna jagada",
+ "Custom share link tokens have been disabled by the administrator" : "Jaosmeediale oma tunnuslubade loomine pole peakasutaja poolt lubatud",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tunnuslubades peab olema vähemalt 1 tähemärk ning võib olla vaid tähti, numbreid ja sisekriipse",
+ "Invalid date. Format must be YYYY-MM-DD" : "Vigane kuupäev, vorming peab olema YYYY-MM-DD",
+ "No sharing rights on this item" : "Selle objekti kontekstis pole jagamisõigusi",
+ "Invalid share attributes provided: \"%s\"" : "Vigased jagamisatribuudid: „%s“",
+ "You are not allowed to send mail notifications" : "Sul pole lubatud e-postiga teavitusi saata",
+ "No mail notification configured for this share type" : "Selle jagamistüübi kohta pole e-posti teel saadetavat teavitust lisatud",
+ "Wrong password" : "Vale salasõna",
+ "Error while sending mail notification" : "Viga e-postiga teavituse saatmisel",
+ "Failed to generate a unique token" : "Ei õnnestunud luua unikaalset tunnusluba",
+ "This share does not exist or is no longer available" : "See jaosmeedia pole enam olemas või saadaval",
"shared by %s" : "jagas %s",
- "Download all files" : "Lae kõik failid alla",
+ "Download" : "Laadi alla",
+ "Add to your %s" : "Lisa oma teenusesse: %s",
"Direct link" : "Otsene link",
"Share API is disabled" : "Jagamise API on keelatud",
"File sharing" : "Faide jagamine",
"Share will expire tomorrow" : "Jagamine aegub homme",
+ "Your share of {node} will expire tomorrow" : "Sinu „{node}“ jaosmeedia aegub homme",
+ "You received {share} as a share by {user}" : "Kasutaja „{user}“ on saatnud sulle „{share}“ jaosmeedia",
+ "You received {share} to group {group} as a share by {user}" : "Kasutaja „{user}“ on saatnud „{group}“ grupile „{share}“ jaosmeedia",
"Accept" : "Nõustu",
"Decline" : "Keeldu",
- "Sharing" : "Jagamine",
- "Reset" : "Lähtesta",
+ "Remember to upload the files to %s" : "Ära unusta laadida faile kausta %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Me lahkesti tuletame sulle meelde, et sa pole veel ühtegi faili lisanud jagatud kausta.",
+ "Open \"%s\"" : "Ava „%s“",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "See rakendus võimaldab kasutajatel jagada Nextcloudis faile. Kui see on lubatud, saab peakasutaja valida, millised grupid võivad faile jagada. Seejärel saavad asjaomased inimesed jagada faile ja kaustu teiste kontode ja gruppidega Nextcloudis. Lisaks sellele, kui administraator lubab lingiga jagamise, saab failide jagamiseks teiste inimestega väljaspool Nextcloudi kasutada välist linki. Peakasutajad saavad ka muuta nõutavaks salasõnade ja aegumistähtaegade kasutamise ning lubada serverist serverisse jagamist jagamislinkide kaudu, samuti jagamist nutiseadmetest.\nSelle rakenduse väljalülitamine eemaldab jagatud failid ja kaustad serveris kõigi jagamise saajate jaoks ning sama ka sünkroonimisklientides ja nutirakendustes. Lisateavet leiad Nextcloudi dokumentatsioonist.",
+ "People" : "Inimesed",
+ "Filter accounts" : "Filtreeri kasutajakontosid",
+ "The request will expire on {date} at midnight and will be password protected." : "Päring aegub {date} keskööl ning on kaitstud salasõnaga.",
+ "The request will expire on {date} at midnight." : "Päring aegub {date} keskööl.",
+ "The request will be password protected." : "Päring on kaitstud salasõnaga.",
+ "When should the request expire?" : "Millal peaks see päring aeguma?",
+ "Set a submission expiration date" : "Määra aegumise kuupäev",
+ "Expiration date" : "Aegumise kuupäev",
+ "Select a date" : "Vali kuupäev",
+ "Your administrator has enforced a {count} days expiration policy." : "Sinu serveri peakasutaja on kehtestanud {count}-päevase aegumisreegli.",
+ "What password should be used for the request?" : "Mis salasõna peaks selle päringu puhul kasutama?",
+ "Set a password" : "Lisa salasõna",
+ "Password" : "Salasõna",
+ "Enter a valid password" : "Sisesta korrektne salasõna",
+ "Generate a new password" : "Loo uus salasõna",
+ "Your administrator has enforced a password protection." : "Sinu serveri peakasutaja on kehtestanud salasõna kasutamise reegli.",
+ "Automatically copying failed, please copy the share link manually" : "Automaatne kopeerimine ei toimi, palun kopeeri jagamislink käsitsi",
+ "Link copied" : "Link kopeeritud",
+ "Email already added" : "E-posti aadress on juba lisatud",
+ "Invalid email address" : "Vigane e-posti aadress",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Järgnev e-posti aadress pole korrektne: {emails}","Järgnevad e-posti aadressid pole korrektsed: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} e-posti aadress on juba lisatud","{count} e-posti aadressi on juba lisatud"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} e-posti aadress on lisatud","{count} e-posti aadressi on lisatud"],
+ "You can now share the link below to allow people to upload files to your directory." : "Nüüd saad teistega jagada alltoodud linki ning neil on võimalik faile sinu kausta üles laadida.",
+ "Share link" : "Jaga link",
+ "Copy" : "Kopeeri",
+ "Send link via email" : "Saada link e-kirjaga",
+ "Enter an email address or paste a list" : "Sisesta e-posti aadress või lisa loend",
+ "Remove email" : "Eemalda e-posti aadress",
+ "Select a destination" : "Vali sihtkaust",
+ "Select" : "Vali",
+ "What are you requesting?" : "Missugust faili soovid saada?",
+ "Request subject" : "Päringu teema",
+ "Birthday party photos, History assignment…" : "Sünnipäevapeo fotod, uurimistöö…",
+ "Where should these files go?" : "Kuhu peaksid need failid sattuma?",
+ "Upload destination" : "Üleslaadimise sihtkaust",
+ "Revert to default" : "Kasuta vaikimisi kausta",
+ "The uploaded files are visible only to you unless you choose to share them." : "Kui sa just neid edasi ei jaga, siis on üleslaaditud failid nähtavad vaid sulle.",
+ "Add a note" : "Lisa märge",
+ "Note for recipient" : "Märge saajale",
+ "Add a note to help people understand what you are requesting." : "Lisa teise osapoole jaoks märge, mis aitab tal mõista, missugust faili sa temalt soovid.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Lisa teise osapoole jaoks linke, kuupäevi või muud teavet, mis aitab tal mõista, missugust faili sa temalt soovid.",
+ "Close" : "Sulge",
+ "_Send email and close_::_Send {count} emails and close_" : ["Saada e-kiri ja sulge","Saada {count} e-kirja ja sulge"],
+ "Please select a folder, you cannot share the root directory." : "Palun vali kaust ülaltpool - sa ei saa jagada juurkausta.",
+ "File request created" : "Failipäring on loodud",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Failipäring on loodud ja e-kiri on saadetud","Failipäring on loodud ja {count} e-kirja on saadetud"],
+ "Error creating the share: {errorMessage}" : "Viga jaosmeedia loomisel: {errorMessage}",
+ "Error creating the share" : "Viga jaosmeedia loomisel",
+ "Error sending emails: {errorMessage}" : "Viga e-kirjade saatmisel: {errorMessage}",
+ "Error sending emails" : "Viga e-kirjade saatmisel",
+ "Create a file request" : "Koosta failipäring",
+ "Collect files from others even if they do not have an account." : "Kogu faile teistelt ka siis, kui neil pole selles teenuses kasutajakontot.",
+ "To ensure you can receive files, verify you have enough storage available." : "Selleks et faile vastu võtta, palun kontrolli, et sinu seadmes on piisavalt andmeruumi saadaval.",
+ "File request" : "Failipäring",
+ "Previous step" : "Eelmine samm",
+ "Cancel" : "Loobu",
+ "Cancel the file request creation" : "Katkesta failipäringu koostamine",
+ "Close without sending emails" : "Sulge ilma e-kirju saatmata",
+ "Continue" : "Jätka",
+ "Error while toggling options" : "Viga valikute sisse/välja lülitamisel",
+ "Accept shares from other accounts and groups by default" : "Aktsepteeri vaikimisi muude kasutajakontode ja rühmade jagamisi automaatselt",
+ "Choose a default folder for accepted shares" : "Vali vaikimisi kaust jaosmeedia vastuvõtmiseks",
+ "Invalid path selected" : "Vigane asukoht on valitud",
"Unknown error" : "Tundmatu viga",
+ "Set default folder for accepted shares" : "Määra vastuvõetava jaosmeedia jaoks vaikimisi kaust",
+ "Reset" : "Lähtesta",
+ "Reset folder to system default" : "Kasuta süsteemi vaikimisi kausta",
+ "Share expiration: {date}" : "Jagamise aegumine: {date}",
+ "Share Expiration" : "Jagamise aegumine",
"group" : "grupp",
"conversation" : "vestlus",
"remote" : "kaug",
"remote group" : "Kauggrupp",
"guest" : "külaline",
+ "by {initiator}" : "kasutajalt {initiator}",
+ "Shared with the group {user} by {owner}" : "„{owner}“ jagas seda sinuga ja „{user}“ grupiga",
+ "Shared with the conversation {user} by {owner}" : "„{owner}“ jagas seda vestluses „{user}“ grupiga või kasutajaga",
+ "Shared with {user} by {owner}" : "„{owner}“ jagas seda „{user}“ kasutajaga",
+ "Open Sharing Details" : "Ava jaosmeedia üksikasjad",
+ "Added by {initiator}" : "Selle lisas {initiator}",
+ "Via “{folder}”" : "„{folder}“ kausta kaudu",
"Unshare" : "Lõpeta jagamine",
- "Internal link" : "Sisemine link",
"Cannot copy, please copy the link manually" : "Ei saa kopeerida, palun kopeeri link käsitsi",
- "Link copied" : "Link kopeeritud",
+ "Copy internal link" : "Kopeeri sisemine link",
+ "Internal link" : "Sisemine link",
+ "{shareWith} by {initiator}" : "{shareWith} kasutajalt {initiator}",
+ "Shared via link by {initiator}" : "„{initiator}“ jagas seda lingiga",
+ "File request ({label})" : "Failipäring ({label})",
+ "Mail share ({label})" : "Jagamine e-kirjaga ({label})",
+ "Share link ({label})" : "Jagamise link ({label})",
+ "Mail share" : "E-posti jagamine",
+ "Share link ({index})" : "Jagamise link ({index})",
+ "Create public link" : "Loo avalik link",
+ "Actions for \"{title}\"" : "„{title}“ tegevused",
+ "Error, please enter proper password and/or expiration date" : "Viga, palun sisesta korrektne salasõna ja/või aegumise kuupäev",
+ "Link share created" : "Lingi jagamine on loodud",
+ "Error while creating the share" : "Viga jaosmeedia loomisel",
+ "Please enter the following required information before creating the share" : "Enne jaosmeedia loomist palun sisesta järgmine vajalik teave",
"Password protection (enforced)" : "Paroolikaitse (jõustatud)",
"Password protection" : "Password protection",
"Enter a password" : "Enter a password",
- "Expiration date (enforced)" : "Aegumise kuupäev (jõustatud)",
- "Enter a date" : "Sisesta kuupäev",
- "Cancel" : "Loobu",
+ "Enable link expiration (enforced)" : "Kasuta lingi aegumist (jõustatud)",
+ "Enable link expiration" : "Kasuta lingi aegumist",
+ "Enter expiration date (enforced)" : "Sisesta aegumise kuupäev (jõustatud)",
+ "Enter expiration date" : "Sisesta aegumise kuupäev",
+ "Create share" : "Lisa jagamine",
+ "Customize link" : "Kohanda linki",
+ "Generate QR code" : "Loo QR-kood",
"Add another link" : "Lisa veel üks link",
- "Share link" : "Jaga link",
- "Can edit" : "Võib redigeerida",
- "No recommendations. Start typing." : "Soovitusi pole. Alusta trükkimist.",
+ "Create a new share link" : "Loo uus jagamislink",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Kiirjagamise valikud, hetkel on valitud „{selectedOption}“",
+ "View only" : "Ainult vaatamine",
+ "Can edit" : "Võib muuta",
+ "Custom permissions" : "Kohandatud õigused",
"Resharing is not allowed" : "Edasijagamine pole lubatud",
- "Searching …" : "Otsin ...",
+ "Name or email …" : "Nimi või e-posti aadress…",
+ "Name, email, or Federated Cloud ID …" : "Nimi, e-posti aadress või liitpilve kasutajatunnus…",
+ "Searching …" : "Otsin...",
+ "No elements found." : "Elemente ei leidu.",
+ "Search everywhere" : "Otsi kõikjalt",
"Guest" : "Külaline",
"Group" : "Grupp",
"Email" : "Epost",
+ "Team" : "Tiim",
+ "Talk conversation" : "Talk suhtlus",
+ "Deck board" : "Kanbani tahvel",
+ "ScienceMesh" : "ScienceMesh",
+ "on {server}" : " {server}",
+ "Enter external recipients" : "Lisa välised saajad",
+ "Search for internal recipients" : "Otsi rakendusesiseseid saajaid",
+ "Note from" : "Märge kasutajalt",
+ "Note:" : "Märkus:",
+ "File drop" : "Failiedastus",
+ "Upload files to {foldername}." : "Laadi failid üles kausta {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Faile üleslaadides nõustud sa kasutustingimustega.",
+ "Successfully uploaded files" : "Failide üleslaadimine õnnestus",
+ "View terms of service" : "Vaata kasutustingimusi",
+ "Terms of service" : "Kasutustingimused",
+ "Share with email {email}" : "Jaga e-posti aadressile {email}",
+ "Share with group" : "Jaga grupiga",
+ "Share in conversation" : "Jaga vestluses",
+ "Share with {user} on remote server {server}" : "Jaga kasutajaga {user} kaugserveris {server}",
+ "Share with remote group" : "Jaga grupiga liitpilves",
+ "Share with guest" : "Jaga külalisega",
+ "Update share" : "Uuenda jaosmeediat",
+ "Save share" : "Salvesta jaosmeedia",
+ "Read" : "Lugemine",
+ "Create" : "Lisa",
+ "Edit" : "Muuda",
+ "Share" : "Jaga",
+ "Delete" : "Kustuta",
+ "Password field cannot be empty" : "Salasõna väli ei saa olla tühi",
+ "Replace current password" : "Asenda praegune salasõna",
+ "Failed to generate a new token" : "Uue tunnusloa loomine ei õnnestunud",
"Allow upload and editing" : "Luba üleslaadimine ja muutmine",
"Allow editing" : "Luba muutmine",
+ "Upload only" : "Ainult üleslaadimiseks",
"Advanced settings" : "Lisavalikud",
+ "Share label" : "Jaga silti",
+ "Share link token" : "Jagamislingi tunnusluba",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Sisesta avaliku jagamislingi jaoks midagi lihtsalt meeldejäetavat või genereeri uus tunnusluba. Kui link viitab delikaatsetele andmetele, siis palun ära kasuta kergesti aimatavaid tunnuslube.",
+ "Generating…" : "Loomisel…",
+ "Generate new token" : "Loo uus tunnusluba",
+ "Set password" : "Määra salasõna",
+ "Password expires {passwordExpirationTime}" : "Salasõna aegub {passwordExpirationTime}",
+ "Password expired" : "Salasõna on aegunud",
+ "Video verification" : "Verifitseerimine videoga",
+ "Expiration date (enforced)" : "Aegumise kuupäev (jõustatud)",
"Set expiration date" : "Määra aegumise kuupäev",
- "Expiration date" : "Aegumise kuupäev",
+ "Hide download" : "Peida allalaaditu",
+ "Allow download and sync" : "Luba allalaadimine ja sünkroonimine",
"Note to recipient" : "Märge saajale",
- "Read" : "Lugemine",
- "Create" : "Lisa",
- "Edit" : "Redigeeri",
- "Share" : "Jaga",
+ "Enter a note for the share recipient" : "Lisa märkus jaosmeedia saajale",
+ "Show files in grid view" : "Näita faile ruudustikuvaates",
+ "Delete share" : "Kustuta jagamine",
+ "Others with access" : "Teised, kellel on ligipääs",
+ "No other accounts with access found" : "Teisi ligipääsuga kasutajakontosid ei leidu",
+ "Toggle list of others with access to this directory" : "Näita teisi, kellele on ligipääs sellele kaustale või peida nad",
+ "Toggle list of others with access to this file" : "Näita teisi, kellele on ligipääs sellele failile või peida nad",
+ "Unable to fetch inherited shares" : "Päritud jaosmeedia laadimine ei õnnestu",
+ "Link shares" : "Jaoslingid",
+ "Shares" : "Jagamisi",
+ "Unable to load the shares list" : "Jaosmeedia loendi laadimine ei õnnestu",
"Expires {relativetime}" : "Aegub {relativetime}",
"this share just expired." : "see jagamine aegus äsja",
"Shared with you by {owner}" : "Jagatud sinuga {owner} poolt",
+ "Internal shares" : "Sisemised jaoskaustad",
+ "Internal shares explanation" : "Sisemiste jaoskaustade selgitus",
+ "External shares" : "Välised jaoskaustad",
+ "External shares explanation" : "Väliste jaoskaustade selgitus",
+ "Additional shares" : "Täiendavad jaoskaustad",
+ "Additional shares explanation" : "Täiendavate jaoskaustade selgitus",
+ "Link to a file" : "Link failile",
+ "_Accept share_::_Accept shares_" : ["Võta jaosmeedia vastu","Võta jaosmeedia vastu"],
+ "Open in Files" : "Ava failirakenduses",
+ "_Reject share_::_Reject shares_" : ["Keeldu jaosmeediast","Keeldu jaosmeediast"],
+ "_Restore share_::_Restore shares_" : ["Taasta jaosmeedia","Taasta jaosmeedia"],
"Shared" : "Jagatud",
- "Shared by" : "Jagas",
- "Shared with" : "Jagatud",
- "Shared with you and the group {group} by {owner}" : "Jagatud sinu ja grupiga {group} {owner} poolt",
- "Shares" : "Jagamisi",
+ "Shared by {ownerDisplayName}" : "Jagaja: {ownerDisplayName}",
+ "Shared multiple times with different people" : "Jagatud mitu korda eri kasutajate poolt",
+ "Shared with others" : "Teistega jagatud",
+ "Create file request" : "Koosta failipäring",
+ "Upload files to {foldername}" : "Laadi failid üles kausta {foldername}",
+ "Public file share" : "Avalikud jaosfailid",
+ "Publicly shared file." : "Avalikult jagatud fail.",
+ "No file" : "Faile pole",
+ "The file shared with you will show up here" : "Sinuga jagatud fail on siin nähtav",
+ "Public share" : "Avalik jaosmeedia",
+ "Publicly shared files." : "Avalikult jagatud failid.",
+ "No files" : "Faile pole",
+ "Files and folders shared with you will show up here" : "Sinuga jagatud failid ja kaustad on siin nähtavad",
+ "Overview of shared files." : "Jagatud failide ülevaade.",
"No shares" : "Jagamisi pole",
+ "Files and folders you shared or have been shared with you will show up here" : "Sinu poolt jagatud ning sinuga jagatud failid ja kaustad saavad olema nähtavad siin",
"Shared with you" : "Sinuga jagatud",
+ "List of files that are shared with you." : "Sinuga jagatud failide loend.",
"Nothing shared with you yet" : "Sinuga pole veel midagi jagatud",
- "Shared with others" : "Teistega jagatud",
+ "Files and folders others shared with you will show up here" : "Sinuga jagatud failid ja kaustad saavad olema nähtavad siin",
+ "List of files that you shared with others." : "Sinu poolt teisega jagatud failide loend.",
"Nothing shared yet" : "Midagi pole veel jagatud",
+ "Files and folders you shared will show up here" : "Sinu poolt jagatud failid ja kaustad saavad olema nähtavad siin",
"Shared by link" : "Jagatud lingiga",
+ "List of files that are shared by link." : "Lingiga jagatud failide loend.",
"No shared links" : "Jagatud linke pole",
+ "Files and folders you shared by link will show up here" : "Sinu poolt lingiga jagatud failid ja kaustad saavad olema nähtavad siin",
+ "File requests" : "Failipäringud",
+ "List of file requests." : "Failipäringute loend.",
+ "No file requests" : "Failipäringuid ei leidu",
+ "File requests you have created will show up here" : "Sinu loodud failipäringud saavad olema nähtavad siin.",
"Deleted shares" : "Kustutatud jagamised",
+ "List of shares you left." : "Jaosmeedia loend, kust sa oled lahkunud.",
"No deleted shares" : "Kustutatud jagamisi pole",
+ "Shares you have left will show up here" : "Jaosmeedia loend, kust sa oled lahkunud, saab olema nähtav siin",
"Pending shares" : "Ootel jagamised",
+ "List of unapproved shares." : "Vastuvõtmata jaosmeedia loend.",
"No pending shares" : "Ootel jagamisi pole",
+ "Shares you have received but not approved will show up here" : "Jaosmeedia, mille oled saanud, kuid pole nõustunud, saab olema nähtav siin",
+ "Error deleting the share: {errorMessage}" : "Viga jagamise kustutamisel: {errorMessage}",
+ "Error deleting the share" : "Viga jagamise kustutamisel",
+ "Error updating the share: {errorMessage}" : "Viga jaosmeedia uuendamisel: {errorMessage}",
+ "Error updating the share" : "Viga jaosmeedia uuendamisel",
+ "File \"{path}\" has been unshared" : "„{path}“ faili jagamine on lõpetatud",
+ "Folder \"{path}\" has been unshared" : "„{path}“ kausta jagamine on lõpetatud",
+ "Could not update share" : "Jaosmeedia andmete uuendamine ei õnnestunud",
+ "Share saved" : "Jaosmeedia andmed on salvestatud",
+ "Share expiry date saved" : "Jaosmeedia aegumise kuupäev on salvestatud",
+ "Share hide-download state saved" : "Jaosmeedia „peida allalaadimine“ olek on salvestatud",
+ "Share label saved" : "Jaosmeedia silt on salvestatud",
+ "Share note for recipient saved" : "Jaosmeedia märge saajale on salvestatud",
+ "Share password saved" : "Jaosmeedia salasõna on salvestatud",
+ "Share permissions saved" : "Jaosmeedia õigused on salvestatud",
+ "To upload files to {folder}, you need to provide your name first." : "Laadimaks faile {folder} kausta, pead esmalt sisestama oma nime",
+ "Upload files to {folder}" : "Laadi failid üles kausta {folder}",
+ "Please confirm your name to upload files to {folder}" : "Laadimaks faile {folder} kausta, palun kinnita oma nimi",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} jagas sinuga kausta.",
+ "Names must not be empty." : "Nimed ei tohi ollla tühjad.",
+ "Names must not start with a dot." : "Nime alguses ei tohi olla punkti.",
+ "\"{char}\" is not allowed inside a name." : "„{char}“ pole failinimedes lubatud.",
+ "\"{segment}\" is a reserved name and not allowed." : "„{segment}“ on reserveeritud nimi ja seda ei saa kasutada.",
+ "\"{extension}\" is not an allowed name." : "„{extension}“ pole lubatud nimi.",
+ "Names must not end with \"{extension}\"." : "Nimede lõpus ei tohi olla „{extension}“.",
+ "Invalid name." : "Vigane nimi.",
+ "Shared by" : "Jagas",
+ "Shared with" : "Jagatud",
+ "Password created successfully" : "Salasõna loomine õnnestus",
+ "Error generating password from password policy" : "Viga salasõnareeglitele vastava salasõna loomisel",
+ "Shared with you and the group {group} by {owner}" : "Jagatud sinu ja grupiga {group} {owner} poolt",
+ "Shared with you and {circle} by {owner}" : "„{owner}“ jagas seda sinuga ja „{circle}“ tiimiga",
+ "Shared with you and the conversation {conversation} by {owner}" : "„{owner}“ jagas seda sinuga ja vestlusega „{conversation}“",
+ "Shared with you in a conversation by {owner}" : "„{owner}“ jagas seda sinuga vestluses",
+ "Share not found" : "Jagamist ei leidu",
+ "Back to %s" : "Tagasi siia: %s",
+ "Add to your Nextcloud" : "Lisa oma Nextcloudi",
+ "Waiting…" : "Ootan...",
+ "error" : "viga",
+ "finished" : "lõpetatud",
+ "This will stop your current uploads." : "See peatab praegused üleslaadimised.",
+ "Move or copy" : "Liiguta või kopeeri",
+ "You can upload into this folder" : "Sa saad sellesse kausta faile üles laadida",
+ "Show list view" : "Näita loendivaadet",
+ "Show grid view" : "Näita ruudustikuvaadet",
+ "No compatible server found at {remote}" : "Aadressil {remote} ei leitud ühilduvat serverit",
+ "Invalid server URL" : "Vigane serveri URL",
+ "Failed to add the public link to your Nextcloud" : "Avaliku lingi lisamine sinu Nextcloudi ebaõnnestus",
+ "You are not allowed to edit link shares that you don't own" : "Sa ei saa muuta lingi jagamist, mis pole sinu oma",
+ "Download all files" : "Laadi kõik failid alla",
+ "Link copied to clipboard" : "Link on lõikelauale kopeeritud",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-posti aadress on juba lisatud","{count} e-posti aadressi on juba lisatud"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 e-posti aadress on lisatud","{count} e-posti aadressi on lisatud"],
+ "Copy to clipboard" : "Kopeeri lõikepuhvrisse",
+ "Copy internal link to clipboard" : "Kopeeri sisemine link lõikelauale",
+ "Only works for people with access to this folder" : "Toimib vaid kasutajate puhul, kellel on ligipääs siia kausta",
+ "Only works for people with access to this file" : "Toimib vaid kasutajate puhul, kellel on ligipääs sellele failile",
+ "Copy public link of \"{title}\" to clipboard" : "Kopeeri „{title}“ avalik link lõikelauale",
+ "Search globally" : "Otsi kõikjalt",
+ "Search for share recipients" : "Otsi jaosmeedia saajaid",
+ "No recommendations. Start typing." : "Soovitusi pole. Alusta trükkimist.",
+ "To upload files, you need to provide your name first." : "Faili üleslaadimiseks pead esmalt oma nime sisestama.",
+ "Enter your name" : "Sisesta oma nimi",
+ "Submit name" : "Salvesta nimi",
+ "Share with {userName}" : "Jaga kasutajaga {userName}",
+ "Show sharing options" : "Näita jagamise valikuid",
"Share note" : "Jaga märget",
"Upload files to %s" : "Laadi failid %s",
+ "%s shared a folder with you." : "%s jagas sinuga kausta.",
"Note" : "Märge",
"Select or drop files" : "Vali või lohista failid",
- "Uploaded files:" : "Üleslaetud failid:",
- "Add to your Nextcloud" : "Lisa oma Nextcloudi",
- "Files and folders others share with you will show up here" : "Siin näidatakse faile ja kaustasid, mida teised on sulle jaganud",
- "Files and folders you share will show up here" : "Siin kuvatakse faile ja kaustasid, mida sa oled teistega jaganud",
- "Files and folders you share by link will show up here" : "Siin kuvatakse faile ja kaustasid, mida sa jagad lingiga",
- "Shares you deleted will show up here" : "Sinu kustutatud jagamisi näidatakse siin",
- "Shares will show up here" : "Jagamisi näidatakse siin",
- "Restore" : "Taasta",
- "Something happened. Unable to restore the share." : "Midagi juhtus. Ei saa jagamist taastada.",
- "No expiration date set" : "Aegumise kuupäeva pole määratud",
- "Please specify a valid user" : "Palun määra kehtiv kasutaja",
- "Read only" : "kirjutuskaitstud",
- "File drop (upload only)" : "Faili lohistamine (ainult üleslaadimine)",
- "Upload" : "Lae üles",
- "Circle" : "Ring",
- "Update" : "Uuenda",
- "No entries found in this folder" : "Selles kaustas ei leitud kirjeid",
+ "Uploading files" : "Failid on üleslaadimisel",
+ "Uploaded files:" : "Üleslaaditud failid:",
+ "By uploading files, you agree to the %1$sterms of service%2$s." : "Faile üleslaadides nõustud sa „%2$s“ teenuse „%1$s“ kasutustingimustega.",
"Name" : "Nimi",
- "Share time" : "Jagamise aeg",
- "Reasons might be:" : "Põhjused võivad olla:",
- "the item was removed" : "üksus on eemaldatud",
- "the link expired" : "link on aegunud",
- "sharing is disabled" : "jagamine on peatatud",
- "For more info, please ask the person who sent this link." : "Täpsema info saamiseks palun pöördu lingi saatnud isiku poole."
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Kasuta seda jagamismeetodit jagamisel oma organisatsiooni kasutajatega ja tiimidega. Kui kasutajal juba on jaosmeediale ligipääs, kuid ei suuad seda leida, siis lihtsuse mõttes saada talle süsteemisisene jagamislink.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Kasuta seda meetodit failide jagamiset erinevate inimeste ja organisatsioonidega väljaspool seda serverit. Faile ja kaustu saad jagada avaliku jaosmeedia abil, kui e-posti teel jagamisel. Lisaks saad jagada kasutajatele muudes Nextcloudi serverites ehk liitpilves.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Jaosmeedia, mis pole sisemise või välise jagamise osa. Näiteks jagamine rakendustest või muudest allikatest.",
+ "Share with accounts, teams, federated cloud id" : "Jaga kasutajatega, tiimidega ja liitpilves osalejatega",
+ "Share with accounts and teams" : "Jaga kasutajate ja tiimidega",
+ "Federated cloud ID" : "Liitpilve tunnus",
+ "Email, federated cloud id" : "E-posti aadress, liitpilve kasutajatunnus",
+ "Filename must not be empty." : "Failinimi ei saa olla tühi."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/eu.js b/apps/files_sharing/l10n/eu.js
index e3edf8a7645..a51e73e97ff 100644
--- a/apps/files_sharing/l10n/eu.js
+++ b/apps/files_sharing/l10n/eu.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Itxaroten...",
- "error" : "errorea",
- "finished" : "amaitua",
- "This will stop your current uploads." : "Honek zure uneko igoerak geldituko ditu.",
- "Move or copy" : "Mugitu edo kopiatu",
- "Download" : "Deskargatu",
- "Delete" : "Ezabatu",
- "You can upload into this folder" : "Karpeta honetara igo dezakezu",
- "Terms of service" : "Erabilera baldintzak",
- "Show list view" : "Erakutsi zerrenda ikuspegia",
- "Show grid view" : "Erakutsi sareta-ikuspegia",
- "No compatible server found at {remote}" : "Ez da zerbitzari bateragarririk aurkitu {remote} helbidean",
- "Invalid server URL" : "Zerbitzari URL baliogabea",
- "Failed to add the public link to your Nextcloud" : "Huts egin du esteka publikoa zure Nextcloudera gehitzean",
"File shares" : "Fitxategi partekatzeak",
"Downloaded via public link" : "Esteka publikoaren bidez deskargatuta",
"Downloaded by {email}" : "{email} erabiltzaileak deskargatua",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "{file} fitxategia {user} erabiltzailearekin partekatzea iraungi da",
"Share for file {file} expired" : "{file} fitxategia partekatzea iraungi da",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Posta elektronikoz edo esteka publiko bidez partekatutako fitxategi edo karpeta bat <strong>deskargatu</strong> da",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Fitxategiak postaz edo esteka publikoz partekatutako karpeta batera <strong>igo</strong> dira",
"A file or folder was shared from <strong>another server</strong>" : "Fitxategia edo karpeta bat partekatu da <strong>beste zerbitzari batetik</strong>",
- "Files" : "Fitxategiak",
+ "Sharing" : "Partekatzea",
"A file or folder has been <strong>shared</strong>" : "Fitxategia edo karpeta bat <strong>partekatu</strong> da",
"Shared link" : "Partekatutako esteka",
"Wrong share ID, share does not exist" : "Partekatzeko ID okerra, partekatzea ez dago",
@@ -78,32 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "Zehaztu fitxategi edo karpetaren bide bat",
"Wrong path, file/folder does not exist" : "Bide okerra, fitxategia/karpeta ez da existitzen",
"Could not create share" : "Ezin izan da partekatzea sortu",
- "Invalid permissions" : "Baimen baliogabeak",
- "Invalid date, date format must be YYYY-MM-DD" : "Data baliogabea, dataren formatuak UUUU-HH-EE izan behar du",
+ "Please specify a valid account to share with" : "Zehaztu baliozko kontu bat partekatzeko",
"Group sharing is disabled by the administrator" : "Administratzaileak taldeekin partekatzea desgaitu du",
"Please specify a valid group" : "Zehaztu baliozko talde bat",
"Public link sharing is disabled by the administrator" : "Administratzaileak estekak publikoki partekatzea desgaitu du",
- "Public upload disabled by the administrator" : "Administratzaileak igoera publikoak desgaitu ditu",
- "Public upload is only possible for publicly shared folders" : "Igoera publikoa publikoki partekatutako karpetetan egin daiteke soilik",
+ "Please specify a valid email address" : "Zehaztu baliozko helbide elektroniko bat",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : " %s Nextcloud Talk-etik pasahitza bidaliz partekatzeak huts egin du, Nextcloud Talk ez dagoelako gaituta",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : " %1$s partekatzeak huts egin du, atzealdeak %2$s motako partekatzeak ez dituelako onartzen",
+ "Please specify a valid federated account ID" : "Zehaztu baliozko federatutako kontu ID bat",
"Please specify a valid federated group ID" : "Mesedez, zehaztu baliozko talde federatu baten id-a",
- "You cannot share to a Circle if the app is not enabled" : "Ezin duzu zirkulu batekin partekatu aplikazioa gaituta ez badago",
- "Please specify a valid circle" : "Zehaztu baliozko zirkulu bat",
+ "You cannot share to a Team if the app is not enabled" : "Ezin duzu talde batekin partekatu aplikazioa gaituta ez badago",
+ "Please specify a valid team" : "Zehaztu baliozko lantalde bat",
"Sharing %s failed because the back end does not support room shares" : "%s partekatzeak huts egin du, atzealdeak ez duelako gelak partekatzea onartzen",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "%s partekatzeak huts egin du atzealdeak ez dituelako ScienceMesh parteatzeak onartzen",
"Unknown share type" : "Partekatze mota ezezaguna",
"Not a directory" : "Ez da direktorio bat",
"Could not lock node" : "Ezin izan da nodoa blokeatu",
- "Could not lock path" : "Ezin izan da bidea blokeatu",
- "Wrong or no update parameter given" : "Eguneraketa parametrorik ez da eman edo okerra da",
+ "Public upload is only possible for publicly shared folders" : "Igoera publikoa publikoki partekatutako karpetetan egin daiteke soilik",
"Share must at least have READ or CREATE permissions" : "Partekatzeak gutxienez IRAKURRI edo SORTU egiteko baimenak behar ditu",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Partekatzeak IRAKURRI egiteko baimenak behar ditu, EGUNERATU edo EZABATU baimenak baldin badauzka",
+ "Public upload disabled by the administrator" : "Administratzaileak igoera publikoak desgaitu ditu",
+ "Could not lock path" : "Ezin izan da bidea blokeatu",
+ "no sharing rights on this item" : "Ez dago baimenik fitxategi hau partekatzeko",
+ "You are not allowed to edit incoming shares" : "Ez duzu baimenik zuri partekaturikoak editatzeko",
+ "Wrong or no update parameter given" : "Eguneraketa parametrorik ez da eman edo okerra da",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Nextcloud Talk-ek pasahitza bidaltzeak\" huts egin du ez dagoelako Nextcloud Talk gaituta fitxategi edo karpeta bat partekatzeko.",
+ "Custom share link tokens have been disabled by the administrator" : "Administratzaileak esteka pertsonalizatuen tokenak sortzeko aukera ezgaitu du",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tokenek gutxienez karaktere 1 izan behar dute, eta letrak, zenbakiak edo marratxo bat baino ezin dituzte eduki",
+ "Invalid date. Format must be YYYY-MM-DD" : "Data baliogabea. UUU-HH-EE gisako formatua izan behar du",
+ "No sharing rights on this item" : "Ez dago baimenik fitxategi hau partekatzeko",
+ "Invalid share attributes provided: \"%s\"" : "Baliogabeko partekatze atributuak eman dira: \"%s\"",
+ "You are not allowed to send mail notifications" : "Ezin dituzu email bidezko jakinarazpenak bidali",
+ "No mail notification configured for this share type" : "Partekatze mota honentzat ez dago email jakinarazpenik konfiguratuta",
+ "Wrong password" : "Pasahitz okerra",
+ "Error while sending mail notification" : "Errorea email jakinarazpena bidaltzean",
+ "Failed to generate a unique token" : "Ezin izan da token bakar bat sortu",
+ "This share does not exist or is no longer available" : "Partekatze hau ez dago edo jada ez dago erabilgarri",
"shared by %s" : "%s erabiltzaileak partekatua",
- "Download all files" : "Deskargatu fitxategi guztiak",
- "Direct link" : "Esteka zuzena",
+ "Download" : "Deskargatu",
"Add to your %s" : "Gehitu zure %s-era",
+ "Direct link" : "Esteka zuzena",
"Share API is disabled" : "Partekatze API-a desgaituta dago",
"File sharing" : "Fitxategien partekatzea",
"Share will expire tomorrow" : "Partekatzea bihar iraungiko da",
@@ -112,126 +113,222 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "{share} {group} taldearekin partekatzea jaso duzu {user} erabiltzailearengandik",
"Accept" : "Onartu",
"Decline" : "Uko egin",
- "Sharing" : "Partekatzea",
+ "Remember to upload the files to %s" : "Gogoratu fitxategiak %s(e)ra igo behar dituzula",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Atsegin handiz gogorarazi nahi dizugu oraindik ez duzula fitxategirik igo partekatutako karpetara.",
+ "Open \"%s\"" : "Ireki «%s»",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Aplikazio honek Nextcloud-en fitxategiak partekatzeko aukera ematen du. Gaituta badago, administratzaileak aukeratu dezake zein taldek parteka ditzaketen fitxategiak. Ondoren, baimendutako pertsonek fitxategiak eta karpetak parteka ditzakete Nextcloud-eko beste kontu eta talde batzuekin. Gainera, administratzaileak partekatzeko estekaren funtzioa gaitzen badu, kanpoko esteka bat erabil daiteke fitxategiak Nextcloud-etik kanpoko beste pertsonekin partekatzeko. Administratzaileek ere ezar ditzakete pasahitzak eta iraungitze-datak, bai eta gaitu zerbitzaritik zerbitzarira fitxategiak esteken bidez partekatzea, baita gailu mugikorretatik partekatzea ere.\nFuntzioa desaktibatuz gero, zerbitzarian partekatutako fitxategiak eta karpetak kentzen dira partekatutako hartzaile guztientzat, baita sinkronizazio-bezeroetan eta mugikorreko aplikazioetan ere. Informazio gehiago eskuragarri dago Nextcloud Dokumentazioan.",
+ "People" : "Jendea",
+ "Filter accounts" : "Iragazi kontuak",
+ "The request will expire on {date} at midnight and will be password protected." : "Eskaera {date} egunean iraungiko da gauerdian eta pasahitzez babestuta egongo da.",
+ "The request will expire on {date} at midnight." : "Eskaera {date} egunean iraungiko da gauerdian.",
+ "The request will be password protected." : "Eskaera pasahitzez babestuta egongo da.",
+ "When should the request expire?" : "Noiz iraungi beharko luke eskaerak?",
+ "Set a submission expiration date" : "Ezarri bidalketaren iraungitze-data",
+ "Expiration date" : "Iraungitze-data",
+ "Select a date" : "Hautatu data bat",
+ "Your administrator has enforced a {count} days expiration policy." : "Zure administratzaileak {count} eguneko iraungitze-politika ezarri du. ",
+ "What password should be used for the request?" : "Zein pasahitz erabili behar litzateke eskaera honetarako?",
+ "Set a password" : "Ezarri pasahitz bat",
+ "Password" : "Pasahitza",
+ "Enter a valid password" : "Sartu baliozko pasahitz bat",
+ "Generate a new password" : "Sortu pasahitz berria",
+ "Your administrator has enforced a password protection." : "Zure administratzaileak pasahitzez babestu behar dela ezarri du.",
+ "Automatically copying failed, please copy the share link manually" : "Autimatikoki kopiatzeak huts egin du, kopiatu eskuz partekatze esteka",
+ "Link copied" : "Esteka kopiatu da",
+ "Email already added" : "Helbide elektronikoa dagoeneko gehituta dago",
+ "Invalid email address" : "Baliogabeko helbide elektronikoa",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Ondorengo helbide elektronikoa ez da baliozkoa: {emails}","Ondorengo helbide elektronikoak ez dira baliozkoak: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["Helbide elektroniko {count} gehitu da dagoeneko","{count} helbide elektroniko gehitu dira dagoeneko"],
+ "_{count} email address added_::_{count} email addresses added_" : ["Helbide elektroniko {count} gehitu da","{count} helbide elektroniko gehitu dira"],
+ "You can now share the link below to allow people to upload files to your directory." : "Orain beheko esteka parteka dezakezu jendeak zure direktoriora fitxategiak igo ditzan.",
+ "Share link" : "Partekatu esteka",
+ "Copy" : "Kopiatu",
+ "Send link via email" : "Bidali esteka posta elektronikoz",
+ "Enter an email address or paste a list" : "Sartu helbide elektroniko bat edo itsatsi zerrenda bat",
+ "Remove email" : "Kendu helbide elektronikoa",
+ "Select a destination" : "Hautatu helmuga bat",
+ "Select" : "Hautatu",
+ "What are you requesting?" : "Zer eskatu nahi duzu?",
+ "Request subject" : "Eskaeraren gaia",
+ "Birthday party photos, History assignment…" : "Urtebetetze festako argazkiak, Historiako apunteak...",
+ "Where should these files go?" : "Nora joan behar lukete fitxategi hauek?",
+ "Upload destination" : "Igo helmuga",
+ "Revert to default" : "Itzuli aukera lehenetsira",
+ "The uploaded files are visible only to you unless you choose to share them." : "Igotzen diren fitxategiak zeuk bakarrik ikus ditzakezu, partekatzea erabakitzen duzun artean.",
+ "Add a note" : "Gehitu oharra",
+ "Note for recipient" : "Hartzailearentzako oharra",
+ "Add a note to help people understand what you are requesting." : "Gehitu ohar bat jendeak uler dezan zer eskatzen ari zaren.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Hartzaileari eskatzen ari zarena ulertzen lagunduko dion estekak, data edo beste edozein informazio gehi ditzakezu.",
+ "Close" : "Itxi",
+ "_Send email and close_::_Send {count} emails and close_" : ["Bidali mezu elektronikoa eta itxi","Bidali {count} mezu elektroniko eta itxi"],
+ "Please select a folder, you cannot share the root directory." : "Aukeratu karpeta bat, ezin duzu erro karpeta partekatu.",
+ "File request created" : "Fitxategi eskaera ondo sortu da",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Fitxategi eskaera sortu da eta mezu elektronikoa bidali da","Fitxategi eskaera sortu da eta {count} mezu elektronikoak bidali dira"],
+ "Error creating the share: {errorMessage}" : "Errorea partekatzea sortzean: {errorMessage}",
+ "Error creating the share" : "Errorea partekatzea sortzean",
+ "Error sending emails: {errorMessage}" : "Errorea mezu elektronikoak bidaltzean: {errorMessage}",
+ "Error sending emails" : "Errorea mezu elektronikoak bidaltzean",
+ "Create a file request" : "Sortu fitxategi eskaera",
+ "Collect files from others even if they do not have an account." : "Bildu beste pertsona batzuen fitxategiak, nahiz eta beraiek kontua ez izan.",
+ "To ensure you can receive files, verify you have enough storage available." : "Fitxategiak jaso ditzakezula bermatzeko, ziurta ezazu badaukazula nahikoa biltegiratze leku.",
+ "File request" : "Fitxategi eskaera",
+ "Previous step" : "Aurreko urratsa",
+ "Cancel" : "Utzi",
+ "Cancel the file request creation" : "Utzi bertan behera fitxategi eskaera sortzea",
+ "Close without sending emails" : "Itxi mezu elektronikoak bidali gabe",
+ "Continue" : "Jarraitu",
"Error while toggling options" : "Errorea aukerak aldatzean",
- "Set default folder for accepted shares" : "Ezarri onartutako partekatzeen karpeta lehenetsia",
- "Reset" : "Berrezarri",
- "Reset folder to system default" : "Berrezarri karpeta sistemaren balio lehenetsietara",
+ "Accept shares from other accounts and groups by default" : "Onartu beste kontu eta talde batzuetako partekatzeak modu lehenetsian",
"Choose a default folder for accepted shares" : "Aukeratu karpeta lehenetsia onartutako akzioetarako",
"Invalid path selected" : "Bide baliogabea hautatu da",
"Unknown error" : "Errore ezezaguna",
- "Open Sharing Details" : "Ireki partekatzearen xehetasunak",
+ "Set default folder for accepted shares" : "Ezarri onartutako partekatzeen karpeta lehenetsia",
+ "Reset" : "Berrezarri",
+ "Reset folder to system default" : "Berrezarri karpeta sistemaren balio lehenetsietara",
+ "Share Expiration" : "Partekatzearen iraungitze-data",
"group" : "taldea",
"conversation" : "elkarrizketa",
"remote" : "urrunekoa",
"remote group" : "urruneko taldea",
"guest" : "gonbidatua",
+ "by {initiator}" : "{initiator}(e)k",
"Shared with the group {user} by {owner}" : "{owner} jabeak {user} taldearekin partekatua",
"Shared with the conversation {user} by {owner}" : "{owner} jabeak {user} elkarrizketarekin partekatua",
"Shared with {user} by {owner}" : "{owner} jabeak {user} erabiltzailearekin partekatua",
+ "Open Sharing Details" : "Ireki partekatzearen xehetasunak",
"Added by {initiator}" : "Honek gehitua: {initiator}",
"Via “{folder}”" : "“{folder}” bidez",
"Unshare" : "Ez partekatu",
- "Internal link" : "Barneko esteka",
"Cannot copy, please copy the link manually" : "Ezin izan da kopiatu. Kopiatu esteka eskuz",
- "Copy internal link to clipboard" : "Kopiatu barne esteka arbelera",
- "Link copied" : "Esteka kopiatu da",
- "Please enter the following required information before creating the share" : "Sartu ondorengo beharrezko informazioa partekatzea sortu aurretik",
- "Password protection (enforced)" : "Pasahitz bidez babestua (betearazita)",
- "Password protection" : "Pasahitz bidezko babesa",
- "Enter a password" : "Sartu pasahitz bat",
- "Expiration date (enforced)" : "Iraungitze-data (betearazita)",
- "Enter a date" : "Sartu data bat",
- "Create share" : "Sortu partekatzea",
- "Cancel" : "Utzi",
- "Customize link" : "Pertsonalizatu esteka",
- "Add another link" : "Gehitu beste esteka bat",
- "Create a new share link" : "Sortu partekatze esteka berria",
+ "Copy internal link" : "Kopiatu barne-esteka",
+ "Internal link" : "Barneko esteka",
"{shareWith} by {initiator}" : "{initiator} erabiltzaileak {shareWith} ",
"Shared via link by {initiator}" : "{initiator} erabiltzaileak esteka bidez partekatua",
+ "File request ({label})" : "Fitxategi eskaera ({label})",
"Mail share ({label})" : "Posta partekatzea ({label})",
"Share link ({label})" : "Partekatu ({label}) eskeka",
+ "Mail share" : "Posta partekatzea",
"Share link ({index})" : "Partekatu ({index}) esteka",
- "Share link" : "Partekatu esteka",
+ "Create public link" : "Sortu esteka publikoa",
"Actions for \"{title}\"" : "\"{title}\"-ren ekintzak",
- "Copy public link of \"{title}\" to clipboard" : "Kopiatu \"{title}\"-ren esteka publikoa arbelean",
"Error, please enter proper password and/or expiration date" : "Errorea, sartu dagokion pasahitza edo/eta iraungitze-data",
"Link share created" : "Esteka partekatzea sortu da",
"Error while creating the share" : "Errore bat gertatu da partekatzea sortzean",
+ "Please enter the following required information before creating the share" : "Sartu ondorengo beharrezko informazioa partekatzea sortu aurretik",
+ "Password protection (enforced)" : "Pasahitz bidez babestua (betearazita)",
+ "Password protection" : "Pasahitz bidezko babesa",
+ "Enter a password" : "Sartu pasahitz bat",
+ "Enable link expiration (enforced)" : "Gaitu esteken iraungitzea (betearazia)",
+ "Enable link expiration" : "Gaitu esteken iraungitzea",
+ "Enter expiration date (enforced)" : "Sartu esteken iraungitzea (betearazia)",
+ "Enter expiration date" : "Gaitu esteken iraungitzea",
+ "Create share" : "Sortu partekatzea",
+ "Customize link" : "Pertsonalizatu esteka",
+ "Generate QR code" : "Sortu QR kodea",
+ "Add another link" : "Gehitu beste esteka bat",
+ "Create a new share link" : "Sortu partekatze esteka berria",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Partekatzeko aukera bizkorrak, une honetan hautatutakoa \"{selectedOption}\" da",
"View only" : "Ikustea soilik",
"Can edit" : "Editatu dezake",
- "File drop" : "Fitxategiak jaregin",
"Custom permissions" : "Baimen pertsonalizatuak",
- "Search for share recipients" : "Bilatu partekatze-hartzaileak",
- "No recommendations. Start typing." : "Gomendiorik ez. Hasi idazten.",
"Resharing is not allowed" : "Birpartekatzea ez da onartzen",
"Name or email …" : "Izena edo posta ...",
"Name, email, or Federated Cloud ID …" : "Izena, posta, edo federatutako hodei IDa...",
"Searching …" : "Bilatzen…",
"No elements found." : "Ez da elementurik aurkitu.",
- "Search globally" : "Bilatu globalki",
+ "Search everywhere" : "Bilatu nonahi",
"Guest" : "Gonbidatua",
"Group" : "Taldea",
"Email" : "Posta elektronikoa",
- "Team" : "Taldea",
+ "Team" : "Lantaldea",
"Talk conversation" : "Talk elkarrizketa",
"Deck board" : "Deck mahaia",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "{server} zerbitzarian",
+ "Enter external recipients" : "Sartu kanpoko hartzaileak",
+ "Search for internal recipients" : "Bilatu barruko hartzaileak",
+ "Note from" : "Oharra bidali du",
+ "Note:" : "Oharra:",
+ "File drop" : "Fitxategiak jaregin",
+ "Upload files to {foldername}." : "Igo fitxategiak {foldername}(e)ra.",
+ "By uploading files, you agree to the terms of service." : "Fitxategiak igotzean, zerbitzu-baldintzak onartzen dituzu.",
+ "Successfully uploaded files" : "Fitxategiak ongi igo dira",
+ "View terms of service" : "Ikusi zerbitzu-balditzak",
+ "Terms of service" : "Erabilera baldintzak",
+ "Share with email {email}" : "Partekatu helbide elektronikoarekin {email}",
+ "Share with group" : "Partekatu taldearekin",
+ "Share in conversation" : "Partekatu elkarrizketan",
+ "Share with {user} on remote server {server}" : "Partekatu {user}-rekin urruneko zerbitzarian {server}",
+ "Share with remote group" : "Partekatu urruneko taldearekin",
+ "Share with guest" : "Partekatu gonbidatuarekin",
+ "Update share" : "Eguneratu partekatzea",
+ "Save share" : "Gorde partekatzea",
+ "Read" : "Irakurri",
+ "Create" : "Sortu",
+ "Edit" : "Aldatu",
+ "Share" : "Partekatu",
+ "Delete" : "Ezabatu",
+ "Password field cannot be empty" : "Pasahitz-eremua ezin da hutsik egon",
+ "Replace current password" : "Aldatu uneko pasahitza",
+ "Failed to generate a new token" : "Ezin izan da token berri bat sortu",
"Allow upload and editing" : "Onartu igotzea eta editatzea",
"Allow editing" : "Baimendu editatzea",
"Upload only" : "Igoera soilik",
"Advanced settings" : "Ezarpen aurreratuak",
- "Share label" : "partekatu etiketa",
+ "Share label" : "Partekatu etiketa",
+ "Share link token" : "Partekatzeko esteka-tokena",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Ezarri partekatze-estekaren token publikoa gogoratzeko erraza den zerbait, edo sortu token berria. Ez da gomendagarria informazio sentikorra duten partekatzeetako tokenak asma daitezkeenak erabiltzea.",
+ "Generating…" : "Sortzen...",
+ "Generate new token" : "Sortu token berria",
"Set password" : "Pasahitza ezarri",
- "Password" : "Pasahitza",
- "Password expires {passwordExpirationTime}" : "Pasahitza {passwordExpirationTime} iraungiko du",
+ "Password expires {passwordExpirationTime}" : "Pasahitza {passwordExpirationTime} iraungiko da",
"Password expired" : "Pasahitza iraungi da",
"Video verification" : "Bideo egiaztapena",
+ "Expiration date (enforced)" : "Iraungitze-data (betearazita)",
"Set expiration date" : "Ezarri iraungitze-data",
- "Expiration date" : "Iraungitze-data",
"Hide download" : "Ezkutatu deskarga",
- "Allow download" : "Baimendu deskarga",
+ "Allow download and sync" : "Baimendu deskargatu eta sinkronizatzea",
"Note to recipient" : "Oharra hartzailearentzat",
"Enter a note for the share recipient" : "Sartu ohar bat partekatzearen hartzailearentzat",
- "Read" : "Irakurri",
- "Create" : "Sortu",
- "Edit" : "Aldatu",
- "Share" : "Partekatu",
+ "Show files in grid view" : "Erakutsi fitxategiak sareta ikuspegian",
"Delete share" : "Ezabatu partekatzea",
- "Update share" : "Eguneratu partekatzea",
- "Save share" : "Gorde partekatzea",
"Others with access" : "Sarbidea duten beste erabiltzaileak",
+ "No other accounts with access found" : "Ez da aurkitu sarbidea duen beste konturik",
"Toggle list of others with access to this directory" : "Txandakatu direktorio honetara sarbidea duten beste erabiltzaileen zerrenda",
"Toggle list of others with access to this file" : "Txandakatu fitxategi honetara sarbidea duten beste erabiltzaileen zerrenda",
"Unable to fetch inherited shares" : "Ezin izan dira heredatutako partekatzeak eskuratu",
+ "Link shares" : "Lotu partekatzeak",
+ "Shares" : "Partekatzeak",
"Unable to load the shares list" : "Ezin izan da partekatzeen zerrenda kargatu",
"Expires {relativetime}" : "Iraungitzea: {relativetime}",
"this share just expired." : "partekatze hau oraintxe iraungi da.",
"Shared with you by {owner}" : "{owner} erabiltzaileak zurekin partekatua",
+ "Internal shares" : "Barneko partekatzeak",
+ "Internal shares explanation" : "Barneko partekatzeen azalpena ",
+ "External shares" : "Kanpoko sareak",
+ "External shares explanation" : "Kanpoko partekatzeen azalpena",
+ "Additional shares" : "Partekatze gehigarriak",
+ "Additional shares explanation" : "Partekatze gehigarrien azalpena",
+ "Link to a file" : "Esteka fitxategi batera",
"_Accept share_::_Accept shares_" : ["Onartu partekatzea","Onartu partekatzeak"],
"Open in Files" : "Ireki Fitxategiak aplikazioan",
"_Reject share_::_Reject shares_" : ["Ukatu partekatzea","Ukatu partekatzeak"],
"_Restore share_::_Restore shares_" : ["Berrezarri partekatzea","Berrezarri partekatzeak"],
"Shared" : "Partekatuta",
"Shared by {ownerDisplayName}" : "{ownerDisplayName}-(e)k partekatuta",
- "Link to a file" : "Esteka fitxategi batera",
- "Error creating the share: {errorMessage}" : "Errorea partekatzea sortzean: {errorMessage}",
- "Error creating the share" : "Errorea partekatzea sortzean",
- "Error updating the share: {errorMessage}" : " Errorea partekatzea eguneratzean {errorMessage}",
- "Error updating the share" : "Errorea partekatzea eguneratzen",
- "File \"{path}\" has been unshared" : "\"{path}\" fitxategiaren partekatzea eten da",
- "Folder \"{path}\" has been unshared" : "\"{path}\" karpetaren partekatzea eten da",
- "Share {propertyName} saved" : "Partekatu {propertyName} gordeta",
- "Shared by" : "Honek partekatua",
- "Shared with" : "Honekin partekatua",
- "Password created successfully" : "Pasahitza ongi sortu da",
- "Error generating password from password policy" : "Errorea pasahitz-gidalerrotik pasahitza sortzean",
- "Shared with you and the group {group} by {owner}" : "{owner} erabiltzaileak zu eta {group} taldearekin partekatuta",
- "Shared with you and {circle} by {owner}" : " {owner} erabiltzaileak zurekin eta {circle} zirkuluarekin partekatua",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} erabiltzaileak zu eta {conversation} elkarrizketarekin partekatua",
- "Shared with you in a conversation by {owner}" : "{owner} erabiltzaileak zurekin partekatua elkarrizketa batean",
- "Shares" : "Partekatzeak",
+ "Shared multiple times with different people" : "Hainbat aldiz partekatua pertsona ezberdinekin",
+ "Sharing options" : "Partekatze aukerak",
+ "Shared with others" : "Beste batzuekin partekatua",
+ "Create file request" : "Sortu fitxategi eskaera",
+ "Upload files to {foldername}" : "Igo fitxategiak {foldername}(e)ra",
+ "Public file share" : "Fitxategi partekatze publikoa",
+ "Publicly shared file." : "Partekatutako fitxategi publikoa.",
+ "No file" : "Fitxategirik ez",
+ "The file shared with you will show up here" : "Zurekin partekatutako fitxategia hemen agertuko da",
+ "Public share" : "Partekatze publikoa",
+ "Publicly shared files." : "Partekatutako fitxategi publikoak.",
+ "No files" : "Fitxategirik ez",
+ "Files and folders shared with you will show up here" : "Zurekin partekatutako fitxategi eta karpetak hemen agertuko dira",
"Overview of shared files." : "Partekatutako fitxategien ikuspegia.",
"No shares" : "Partekatzerik ez",
"Files and folders you shared or have been shared with you will show up here" : "Partekatu dituzun eta zurekin partekatutako fitxategi eta karpetak hemen agertuko dira",
@@ -239,7 +336,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Zurekin partekatuta dauden fitxategien zerrenda.",
"Nothing shared with you yet" : "Oraindik ez da ezer partekatu zurekin",
"Files and folders others shared with you will show up here" : "Zurekin partekatutako fitxategi eta karpetak hemen agertuko dira",
- "Shared with others" : "Beste batzuekin partekatua",
"List of files that you shared with others." : "Besteekin partekatu dituzun fitxategien zerrenda.",
"Nothing shared yet" : "Oraindik ez da ezer partekatu",
"Files and folders you shared will show up here" : "Partekatu dituzun fitxategi eta karpetak hemen agertuko dira",
@@ -247,6 +343,10 @@ OC.L10N.register(
"List of files that are shared by link." : "Esteka bidez partekatutako fitxategien zerrenda.",
"No shared links" : "Ez dago partekatutako estekarik",
"Files and folders you shared by link will show up here" : "Esteka bidez partekatutako fitxategi eta karpetak hemen agertuko dira",
+ "File requests" : "Fitxategi eskaerak",
+ "List of file requests." : "Fitxategi eskaeren zerrenda",
+ "No file requests" : "Ez da fitxategirik eskatu",
+ "File requests you have created will show up here" : "Sortu dituzun fitxategi-eskaerak hemen agertuko dira",
"Deleted shares" : "Ezabatutako partekatzeak",
"List of shares you left." : "Utzi dituzun partekatzeen zerrenda.",
"No deleted shares" : "Ezabatutako partekatzerik ez",
@@ -255,48 +355,76 @@ OC.L10N.register(
"List of unapproved shares." : "Onartu gabeko partekatzeen zerrenda.",
"No pending shares" : "Ez dago zain dagoen partekatzerik",
"Shares you have received but not approved will show up here" : "Jaso dituzun baina berretsi gabe dauden partekatzeak hemen agertukon dira",
+ "Error deleting the share" : "Errorea partekatzea ezabatzean",
+ "Error updating the share: {errorMessage}" : " Errorea partekatzea eguneratzean {errorMessage}",
+ "Error updating the share" : "Errorea partekatzea eguneratzen",
+ "File \"{path}\" has been unshared" : "\"{path}\" fitxategiaren partekatzea eten da",
+ "Folder \"{path}\" has been unshared" : "\"{path}\" karpetaren partekatzea eten da",
+ "Could not update share" : "Ezin izan da partekatzea eguneratu",
+ "Share saved" : "Partekatzea gordeta",
+ "Share expiry date saved" : "Partekatzearen iraungitze data gordeta",
+ "Share hide-download state saved" : "Partekatzearen ezkutatze-deskarga egoera gorde da",
+ "Share label saved" : "Partekatu etiketa gorde da",
+ "Share note for recipient saved" : "Partekatutako oharra hartzailearentzat gordeta",
+ "Share password saved" : "Partekatu pasahitza gorde da",
+ "Share permissions saved" : "Partekatze baimenak gordeta",
+ "Upload files to {folder}" : "Igo fitxategiak {folder}(e)ra",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName}-k zurekin karpeta bat partekatu du.",
+ "Shared by" : "Honek partekatua",
+ "Shared with" : "Honekin partekatua",
+ "Password created successfully" : "Pasahitza ongi sortu da",
+ "Error generating password from password policy" : "Errorea pasahitz-gidalerrotik pasahitza sortzean",
+ "Shared with you and the group {group} by {owner}" : "{owner} erabiltzaileak zu eta {group} taldearekin partekatuta",
+ "Shared with you and {circle} by {owner}" : " {owner} erabiltzaileak zurekin eta {circle} zirkuluarekin partekatua",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} erabiltzaileak zu eta {conversation} elkarrizketarekin partekatua",
+ "Shared with you in a conversation by {owner}" : "{owner} erabiltzaileak zurekin partekatua elkarrizketa batean",
+ "Share not found" : "Partekatzea ez da aurkitu",
+ "Back to %s" : "Itzuli %s(e)ra",
+ "Add to your Nextcloud" : "Gehitu zure Nextclouden",
+ "Waiting…" : "Itxaroten...",
+ "error" : "errorea",
+ "finished" : "amaitua",
+ "This will stop your current uploads." : "Honek zure uneko igoerak geldituko ditu.",
+ "Move or copy" : "Mugitu edo kopiatu",
+ "You can upload into this folder" : "Karpeta honetara igo dezakezu",
+ "Show list view" : "Erakutsi zerrenda ikuspegia",
+ "Show grid view" : "Erakutsi sareta-ikuspegia",
+ "No compatible server found at {remote}" : "Ez da zerbitzari bateragarririk aurkitu {remote} helbidean",
+ "Invalid server URL" : "Zerbitzari URL baliogabea",
+ "Failed to add the public link to your Nextcloud" : "Huts egin du esteka publikoa zure Nextcloudera gehitzean",
+ "You are not allowed to edit link shares that you don't own" : "Ezin dituzu editatu zureak ez diren partekatze estekak",
+ "Download all files" : "Deskargatu fitxategi guztiak",
+ "Link copied to clipboard" : "Arbelara kopiatutako esteka",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Helbide elektroniko 1 gehitu da dagoeneko","{count} helbide elektroniko gehitu dira dagoeneko"],
+ "_1 email address added_::_{count} email addresses added_" : ["Helbide elektroniko 1 gehitu da","{count} helbide elektroniko gehitu dira"],
+ "Copy to clipboard" : "Kopiatu arbelera",
+ "Copy internal link to clipboard" : "Kopiatu barne esteka arbelera",
+ "Only works for people with access to this folder" : "Karpeta honetara sarbidea duten pertsonentzat bakarrik funtzionatzen du",
+ "Only works for people with access to this file" : "Fitxategi honetara sarbidea duten pertsonentzat bakarrik funtzionatzen du",
+ "Copy public link of \"{title}\" to clipboard" : "Kopiatu \"{title}\"-ren esteka publikoa arbelean",
+ "Search globally" : "Bilatu globalki",
+ "Search for share recipients" : "Bilatu partekatze-hartzaileak",
+ "No recommendations. Start typing." : "Gomendiorik ez. Hasi idazten.",
+ "To upload files, you need to provide your name first." : "Fitxategiak igotzeko, zure izena eman behar duzu lehenik.",
+ "Enter your name" : "Sartu zure izena",
+ "Submit name" : "Sartu izena",
+ "Share with {userName}" : "Partekatu {userName}-rekin",
+ "Show sharing options" : "Erakutsi partekatzeko aukerak",
"Share note" : "Partekatu oharra",
"Upload files to %s" : "Igo fitxategiak hona: %s",
+ "%s shared a folder with you." : "%s zurekin karpeta bat partekatu du.",
"Note" : "Oharra",
"Select or drop files" : "Hautatu edo jaregin fitxategiak",
"Uploading files" : "Fitxategiak igotzen",
"Uploaded files:" : "Igotako fitxategiak:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Fitxategiak igotzean, %1$szerbitzu-baldintzak%2$s onartzen dituzu.",
- "Add to your Nextcloud" : "Gehitu zure Nextclouden",
- "Files and folders others share with you will show up here" : "Zurekin partekatutako fitxategi eta karpetak hemen agertuko dira",
- "Files and folders you share will show up here" : "Partekatzen dituzun fitxategi eta karpetak hemen agertuko dira",
- "Files and folders you share by link will show up here" : "Esteka bidez partekatzen dituzun fitxategi eta karpetak hemen agertuko dira",
- "Shares you deleted will show up here" : "Ezabatzen dituzun partekatzeak hemen agertuko dira",
- "Shares you have received but not confirmed will show up here" : "Jaso dituzun baina berretsi gabe dauden partekatzeak hemen agertuko dira",
- "Shares will show up here" : "Partekatzeak hemen agertuko dira",
- "Restore" : "Berrezarri",
- "Something happened. Unable to restore the share." : "Zerbait gertatu da. Ezin izan da partekatzea berrezarri.",
- "Something happened. Unable to accept the share." : "Zerbait gertatu da. Ezin izan da partekatzea onartu.",
- "Something happened. Unable to reject the share." : "Zerbait gertatu da. Ezin izan da partekatzea ukatu.",
- "No expiration date set" : "Ez da iraungitze-datarik ezarri",
- "Please specify a valid user" : "Zehaztu baliozko erabiltzaile bat",
- "Please specify a valid federated user ID" : "Mesedez, zehaztu baliozko erabiltzaile federatu baten id-a",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Aplikazio honek fitxategiak Nextcloud barruan partekatzeko aukera ematen die erabiltzaileei. Gaituz gero, administratzaileak aukeratu dezake zein taldek partekatu ditzaketen fitxategiak. Baimendutako erabiltzaileek Nextcloudeko beste erabiltzaileekin partekatu ditzakete fitxategi eta karpetak. Horretaz gain, administratzaileak esteka partekatzea aukera gaitzen badu, kanpoko esteka bat erabili daiteke Nextcloudetik kanpo dauden erabiltzaileekin fitxategiak partekatzeko. Administratzaileek pasahitzak eta iraungitze-datak betearazi ditzakete, eta zerbitzaritik zerbitzarira partekatze esteka bidez partekatzea gaitu dezakete, baita gailu mugikorretatik partekatzea ere.\nEzaugarria desgaitzeak partekatutako fitxategi eta karpetak kentzen ditu zerbitzaritik partekatzeen hartzaile guztientzat, baita sinkronizatutako bezero eta mugikorreko aplikazioetatik ere. Informazio gehiago eskuragarri dago Nextclouden dokumentazioan.",
- "Accept user and group shares by default" : "Onartu erabiltzaile eta taldeen partekatzeak modu lehenetsian",
- "Read only" : "Irakurtzeko soilik",
- "File drop (upload only)" : "Fitxategia jaregin (igotzeko soilik)",
- "Upload" : "Igo",
- "Bundled permissions" : "Baimen multzoak",
- "Only works for users with access to this folder" : "Karpeta atzitu dezaketen erabiltzaileentzat bakarrik funtzionatzen du",
- "Only works for users with access to this file" : "Fitxategi hau atzitu dezaketen erabiltzaileentzat bakarrik funtzionatzen du",
- "Circle" : "Zirkulua",
- "Update" : "Eguneratu",
- "Share with " : "Partekatu honekin",
- "No other users with access found" : "Ez da sarbidea duen erabiltzailerik aurkitu",
- "No entries found in this folder" : "Karpeta honetan ez da sarreraik aurkitu",
"Name" : "Izena",
- "Share time" : "Partekatzearen ordua",
- "Sorry, this link does not seem to work anymore." : "Badirudi esteka honek ez duela funtzionatzen.",
- "Reasons might be:" : "Arrazoiak hurrengoak litezke:",
- "the item was removed" : "fitxategia kendu da",
- "the link expired" : "esteka iraungi da",
- "sharing is disabled" : "partekatzea desgaituta dago",
- "For more info, please ask the person who sent this link." : "Informazio gehiagorako, galdetu esteka hau bidali zuen pertsonari",
- "Share with" : "Partekatu honekin"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Erabili metodo hau zure erakundeko banako edo taldeekin fitxategiak partekatzeko. Hartzaileak dagoeneko baimena badu partekatutako elementurako baina ezin badu aurkitu, bidali iezaiozu barneko partekatze-esteka, sarbidea errazteko.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Erabili metodo hau zure erakundeaz kanpoko banako edo erakundeekin fitxategiak partekatzeko. Fitxategiak eta karpetak parteka ditzakezu esteka publikoen bidez edo helbide elektronikoen bidez. Bestelako Nextcloud kontuetara ere parteka ditzakezu, beste instantziatan daudenak, haien federatutako hodeiaren ID-a erabiliz.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Barneko zein kanpoko partekatzeetan sartzen ez diren partekatzeak. Hauetakoren bat aplikazioetatik edo beste iturri batzuetatik etorritako partekatzeak izan daitezke.",
+ "Share with accounts, teams, federated cloud id" : "Partekatu kontuekin, taldeekin edo federatutako hodeien ID-ekin",
+ "Share with accounts and teams" : "Partekatu kontuekin eta taldeekin",
+ "Email, federated cloud id" : "Posta elektroniko, federatutako hodeien ID",
+ "Filename must not be empty." : "Fitxategi-izenak ez du hutsik egon behar."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/eu.json b/apps/files_sharing/l10n/eu.json
index e5350f40a1c..2470b560a0f 100644
--- a/apps/files_sharing/l10n/eu.json
+++ b/apps/files_sharing/l10n/eu.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Itxaroten...",
- "error" : "errorea",
- "finished" : "amaitua",
- "This will stop your current uploads." : "Honek zure uneko igoerak geldituko ditu.",
- "Move or copy" : "Mugitu edo kopiatu",
- "Download" : "Deskargatu",
- "Delete" : "Ezabatu",
- "You can upload into this folder" : "Karpeta honetara igo dezakezu",
- "Terms of service" : "Erabilera baldintzak",
- "Show list view" : "Erakutsi zerrenda ikuspegia",
- "Show grid view" : "Erakutsi sareta-ikuspegia",
- "No compatible server found at {remote}" : "Ez da zerbitzari bateragarririk aurkitu {remote} helbidean",
- "Invalid server URL" : "Zerbitzari URL baliogabea",
- "Failed to add the public link to your Nextcloud" : "Huts egin du esteka publikoa zure Nextcloudera gehitzean",
"File shares" : "Fitxategi partekatzeak",
"Downloaded via public link" : "Esteka publikoaren bidez deskargatuta",
"Downloaded by {email}" : "{email} erabiltzaileak deskargatua",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "{file} fitxategia {user} erabiltzailearekin partekatzea iraungi da",
"Share for file {file} expired" : "{file} fitxategia partekatzea iraungi da",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Posta elektronikoz edo esteka publiko bidez partekatutako fitxategi edo karpeta bat <strong>deskargatu</strong> da",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Fitxategiak postaz edo esteka publikoz partekatutako karpeta batera <strong>igo</strong> dira",
"A file or folder was shared from <strong>another server</strong>" : "Fitxategia edo karpeta bat partekatu da <strong>beste zerbitzari batetik</strong>",
- "Files" : "Fitxategiak",
+ "Sharing" : "Partekatzea",
"A file or folder has been <strong>shared</strong>" : "Fitxategia edo karpeta bat <strong>partekatu</strong> da",
"Shared link" : "Partekatutako esteka",
"Wrong share ID, share does not exist" : "Partekatzeko ID okerra, partekatzea ez dago",
@@ -76,32 +63,46 @@
"Please specify a file or folder path" : "Zehaztu fitxategi edo karpetaren bide bat",
"Wrong path, file/folder does not exist" : "Bide okerra, fitxategia/karpeta ez da existitzen",
"Could not create share" : "Ezin izan da partekatzea sortu",
- "Invalid permissions" : "Baimen baliogabeak",
- "Invalid date, date format must be YYYY-MM-DD" : "Data baliogabea, dataren formatuak UUUU-HH-EE izan behar du",
+ "Please specify a valid account to share with" : "Zehaztu baliozko kontu bat partekatzeko",
"Group sharing is disabled by the administrator" : "Administratzaileak taldeekin partekatzea desgaitu du",
"Please specify a valid group" : "Zehaztu baliozko talde bat",
"Public link sharing is disabled by the administrator" : "Administratzaileak estekak publikoki partekatzea desgaitu du",
- "Public upload disabled by the administrator" : "Administratzaileak igoera publikoak desgaitu ditu",
- "Public upload is only possible for publicly shared folders" : "Igoera publikoa publikoki partekatutako karpetetan egin daiteke soilik",
+ "Please specify a valid email address" : "Zehaztu baliozko helbide elektroniko bat",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : " %s Nextcloud Talk-etik pasahitza bidaliz partekatzeak huts egin du, Nextcloud Talk ez dagoelako gaituta",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : " %1$s partekatzeak huts egin du, atzealdeak %2$s motako partekatzeak ez dituelako onartzen",
+ "Please specify a valid federated account ID" : "Zehaztu baliozko federatutako kontu ID bat",
"Please specify a valid federated group ID" : "Mesedez, zehaztu baliozko talde federatu baten id-a",
- "You cannot share to a Circle if the app is not enabled" : "Ezin duzu zirkulu batekin partekatu aplikazioa gaituta ez badago",
- "Please specify a valid circle" : "Zehaztu baliozko zirkulu bat",
+ "You cannot share to a Team if the app is not enabled" : "Ezin duzu talde batekin partekatu aplikazioa gaituta ez badago",
+ "Please specify a valid team" : "Zehaztu baliozko lantalde bat",
"Sharing %s failed because the back end does not support room shares" : "%s partekatzeak huts egin du, atzealdeak ez duelako gelak partekatzea onartzen",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "%s partekatzeak huts egin du atzealdeak ez dituelako ScienceMesh parteatzeak onartzen",
"Unknown share type" : "Partekatze mota ezezaguna",
"Not a directory" : "Ez da direktorio bat",
"Could not lock node" : "Ezin izan da nodoa blokeatu",
- "Could not lock path" : "Ezin izan da bidea blokeatu",
- "Wrong or no update parameter given" : "Eguneraketa parametrorik ez da eman edo okerra da",
+ "Public upload is only possible for publicly shared folders" : "Igoera publikoa publikoki partekatutako karpetetan egin daiteke soilik",
"Share must at least have READ or CREATE permissions" : "Partekatzeak gutxienez IRAKURRI edo SORTU egiteko baimenak behar ditu",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Partekatzeak IRAKURRI egiteko baimenak behar ditu, EGUNERATU edo EZABATU baimenak baldin badauzka",
+ "Public upload disabled by the administrator" : "Administratzaileak igoera publikoak desgaitu ditu",
+ "Could not lock path" : "Ezin izan da bidea blokeatu",
+ "no sharing rights on this item" : "Ez dago baimenik fitxategi hau partekatzeko",
+ "You are not allowed to edit incoming shares" : "Ez duzu baimenik zuri partekaturikoak editatzeko",
+ "Wrong or no update parameter given" : "Eguneraketa parametrorik ez da eman edo okerra da",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Nextcloud Talk-ek pasahitza bidaltzeak\" huts egin du ez dagoelako Nextcloud Talk gaituta fitxategi edo karpeta bat partekatzeko.",
+ "Custom share link tokens have been disabled by the administrator" : "Administratzaileak esteka pertsonalizatuen tokenak sortzeko aukera ezgaitu du",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tokenek gutxienez karaktere 1 izan behar dute, eta letrak, zenbakiak edo marratxo bat baino ezin dituzte eduki",
+ "Invalid date. Format must be YYYY-MM-DD" : "Data baliogabea. UUU-HH-EE gisako formatua izan behar du",
+ "No sharing rights on this item" : "Ez dago baimenik fitxategi hau partekatzeko",
+ "Invalid share attributes provided: \"%s\"" : "Baliogabeko partekatze atributuak eman dira: \"%s\"",
+ "You are not allowed to send mail notifications" : "Ezin dituzu email bidezko jakinarazpenak bidali",
+ "No mail notification configured for this share type" : "Partekatze mota honentzat ez dago email jakinarazpenik konfiguratuta",
+ "Wrong password" : "Pasahitz okerra",
+ "Error while sending mail notification" : "Errorea email jakinarazpena bidaltzean",
+ "Failed to generate a unique token" : "Ezin izan da token bakar bat sortu",
+ "This share does not exist or is no longer available" : "Partekatze hau ez dago edo jada ez dago erabilgarri",
"shared by %s" : "%s erabiltzaileak partekatua",
- "Download all files" : "Deskargatu fitxategi guztiak",
- "Direct link" : "Esteka zuzena",
+ "Download" : "Deskargatu",
"Add to your %s" : "Gehitu zure %s-era",
+ "Direct link" : "Esteka zuzena",
"Share API is disabled" : "Partekatze API-a desgaituta dago",
"File sharing" : "Fitxategien partekatzea",
"Share will expire tomorrow" : "Partekatzea bihar iraungiko da",
@@ -110,126 +111,222 @@
"You received {share} to group {group} as a share by {user}" : "{share} {group} taldearekin partekatzea jaso duzu {user} erabiltzailearengandik",
"Accept" : "Onartu",
"Decline" : "Uko egin",
- "Sharing" : "Partekatzea",
+ "Remember to upload the files to %s" : "Gogoratu fitxategiak %s(e)ra igo behar dituzula",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Atsegin handiz gogorarazi nahi dizugu oraindik ez duzula fitxategirik igo partekatutako karpetara.",
+ "Open \"%s\"" : "Ireki «%s»",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Aplikazio honek Nextcloud-en fitxategiak partekatzeko aukera ematen du. Gaituta badago, administratzaileak aukeratu dezake zein taldek parteka ditzaketen fitxategiak. Ondoren, baimendutako pertsonek fitxategiak eta karpetak parteka ditzakete Nextcloud-eko beste kontu eta talde batzuekin. Gainera, administratzaileak partekatzeko estekaren funtzioa gaitzen badu, kanpoko esteka bat erabil daiteke fitxategiak Nextcloud-etik kanpoko beste pertsonekin partekatzeko. Administratzaileek ere ezar ditzakete pasahitzak eta iraungitze-datak, bai eta gaitu zerbitzaritik zerbitzarira fitxategiak esteken bidez partekatzea, baita gailu mugikorretatik partekatzea ere.\nFuntzioa desaktibatuz gero, zerbitzarian partekatutako fitxategiak eta karpetak kentzen dira partekatutako hartzaile guztientzat, baita sinkronizazio-bezeroetan eta mugikorreko aplikazioetan ere. Informazio gehiago eskuragarri dago Nextcloud Dokumentazioan.",
+ "People" : "Jendea",
+ "Filter accounts" : "Iragazi kontuak",
+ "The request will expire on {date} at midnight and will be password protected." : "Eskaera {date} egunean iraungiko da gauerdian eta pasahitzez babestuta egongo da.",
+ "The request will expire on {date} at midnight." : "Eskaera {date} egunean iraungiko da gauerdian.",
+ "The request will be password protected." : "Eskaera pasahitzez babestuta egongo da.",
+ "When should the request expire?" : "Noiz iraungi beharko luke eskaerak?",
+ "Set a submission expiration date" : "Ezarri bidalketaren iraungitze-data",
+ "Expiration date" : "Iraungitze-data",
+ "Select a date" : "Hautatu data bat",
+ "Your administrator has enforced a {count} days expiration policy." : "Zure administratzaileak {count} eguneko iraungitze-politika ezarri du. ",
+ "What password should be used for the request?" : "Zein pasahitz erabili behar litzateke eskaera honetarako?",
+ "Set a password" : "Ezarri pasahitz bat",
+ "Password" : "Pasahitza",
+ "Enter a valid password" : "Sartu baliozko pasahitz bat",
+ "Generate a new password" : "Sortu pasahitz berria",
+ "Your administrator has enforced a password protection." : "Zure administratzaileak pasahitzez babestu behar dela ezarri du.",
+ "Automatically copying failed, please copy the share link manually" : "Autimatikoki kopiatzeak huts egin du, kopiatu eskuz partekatze esteka",
+ "Link copied" : "Esteka kopiatu da",
+ "Email already added" : "Helbide elektronikoa dagoeneko gehituta dago",
+ "Invalid email address" : "Baliogabeko helbide elektronikoa",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Ondorengo helbide elektronikoa ez da baliozkoa: {emails}","Ondorengo helbide elektronikoak ez dira baliozkoak: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["Helbide elektroniko {count} gehitu da dagoeneko","{count} helbide elektroniko gehitu dira dagoeneko"],
+ "_{count} email address added_::_{count} email addresses added_" : ["Helbide elektroniko {count} gehitu da","{count} helbide elektroniko gehitu dira"],
+ "You can now share the link below to allow people to upload files to your directory." : "Orain beheko esteka parteka dezakezu jendeak zure direktoriora fitxategiak igo ditzan.",
+ "Share link" : "Partekatu esteka",
+ "Copy" : "Kopiatu",
+ "Send link via email" : "Bidali esteka posta elektronikoz",
+ "Enter an email address or paste a list" : "Sartu helbide elektroniko bat edo itsatsi zerrenda bat",
+ "Remove email" : "Kendu helbide elektronikoa",
+ "Select a destination" : "Hautatu helmuga bat",
+ "Select" : "Hautatu",
+ "What are you requesting?" : "Zer eskatu nahi duzu?",
+ "Request subject" : "Eskaeraren gaia",
+ "Birthday party photos, History assignment…" : "Urtebetetze festako argazkiak, Historiako apunteak...",
+ "Where should these files go?" : "Nora joan behar lukete fitxategi hauek?",
+ "Upload destination" : "Igo helmuga",
+ "Revert to default" : "Itzuli aukera lehenetsira",
+ "The uploaded files are visible only to you unless you choose to share them." : "Igotzen diren fitxategiak zeuk bakarrik ikus ditzakezu, partekatzea erabakitzen duzun artean.",
+ "Add a note" : "Gehitu oharra",
+ "Note for recipient" : "Hartzailearentzako oharra",
+ "Add a note to help people understand what you are requesting." : "Gehitu ohar bat jendeak uler dezan zer eskatzen ari zaren.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Hartzaileari eskatzen ari zarena ulertzen lagunduko dion estekak, data edo beste edozein informazio gehi ditzakezu.",
+ "Close" : "Itxi",
+ "_Send email and close_::_Send {count} emails and close_" : ["Bidali mezu elektronikoa eta itxi","Bidali {count} mezu elektroniko eta itxi"],
+ "Please select a folder, you cannot share the root directory." : "Aukeratu karpeta bat, ezin duzu erro karpeta partekatu.",
+ "File request created" : "Fitxategi eskaera ondo sortu da",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Fitxategi eskaera sortu da eta mezu elektronikoa bidali da","Fitxategi eskaera sortu da eta {count} mezu elektronikoak bidali dira"],
+ "Error creating the share: {errorMessage}" : "Errorea partekatzea sortzean: {errorMessage}",
+ "Error creating the share" : "Errorea partekatzea sortzean",
+ "Error sending emails: {errorMessage}" : "Errorea mezu elektronikoak bidaltzean: {errorMessage}",
+ "Error sending emails" : "Errorea mezu elektronikoak bidaltzean",
+ "Create a file request" : "Sortu fitxategi eskaera",
+ "Collect files from others even if they do not have an account." : "Bildu beste pertsona batzuen fitxategiak, nahiz eta beraiek kontua ez izan.",
+ "To ensure you can receive files, verify you have enough storage available." : "Fitxategiak jaso ditzakezula bermatzeko, ziurta ezazu badaukazula nahikoa biltegiratze leku.",
+ "File request" : "Fitxategi eskaera",
+ "Previous step" : "Aurreko urratsa",
+ "Cancel" : "Utzi",
+ "Cancel the file request creation" : "Utzi bertan behera fitxategi eskaera sortzea",
+ "Close without sending emails" : "Itxi mezu elektronikoak bidali gabe",
+ "Continue" : "Jarraitu",
"Error while toggling options" : "Errorea aukerak aldatzean",
- "Set default folder for accepted shares" : "Ezarri onartutako partekatzeen karpeta lehenetsia",
- "Reset" : "Berrezarri",
- "Reset folder to system default" : "Berrezarri karpeta sistemaren balio lehenetsietara",
+ "Accept shares from other accounts and groups by default" : "Onartu beste kontu eta talde batzuetako partekatzeak modu lehenetsian",
"Choose a default folder for accepted shares" : "Aukeratu karpeta lehenetsia onartutako akzioetarako",
"Invalid path selected" : "Bide baliogabea hautatu da",
"Unknown error" : "Errore ezezaguna",
- "Open Sharing Details" : "Ireki partekatzearen xehetasunak",
+ "Set default folder for accepted shares" : "Ezarri onartutako partekatzeen karpeta lehenetsia",
+ "Reset" : "Berrezarri",
+ "Reset folder to system default" : "Berrezarri karpeta sistemaren balio lehenetsietara",
+ "Share Expiration" : "Partekatzearen iraungitze-data",
"group" : "taldea",
"conversation" : "elkarrizketa",
"remote" : "urrunekoa",
"remote group" : "urruneko taldea",
"guest" : "gonbidatua",
+ "by {initiator}" : "{initiator}(e)k",
"Shared with the group {user} by {owner}" : "{owner} jabeak {user} taldearekin partekatua",
"Shared with the conversation {user} by {owner}" : "{owner} jabeak {user} elkarrizketarekin partekatua",
"Shared with {user} by {owner}" : "{owner} jabeak {user} erabiltzailearekin partekatua",
+ "Open Sharing Details" : "Ireki partekatzearen xehetasunak",
"Added by {initiator}" : "Honek gehitua: {initiator}",
"Via “{folder}”" : "“{folder}” bidez",
"Unshare" : "Ez partekatu",
- "Internal link" : "Barneko esteka",
"Cannot copy, please copy the link manually" : "Ezin izan da kopiatu. Kopiatu esteka eskuz",
- "Copy internal link to clipboard" : "Kopiatu barne esteka arbelera",
- "Link copied" : "Esteka kopiatu da",
- "Please enter the following required information before creating the share" : "Sartu ondorengo beharrezko informazioa partekatzea sortu aurretik",
- "Password protection (enforced)" : "Pasahitz bidez babestua (betearazita)",
- "Password protection" : "Pasahitz bidezko babesa",
- "Enter a password" : "Sartu pasahitz bat",
- "Expiration date (enforced)" : "Iraungitze-data (betearazita)",
- "Enter a date" : "Sartu data bat",
- "Create share" : "Sortu partekatzea",
- "Cancel" : "Utzi",
- "Customize link" : "Pertsonalizatu esteka",
- "Add another link" : "Gehitu beste esteka bat",
- "Create a new share link" : "Sortu partekatze esteka berria",
+ "Copy internal link" : "Kopiatu barne-esteka",
+ "Internal link" : "Barneko esteka",
"{shareWith} by {initiator}" : "{initiator} erabiltzaileak {shareWith} ",
"Shared via link by {initiator}" : "{initiator} erabiltzaileak esteka bidez partekatua",
+ "File request ({label})" : "Fitxategi eskaera ({label})",
"Mail share ({label})" : "Posta partekatzea ({label})",
"Share link ({label})" : "Partekatu ({label}) eskeka",
+ "Mail share" : "Posta partekatzea",
"Share link ({index})" : "Partekatu ({index}) esteka",
- "Share link" : "Partekatu esteka",
+ "Create public link" : "Sortu esteka publikoa",
"Actions for \"{title}\"" : "\"{title}\"-ren ekintzak",
- "Copy public link of \"{title}\" to clipboard" : "Kopiatu \"{title}\"-ren esteka publikoa arbelean",
"Error, please enter proper password and/or expiration date" : "Errorea, sartu dagokion pasahitza edo/eta iraungitze-data",
"Link share created" : "Esteka partekatzea sortu da",
"Error while creating the share" : "Errore bat gertatu da partekatzea sortzean",
+ "Please enter the following required information before creating the share" : "Sartu ondorengo beharrezko informazioa partekatzea sortu aurretik",
+ "Password protection (enforced)" : "Pasahitz bidez babestua (betearazita)",
+ "Password protection" : "Pasahitz bidezko babesa",
+ "Enter a password" : "Sartu pasahitz bat",
+ "Enable link expiration (enforced)" : "Gaitu esteken iraungitzea (betearazia)",
+ "Enable link expiration" : "Gaitu esteken iraungitzea",
+ "Enter expiration date (enforced)" : "Sartu esteken iraungitzea (betearazia)",
+ "Enter expiration date" : "Gaitu esteken iraungitzea",
+ "Create share" : "Sortu partekatzea",
+ "Customize link" : "Pertsonalizatu esteka",
+ "Generate QR code" : "Sortu QR kodea",
+ "Add another link" : "Gehitu beste esteka bat",
+ "Create a new share link" : "Sortu partekatze esteka berria",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Partekatzeko aukera bizkorrak, une honetan hautatutakoa \"{selectedOption}\" da",
"View only" : "Ikustea soilik",
"Can edit" : "Editatu dezake",
- "File drop" : "Fitxategiak jaregin",
"Custom permissions" : "Baimen pertsonalizatuak",
- "Search for share recipients" : "Bilatu partekatze-hartzaileak",
- "No recommendations. Start typing." : "Gomendiorik ez. Hasi idazten.",
"Resharing is not allowed" : "Birpartekatzea ez da onartzen",
"Name or email …" : "Izena edo posta ...",
"Name, email, or Federated Cloud ID …" : "Izena, posta, edo federatutako hodei IDa...",
"Searching …" : "Bilatzen…",
"No elements found." : "Ez da elementurik aurkitu.",
- "Search globally" : "Bilatu globalki",
+ "Search everywhere" : "Bilatu nonahi",
"Guest" : "Gonbidatua",
"Group" : "Taldea",
"Email" : "Posta elektronikoa",
- "Team" : "Taldea",
+ "Team" : "Lantaldea",
"Talk conversation" : "Talk elkarrizketa",
"Deck board" : "Deck mahaia",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "{server} zerbitzarian",
+ "Enter external recipients" : "Sartu kanpoko hartzaileak",
+ "Search for internal recipients" : "Bilatu barruko hartzaileak",
+ "Note from" : "Oharra bidali du",
+ "Note:" : "Oharra:",
+ "File drop" : "Fitxategiak jaregin",
+ "Upload files to {foldername}." : "Igo fitxategiak {foldername}(e)ra.",
+ "By uploading files, you agree to the terms of service." : "Fitxategiak igotzean, zerbitzu-baldintzak onartzen dituzu.",
+ "Successfully uploaded files" : "Fitxategiak ongi igo dira",
+ "View terms of service" : "Ikusi zerbitzu-balditzak",
+ "Terms of service" : "Erabilera baldintzak",
+ "Share with email {email}" : "Partekatu helbide elektronikoarekin {email}",
+ "Share with group" : "Partekatu taldearekin",
+ "Share in conversation" : "Partekatu elkarrizketan",
+ "Share with {user} on remote server {server}" : "Partekatu {user}-rekin urruneko zerbitzarian {server}",
+ "Share with remote group" : "Partekatu urruneko taldearekin",
+ "Share with guest" : "Partekatu gonbidatuarekin",
+ "Update share" : "Eguneratu partekatzea",
+ "Save share" : "Gorde partekatzea",
+ "Read" : "Irakurri",
+ "Create" : "Sortu",
+ "Edit" : "Aldatu",
+ "Share" : "Partekatu",
+ "Delete" : "Ezabatu",
+ "Password field cannot be empty" : "Pasahitz-eremua ezin da hutsik egon",
+ "Replace current password" : "Aldatu uneko pasahitza",
+ "Failed to generate a new token" : "Ezin izan da token berri bat sortu",
"Allow upload and editing" : "Onartu igotzea eta editatzea",
"Allow editing" : "Baimendu editatzea",
"Upload only" : "Igoera soilik",
"Advanced settings" : "Ezarpen aurreratuak",
- "Share label" : "partekatu etiketa",
+ "Share label" : "Partekatu etiketa",
+ "Share link token" : "Partekatzeko esteka-tokena",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Ezarri partekatze-estekaren token publikoa gogoratzeko erraza den zerbait, edo sortu token berria. Ez da gomendagarria informazio sentikorra duten partekatzeetako tokenak asma daitezkeenak erabiltzea.",
+ "Generating…" : "Sortzen...",
+ "Generate new token" : "Sortu token berria",
"Set password" : "Pasahitza ezarri",
- "Password" : "Pasahitza",
- "Password expires {passwordExpirationTime}" : "Pasahitza {passwordExpirationTime} iraungiko du",
+ "Password expires {passwordExpirationTime}" : "Pasahitza {passwordExpirationTime} iraungiko da",
"Password expired" : "Pasahitza iraungi da",
"Video verification" : "Bideo egiaztapena",
+ "Expiration date (enforced)" : "Iraungitze-data (betearazita)",
"Set expiration date" : "Ezarri iraungitze-data",
- "Expiration date" : "Iraungitze-data",
"Hide download" : "Ezkutatu deskarga",
- "Allow download" : "Baimendu deskarga",
+ "Allow download and sync" : "Baimendu deskargatu eta sinkronizatzea",
"Note to recipient" : "Oharra hartzailearentzat",
"Enter a note for the share recipient" : "Sartu ohar bat partekatzearen hartzailearentzat",
- "Read" : "Irakurri",
- "Create" : "Sortu",
- "Edit" : "Aldatu",
- "Share" : "Partekatu",
+ "Show files in grid view" : "Erakutsi fitxategiak sareta ikuspegian",
"Delete share" : "Ezabatu partekatzea",
- "Update share" : "Eguneratu partekatzea",
- "Save share" : "Gorde partekatzea",
"Others with access" : "Sarbidea duten beste erabiltzaileak",
+ "No other accounts with access found" : "Ez da aurkitu sarbidea duen beste konturik",
"Toggle list of others with access to this directory" : "Txandakatu direktorio honetara sarbidea duten beste erabiltzaileen zerrenda",
"Toggle list of others with access to this file" : "Txandakatu fitxategi honetara sarbidea duten beste erabiltzaileen zerrenda",
"Unable to fetch inherited shares" : "Ezin izan dira heredatutako partekatzeak eskuratu",
+ "Link shares" : "Lotu partekatzeak",
+ "Shares" : "Partekatzeak",
"Unable to load the shares list" : "Ezin izan da partekatzeen zerrenda kargatu",
"Expires {relativetime}" : "Iraungitzea: {relativetime}",
"this share just expired." : "partekatze hau oraintxe iraungi da.",
"Shared with you by {owner}" : "{owner} erabiltzaileak zurekin partekatua",
+ "Internal shares" : "Barneko partekatzeak",
+ "Internal shares explanation" : "Barneko partekatzeen azalpena ",
+ "External shares" : "Kanpoko sareak",
+ "External shares explanation" : "Kanpoko partekatzeen azalpena",
+ "Additional shares" : "Partekatze gehigarriak",
+ "Additional shares explanation" : "Partekatze gehigarrien azalpena",
+ "Link to a file" : "Esteka fitxategi batera",
"_Accept share_::_Accept shares_" : ["Onartu partekatzea","Onartu partekatzeak"],
"Open in Files" : "Ireki Fitxategiak aplikazioan",
"_Reject share_::_Reject shares_" : ["Ukatu partekatzea","Ukatu partekatzeak"],
"_Restore share_::_Restore shares_" : ["Berrezarri partekatzea","Berrezarri partekatzeak"],
"Shared" : "Partekatuta",
"Shared by {ownerDisplayName}" : "{ownerDisplayName}-(e)k partekatuta",
- "Link to a file" : "Esteka fitxategi batera",
- "Error creating the share: {errorMessage}" : "Errorea partekatzea sortzean: {errorMessage}",
- "Error creating the share" : "Errorea partekatzea sortzean",
- "Error updating the share: {errorMessage}" : " Errorea partekatzea eguneratzean {errorMessage}",
- "Error updating the share" : "Errorea partekatzea eguneratzen",
- "File \"{path}\" has been unshared" : "\"{path}\" fitxategiaren partekatzea eten da",
- "Folder \"{path}\" has been unshared" : "\"{path}\" karpetaren partekatzea eten da",
- "Share {propertyName} saved" : "Partekatu {propertyName} gordeta",
- "Shared by" : "Honek partekatua",
- "Shared with" : "Honekin partekatua",
- "Password created successfully" : "Pasahitza ongi sortu da",
- "Error generating password from password policy" : "Errorea pasahitz-gidalerrotik pasahitza sortzean",
- "Shared with you and the group {group} by {owner}" : "{owner} erabiltzaileak zu eta {group} taldearekin partekatuta",
- "Shared with you and {circle} by {owner}" : " {owner} erabiltzaileak zurekin eta {circle} zirkuluarekin partekatua",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} erabiltzaileak zu eta {conversation} elkarrizketarekin partekatua",
- "Shared with you in a conversation by {owner}" : "{owner} erabiltzaileak zurekin partekatua elkarrizketa batean",
- "Shares" : "Partekatzeak",
+ "Shared multiple times with different people" : "Hainbat aldiz partekatua pertsona ezberdinekin",
+ "Sharing options" : "Partekatze aukerak",
+ "Shared with others" : "Beste batzuekin partekatua",
+ "Create file request" : "Sortu fitxategi eskaera",
+ "Upload files to {foldername}" : "Igo fitxategiak {foldername}(e)ra",
+ "Public file share" : "Fitxategi partekatze publikoa",
+ "Publicly shared file." : "Partekatutako fitxategi publikoa.",
+ "No file" : "Fitxategirik ez",
+ "The file shared with you will show up here" : "Zurekin partekatutako fitxategia hemen agertuko da",
+ "Public share" : "Partekatze publikoa",
+ "Publicly shared files." : "Partekatutako fitxategi publikoak.",
+ "No files" : "Fitxategirik ez",
+ "Files and folders shared with you will show up here" : "Zurekin partekatutako fitxategi eta karpetak hemen agertuko dira",
"Overview of shared files." : "Partekatutako fitxategien ikuspegia.",
"No shares" : "Partekatzerik ez",
"Files and folders you shared or have been shared with you will show up here" : "Partekatu dituzun eta zurekin partekatutako fitxategi eta karpetak hemen agertuko dira",
@@ -237,7 +334,6 @@
"List of files that are shared with you." : "Zurekin partekatuta dauden fitxategien zerrenda.",
"Nothing shared with you yet" : "Oraindik ez da ezer partekatu zurekin",
"Files and folders others shared with you will show up here" : "Zurekin partekatutako fitxategi eta karpetak hemen agertuko dira",
- "Shared with others" : "Beste batzuekin partekatua",
"List of files that you shared with others." : "Besteekin partekatu dituzun fitxategien zerrenda.",
"Nothing shared yet" : "Oraindik ez da ezer partekatu",
"Files and folders you shared will show up here" : "Partekatu dituzun fitxategi eta karpetak hemen agertuko dira",
@@ -245,6 +341,10 @@
"List of files that are shared by link." : "Esteka bidez partekatutako fitxategien zerrenda.",
"No shared links" : "Ez dago partekatutako estekarik",
"Files and folders you shared by link will show up here" : "Esteka bidez partekatutako fitxategi eta karpetak hemen agertuko dira",
+ "File requests" : "Fitxategi eskaerak",
+ "List of file requests." : "Fitxategi eskaeren zerrenda",
+ "No file requests" : "Ez da fitxategirik eskatu",
+ "File requests you have created will show up here" : "Sortu dituzun fitxategi-eskaerak hemen agertuko dira",
"Deleted shares" : "Ezabatutako partekatzeak",
"List of shares you left." : "Utzi dituzun partekatzeen zerrenda.",
"No deleted shares" : "Ezabatutako partekatzerik ez",
@@ -253,48 +353,76 @@
"List of unapproved shares." : "Onartu gabeko partekatzeen zerrenda.",
"No pending shares" : "Ez dago zain dagoen partekatzerik",
"Shares you have received but not approved will show up here" : "Jaso dituzun baina berretsi gabe dauden partekatzeak hemen agertukon dira",
+ "Error deleting the share" : "Errorea partekatzea ezabatzean",
+ "Error updating the share: {errorMessage}" : " Errorea partekatzea eguneratzean {errorMessage}",
+ "Error updating the share" : "Errorea partekatzea eguneratzen",
+ "File \"{path}\" has been unshared" : "\"{path}\" fitxategiaren partekatzea eten da",
+ "Folder \"{path}\" has been unshared" : "\"{path}\" karpetaren partekatzea eten da",
+ "Could not update share" : "Ezin izan da partekatzea eguneratu",
+ "Share saved" : "Partekatzea gordeta",
+ "Share expiry date saved" : "Partekatzearen iraungitze data gordeta",
+ "Share hide-download state saved" : "Partekatzearen ezkutatze-deskarga egoera gorde da",
+ "Share label saved" : "Partekatu etiketa gorde da",
+ "Share note for recipient saved" : "Partekatutako oharra hartzailearentzat gordeta",
+ "Share password saved" : "Partekatu pasahitza gorde da",
+ "Share permissions saved" : "Partekatze baimenak gordeta",
+ "Upload files to {folder}" : "Igo fitxategiak {folder}(e)ra",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName}-k zurekin karpeta bat partekatu du.",
+ "Shared by" : "Honek partekatua",
+ "Shared with" : "Honekin partekatua",
+ "Password created successfully" : "Pasahitza ongi sortu da",
+ "Error generating password from password policy" : "Errorea pasahitz-gidalerrotik pasahitza sortzean",
+ "Shared with you and the group {group} by {owner}" : "{owner} erabiltzaileak zu eta {group} taldearekin partekatuta",
+ "Shared with you and {circle} by {owner}" : " {owner} erabiltzaileak zurekin eta {circle} zirkuluarekin partekatua",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} erabiltzaileak zu eta {conversation} elkarrizketarekin partekatua",
+ "Shared with you in a conversation by {owner}" : "{owner} erabiltzaileak zurekin partekatua elkarrizketa batean",
+ "Share not found" : "Partekatzea ez da aurkitu",
+ "Back to %s" : "Itzuli %s(e)ra",
+ "Add to your Nextcloud" : "Gehitu zure Nextclouden",
+ "Waiting…" : "Itxaroten...",
+ "error" : "errorea",
+ "finished" : "amaitua",
+ "This will stop your current uploads." : "Honek zure uneko igoerak geldituko ditu.",
+ "Move or copy" : "Mugitu edo kopiatu",
+ "You can upload into this folder" : "Karpeta honetara igo dezakezu",
+ "Show list view" : "Erakutsi zerrenda ikuspegia",
+ "Show grid view" : "Erakutsi sareta-ikuspegia",
+ "No compatible server found at {remote}" : "Ez da zerbitzari bateragarririk aurkitu {remote} helbidean",
+ "Invalid server URL" : "Zerbitzari URL baliogabea",
+ "Failed to add the public link to your Nextcloud" : "Huts egin du esteka publikoa zure Nextcloudera gehitzean",
+ "You are not allowed to edit link shares that you don't own" : "Ezin dituzu editatu zureak ez diren partekatze estekak",
+ "Download all files" : "Deskargatu fitxategi guztiak",
+ "Link copied to clipboard" : "Arbelara kopiatutako esteka",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Helbide elektroniko 1 gehitu da dagoeneko","{count} helbide elektroniko gehitu dira dagoeneko"],
+ "_1 email address added_::_{count} email addresses added_" : ["Helbide elektroniko 1 gehitu da","{count} helbide elektroniko gehitu dira"],
+ "Copy to clipboard" : "Kopiatu arbelera",
+ "Copy internal link to clipboard" : "Kopiatu barne esteka arbelera",
+ "Only works for people with access to this folder" : "Karpeta honetara sarbidea duten pertsonentzat bakarrik funtzionatzen du",
+ "Only works for people with access to this file" : "Fitxategi honetara sarbidea duten pertsonentzat bakarrik funtzionatzen du",
+ "Copy public link of \"{title}\" to clipboard" : "Kopiatu \"{title}\"-ren esteka publikoa arbelean",
+ "Search globally" : "Bilatu globalki",
+ "Search for share recipients" : "Bilatu partekatze-hartzaileak",
+ "No recommendations. Start typing." : "Gomendiorik ez. Hasi idazten.",
+ "To upload files, you need to provide your name first." : "Fitxategiak igotzeko, zure izena eman behar duzu lehenik.",
+ "Enter your name" : "Sartu zure izena",
+ "Submit name" : "Sartu izena",
+ "Share with {userName}" : "Partekatu {userName}-rekin",
+ "Show sharing options" : "Erakutsi partekatzeko aukerak",
"Share note" : "Partekatu oharra",
"Upload files to %s" : "Igo fitxategiak hona: %s",
+ "%s shared a folder with you." : "%s zurekin karpeta bat partekatu du.",
"Note" : "Oharra",
"Select or drop files" : "Hautatu edo jaregin fitxategiak",
"Uploading files" : "Fitxategiak igotzen",
"Uploaded files:" : "Igotako fitxategiak:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Fitxategiak igotzean, %1$szerbitzu-baldintzak%2$s onartzen dituzu.",
- "Add to your Nextcloud" : "Gehitu zure Nextclouden",
- "Files and folders others share with you will show up here" : "Zurekin partekatutako fitxategi eta karpetak hemen agertuko dira",
- "Files and folders you share will show up here" : "Partekatzen dituzun fitxategi eta karpetak hemen agertuko dira",
- "Files and folders you share by link will show up here" : "Esteka bidez partekatzen dituzun fitxategi eta karpetak hemen agertuko dira",
- "Shares you deleted will show up here" : "Ezabatzen dituzun partekatzeak hemen agertuko dira",
- "Shares you have received but not confirmed will show up here" : "Jaso dituzun baina berretsi gabe dauden partekatzeak hemen agertuko dira",
- "Shares will show up here" : "Partekatzeak hemen agertuko dira",
- "Restore" : "Berrezarri",
- "Something happened. Unable to restore the share." : "Zerbait gertatu da. Ezin izan da partekatzea berrezarri.",
- "Something happened. Unable to accept the share." : "Zerbait gertatu da. Ezin izan da partekatzea onartu.",
- "Something happened. Unable to reject the share." : "Zerbait gertatu da. Ezin izan da partekatzea ukatu.",
- "No expiration date set" : "Ez da iraungitze-datarik ezarri",
- "Please specify a valid user" : "Zehaztu baliozko erabiltzaile bat",
- "Please specify a valid federated user ID" : "Mesedez, zehaztu baliozko erabiltzaile federatu baten id-a",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Aplikazio honek fitxategiak Nextcloud barruan partekatzeko aukera ematen die erabiltzaileei. Gaituz gero, administratzaileak aukeratu dezake zein taldek partekatu ditzaketen fitxategiak. Baimendutako erabiltzaileek Nextcloudeko beste erabiltzaileekin partekatu ditzakete fitxategi eta karpetak. Horretaz gain, administratzaileak esteka partekatzea aukera gaitzen badu, kanpoko esteka bat erabili daiteke Nextcloudetik kanpo dauden erabiltzaileekin fitxategiak partekatzeko. Administratzaileek pasahitzak eta iraungitze-datak betearazi ditzakete, eta zerbitzaritik zerbitzarira partekatze esteka bidez partekatzea gaitu dezakete, baita gailu mugikorretatik partekatzea ere.\nEzaugarria desgaitzeak partekatutako fitxategi eta karpetak kentzen ditu zerbitzaritik partekatzeen hartzaile guztientzat, baita sinkronizatutako bezero eta mugikorreko aplikazioetatik ere. Informazio gehiago eskuragarri dago Nextclouden dokumentazioan.",
- "Accept user and group shares by default" : "Onartu erabiltzaile eta taldeen partekatzeak modu lehenetsian",
- "Read only" : "Irakurtzeko soilik",
- "File drop (upload only)" : "Fitxategia jaregin (igotzeko soilik)",
- "Upload" : "Igo",
- "Bundled permissions" : "Baimen multzoak",
- "Only works for users with access to this folder" : "Karpeta atzitu dezaketen erabiltzaileentzat bakarrik funtzionatzen du",
- "Only works for users with access to this file" : "Fitxategi hau atzitu dezaketen erabiltzaileentzat bakarrik funtzionatzen du",
- "Circle" : "Zirkulua",
- "Update" : "Eguneratu",
- "Share with " : "Partekatu honekin",
- "No other users with access found" : "Ez da sarbidea duen erabiltzailerik aurkitu",
- "No entries found in this folder" : "Karpeta honetan ez da sarreraik aurkitu",
"Name" : "Izena",
- "Share time" : "Partekatzearen ordua",
- "Sorry, this link does not seem to work anymore." : "Badirudi esteka honek ez duela funtzionatzen.",
- "Reasons might be:" : "Arrazoiak hurrengoak litezke:",
- "the item was removed" : "fitxategia kendu da",
- "the link expired" : "esteka iraungi da",
- "sharing is disabled" : "partekatzea desgaituta dago",
- "For more info, please ask the person who sent this link." : "Informazio gehiagorako, galdetu esteka hau bidali zuen pertsonari",
- "Share with" : "Partekatu honekin"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Erabili metodo hau zure erakundeko banako edo taldeekin fitxategiak partekatzeko. Hartzaileak dagoeneko baimena badu partekatutako elementurako baina ezin badu aurkitu, bidali iezaiozu barneko partekatze-esteka, sarbidea errazteko.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Erabili metodo hau zure erakundeaz kanpoko banako edo erakundeekin fitxategiak partekatzeko. Fitxategiak eta karpetak parteka ditzakezu esteka publikoen bidez edo helbide elektronikoen bidez. Bestelako Nextcloud kontuetara ere parteka ditzakezu, beste instantziatan daudenak, haien federatutako hodeiaren ID-a erabiliz.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Barneko zein kanpoko partekatzeetan sartzen ez diren partekatzeak. Hauetakoren bat aplikazioetatik edo beste iturri batzuetatik etorritako partekatzeak izan daitezke.",
+ "Share with accounts, teams, federated cloud id" : "Partekatu kontuekin, taldeekin edo federatutako hodeien ID-ekin",
+ "Share with accounts and teams" : "Partekatu kontuekin eta taldeekin",
+ "Email, federated cloud id" : "Posta elektroniko, federatutako hodeien ID",
+ "Filename must not be empty." : "Fitxategi-izenak ez du hutsik egon behar."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/fa.js b/apps/files_sharing/l10n/fa.js
index bec9a674018..d30c0a00bf4 100644
--- a/apps/files_sharing/l10n/fa.js
+++ b/apps/files_sharing/l10n/fa.js
@@ -1,76 +1,24 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "منتظر باشید ...",
- "error" : "خطا",
- "finished" : "تمام شد",
- "This will stop your current uploads." : "با این کار آپلودهای فعلی شما متوقف خواهد شد.",
- "Move or copy" : "انتقال یا کپی",
- "Download" : "دانلود",
- "Delete" : "حذف",
- "You can upload into this folder" : "می‌توانید در این پوشه آپلود کنید",
- "Terms of service" : "شرایط و قوانین",
- "Show list view" : "نمایش فهرستی",
- "Show grid view" : "نمایش شبکه‌ای",
- "No compatible server found at {remote}" : "هیچ سرور سازگار در {از راه دور} یافت نشد",
- "Invalid server URL" : "ادرس سرور نامعتبر",
- "Failed to add the public link to your Nextcloud" : "خطا در افزودن ادرس عمومی به نکس کلود شما",
"File shares" : "اشتراک گذاری های فایل",
"Downloaded via public link" : "بارگزاری شده توسط ادرس عمومی ",
"Downloaded by {email}" : "بارگذاری شده توسط {email}",
"{file} downloaded via public link" : "{file} توسط آدرس عمومی بارگزاری شد",
"{email} downloaded {file}" : "{email} فایل {file} را بارگزاری کرد",
- "Shared with group {group}" : "اشتراک گذاری شد با گروه{گروه} ",
- "Removed share for group {group}" : "اشتراک برای گروه حذف شد {گروه}.",
- "{actor} shared with group {group}" : "{بازیگر} با گروه {گروه} به اشتراک گذاشت",
- "{actor} removed share for group {group}" : "{بازیگر} اشتراک را برای {گروه} گروه حذف کرد",
- "Share for group {group} expired" : "اشتراک برای گروه {گروه} منقضی شده است",
- "You shared {file} with group {group}" : "شما {پرونده} را با گروه{گروه} به اشتراک گذاشتید",
- "You removed group {group} from {file}" : "شما گروه {گروه} را از {پرونده} حذف کردید",
- "{actor} shared {file} with group {group}" : "{بازیگر} به اشتراک گذاشته {پرونده} با گروه {گروه}",
- "{actor} removed group {group} from {file}" : "{بازیگر} حذف کرد گروه {گروه} از {پرونده}",
- "Share for file {file} with group {group} expired" : "اشتراک گذاری پرونده{پرونده} با گروه{گروه} منقضی شد",
+ "Shared with group {group}" : "اشتراک گذاری شد با گروه {group}",
+ "Removed share for group {group}" : "اشتراک برای گروه حذف شد {group}",
+ "{actor} shared with group {group}" : "{actor} با گروه {group} به اشتراک گذاشت",
"Shared as public link" : "اشتراک گذاشته شده به عنوان ادرس عمومی",
"Removed public link" : "حذف ادرس عمومی",
"Public link expired" : "ادرس عمومی منقضی شد",
- "{actor} shared as public link" : "{بازیگر} به عنوان پیوند عمومی به اشتراک گذاشته شد",
- "{actor} removed public link" : "{actor} ادرس عمومی را حذف کرد",
- "Public link of {actor} expired" : "پیوند عمومی {بازیگر} منقضی شد",
- "You shared {file} as public link" : "شما {پرونده} را به عنوان پیوند عمومی به اشتراک گذاشتید",
- "You removed public link for {file}" : "شما پیوند عمومی را برای {پرونده } حذف کردید",
- "Public link expired for {file}" : "پیوند عمومی برای {پرونده }منقضی شد",
- "{actor} shared {file} as public link" : "{بازیگر }به اشتراک گذاشته {پرونده} به عنوان پیوند عمومی",
- "{actor} removed public link for {file}" : "{بازیگر }پیوند عمومی را برای {پرونده} حذف کرد",
- "Public link of {actor} for {file} expired" : "پیوند عمومی {بازیگر} برای {پرونده} منقضی شد",
- "{user} accepted the remote share" : "{کاربر} سهم از راه دور را پذیرفت",
- "{user} declined the remote share" : "{کاربر }سهم از راه دور را رد کرد",
- "You received a new remote share {file} from {user}" : "شما یک اشتراک از راه دور{پرونده} از {کاربر} در یافت کردید",
- "{user} accepted the remote share of {file}" : "{کاربر }سهم از راه دور {پرونده} را پذیرفت",
- "{user} declined the remote share of {file}" : "{کاربر }سهم از راه دور {پرونده }را رد کرد",
- "{user} unshared {file} from you" : "{کاربر} لغو اشتراک کرد {پرونده} از شما",
- "Shared with {user}" : "اشتراک گذاری با {کاربر}",
- "Removed share for {user}" : "اشتراک برای {کاربر} حذف شد",
"You removed yourself" : "شما خدتان را حذف کردید",
- "{actor} removed themselves" : "{بازیگر }خود را حذف کردند",
- "{actor} shared with {user}" : "{بازیگر} با {کاربر} به اشتراک گذاشت",
- "{actor} removed share for {user}" : "{بازیگر} اشتراک را برای {کاربر} حذف کرد",
- "Shared by {actor}" : "اشتراک گذاری شده توسط {بازیگر}",
- "{actor} removed share" : "{بازیگر} اشتراک را حذف کرد",
"Share for {user} expired" : "اشتراک برای {user} منقضی شده است",
"Share expired" : "اشتراک منقضی شد",
- "You shared {file} with {user}" : "شما {پرونده} را با {کاربر }به اشتراک گذاشتید",
- "You removed {user} from {file}" : "{user} را از {پرونده }حذف کردید",
- "You removed yourself from {file}" : "شما خود را از {file }حذف کردید",
- "{actor} removed themselves from {file}" : "{بازیگر }خود را از {پرونده }حذف کردند",
- "{actor} shared {file} with {user}" : "{بازیگر} به اشتراک گذاشته {پرونده} با {کاربر}",
- "{actor} removed {user} from {file}" : "{بازیگر} حذف کرد {کاربر} از {پرونده}",
- "{actor} shared {file} with you" : "{بازیگر} {پرونده} به اشتراک گذاشته با شما",
- "{actor} removed you from the share named {file}" : "{بازیگر }شما را از اشتراکی به نام {پرونده} حذف کرد",
- "Share for file {file} with {user} expired" : "برای {پرونده }با {کاربر }به اشتراک بگذارید",
- "Share for file {file} expired" : "برای اشتراک {پرونده }منقضی شد",
+ "{actor} shared {file} with you" : "{actor} {file} را با شما به اشتراک گذاشت",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "یک پرونده یا پوشه به اشتراک گذاشته شده از طریق پست یا از طریق لینک عمومی بارگیری شد",
"A file or folder was shared from <strong>another server</strong>" : "یک پرونده یا پوشه از سرور دیگر به اشتراک گذاشته شد",
- "Files" : "فایل‌ها",
+ "Sharing" : "اشتراک گذاری",
"A file or folder has been <strong>shared</strong>" : "فایل یا پوشه ای به <strong>اشتراک</strong> گذاشته شد",
"Shared link" : "پیوند به اشتراک گذاری شده",
"Wrong share ID, share does not exist" : "Wrong share ID, share does not exist",
@@ -78,167 +26,158 @@ OC.L10N.register(
"Please specify a file or folder path" : "لطفاً مسیر فایل یا پوشه را مشخص کنید",
"Wrong path, file/folder does not exist" : "Wrong path, file/folder does not exist",
"Could not create share" : "امکان ایجاد اشتراک گذاری وجود ندارد",
- "Invalid permissions" : "دسترسی نامعتبر",
- "Invalid date, date format must be YYYY-MM-DD" : "تاریخ نامعتبر است ، قالب تاریخ باید YYYY-MM-DD باشد",
"Group sharing is disabled by the administrator" : "اشتراک گروه توسط مدیر غیرفعال شده است.",
"Please specify a valid group" : "لطفا یک گروه معتبر انتخاب کنید",
"Public link sharing is disabled by the administrator" : "اشتراک پیوندهای عمومی توسط مدیر غیرفعال شده است",
- "Public upload disabled by the administrator" : "آپلود عمومی توسط سرپرست غیرفعال شده است",
- "Public upload is only possible for publicly shared folders" : "بارگذاری عمومی فقط برای پوشه هایی که به طور عمومی به اشتراک گذاشته می شوند ممکن است",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : ".اشتراک‍‍‍%s ارسال رمز عبور توسط Nextcloud Talk به دلیل فعال نشدن Nextcloud Talk انجام نشد.",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "%2$sاشتراک گذاری%1$s انجام نشد زیرا بک اِند اجازه نمی دهد نوع از سهام استفاده شود",
"Please specify a valid federated group ID" : "Please specify a valid federated group ID",
- "You cannot share to a Circle if the app is not enabled" : "اگر برنامه فعال نباشد ، نمی توانید در یک حلقه به اشتراک بگذارید",
- "Please specify a valid circle" : "لطفاً یک حلقه معتبر تعیین کنید",
"Sharing %s failed because the back end does not support room shares" : "اشتراک گذاری %sانجام نشد زیرا قسمت پشتی سهام اتاق را پشتیبانی نمی کند",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Sharing %s failed because the back end does not support ScienceMesh shares",
"Unknown share type" : "نوع اشتراک ناشناخته",
"Not a directory" : "این یک پوشه نیست",
"Could not lock node" : "گره را نمی توان قفل کرد",
- "Could not lock path" : "امکان قفل کردن مسیر وجود ندارد.",
- "Wrong or no update parameter given" : "اشتباهی و یا پارامتر بروزرسانی داده نشد",
+ "Public upload is only possible for publicly shared folders" : "بارگذاری عمومی فقط برای پوشه هایی که به طور عمومی به اشتراک گذاشته می شوند ممکن است",
"Share must at least have READ or CREATE permissions" : "Share must at least have READ or CREATE permissions",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Share must have READ permission if UPDATE or DELETE permission is set",
+ "Public upload disabled by the administrator" : "آپلود عمومی توسط سرپرست غیرفعال شده است",
+ "Could not lock path" : "امکان قفل کردن مسیر وجود ندارد.",
+ "Wrong or no update parameter given" : "اشتباهی و یا پارامتر بروزرسانی داده نشد",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled.",
+ "Wrong password" : "کلمه عبور اشتباه",
"shared by %s" : "اشتراک گذاری شده به میزان %s",
- "Download all files" : "دانلود همه فایل ها",
- "Direct link" : "لینک مستقیم",
+ "Download" : "دانلود",
"Add to your %s" : "Add to your %s",
+ "Direct link" : "لینک مستقیم",
"Share API is disabled" : "اشتراک API غیرفعال شده است",
"File sharing" : "اشتراک گذاری پرونده",
"Share will expire tomorrow" : "اشتراک فردا منقضی می شود",
- "Your share of {node} will expire tomorrow" : "سهم شما از {node }فردا منقضی می شود",
- "You received {share} as a share by {user}" : "{اشتراک} را به عنوان سهم {user }دریافت کردید",
- "You received {share} to group {group} as a share by {user}" : "شما {اشتراک} را به گروه {گروه} به عنوان سهم {user }دریافت کردید",
"Accept" : "پذیرفتن",
"Decline" : "کاهش می یابد",
- "Sharing" : "اشتراک گذاری",
+ "People" : "مردم",
+ "Filter accounts" : "پالایش حساب‌ها",
+ "Expiration date" : "تاریخ انقضا",
+ "Set a password" : "رمزعبور تنظیم کنید",
+ "Password" : "گذرواژه",
+ "Link copied" : "پیوند کپی شد",
+ "Share link" : "Share link",
+ "Copy" : "کپی",
+ "Select" : "گزینش<br>",
+ "Close" : "بسته",
+ "Error creating the share: {errorMessage}" : "Error creating the share: {errorMessage}",
+ "Error creating the share" : "خطایی در ایجاد اشتراک",
+ "Cancel" : "لغو",
+ "Continue" : "ادامه",
"Error while toggling options" : "Error while toggling options",
- "Set default folder for accepted shares" : "انتخاب پوشه ی پیش فرض برای اشتراک گذاری های پذیرفته شده",
- "Reset" : "بازنشاندن",
- "Reset folder to system default" : "بازنشاندن پوشه به حالت پیشفرض سیستم",
"Choose a default folder for accepted shares" : "انتخاب پوشه پیشفرض برای به اشتراک گذاشته های تایید شده",
"Invalid path selected" : "مسیر انتخاب شده نامعتبر است",
"Unknown error" : "خطای ناشناخته",
+ "Set default folder for accepted shares" : "انتخاب پوشه ی پیش فرض برای اشتراک گذاری های پذیرفته شده",
+ "Reset" : "بازنشاندن",
+ "Reset folder to system default" : "بازنشاندن پوشه به حالت پیشفرض سیستم",
"group" : "گروه",
"conversation" : "گفتگو",
"remote" : "از راه دور",
"remote group" : "گروه از راه دور",
"guest" : "میهمان",
- "Shared with the group {user} by {owner}" : "با گروه {کاربر} توسط {صاحب}به اشتراک گذاشته می شود",
- "Shared with the conversation {user} by {owner}" : "به اشتراک گذاشته شده با مکالمه {کاربر} توسط {صاحب}",
- "Shared with {user} by {owner}" : "مشترک با {user} توسط {صاحب}",
- "Added by {initiator}" : "اضافه شده توسط {ابتکار}",
+ "Shared with {user} by {owner}" : "مشترک با {user} توسط {owner}",
+ "Added by {initiator}" : "اضافه شده توسط {initiator}",
"Via “{folder}”" : "Via “{folder}”",
"Unshare" : "لغو اشتراک",
- "Internal link" : "پیوند داخلی",
"Cannot copy, please copy the link manually" : "کپی کردن امکان پذیر نیست ، لطفا پیوند را به صورت دستی کپی کنید",
- "Copy internal link to clipboard" : "Copy internal link to clipboard",
- "Link copied" : "پیوند کپی شد",
- "Please enter the following required information before creating the share" : "لطفا قبل از ایجاد اشتراک ، اطلاعات لازم را وارد کنید",
- "Password protection (enforced)" : "محافظت از رمز عبور (اجباری)",
- "Password protection" : "Password protection",
- "Enter a password" : "یک گذرواژه وارد کنید",
- "Expiration date (enforced)" : "تاریخ انقضا (اجباری)",
- "Enter a date" : "تاریخ را وارد کنید",
- "Create share" : "ساختن اشتراک",
- "Cancel" : "لغو",
- "Add another link" : "پیوند دیگری اضافه کنید",
- "Create a new share link" : "پیوند اشتراک گذاری جدیدی ایجاد کنید",
+ "Copy internal link" : "کپی کردن پیوند داخلی",
+ "Internal link" : "پیوند داخلی",
"{shareWith} by {initiator}" : "{shareWith} by {initiator}",
- "Shared via link by {initiator}" : "از طریق پیوند توسط {ابتکار}",
"Mail share ({label})" : "Mail share ({label})",
"Share link ({label})" : "Share link ({label})",
"Share link ({index})" : "Share link ({index})",
- "Share link" : "Share link",
+ "Create public link" : "ایجاد پیوند عمومی",
"Actions for \"{title}\"" : "Actions for \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Copy public link of \"{title}\" to clipboard",
"Error, please enter proper password and/or expiration date" : "خطا ، لطفاً رمز عبور مناسب و یا تاریخ انقضا را وارد کنید",
"Link share created" : "Link share created",
"Error while creating the share" : "Error while creating the share",
+ "Please enter the following required information before creating the share" : "لطفا قبل از ایجاد اشتراک ، اطلاعات لازم را وارد کنید",
+ "Password protection (enforced)" : "محافظت از رمز عبور (اجباری)",
+ "Password protection" : "Password protection",
+ "Enter a password" : "یک گذرواژه وارد کنید",
+ "Create share" : "ساختن اشتراک",
+ "Add another link" : "پیوند دیگری اضافه کنید",
+ "Create a new share link" : "پیوند اشتراک گذاری جدیدی ایجاد کنید",
"View only" : "تنها مشاهده",
"Can edit" : "توانایی ویرایش",
- "File drop" : "انداختن پرونده",
"Custom permissions" : "Custom permissions",
- "Search for share recipients" : "Search for share recipients",
- "No recommendations. Start typing." : "هیچ توصیه ای نیست شروع به تایپ کنید.",
"Resharing is not allowed" : "اشتراک گذاری مجدد مجاز نمی باشد",
"Name or email …" : "Name or email …",
"Name, email, or Federated Cloud ID …" : "Name, email, or Federated Cloud ID …",
"Searching …" : "جستجوکردن …",
"No elements found." : "عنصری یافت نشد",
- "Search globally" : "در سطح جهان جستجو کنید",
+ "Search everywhere" : "جستجو در هر کجا.",
"Guest" : "مهمان",
"Group" : "گروه",
"Email" : "رایانامه",
+ "Team" : "تیم",
"Talk conversation" : "Talk conversation",
"Deck board" : "تخته deck",
"ScienceMesh" : "ScienceMesh",
- "on {server}" : "روی{سرور}",
+ "on {server}" : "روی{server}",
+ "File drop" : "انداختن پرونده",
+ "Terms of service" : "شرایط و قوانین",
+ "Update share" : "به‌روزرسانی هم‌رسانی",
+ "Read" : "خواندن",
+ "Create" : "ایجاد",
+ "Edit" : "ویرایش",
+ "Share" : "هم‌رسانی",
+ "Delete" : "حذف",
"Allow upload and editing" : "اجازه آپلود و ویرایش",
"Allow editing" : "اجازه‌ی ویرایش",
"Advanced settings" : "تنظیمات پیشرفته",
"Share label" : "Share label",
"Set password" : "تنظیم گذرواژه",
- "Password" : "گذرواژه",
"Password expires {passwordExpirationTime}" : "Password expires {passwordExpirationTime}",
"Password expired" : "Password expired",
"Video verification" : "تأیید صحت ویدیو",
+ "Expiration date (enforced)" : "تاریخ انقضا (اجباری)",
"Set expiration date" : "تنظیم تاریخ انقضا",
- "Expiration date" : "تاریخ انقضا",
"Hide download" : "پنهان کردن بارگیری",
- "Allow download" : "Allow download",
"Note to recipient" : "یادداشت برای گیرنده",
"Enter a note for the share recipient" : "برای دریافت کننده اشتراک یک یادداشت وارد کنید",
- "Read" : "خواندن",
- "Create" : "ایجاد",
- "Edit" : "ویرایش",
- "Share" : "هم‌رسانی",
"Others with access" : "دیگران با دسترسی",
"Toggle list of others with access to this directory" : "لیست دسترسی دیگران به این فهرست را تغییر دهید",
"Toggle list of others with access to this file" : "لیست سایرین را با دسترسی به این پرونده تغییر دهید",
"Unable to fetch inherited shares" : "واگذاری سهام ارثی امکان پذیر نیست",
+ "Shares" : "اشتراک گذاری ها",
"Unable to load the shares list" : "لیست سهام بارگیری نمی شود",
- "Expires {relativetime}" : "{زمان نسبی } منقضی می شود",
+ "Expires {relativetime}" : "منقضی در {relativetime}",
"this share just expired." : "این اشتراک تازه منقضی شد",
- "Shared with you by {owner}" : "به اشتراک گذاشته شده با شما توسط { دارنده}",
+ "Shared with you by {owner}" : "به اشتراک گذاشته شده با شما توسط {owner}",
+ "Link to a file" : "پیوند به یک پرونده",
"_Accept share_::_Accept shares_" : ["Accept share","Accept shares"],
"Open in Files" : "در فایل باز کنید",
"_Reject share_::_Reject shares_" : ["Reject share","Reject shares"],
"_Restore share_::_Restore shares_" : ["Restore share","Restore shares"],
- "Shared" : "به اشتراک گزاشته شده ",
- "Link to a file" : "پیوند به یک پرونده",
- "Error creating the share: {errorMessage}" : "Error creating the share: {errorMessage}",
- "Error creating the share" : "خطایی در ایجاد اشتراک",
- "Error updating the share: {errorMessage}" : "Error updating the share: {errorMessage}",
- "Error updating the share" : "خطایی در به روزرسانی اشتراک",
- "File \"{path}\" has been unshared" : "File \"{path}\" has been unshared",
- "Folder \"{path}\" has been unshared" : "Folder \"{path}\" has been unshared",
- "Share {propertyName} saved" : "Share {propertyName} saved",
- "Shared by" : "اشتراک گذاشته شده به وسیله",
- "Shared with" : "مشترک با",
- "Password created successfully" : "Password created successfully",
- "Error generating password from password policy" : "Error generating password from password policy",
- "Shared with you and the group {group} by {owner}" : "به اشتراک گذاشته شده با شما و گروه {گروه} توسط {دارنده}",
- "Shared with you and {circle} by {owner}" : "با شما و {حلقه} توسط {مالک }به اشتراک گذاشته شده است",
- "Shared with you and the conversation {conversation} by {owner}" : "با شما و گفتگو {مکالمه} توسط {صاحب }به اشتراک گذاشته شده است",
- "Shared with you in a conversation by {owner}" : "در گفتگو توسط {صاحب} با شما به اشتراک گذاشته شده است",
- "Shares" : "اشتراک گذاری ها",
- "Overview of shared files." : "Overview of shared files.",
+ "Shared" : "به اشتراک گذاشته شده ",
+ "Shared multiple times with different people" : "Shared multiple times with different people",
+ "Shared with others" : "موارد به اشتراک گذاشته شده با دیگران",
+ "Public file share" : "اشتراک عمومی پرونده",
+ "Publicly shared file." : "پرونده بصورت عمومی به اشتراک گذاشته شده است",
+ "No file" : "بدون پرونده",
+ "Public share" : "سهم عمومی",
+ "Publicly shared files." : "پرونده ها بصورت عمومی به اشتراک گذاشته شده اند",
+ "Overview of shared files." : "نمای کلی پرونده های به اشتراک گذاشته شده",
"No shares" : "اشتراک گذاری وجود ندارد",
"Files and folders you shared or have been shared with you will show up here" : "Files and folders you shared or have been shared with you will show up here",
"Shared with you" : "موارد به اشتراک گذاشته شده با شما",
- "List of files that are shared with you." : "List of files that are shared with you.",
+ "List of files that are shared with you." : "لیست پرونده هایی که با شما به اشتراک گذاشته شده است.",
"Nothing shared with you yet" : "هیچ موردی با شما به اشتراک گذاشته نشده است",
"Files and folders others shared with you will show up here" : "Files and folders others shared with you will show up here",
- "Shared with others" : "موارد به اشتراک گذاشته شده با دیگران",
- "List of files that you shared with others." : "List of files that you shared with others.",
+ "List of files that you shared with others." : "لیست پرونده هایی که شما با دیگران به اشتراک گذاشته اید.",
"Nothing shared yet" : "هیچ موردی تاکنون به اشتراک گذاشته نشده است",
"Files and folders you shared will show up here" : "Files and folders you shared will show up here",
"Shared by link" : "اشتراک گذاشته شده از طریق لینک",
"List of files that are shared by link." : "List of files that are shared by link.",
"No shared links" : "هیچ لینک اشتراک‌گذاری وجود ندارد",
"Files and folders you shared by link will show up here" : "Files and folders you shared by link will show up here",
+ "File requests" : "درخواست پرونده",
"Deleted shares" : "اشتراک گذاری های حذف شده",
"List of shares you left." : "List of shares you left.",
"No deleted shares" : "اشتراک گذاری های حذف نشده",
@@ -247,47 +186,44 @@ OC.L10N.register(
"List of unapproved shares." : "List of unapproved shares.",
"No pending shares" : "بدون اشتراک در حال انتظار",
"Shares you have received but not approved will show up here" : "Shares you have received but not approved will show up here",
+ "Error updating the share: {errorMessage}" : "Error updating the share: {errorMessage}",
+ "Error updating the share" : "خطایی در به روزرسانی اشتراک",
+ "File \"{path}\" has been unshared" : "File \"{path}\" has been unshared",
+ "Folder \"{path}\" has been unshared" : "Folder \"{path}\" has been unshared",
+ "Shared by" : "اشتراک گذاشته شده به وسیله",
+ "Shared with" : "مشترک با",
+ "Password created successfully" : "Password created successfully",
+ "Error generating password from password policy" : "Error generating password from password policy",
+ "Share not found" : "اشتراک گذاری یافت نشد",
+ "Back to %s" : "Back to %s",
+ "Add to your Nextcloud" : "به نکست‌کلود خود اضافه کنید",
+ "Waiting…" : "منتظر باشید ...",
+ "error" : "خطا",
+ "finished" : "تمام شد",
+ "This will stop your current uploads." : "با این کار آپلودهای فعلی شما متوقف خواهد شد.",
+ "Move or copy" : "انتقال یا کپی",
+ "You can upload into this folder" : "می‌توانید در این پوشه آپلود کنید",
+ "Show list view" : "نمایش فهرستی",
+ "Show grid view" : "نمایش شبکه‌ای",
+ "Invalid server URL" : "ادرس سرور نامعتبر",
+ "Failed to add the public link to your Nextcloud" : "خطا در افزودن ادرس عمومی به نکس کلود شما",
+ "Download all files" : "دانلود همه فایل ها",
+ "Link copied to clipboard" : "پیوند در حافظه موقت کپی شده",
+ "Copy to clipboard" : "کپی به کلیپ بورد",
+ "Copy internal link to clipboard" : "Copy internal link to clipboard",
+ "Copy public link of \"{title}\" to clipboard" : "Copy public link of \"{title}\" to clipboard",
+ "Search globally" : "در سطح جهان جستجو کنید",
+ "Search for share recipients" : "Search for share recipients",
+ "No recommendations. Start typing." : "هیچ توصیه ای نیست شروع به تایپ کنید.",
+ "Enter your name" : "اسمت را وارد کن",
"Share note" : "یادداشت اشتراک گذاری",
"Upload files to %s" : "بارگیری پرونده ها به%s",
"Note" : "یادداشت",
"Select or drop files" : "پرونده ها را انتخاب یا رها کنید",
- "Uploading files" : "Uploading files",
+ "Uploading files" : "پرونده های در حال بارگذاری",
"Uploaded files:" : "پرونده های بارگذاری شده:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "%2$sبا بارگذاری پرونده ها ، شما با %1$sشرایط خدمات موافقت می کنید",
- "Add to your Nextcloud" : "به نکست‌کلود خود اضافه کنید",
- "Files and folders others share with you will show up here" : "فایل ها و پوشه های که دیگران با شما به اشتراک گذاشته شده، اینجا نماش داده خواهند شد.",
- "Files and folders you share will show up here" : "فایل ها و پوشه هایی که شما به اشتراک می گذارید در اینجا نمایش داده خواهند شد.",
- "Files and folders you share by link will show up here" : "فایل‌ها و پوشه‌های اشتراک‌گذاشته توسط شما همراه با لینک در اینجا نمایش داده خواهد شد",
- "Shares you deleted will show up here" : "اشتراک گذاری هایی که شما حذف کرده اید اینجا نمایش داده خواهند شد",
- "Shares you have received but not confirmed will show up here" : "سهام شما دریافت کرده اید اما تأیید نشده است در اینجا نشان داده می شود",
- "Shares will show up here" : "موارد به اشتراک گذاری شده اینجا نمایش داده خواهند شد",
- "Restore" : "بازیابی",
- "Something happened. Unable to restore the share." : "موردی پیش آمده است. امکان بازیابی مورد اشتراک گذاری شده وجود ندارد.",
- "Something happened. Unable to accept the share." : "اتفاقی افتاد. امکان اشتراک گذاری وجود ندارد",
- "Something happened. Unable to reject the share." : "اتفاقی افتاد. امکان رد اشتراک وجود ندارد.",
- "No expiration date set" : "تاریخ انقضا ست نشده است",
- "Please specify a valid user" : "لطفاً یک کاربر معتبر را مشخص کنید",
- "Please specify a valid federated user ID" : "Please specify a valid federated user ID",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "این برنامه کاربران را قادر می سازد تا پرونده ها را در Nextcloud به اشتراک بگذارند. در صورت فعال بودن ، سرپرست می تواند انتخاب کند که گروه ها می توانند فایل ها را به اشتراک بگذارند. کاربران قابل استفاده سپس می توانند فایلها و پوشه ها را با سایر کاربران و گروه های موجود در Nextcloud به اشتراک بگذارند. علاوه بر این ، اگر سرپرست ویژگی پیوند اشتراک را فعال کند ، می توان از یک لینک خارجی برای به اشتراک گذاری فایلها با سایر کاربران خارج از Nextcloud استفاده کرد. Admins همچنین می تواند رمزهای عبور ، تاریخهای انقضا را اعمال کرده و سرور را قادر به اشتراک گذاری سرور از طریق پیوندهای اشتراک گذاری و همچنین به اشتراک گذاری از دستگاههای تلفن همراه کند.\nخاموش کردن ویژگی ، پرونده ها و پوشه های مشترک را در سرور برای همه گیرندگان اشتراک و همچنین در کلاینت های همگام سازی و برنامه های تلفن همراه حذف می کند. اطلاعات بیشتر در مستندات Nextcloud در دسترس است.",
- "Accept user and group shares by default" : "پذیرش اشتراک گذاری های کاربران و گروه ها (بطور پیش فرض)",
- "Read only" : "فقط خواندنی",
- "File drop (upload only)" : "انداختن فایل (فقط آپلود)",
- "Upload" : "بارگذاری",
- "Bundled permissions" : "Bundled permissions",
- "Only works for users with access to this folder" : "فقط برای کاربران دارای دسترسی به این پوشه کار می کند",
- "Only works for users with access to this file" : "فقط برای کاربران با دسترسی به این پرونده کار می کند",
- "Circle" : "حلقه",
- "Update" : "به‌روز رسانی",
- "No other users with access found" : "هیچ کاربر دیگری با دسترسی یافت نشد",
- "No entries found in this folder" : "هیچ ورودی‌ای در این پوشه وجود ندارد",
"Name" : "نام",
- "Share time" : "زمان به اشتراک گذاری",
- "Sorry, this link does not seem to work anymore." : "Sorry, this link does not seem to work anymore.",
- "Reasons might be:" : "ممکن است به این دلایل باشد:",
- "the item was removed" : "این مورد حذف شده است",
- "the link expired" : "این لینک منقضی شده است",
- "sharing is disabled" : "قابلیت اشتراک گذاری غیرفعال است",
- "For more info, please ask the person who sent this link." : "برای اطلاعات بیشتر، لطفا از شخصی که این پیوند را ارسال کرده سوال بفرمایید.",
- "Share with" : "به اشتراک گذاشتن با"
+ "Filename must not be empty." : "Filename must not be empty."
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_sharing/l10n/fa.json b/apps/files_sharing/l10n/fa.json
index 87ae347e7d5..36ae4898f5c 100644
--- a/apps/files_sharing/l10n/fa.json
+++ b/apps/files_sharing/l10n/fa.json
@@ -1,74 +1,22 @@
{ "translations": {
- "Waiting…" : "منتظر باشید ...",
- "error" : "خطا",
- "finished" : "تمام شد",
- "This will stop your current uploads." : "با این کار آپلودهای فعلی شما متوقف خواهد شد.",
- "Move or copy" : "انتقال یا کپی",
- "Download" : "دانلود",
- "Delete" : "حذف",
- "You can upload into this folder" : "می‌توانید در این پوشه آپلود کنید",
- "Terms of service" : "شرایط و قوانین",
- "Show list view" : "نمایش فهرستی",
- "Show grid view" : "نمایش شبکه‌ای",
- "No compatible server found at {remote}" : "هیچ سرور سازگار در {از راه دور} یافت نشد",
- "Invalid server URL" : "ادرس سرور نامعتبر",
- "Failed to add the public link to your Nextcloud" : "خطا در افزودن ادرس عمومی به نکس کلود شما",
"File shares" : "اشتراک گذاری های فایل",
"Downloaded via public link" : "بارگزاری شده توسط ادرس عمومی ",
"Downloaded by {email}" : "بارگذاری شده توسط {email}",
"{file} downloaded via public link" : "{file} توسط آدرس عمومی بارگزاری شد",
"{email} downloaded {file}" : "{email} فایل {file} را بارگزاری کرد",
- "Shared with group {group}" : "اشتراک گذاری شد با گروه{گروه} ",
- "Removed share for group {group}" : "اشتراک برای گروه حذف شد {گروه}.",
- "{actor} shared with group {group}" : "{بازیگر} با گروه {گروه} به اشتراک گذاشت",
- "{actor} removed share for group {group}" : "{بازیگر} اشتراک را برای {گروه} گروه حذف کرد",
- "Share for group {group} expired" : "اشتراک برای گروه {گروه} منقضی شده است",
- "You shared {file} with group {group}" : "شما {پرونده} را با گروه{گروه} به اشتراک گذاشتید",
- "You removed group {group} from {file}" : "شما گروه {گروه} را از {پرونده} حذف کردید",
- "{actor} shared {file} with group {group}" : "{بازیگر} به اشتراک گذاشته {پرونده} با گروه {گروه}",
- "{actor} removed group {group} from {file}" : "{بازیگر} حذف کرد گروه {گروه} از {پرونده}",
- "Share for file {file} with group {group} expired" : "اشتراک گذاری پرونده{پرونده} با گروه{گروه} منقضی شد",
+ "Shared with group {group}" : "اشتراک گذاری شد با گروه {group}",
+ "Removed share for group {group}" : "اشتراک برای گروه حذف شد {group}",
+ "{actor} shared with group {group}" : "{actor} با گروه {group} به اشتراک گذاشت",
"Shared as public link" : "اشتراک گذاشته شده به عنوان ادرس عمومی",
"Removed public link" : "حذف ادرس عمومی",
"Public link expired" : "ادرس عمومی منقضی شد",
- "{actor} shared as public link" : "{بازیگر} به عنوان پیوند عمومی به اشتراک گذاشته شد",
- "{actor} removed public link" : "{actor} ادرس عمومی را حذف کرد",
- "Public link of {actor} expired" : "پیوند عمومی {بازیگر} منقضی شد",
- "You shared {file} as public link" : "شما {پرونده} را به عنوان پیوند عمومی به اشتراک گذاشتید",
- "You removed public link for {file}" : "شما پیوند عمومی را برای {پرونده } حذف کردید",
- "Public link expired for {file}" : "پیوند عمومی برای {پرونده }منقضی شد",
- "{actor} shared {file} as public link" : "{بازیگر }به اشتراک گذاشته {پرونده} به عنوان پیوند عمومی",
- "{actor} removed public link for {file}" : "{بازیگر }پیوند عمومی را برای {پرونده} حذف کرد",
- "Public link of {actor} for {file} expired" : "پیوند عمومی {بازیگر} برای {پرونده} منقضی شد",
- "{user} accepted the remote share" : "{کاربر} سهم از راه دور را پذیرفت",
- "{user} declined the remote share" : "{کاربر }سهم از راه دور را رد کرد",
- "You received a new remote share {file} from {user}" : "شما یک اشتراک از راه دور{پرونده} از {کاربر} در یافت کردید",
- "{user} accepted the remote share of {file}" : "{کاربر }سهم از راه دور {پرونده} را پذیرفت",
- "{user} declined the remote share of {file}" : "{کاربر }سهم از راه دور {پرونده }را رد کرد",
- "{user} unshared {file} from you" : "{کاربر} لغو اشتراک کرد {پرونده} از شما",
- "Shared with {user}" : "اشتراک گذاری با {کاربر}",
- "Removed share for {user}" : "اشتراک برای {کاربر} حذف شد",
"You removed yourself" : "شما خدتان را حذف کردید",
- "{actor} removed themselves" : "{بازیگر }خود را حذف کردند",
- "{actor} shared with {user}" : "{بازیگر} با {کاربر} به اشتراک گذاشت",
- "{actor} removed share for {user}" : "{بازیگر} اشتراک را برای {کاربر} حذف کرد",
- "Shared by {actor}" : "اشتراک گذاری شده توسط {بازیگر}",
- "{actor} removed share" : "{بازیگر} اشتراک را حذف کرد",
"Share for {user} expired" : "اشتراک برای {user} منقضی شده است",
"Share expired" : "اشتراک منقضی شد",
- "You shared {file} with {user}" : "شما {پرونده} را با {کاربر }به اشتراک گذاشتید",
- "You removed {user} from {file}" : "{user} را از {پرونده }حذف کردید",
- "You removed yourself from {file}" : "شما خود را از {file }حذف کردید",
- "{actor} removed themselves from {file}" : "{بازیگر }خود را از {پرونده }حذف کردند",
- "{actor} shared {file} with {user}" : "{بازیگر} به اشتراک گذاشته {پرونده} با {کاربر}",
- "{actor} removed {user} from {file}" : "{بازیگر} حذف کرد {کاربر} از {پرونده}",
- "{actor} shared {file} with you" : "{بازیگر} {پرونده} به اشتراک گذاشته با شما",
- "{actor} removed you from the share named {file}" : "{بازیگر }شما را از اشتراکی به نام {پرونده} حذف کرد",
- "Share for file {file} with {user} expired" : "برای {پرونده }با {کاربر }به اشتراک بگذارید",
- "Share for file {file} expired" : "برای اشتراک {پرونده }منقضی شد",
+ "{actor} shared {file} with you" : "{actor} {file} را با شما به اشتراک گذاشت",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "یک پرونده یا پوشه به اشتراک گذاشته شده از طریق پست یا از طریق لینک عمومی بارگیری شد",
"A file or folder was shared from <strong>another server</strong>" : "یک پرونده یا پوشه از سرور دیگر به اشتراک گذاشته شد",
- "Files" : "فایل‌ها",
+ "Sharing" : "اشتراک گذاری",
"A file or folder has been <strong>shared</strong>" : "فایل یا پوشه ای به <strong>اشتراک</strong> گذاشته شد",
"Shared link" : "پیوند به اشتراک گذاری شده",
"Wrong share ID, share does not exist" : "Wrong share ID, share does not exist",
@@ -76,167 +24,158 @@
"Please specify a file or folder path" : "لطفاً مسیر فایل یا پوشه را مشخص کنید",
"Wrong path, file/folder does not exist" : "Wrong path, file/folder does not exist",
"Could not create share" : "امکان ایجاد اشتراک گذاری وجود ندارد",
- "Invalid permissions" : "دسترسی نامعتبر",
- "Invalid date, date format must be YYYY-MM-DD" : "تاریخ نامعتبر است ، قالب تاریخ باید YYYY-MM-DD باشد",
"Group sharing is disabled by the administrator" : "اشتراک گروه توسط مدیر غیرفعال شده است.",
"Please specify a valid group" : "لطفا یک گروه معتبر انتخاب کنید",
"Public link sharing is disabled by the administrator" : "اشتراک پیوندهای عمومی توسط مدیر غیرفعال شده است",
- "Public upload disabled by the administrator" : "آپلود عمومی توسط سرپرست غیرفعال شده است",
- "Public upload is only possible for publicly shared folders" : "بارگذاری عمومی فقط برای پوشه هایی که به طور عمومی به اشتراک گذاشته می شوند ممکن است",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : ".اشتراک‍‍‍%s ارسال رمز عبور توسط Nextcloud Talk به دلیل فعال نشدن Nextcloud Talk انجام نشد.",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "%2$sاشتراک گذاری%1$s انجام نشد زیرا بک اِند اجازه نمی دهد نوع از سهام استفاده شود",
"Please specify a valid federated group ID" : "Please specify a valid federated group ID",
- "You cannot share to a Circle if the app is not enabled" : "اگر برنامه فعال نباشد ، نمی توانید در یک حلقه به اشتراک بگذارید",
- "Please specify a valid circle" : "لطفاً یک حلقه معتبر تعیین کنید",
"Sharing %s failed because the back end does not support room shares" : "اشتراک گذاری %sانجام نشد زیرا قسمت پشتی سهام اتاق را پشتیبانی نمی کند",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Sharing %s failed because the back end does not support ScienceMesh shares",
"Unknown share type" : "نوع اشتراک ناشناخته",
"Not a directory" : "این یک پوشه نیست",
"Could not lock node" : "گره را نمی توان قفل کرد",
- "Could not lock path" : "امکان قفل کردن مسیر وجود ندارد.",
- "Wrong or no update parameter given" : "اشتباهی و یا پارامتر بروزرسانی داده نشد",
+ "Public upload is only possible for publicly shared folders" : "بارگذاری عمومی فقط برای پوشه هایی که به طور عمومی به اشتراک گذاشته می شوند ممکن است",
"Share must at least have READ or CREATE permissions" : "Share must at least have READ or CREATE permissions",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Share must have READ permission if UPDATE or DELETE permission is set",
+ "Public upload disabled by the administrator" : "آپلود عمومی توسط سرپرست غیرفعال شده است",
+ "Could not lock path" : "امکان قفل کردن مسیر وجود ندارد.",
+ "Wrong or no update parameter given" : "اشتباهی و یا پارامتر بروزرسانی داده نشد",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled.",
+ "Wrong password" : "کلمه عبور اشتباه",
"shared by %s" : "اشتراک گذاری شده به میزان %s",
- "Download all files" : "دانلود همه فایل ها",
- "Direct link" : "لینک مستقیم",
+ "Download" : "دانلود",
"Add to your %s" : "Add to your %s",
+ "Direct link" : "لینک مستقیم",
"Share API is disabled" : "اشتراک API غیرفعال شده است",
"File sharing" : "اشتراک گذاری پرونده",
"Share will expire tomorrow" : "اشتراک فردا منقضی می شود",
- "Your share of {node} will expire tomorrow" : "سهم شما از {node }فردا منقضی می شود",
- "You received {share} as a share by {user}" : "{اشتراک} را به عنوان سهم {user }دریافت کردید",
- "You received {share} to group {group} as a share by {user}" : "شما {اشتراک} را به گروه {گروه} به عنوان سهم {user }دریافت کردید",
"Accept" : "پذیرفتن",
"Decline" : "کاهش می یابد",
- "Sharing" : "اشتراک گذاری",
+ "People" : "مردم",
+ "Filter accounts" : "پالایش حساب‌ها",
+ "Expiration date" : "تاریخ انقضا",
+ "Set a password" : "رمزعبور تنظیم کنید",
+ "Password" : "گذرواژه",
+ "Link copied" : "پیوند کپی شد",
+ "Share link" : "Share link",
+ "Copy" : "کپی",
+ "Select" : "گزینش<br>",
+ "Close" : "بسته",
+ "Error creating the share: {errorMessage}" : "Error creating the share: {errorMessage}",
+ "Error creating the share" : "خطایی در ایجاد اشتراک",
+ "Cancel" : "لغو",
+ "Continue" : "ادامه",
"Error while toggling options" : "Error while toggling options",
- "Set default folder for accepted shares" : "انتخاب پوشه ی پیش فرض برای اشتراک گذاری های پذیرفته شده",
- "Reset" : "بازنشاندن",
- "Reset folder to system default" : "بازنشاندن پوشه به حالت پیشفرض سیستم",
"Choose a default folder for accepted shares" : "انتخاب پوشه پیشفرض برای به اشتراک گذاشته های تایید شده",
"Invalid path selected" : "مسیر انتخاب شده نامعتبر است",
"Unknown error" : "خطای ناشناخته",
+ "Set default folder for accepted shares" : "انتخاب پوشه ی پیش فرض برای اشتراک گذاری های پذیرفته شده",
+ "Reset" : "بازنشاندن",
+ "Reset folder to system default" : "بازنشاندن پوشه به حالت پیشفرض سیستم",
"group" : "گروه",
"conversation" : "گفتگو",
"remote" : "از راه دور",
"remote group" : "گروه از راه دور",
"guest" : "میهمان",
- "Shared with the group {user} by {owner}" : "با گروه {کاربر} توسط {صاحب}به اشتراک گذاشته می شود",
- "Shared with the conversation {user} by {owner}" : "به اشتراک گذاشته شده با مکالمه {کاربر} توسط {صاحب}",
- "Shared with {user} by {owner}" : "مشترک با {user} توسط {صاحب}",
- "Added by {initiator}" : "اضافه شده توسط {ابتکار}",
+ "Shared with {user} by {owner}" : "مشترک با {user} توسط {owner}",
+ "Added by {initiator}" : "اضافه شده توسط {initiator}",
"Via “{folder}”" : "Via “{folder}”",
"Unshare" : "لغو اشتراک",
- "Internal link" : "پیوند داخلی",
"Cannot copy, please copy the link manually" : "کپی کردن امکان پذیر نیست ، لطفا پیوند را به صورت دستی کپی کنید",
- "Copy internal link to clipboard" : "Copy internal link to clipboard",
- "Link copied" : "پیوند کپی شد",
- "Please enter the following required information before creating the share" : "لطفا قبل از ایجاد اشتراک ، اطلاعات لازم را وارد کنید",
- "Password protection (enforced)" : "محافظت از رمز عبور (اجباری)",
- "Password protection" : "Password protection",
- "Enter a password" : "یک گذرواژه وارد کنید",
- "Expiration date (enforced)" : "تاریخ انقضا (اجباری)",
- "Enter a date" : "تاریخ را وارد کنید",
- "Create share" : "ساختن اشتراک",
- "Cancel" : "لغو",
- "Add another link" : "پیوند دیگری اضافه کنید",
- "Create a new share link" : "پیوند اشتراک گذاری جدیدی ایجاد کنید",
+ "Copy internal link" : "کپی کردن پیوند داخلی",
+ "Internal link" : "پیوند داخلی",
"{shareWith} by {initiator}" : "{shareWith} by {initiator}",
- "Shared via link by {initiator}" : "از طریق پیوند توسط {ابتکار}",
"Mail share ({label})" : "Mail share ({label})",
"Share link ({label})" : "Share link ({label})",
"Share link ({index})" : "Share link ({index})",
- "Share link" : "Share link",
+ "Create public link" : "ایجاد پیوند عمومی",
"Actions for \"{title}\"" : "Actions for \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Copy public link of \"{title}\" to clipboard",
"Error, please enter proper password and/or expiration date" : "خطا ، لطفاً رمز عبور مناسب و یا تاریخ انقضا را وارد کنید",
"Link share created" : "Link share created",
"Error while creating the share" : "Error while creating the share",
+ "Please enter the following required information before creating the share" : "لطفا قبل از ایجاد اشتراک ، اطلاعات لازم را وارد کنید",
+ "Password protection (enforced)" : "محافظت از رمز عبور (اجباری)",
+ "Password protection" : "Password protection",
+ "Enter a password" : "یک گذرواژه وارد کنید",
+ "Create share" : "ساختن اشتراک",
+ "Add another link" : "پیوند دیگری اضافه کنید",
+ "Create a new share link" : "پیوند اشتراک گذاری جدیدی ایجاد کنید",
"View only" : "تنها مشاهده",
"Can edit" : "توانایی ویرایش",
- "File drop" : "انداختن پرونده",
"Custom permissions" : "Custom permissions",
- "Search for share recipients" : "Search for share recipients",
- "No recommendations. Start typing." : "هیچ توصیه ای نیست شروع به تایپ کنید.",
"Resharing is not allowed" : "اشتراک گذاری مجدد مجاز نمی باشد",
"Name or email …" : "Name or email …",
"Name, email, or Federated Cloud ID …" : "Name, email, or Federated Cloud ID …",
"Searching …" : "جستجوکردن …",
"No elements found." : "عنصری یافت نشد",
- "Search globally" : "در سطح جهان جستجو کنید",
+ "Search everywhere" : "جستجو در هر کجا.",
"Guest" : "مهمان",
"Group" : "گروه",
"Email" : "رایانامه",
+ "Team" : "تیم",
"Talk conversation" : "Talk conversation",
"Deck board" : "تخته deck",
"ScienceMesh" : "ScienceMesh",
- "on {server}" : "روی{سرور}",
+ "on {server}" : "روی{server}",
+ "File drop" : "انداختن پرونده",
+ "Terms of service" : "شرایط و قوانین",
+ "Update share" : "به‌روزرسانی هم‌رسانی",
+ "Read" : "خواندن",
+ "Create" : "ایجاد",
+ "Edit" : "ویرایش",
+ "Share" : "هم‌رسانی",
+ "Delete" : "حذف",
"Allow upload and editing" : "اجازه آپلود و ویرایش",
"Allow editing" : "اجازه‌ی ویرایش",
"Advanced settings" : "تنظیمات پیشرفته",
"Share label" : "Share label",
"Set password" : "تنظیم گذرواژه",
- "Password" : "گذرواژه",
"Password expires {passwordExpirationTime}" : "Password expires {passwordExpirationTime}",
"Password expired" : "Password expired",
"Video verification" : "تأیید صحت ویدیو",
+ "Expiration date (enforced)" : "تاریخ انقضا (اجباری)",
"Set expiration date" : "تنظیم تاریخ انقضا",
- "Expiration date" : "تاریخ انقضا",
"Hide download" : "پنهان کردن بارگیری",
- "Allow download" : "Allow download",
"Note to recipient" : "یادداشت برای گیرنده",
"Enter a note for the share recipient" : "برای دریافت کننده اشتراک یک یادداشت وارد کنید",
- "Read" : "خواندن",
- "Create" : "ایجاد",
- "Edit" : "ویرایش",
- "Share" : "هم‌رسانی",
"Others with access" : "دیگران با دسترسی",
"Toggle list of others with access to this directory" : "لیست دسترسی دیگران به این فهرست را تغییر دهید",
"Toggle list of others with access to this file" : "لیست سایرین را با دسترسی به این پرونده تغییر دهید",
"Unable to fetch inherited shares" : "واگذاری سهام ارثی امکان پذیر نیست",
+ "Shares" : "اشتراک گذاری ها",
"Unable to load the shares list" : "لیست سهام بارگیری نمی شود",
- "Expires {relativetime}" : "{زمان نسبی } منقضی می شود",
+ "Expires {relativetime}" : "منقضی در {relativetime}",
"this share just expired." : "این اشتراک تازه منقضی شد",
- "Shared with you by {owner}" : "به اشتراک گذاشته شده با شما توسط { دارنده}",
+ "Shared with you by {owner}" : "به اشتراک گذاشته شده با شما توسط {owner}",
+ "Link to a file" : "پیوند به یک پرونده",
"_Accept share_::_Accept shares_" : ["Accept share","Accept shares"],
"Open in Files" : "در فایل باز کنید",
"_Reject share_::_Reject shares_" : ["Reject share","Reject shares"],
"_Restore share_::_Restore shares_" : ["Restore share","Restore shares"],
- "Shared" : "به اشتراک گزاشته شده ",
- "Link to a file" : "پیوند به یک پرونده",
- "Error creating the share: {errorMessage}" : "Error creating the share: {errorMessage}",
- "Error creating the share" : "خطایی در ایجاد اشتراک",
- "Error updating the share: {errorMessage}" : "Error updating the share: {errorMessage}",
- "Error updating the share" : "خطایی در به روزرسانی اشتراک",
- "File \"{path}\" has been unshared" : "File \"{path}\" has been unshared",
- "Folder \"{path}\" has been unshared" : "Folder \"{path}\" has been unshared",
- "Share {propertyName} saved" : "Share {propertyName} saved",
- "Shared by" : "اشتراک گذاشته شده به وسیله",
- "Shared with" : "مشترک با",
- "Password created successfully" : "Password created successfully",
- "Error generating password from password policy" : "Error generating password from password policy",
- "Shared with you and the group {group} by {owner}" : "به اشتراک گذاشته شده با شما و گروه {گروه} توسط {دارنده}",
- "Shared with you and {circle} by {owner}" : "با شما و {حلقه} توسط {مالک }به اشتراک گذاشته شده است",
- "Shared with you and the conversation {conversation} by {owner}" : "با شما و گفتگو {مکالمه} توسط {صاحب }به اشتراک گذاشته شده است",
- "Shared with you in a conversation by {owner}" : "در گفتگو توسط {صاحب} با شما به اشتراک گذاشته شده است",
- "Shares" : "اشتراک گذاری ها",
- "Overview of shared files." : "Overview of shared files.",
+ "Shared" : "به اشتراک گذاشته شده ",
+ "Shared multiple times with different people" : "Shared multiple times with different people",
+ "Shared with others" : "موارد به اشتراک گذاشته شده با دیگران",
+ "Public file share" : "اشتراک عمومی پرونده",
+ "Publicly shared file." : "پرونده بصورت عمومی به اشتراک گذاشته شده است",
+ "No file" : "بدون پرونده",
+ "Public share" : "سهم عمومی",
+ "Publicly shared files." : "پرونده ها بصورت عمومی به اشتراک گذاشته شده اند",
+ "Overview of shared files." : "نمای کلی پرونده های به اشتراک گذاشته شده",
"No shares" : "اشتراک گذاری وجود ندارد",
"Files and folders you shared or have been shared with you will show up here" : "Files and folders you shared or have been shared with you will show up here",
"Shared with you" : "موارد به اشتراک گذاشته شده با شما",
- "List of files that are shared with you." : "List of files that are shared with you.",
+ "List of files that are shared with you." : "لیست پرونده هایی که با شما به اشتراک گذاشته شده است.",
"Nothing shared with you yet" : "هیچ موردی با شما به اشتراک گذاشته نشده است",
"Files and folders others shared with you will show up here" : "Files and folders others shared with you will show up here",
- "Shared with others" : "موارد به اشتراک گذاشته شده با دیگران",
- "List of files that you shared with others." : "List of files that you shared with others.",
+ "List of files that you shared with others." : "لیست پرونده هایی که شما با دیگران به اشتراک گذاشته اید.",
"Nothing shared yet" : "هیچ موردی تاکنون به اشتراک گذاشته نشده است",
"Files and folders you shared will show up here" : "Files and folders you shared will show up here",
"Shared by link" : "اشتراک گذاشته شده از طریق لینک",
"List of files that are shared by link." : "List of files that are shared by link.",
"No shared links" : "هیچ لینک اشتراک‌گذاری وجود ندارد",
"Files and folders you shared by link will show up here" : "Files and folders you shared by link will show up here",
+ "File requests" : "درخواست پرونده",
"Deleted shares" : "اشتراک گذاری های حذف شده",
"List of shares you left." : "List of shares you left.",
"No deleted shares" : "اشتراک گذاری های حذف نشده",
@@ -245,47 +184,44 @@
"List of unapproved shares." : "List of unapproved shares.",
"No pending shares" : "بدون اشتراک در حال انتظار",
"Shares you have received but not approved will show up here" : "Shares you have received but not approved will show up here",
+ "Error updating the share: {errorMessage}" : "Error updating the share: {errorMessage}",
+ "Error updating the share" : "خطایی در به روزرسانی اشتراک",
+ "File \"{path}\" has been unshared" : "File \"{path}\" has been unshared",
+ "Folder \"{path}\" has been unshared" : "Folder \"{path}\" has been unshared",
+ "Shared by" : "اشتراک گذاشته شده به وسیله",
+ "Shared with" : "مشترک با",
+ "Password created successfully" : "Password created successfully",
+ "Error generating password from password policy" : "Error generating password from password policy",
+ "Share not found" : "اشتراک گذاری یافت نشد",
+ "Back to %s" : "Back to %s",
+ "Add to your Nextcloud" : "به نکست‌کلود خود اضافه کنید",
+ "Waiting…" : "منتظر باشید ...",
+ "error" : "خطا",
+ "finished" : "تمام شد",
+ "This will stop your current uploads." : "با این کار آپلودهای فعلی شما متوقف خواهد شد.",
+ "Move or copy" : "انتقال یا کپی",
+ "You can upload into this folder" : "می‌توانید در این پوشه آپلود کنید",
+ "Show list view" : "نمایش فهرستی",
+ "Show grid view" : "نمایش شبکه‌ای",
+ "Invalid server URL" : "ادرس سرور نامعتبر",
+ "Failed to add the public link to your Nextcloud" : "خطا در افزودن ادرس عمومی به نکس کلود شما",
+ "Download all files" : "دانلود همه فایل ها",
+ "Link copied to clipboard" : "پیوند در حافظه موقت کپی شده",
+ "Copy to clipboard" : "کپی به کلیپ بورد",
+ "Copy internal link to clipboard" : "Copy internal link to clipboard",
+ "Copy public link of \"{title}\" to clipboard" : "Copy public link of \"{title}\" to clipboard",
+ "Search globally" : "در سطح جهان جستجو کنید",
+ "Search for share recipients" : "Search for share recipients",
+ "No recommendations. Start typing." : "هیچ توصیه ای نیست شروع به تایپ کنید.",
+ "Enter your name" : "اسمت را وارد کن",
"Share note" : "یادداشت اشتراک گذاری",
"Upload files to %s" : "بارگیری پرونده ها به%s",
"Note" : "یادداشت",
"Select or drop files" : "پرونده ها را انتخاب یا رها کنید",
- "Uploading files" : "Uploading files",
+ "Uploading files" : "پرونده های در حال بارگذاری",
"Uploaded files:" : "پرونده های بارگذاری شده:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "%2$sبا بارگذاری پرونده ها ، شما با %1$sشرایط خدمات موافقت می کنید",
- "Add to your Nextcloud" : "به نکست‌کلود خود اضافه کنید",
- "Files and folders others share with you will show up here" : "فایل ها و پوشه های که دیگران با شما به اشتراک گذاشته شده، اینجا نماش داده خواهند شد.",
- "Files and folders you share will show up here" : "فایل ها و پوشه هایی که شما به اشتراک می گذارید در اینجا نمایش داده خواهند شد.",
- "Files and folders you share by link will show up here" : "فایل‌ها و پوشه‌های اشتراک‌گذاشته توسط شما همراه با لینک در اینجا نمایش داده خواهد شد",
- "Shares you deleted will show up here" : "اشتراک گذاری هایی که شما حذف کرده اید اینجا نمایش داده خواهند شد",
- "Shares you have received but not confirmed will show up here" : "سهام شما دریافت کرده اید اما تأیید نشده است در اینجا نشان داده می شود",
- "Shares will show up here" : "موارد به اشتراک گذاری شده اینجا نمایش داده خواهند شد",
- "Restore" : "بازیابی",
- "Something happened. Unable to restore the share." : "موردی پیش آمده است. امکان بازیابی مورد اشتراک گذاری شده وجود ندارد.",
- "Something happened. Unable to accept the share." : "اتفاقی افتاد. امکان اشتراک گذاری وجود ندارد",
- "Something happened. Unable to reject the share." : "اتفاقی افتاد. امکان رد اشتراک وجود ندارد.",
- "No expiration date set" : "تاریخ انقضا ست نشده است",
- "Please specify a valid user" : "لطفاً یک کاربر معتبر را مشخص کنید",
- "Please specify a valid federated user ID" : "Please specify a valid federated user ID",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "این برنامه کاربران را قادر می سازد تا پرونده ها را در Nextcloud به اشتراک بگذارند. در صورت فعال بودن ، سرپرست می تواند انتخاب کند که گروه ها می توانند فایل ها را به اشتراک بگذارند. کاربران قابل استفاده سپس می توانند فایلها و پوشه ها را با سایر کاربران و گروه های موجود در Nextcloud به اشتراک بگذارند. علاوه بر این ، اگر سرپرست ویژگی پیوند اشتراک را فعال کند ، می توان از یک لینک خارجی برای به اشتراک گذاری فایلها با سایر کاربران خارج از Nextcloud استفاده کرد. Admins همچنین می تواند رمزهای عبور ، تاریخهای انقضا را اعمال کرده و سرور را قادر به اشتراک گذاری سرور از طریق پیوندهای اشتراک گذاری و همچنین به اشتراک گذاری از دستگاههای تلفن همراه کند.\nخاموش کردن ویژگی ، پرونده ها و پوشه های مشترک را در سرور برای همه گیرندگان اشتراک و همچنین در کلاینت های همگام سازی و برنامه های تلفن همراه حذف می کند. اطلاعات بیشتر در مستندات Nextcloud در دسترس است.",
- "Accept user and group shares by default" : "پذیرش اشتراک گذاری های کاربران و گروه ها (بطور پیش فرض)",
- "Read only" : "فقط خواندنی",
- "File drop (upload only)" : "انداختن فایل (فقط آپلود)",
- "Upload" : "بارگذاری",
- "Bundled permissions" : "Bundled permissions",
- "Only works for users with access to this folder" : "فقط برای کاربران دارای دسترسی به این پوشه کار می کند",
- "Only works for users with access to this file" : "فقط برای کاربران با دسترسی به این پرونده کار می کند",
- "Circle" : "حلقه",
- "Update" : "به‌روز رسانی",
- "No other users with access found" : "هیچ کاربر دیگری با دسترسی یافت نشد",
- "No entries found in this folder" : "هیچ ورودی‌ای در این پوشه وجود ندارد",
"Name" : "نام",
- "Share time" : "زمان به اشتراک گذاری",
- "Sorry, this link does not seem to work anymore." : "Sorry, this link does not seem to work anymore.",
- "Reasons might be:" : "ممکن است به این دلایل باشد:",
- "the item was removed" : "این مورد حذف شده است",
- "the link expired" : "این لینک منقضی شده است",
- "sharing is disabled" : "قابلیت اشتراک گذاری غیرفعال است",
- "For more info, please ask the person who sent this link." : "برای اطلاعات بیشتر، لطفا از شخصی که این پیوند را ارسال کرده سوال بفرمایید.",
- "Share with" : "به اشتراک گذاشتن با"
+ "Filename must not be empty." : "Filename must not be empty."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/fi.js b/apps/files_sharing/l10n/fi.js
index 4894f04eab9..296ed197278 100644
--- a/apps/files_sharing/l10n/fi.js
+++ b/apps/files_sharing/l10n/fi.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Odotetaan…",
- "error" : "virhe",
- "finished" : "valmis",
- "This will stop your current uploads." : "Tämä pysäyttää meneillään olevat lähetykset.",
- "Move or copy" : "Siirrä tai kopioi",
- "Download" : "Lataa",
- "Delete" : "Poista",
- "You can upload into this folder" : "Voit lähettää tiedostoja tähän kansioon",
- "Terms of service" : "Käyttöehdot",
- "Show list view" : "Näytä listanäkymä",
- "Show grid view" : "Näytä ruudukkonäkymä",
- "No compatible server found at {remote}" : "Yhteensopivaa palvelinta ei löytynyt osoitteesta {remote}",
- "Invalid server URL" : "Virheellinen palvelimen URL",
- "Failed to add the public link to your Nextcloud" : "Julkisen linkin lisääminen Nextcloudiisi epäonnistui",
"File shares" : "Tiedostojaot",
"Downloaded via public link" : "Ladattu julkista linkkiä käyttäen",
"Downloaded by {email}" : "Ladannut {email}",
@@ -70,7 +56,7 @@ OC.L10N.register(
"Share for file {file} expired" : "Tiedoston {file} jako vanhentui",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Tiedosto tai kansio, joka on jaettu sähköpostitse tai julkisen linkin kautta, on <strong>ladattu</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Tiedosto tai kansio on jaettu <strong>toiselta palvelimelta</strong>",
- "Files" : "Tiedostot",
+ "Sharing" : "Jakaminen",
"A file or folder has been <strong>shared</strong>" : "Tiedosto tai kansio on <strong>jaettu</strong>",
"Shared link" : "Jaettu linkki",
"Wrong share ID, share does not exist" : "Väärä jaon ID, jakoa ei ole olemassa",
@@ -78,28 +64,26 @@ OC.L10N.register(
"Please specify a file or folder path" : "Määritä tiedoston tai kansion polku",
"Wrong path, file/folder does not exist" : "Väärä polku, tiedostoa/kansiota ei ole olemassa",
"Could not create share" : "Jaon luominen epäonnistui",
- "Invalid permissions" : "Virheelliset käyttöoikeudet",
- "Invalid date, date format must be YYYY-MM-DD" : "Virheellinen päiväys, päivämäärän muodon tulee olla VVVV-KK-PP",
"Group sharing is disabled by the administrator" : "Ylläpitäjä on estänyt ryhmäjakamisen",
"Please specify a valid group" : "Määritä kelvollinen ryhmä",
"Public link sharing is disabled by the administrator" : "Ylläpitäjä on estänyt julkisen linkin jakamisen",
- "Public upload disabled by the administrator" : "Ylläpitäjä on estänyt julkisen lähetyksen",
- "Public upload is only possible for publicly shared folders" : "Julkinen lähettäminen on mahdollista vain julkisesti jaetuille kansioille",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Kohteen %s jakaminen lähettämällä salasana Nextcloud Talkin kautta epäonnistui, koska Nextcloud Talk ei ole käytössä",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Kohteen %1$s jakaminen epäonnistui, koska tietovarasto ei salli %2$s tyyppisiä jakoja",
- "You cannot share to a Circle if the app is not enabled" : "Et voi jakaa piiriin, jos sovellusta ei ole aktivoitu",
- "Please specify a valid circle" : "Määritä kelvollinen piiri",
+ "Please specify a valid team" : "Määritä kelvollinen tiimi",
"Sharing %s failed because the back end does not support room shares" : "Kohteen %s jakaminen epäonnistui, koska taustaosa ei tue huonejakoja",
"Unknown share type" : "Tuntematon jaon tyyppi",
"Not a directory" : "Ei hakemisto",
"Could not lock node" : "Solmua ei voitu lukita",
+ "Public upload is only possible for publicly shared folders" : "Julkinen lähettäminen on mahdollista vain julkisesti jaetuille kansioille",
+ "Share must at least have READ or CREATE permissions" : "Jaolla tulee olla vähintään luku- tai kirjoitusoikeus",
+ "Public upload disabled by the administrator" : "Ylläpitäjä on estänyt julkisen lähetyksen",
"Could not lock path" : "Polun lukitseminen ei onnistunut",
"Wrong or no update parameter given" : "Päivitettävä parametri puuttuu tai on väärin",
- "Share must at least have READ or CREATE permissions" : "Jaolla tulee olla vähintään luku- tai kirjoitusoikeus",
+ "Wrong password" : "Väärä salasana",
"shared by %s" : "käyttäjän %s jakama",
- "Download all files" : "Lataa kaikki tiedostot",
- "Direct link" : "Suora linkki",
+ "Download" : "Lataa",
"Add to your %s" : "Lisää %siisi",
+ "Direct link" : "Suora linkki",
"Share API is disabled" : "Jakamisrajapinta on poistettu käytöstä",
"File sharing" : "Tiedostonjako",
"Share will expire tomorrow" : "Jako vanhenee huomenna",
@@ -108,15 +92,44 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Vastaanotit jaon {share} ryhmään {group} käyttäjältä {user}",
"Accept" : "Hyväksy",
"Decline" : "Kieltäydy",
- "Sharing" : "Jakaminen",
+ "Open \"%s\"" : "Avaa \"%s\"",
+ "People" : "Ihmiset",
+ "The request will be password protected." : "Pyyntö suojataan salasanalla.",
+ "When should the request expire?" : "Milloin pyynnön tulee vanhentua?",
+ "Expiration date" : "Vanhenemispäivä",
+ "Select a date" : "Valitse päivämäärä",
+ "Set a password" : "Aseta salasana",
+ "Password" : "Salasana",
+ "Enter a valid password" : "Kirjoita oikea salasana",
+ "Generate a new password" : "Luo uusi salasana",
+ "Your administrator has enforced a password protection." : "Ylläpitäjä on pakottanut salasanasuojauksen.",
+ "Link copied" : "Linkki kopioitu",
+ "Email already added" : "Sähköpostiosoite on jo lisätty",
+ "Invalid email address" : "Virheellinen sähköpostiosoite",
+ "Share link" : "Jaa linkki",
+ "Copy" : "Kopioi",
+ "Send link via email" : "Lähetä linkki sähköpostitse",
+ "Select a destination" : "Valitse sijainti",
+ "Select" : "Valitse",
+ "What are you requesting?" : "Mitä pyydät?",
+ "Request subject" : "Pyynnön aihe",
+ "Birthday party photos, History assignment…" : "Syntymäpäiväkuvia, historiantehtäviä…",
+ "Where should these files go?" : "Mihin nämä tiedostot kuuluvat?",
+ "Upload destination" : "Lähetyksen kohde",
+ "The uploaded files are visible only to you unless you choose to share them." : "Lähetetyt tiedostot ovat vain sinulle näkyvissä, ellet päätä jakaa niitä.",
+ "Add a note" : "Lisää muistiinpano",
+ "Close" : "Sulje",
+ "Error creating the share: {errorMessage}" : "Virhe luotaessa jakoa: {errorMessage}",
+ "Error creating the share" : "Virhe jakoa luotaessa",
+ "Cancel" : "Peruuta",
+ "Continue" : "Jatka",
"Accept shares from other accounts and groups by default" : "Hyväksy jaot muilta tileiltä ja ryhmiltä oletusarvoisesti",
- "Set default folder for accepted shares" : "Aseta oletuskansio hyväksytyille jaoille",
- "Reset" : "Palauta",
- "Reset folder to system default" : "Palauta kansio järjestelmän oletukseksi",
"Choose a default folder for accepted shares" : "Valitse oletuskansio hyväksytyille jaoille",
"Invalid path selected" : "Virheellinen polku valittu",
"Unknown error" : "Tuntematon virhe",
- "Open Sharing Details" : "Avaa jakamisen yksityiskohdat",
+ "Set default folder for accepted shares" : "Aseta oletuskansio hyväksytyille jaoille",
+ "Reset" : "Palauta",
+ "Reset folder to system default" : "Palauta kansio järjestelmän oletukseksi",
"group" : "ryhmä",
"conversation" : "keskustelu",
"remote" : "etä",
@@ -125,47 +138,40 @@ OC.L10N.register(
"Shared with the group {user} by {owner}" : "Jaettu ryhmän {user} kanssa käyttäjältä {owner}",
"Shared with the conversation {user} by {owner}" : "Jaettu keskustelun {user} kanssa käyttäjältä {owner}",
"Shared with {user} by {owner}" : "{owner} jakoi käyttäjälle {user}",
+ "Open Sharing Details" : "Avaa jakamisen yksityiskohdat",
"Added by {initiator}" : "Lisäyksen tehnyt {initiator}",
"Via “{folder}”" : "“{folder}” kautta",
"Unshare" : "Lopeta jakaminen",
- "Internal link" : "Sisäinen linkki",
"Cannot copy, please copy the link manually" : "Kopioiminen ei onnistu. Kopioi linkki manuaalisesti",
- "Copy internal link to clipboard" : "Kopioi sisäinen linkki leikepöydälle",
- "Link copied" : "Linkki kopioitu",
+ "Copy internal link" : "Kopioi sisäinen linkki",
+ "Internal link" : "Sisäinen linkki",
+ "Shared via link by {initiator}" : "Jaettu linkin kautta käyttäjältä {initiator}",
+ "Mail share ({label})" : "Sähköpostijako ({label})",
+ "Share link ({label})" : "Jaa linkki ({label})",
+ "Share link ({index})" : "Jaa linkki ({index})",
+ "Create public link" : "Luo julkinen linkki",
+ "Actions for \"{title}\"" : "Toiminnot kohteelle \"{title}\"",
+ "Error, please enter proper password and/or expiration date" : "Virhe, lisää kelvollinen salasana ja/tai päättymispäivä",
+ "Link share created" : "Linkkijako luotu",
+ "Error while creating the share" : "Virhe jakoa luotaessa",
"Please enter the following required information before creating the share" : "Anna seuraavat vaaditut tiedot, ennen kuin luot jaon",
"Password protection (enforced)" : "Salasanasuojaus (pakotettu)",
"Password protection" : "Salasanasuojaus",
"Enter a password" : "Syötä salasana",
- "Expiration date (enforced)" : "Vanhenemispäivä (pakotettu)",
- "Enter a date" : "Syötä päivämäärä",
"Create share" : "Luo jako",
- "Cancel" : "Peruuta",
"Customize link" : "Mukauta linkkiä",
"Generate QR code" : "Luo QR-koodi",
"Add another link" : "Lisää toinen linkki",
"Create a new share link" : "Luo uusi jakolinkki",
- "Shared via link by {initiator}" : "Jaettu linkin kautta käyttäjältä {initiator}",
- "Mail share ({label})" : "Sähköpostijako ({label})",
- "Share link ({label})" : "Jaa linkki ({label})",
- "Share link ({index})" : "Jaa linkki ({index})",
- "Share link" : "Jaa linkki",
- "Actions for \"{title}\"" : "Toiminnot kohteelle \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Kopioi kohteen \"{title}\" julkinen linkki leikepöydälle",
- "Error, please enter proper password and/or expiration date" : "Virhe, lisää kelvollinen salasana ja/tai päättymispäivä",
- "Link share created" : "Linkkijako luotu",
- "Error while creating the share" : "Virhe jakoa luotaessa",
"View only" : "Vain katselu",
"Can edit" : "Voi muokata",
- "File drop" : "Tiedoston pudotus",
"Custom permissions" : "Mukautetut oikeudet",
- "Search for share recipients" : "Etsi jaon vastaanottajia",
- "No recommendations. Start typing." : "Ei suosituksia. Aloita kirjoittaminen.",
"Resharing is not allowed" : "Uudelleenjako ei ole sallittu",
"Name or email …" : "Nimi tai sähköposti...",
"Name, email, or Federated Cloud ID …" : "Nimi, sähköposti tai federoitu Cloud ID...",
"Searching …" : "Haetaan…",
"No elements found." : "Elementtejä ei löytynyt.",
- "Search globally" : "Hae globaalisti",
+ "Search everywhere" : "Etsi kaikkialta",
"Guest" : "Vieras",
"Group" : "Ryhmä",
"Email" : "Sähköposti",
@@ -173,64 +179,66 @@ OC.L10N.register(
"Talk conversation" : "Talk-keskustelu",
"Deck board" : "Deck-taulu",
"on {server}" : "palvelimella {server}",
+ "Note:" : "Huomioi:",
+ "File drop" : "Tiedoston pudotus",
+ "Upload files to {foldername}." : "Lähetä tiedostot kansioon {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Lähettämällä tiedostot hyväksyt käyttöehdot.",
+ "View terms of service" : "Näytä käyttöehdot",
+ "Terms of service" : "Käyttöehdot",
+ "Share with group" : "Jaa ryhmän kanssa",
+ "Share in conversation" : "Jaa keskustelussa",
+ "Share with remote group" : "Jaa etäryhmän kanssa",
+ "Share with guest" : "Jaa vieraan kanssa",
+ "Update share" : "Päivitä jako",
+ "Save share" : "Tallenna jako",
+ "Read" : "Lue",
+ "Create" : "Luo",
+ "Edit" : "Muokkaa",
+ "Share" : "Jaa",
+ "Delete" : "Poista",
+ "Password field cannot be empty" : "Salasanakenttä ei voi olla tyhjä",
+ "Replace current password" : "Korvaa nykyinen salasana",
"Allow upload and editing" : "Salli lähetys ja muokkaus",
"Allow editing" : "Salli muokkaus",
"Advanced settings" : "Lisäasetukset",
"Share label" : "Jaon nimi",
+ "Generating…" : "Luodaan…",
"Set password" : "Aseta salasana",
- "Password" : "Salasana",
"Password expires {passwordExpirationTime}" : "Salasana vanhenee {passwordExpirationTime}",
"Password expired" : "Salasana vanheni",
"Video verification" : "Videovarmistus",
+ "Expiration date (enforced)" : "Vanhenemispäivä (pakotettu)",
"Set expiration date" : "Aseta vanhenemispäivä",
- "Expiration date" : "Vanhenemispäivä",
"Hide download" : "Piilota lataus",
- "Allow download" : "Salli lataus",
"Note to recipient" : "Huomio vastaanottajalle",
"Enter a note for the share recipient" : "Lisää muistiinpano jaon vastaanottajalle",
- "Read" : "Lue",
- "Create" : "Luo",
- "Edit" : "Muokkaa",
- "Share" : "Jaa",
"Delete share" : "Poista jako",
- "Share with {userName}" : "Jaa käyttäjän {userName} kanssa",
- "Share with group" : "Jaa ryhmän kanssa",
- "Share in conversation" : "Jaa keskustelussa",
- "Share with remote group" : "Jaa etäryhmän kanssa",
- "Share with guest" : "Jaa vieraan kanssa",
- "Update share" : "Päivitä jako",
- "Save share" : "Tallenna jako",
"Others with access" : "Muut, joilla on käyttöoikeus",
"Toggle list of others with access to this directory" : "Vaihda näkymää kansioon käyttöoikeuden omaavista käyttäjistä",
"Toggle list of others with access to this file" : "Vaihda näkymää tiedostoon käyttöoikeuden omaavista käyttäjistä",
+ "Shares" : "Jaot",
"Unable to load the shares list" : "Jakolistan haku epäonnistui",
"Expires {relativetime}" : "Vanhenee {relativetime}",
"this share just expired." : "tämä jako vanheni juuri.",
"Shared with you by {owner}" : "{owner} jakoi tämän kanssasi",
+ "Internal shares" : "Sisäiset jaot",
+ "External shares" : "Ulkoiset jaot",
+ "Link to a file" : "Linkki tiedostoon",
"_Accept share_::_Accept shares_" : ["Hyväksy jako","Hyväksy jaot"],
"Open in Files" : "Avaa tiedostosovelluksessa",
"_Reject share_::_Reject shares_" : ["Hylkää jako","Hylkää jaot"],
"_Restore share_::_Restore shares_" : ["Palauta jako","Palauta jaot"],
"Shared" : "Jaettu",
- "Shared multiple times with different people" : "Jaettu useita kertoja eri ihmisten kanssa",
"Shared by {ownerDisplayName}" : "Jakanut {ownerDisplayName}",
- "Show sharing options" : "Näytä jakamisen valinnat",
- "Link to a file" : "Linkki tiedostoon",
- "Error creating the share: {errorMessage}" : "Virhe luotaessa jakoa: {errorMessage}",
- "Error creating the share" : "Virhe jakoa luotaessa",
- "Error updating the share: {errorMessage}" : "Virhe päivittäessä jakoa: {errorMessage}",
- "Error updating the share" : "Virhe jakoa päivittäessä",
- "File \"{path}\" has been unshared" : "Tiedoston \"{path}\" jakaminen on lopetettu",
- "Folder \"{path}\" has been unshared" : "Kansion \"{path}\" jakaminen on lopetettu",
- "Share {propertyName} saved" : "Jako {propertyName} tallennettu",
- "Shared by" : "Jakanut",
- "Shared with" : "Jaettu",
- "Password created successfully" : "Salasana luotu onnistuneesti",
- "Shared with you and the group {group} by {owner}" : "Jaettu sinun ja ryhmän {group} kanssa käyttäjältä {owner}",
- "Shared with you and {circle} by {owner}" : "{owner} on jakanut tämän sinun ja piirin {circle} kanssa",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} on jakanut tämän sinun ja keskustelun {conversation} kanssa",
- "Shared with you in a conversation by {owner}" : "{owner} jakoi tämän kanssasi keskustelussa",
- "Shares" : "Jaot",
+ "Shared multiple times with different people" : "Jaettu useita kertoja eri ihmisten kanssa",
+ "Sharing options" : "Jakamisen valinnat",
+ "Shared with others" : "Jaettu muiden kanssa",
+ "Upload files to {foldername}" : "Lähetä tiedostot kansioon {foldername}",
+ "Public file share" : "Julkinen tiedostojako",
+ "Publicly shared file." : "Tiedosto jaettu julkisesti.",
+ "No file" : "Ei tiedostoa",
+ "Public share" : "Julkinen jako",
+ "No files" : "Ei tiedostoja",
"Overview of shared files." : "Yleisnäkymä jaetuista tiedostoista.",
"No shares" : "Ei jakoja",
"Files and folders you shared or have been shared with you will show up here" : "Tiedostot ja kansiot, jotka olet jakanut tai jotka on jaettu kanssasi, näkyvät täällä",
@@ -238,7 +246,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Luettelo kanssasi jaetuista tiedostoista.",
"Nothing shared with you yet" : "Kanssasi ei ole vielä jaettu mitään",
"Files and folders others shared with you will show up here" : "Kanssasi jaetut tiedostot ja kansiot näkyvät täällä",
- "Shared with others" : "Jaettu muiden kanssa",
"List of files that you shared with others." : "Luettelo muille jakamistasi tiedostoista.",
"Nothing shared yet" : "Ei mitään jaettua",
"Files and folders you shared will show up here" : "Tiedostot ja kansiot, jotka olet jakanut, näkyvät täällä",
@@ -252,45 +259,54 @@ OC.L10N.register(
"List of unapproved shares." : "Luettelo hyväksymättömistä jaoista.",
"No pending shares" : "Ei odottavia jakoja",
"Shares you have received but not approved will show up here" : "Vastaanottamasi jaot, joita ei ole hyväksytty, näkyvät täällä",
+ "Error updating the share: {errorMessage}" : "Virhe päivittäessä jakoa: {errorMessage}",
+ "Error updating the share" : "Virhe jakoa päivittäessä",
+ "File \"{path}\" has been unshared" : "Tiedoston \"{path}\" jakaminen on lopetettu",
+ "Folder \"{path}\" has been unshared" : "Kansion \"{path}\" jakaminen on lopetettu",
+ "Share saved" : "Jako tallennettu",
+ "Upload files to {folder}" : "Lähetä tiedostot kansioon {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} jakoi kansion kanssasi.",
+ "Shared by" : "Jakanut",
+ "Shared with" : "Jaettu",
+ "Password created successfully" : "Salasana luotu onnistuneesti",
+ "Shared with you and the group {group} by {owner}" : "Jaettu sinun ja ryhmän {group} kanssa käyttäjältä {owner}",
+ "Shared with you and {circle} by {owner}" : "{owner} on jakanut tämän sinun ja piirin {circle} kanssa",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} on jakanut tämän sinun ja keskustelun {conversation} kanssa",
+ "Shared with you in a conversation by {owner}" : "{owner} jakoi tämän kanssasi keskustelussa",
+ "Share not found" : "Jakoa ei löytynyt",
+ "Back to %s" : "Takaisin kohtaan %s",
+ "Add to your Nextcloud" : "Lisää Nextcloudiisi",
+ "Waiting…" : "Odotetaan…",
+ "error" : "virhe",
+ "finished" : "valmis",
+ "This will stop your current uploads." : "Tämä pysäyttää meneillään olevat lähetykset.",
+ "Move or copy" : "Siirrä tai kopioi",
+ "You can upload into this folder" : "Voit lähettää tiedostoja tähän kansioon",
+ "Show list view" : "Näytä listanäkymä",
+ "Show grid view" : "Näytä ruudukkonäkymä",
+ "No compatible server found at {remote}" : "Yhteensopivaa palvelinta ei löytynyt osoitteesta {remote}",
+ "Invalid server URL" : "Virheellinen palvelimen URL",
+ "Failed to add the public link to your Nextcloud" : "Julkisen linkin lisääminen Nextcloudiisi epäonnistui",
+ "Download all files" : "Lataa kaikki tiedostot",
+ "Link copied to clipboard" : "Linkki kopioitu leikepöydälle",
+ "Copy to clipboard" : "Kopioi leikepöydälle",
+ "Copy internal link to clipboard" : "Kopioi sisäinen linkki leikepöydälle",
+ "Copy public link of \"{title}\" to clipboard" : "Kopioi kohteen \"{title}\" julkinen linkki leikepöydälle",
+ "Search globally" : "Hae globaalisti",
+ "Search for share recipients" : "Etsi jaon vastaanottajia",
+ "No recommendations. Start typing." : "Ei suosituksia. Aloita kirjoittaminen.",
+ "Enter your name" : "Kirjoita nimesi",
+ "Share with {userName}" : "Jaa käyttäjän {userName} kanssa",
+ "Show sharing options" : "Näytä jakamisen valinnat",
"Share note" : "Jaa muistiinpano",
"Upload files to %s" : "Lähetä tiedostoja käyttäjälle %s",
+ "%s shared a folder with you." : "%s jakoi kansion kanssasi.",
"Note" : "Huomio",
"Select or drop files" : "Valitse tai pudota tiedostoja",
"Uploading files" : "Lähetetään tiedostoja",
"Uploaded files:" : "Lähetetyt tiedostot:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Tiedostoja lähettämällä hyväksyt %1$skäyttöehdot%2$s.",
- "Add to your Nextcloud" : "Lisää Nextcloudiisi",
- "Files and folders others share with you will show up here" : "Kanssasi jaetut tiedostot ja kansiot näkyvät täällä",
- "Files and folders you share will show up here" : "Jakamasi tiedostot ja kansiot näkyvät täällä",
- "Files and folders you share by link will show up here" : "Linkin kautta jakamasi tiedostot ja kansiot näkyvät täällä",
- "Shares you deleted will show up here" : "Poistamasi jaot näkyvät täällä",
- "Shares you have received but not confirmed will show up here" : "Vastaanottamasi jaot, joita ei ole vahvistettu, näkyvät täällä",
- "Shares will show up here" : "Jaot näkyvät täällä",
- "Restore" : "Palauta",
- "Something happened. Unable to restore the share." : "Jotain tapahtui. Jakoa ei kyetty palauttamaan.",
- "Something happened. Unable to accept the share." : "Jotain tapahtui. Jakoa ei voitu hyväksyä.",
- "Something happened. Unable to reject the share." : "Tapahtui virhe. Ei voida hylätä jakoa.",
- "No expiration date set" : "Ei vanhenemispäivää asetettu",
- "Please specify a valid user" : "Määritä kelvollinen käyttäjä",
- "Accept user and group shares by default" : "Hyväksy käyttäjä- ja ryhmäjaot oletuksena",
- "Read only" : "Vain luku",
- "File drop (upload only)" : "Tiedostojen pudotus (vain lähetys)",
- "Upload" : "Lähetä",
- "Only works for users with access to this folder" : "Toimii vain käyttäjille, joilla on oikeus tähän kansioon",
- "Only works for users with access to this file" : "Toimii vain käyttäjille, joilla on käyttöoikeus tähän tiedostoon",
- "Circle" : "Piiri",
- "Update" : "Päivitä",
- "No other users with access found" : "Ei löytynyt muita käyttäjiä, joilla olisi käyttöoikeus",
- "No entries found in this folder" : "Ei kohteita tässä kansiossa",
"Name" : "Nimi",
- "Share time" : "Jakamisen ajankohta",
- "Sorry, this link does not seem to work anymore." : "Valitettavasti tämä linkki ei vaikuta enää toimivan.",
- "Reasons might be:" : "Mahdollisia syitä saattavat olla:",
- "the item was removed" : "kohde poistettiin",
- "the link expired" : "linkki vanheni",
- "sharing is disabled" : "jakaminen on poistettu käytöstä",
- "For more info, please ask the person who sent this link." : "Kysy lisätietoja henkilöltä, jolta sait linkin.",
- "Share with remote" : "Jaa etätahon kanssa",
- "Share with" : "Jaa"
+ "Filename must not be empty." : "Tiedostonimi ei voi olla tyhjä."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/fi.json b/apps/files_sharing/l10n/fi.json
index 84f70bfca23..514b5b3be62 100644
--- a/apps/files_sharing/l10n/fi.json
+++ b/apps/files_sharing/l10n/fi.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Odotetaan…",
- "error" : "virhe",
- "finished" : "valmis",
- "This will stop your current uploads." : "Tämä pysäyttää meneillään olevat lähetykset.",
- "Move or copy" : "Siirrä tai kopioi",
- "Download" : "Lataa",
- "Delete" : "Poista",
- "You can upload into this folder" : "Voit lähettää tiedostoja tähän kansioon",
- "Terms of service" : "Käyttöehdot",
- "Show list view" : "Näytä listanäkymä",
- "Show grid view" : "Näytä ruudukkonäkymä",
- "No compatible server found at {remote}" : "Yhteensopivaa palvelinta ei löytynyt osoitteesta {remote}",
- "Invalid server URL" : "Virheellinen palvelimen URL",
- "Failed to add the public link to your Nextcloud" : "Julkisen linkin lisääminen Nextcloudiisi epäonnistui",
"File shares" : "Tiedostojaot",
"Downloaded via public link" : "Ladattu julkista linkkiä käyttäen",
"Downloaded by {email}" : "Ladannut {email}",
@@ -68,7 +54,7 @@
"Share for file {file} expired" : "Tiedoston {file} jako vanhentui",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Tiedosto tai kansio, joka on jaettu sähköpostitse tai julkisen linkin kautta, on <strong>ladattu</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Tiedosto tai kansio on jaettu <strong>toiselta palvelimelta</strong>",
- "Files" : "Tiedostot",
+ "Sharing" : "Jakaminen",
"A file or folder has been <strong>shared</strong>" : "Tiedosto tai kansio on <strong>jaettu</strong>",
"Shared link" : "Jaettu linkki",
"Wrong share ID, share does not exist" : "Väärä jaon ID, jakoa ei ole olemassa",
@@ -76,28 +62,26 @@
"Please specify a file or folder path" : "Määritä tiedoston tai kansion polku",
"Wrong path, file/folder does not exist" : "Väärä polku, tiedostoa/kansiota ei ole olemassa",
"Could not create share" : "Jaon luominen epäonnistui",
- "Invalid permissions" : "Virheelliset käyttöoikeudet",
- "Invalid date, date format must be YYYY-MM-DD" : "Virheellinen päiväys, päivämäärän muodon tulee olla VVVV-KK-PP",
"Group sharing is disabled by the administrator" : "Ylläpitäjä on estänyt ryhmäjakamisen",
"Please specify a valid group" : "Määritä kelvollinen ryhmä",
"Public link sharing is disabled by the administrator" : "Ylläpitäjä on estänyt julkisen linkin jakamisen",
- "Public upload disabled by the administrator" : "Ylläpitäjä on estänyt julkisen lähetyksen",
- "Public upload is only possible for publicly shared folders" : "Julkinen lähettäminen on mahdollista vain julkisesti jaetuille kansioille",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Kohteen %s jakaminen lähettämällä salasana Nextcloud Talkin kautta epäonnistui, koska Nextcloud Talk ei ole käytössä",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Kohteen %1$s jakaminen epäonnistui, koska tietovarasto ei salli %2$s tyyppisiä jakoja",
- "You cannot share to a Circle if the app is not enabled" : "Et voi jakaa piiriin, jos sovellusta ei ole aktivoitu",
- "Please specify a valid circle" : "Määritä kelvollinen piiri",
+ "Please specify a valid team" : "Määritä kelvollinen tiimi",
"Sharing %s failed because the back end does not support room shares" : "Kohteen %s jakaminen epäonnistui, koska taustaosa ei tue huonejakoja",
"Unknown share type" : "Tuntematon jaon tyyppi",
"Not a directory" : "Ei hakemisto",
"Could not lock node" : "Solmua ei voitu lukita",
+ "Public upload is only possible for publicly shared folders" : "Julkinen lähettäminen on mahdollista vain julkisesti jaetuille kansioille",
+ "Share must at least have READ or CREATE permissions" : "Jaolla tulee olla vähintään luku- tai kirjoitusoikeus",
+ "Public upload disabled by the administrator" : "Ylläpitäjä on estänyt julkisen lähetyksen",
"Could not lock path" : "Polun lukitseminen ei onnistunut",
"Wrong or no update parameter given" : "Päivitettävä parametri puuttuu tai on väärin",
- "Share must at least have READ or CREATE permissions" : "Jaolla tulee olla vähintään luku- tai kirjoitusoikeus",
+ "Wrong password" : "Väärä salasana",
"shared by %s" : "käyttäjän %s jakama",
- "Download all files" : "Lataa kaikki tiedostot",
- "Direct link" : "Suora linkki",
+ "Download" : "Lataa",
"Add to your %s" : "Lisää %siisi",
+ "Direct link" : "Suora linkki",
"Share API is disabled" : "Jakamisrajapinta on poistettu käytöstä",
"File sharing" : "Tiedostonjako",
"Share will expire tomorrow" : "Jako vanhenee huomenna",
@@ -106,15 +90,44 @@
"You received {share} to group {group} as a share by {user}" : "Vastaanotit jaon {share} ryhmään {group} käyttäjältä {user}",
"Accept" : "Hyväksy",
"Decline" : "Kieltäydy",
- "Sharing" : "Jakaminen",
+ "Open \"%s\"" : "Avaa \"%s\"",
+ "People" : "Ihmiset",
+ "The request will be password protected." : "Pyyntö suojataan salasanalla.",
+ "When should the request expire?" : "Milloin pyynnön tulee vanhentua?",
+ "Expiration date" : "Vanhenemispäivä",
+ "Select a date" : "Valitse päivämäärä",
+ "Set a password" : "Aseta salasana",
+ "Password" : "Salasana",
+ "Enter a valid password" : "Kirjoita oikea salasana",
+ "Generate a new password" : "Luo uusi salasana",
+ "Your administrator has enforced a password protection." : "Ylläpitäjä on pakottanut salasanasuojauksen.",
+ "Link copied" : "Linkki kopioitu",
+ "Email already added" : "Sähköpostiosoite on jo lisätty",
+ "Invalid email address" : "Virheellinen sähköpostiosoite",
+ "Share link" : "Jaa linkki",
+ "Copy" : "Kopioi",
+ "Send link via email" : "Lähetä linkki sähköpostitse",
+ "Select a destination" : "Valitse sijainti",
+ "Select" : "Valitse",
+ "What are you requesting?" : "Mitä pyydät?",
+ "Request subject" : "Pyynnön aihe",
+ "Birthday party photos, History assignment…" : "Syntymäpäiväkuvia, historiantehtäviä…",
+ "Where should these files go?" : "Mihin nämä tiedostot kuuluvat?",
+ "Upload destination" : "Lähetyksen kohde",
+ "The uploaded files are visible only to you unless you choose to share them." : "Lähetetyt tiedostot ovat vain sinulle näkyvissä, ellet päätä jakaa niitä.",
+ "Add a note" : "Lisää muistiinpano",
+ "Close" : "Sulje",
+ "Error creating the share: {errorMessage}" : "Virhe luotaessa jakoa: {errorMessage}",
+ "Error creating the share" : "Virhe jakoa luotaessa",
+ "Cancel" : "Peruuta",
+ "Continue" : "Jatka",
"Accept shares from other accounts and groups by default" : "Hyväksy jaot muilta tileiltä ja ryhmiltä oletusarvoisesti",
- "Set default folder for accepted shares" : "Aseta oletuskansio hyväksytyille jaoille",
- "Reset" : "Palauta",
- "Reset folder to system default" : "Palauta kansio järjestelmän oletukseksi",
"Choose a default folder for accepted shares" : "Valitse oletuskansio hyväksytyille jaoille",
"Invalid path selected" : "Virheellinen polku valittu",
"Unknown error" : "Tuntematon virhe",
- "Open Sharing Details" : "Avaa jakamisen yksityiskohdat",
+ "Set default folder for accepted shares" : "Aseta oletuskansio hyväksytyille jaoille",
+ "Reset" : "Palauta",
+ "Reset folder to system default" : "Palauta kansio järjestelmän oletukseksi",
"group" : "ryhmä",
"conversation" : "keskustelu",
"remote" : "etä",
@@ -123,47 +136,40 @@
"Shared with the group {user} by {owner}" : "Jaettu ryhmän {user} kanssa käyttäjältä {owner}",
"Shared with the conversation {user} by {owner}" : "Jaettu keskustelun {user} kanssa käyttäjältä {owner}",
"Shared with {user} by {owner}" : "{owner} jakoi käyttäjälle {user}",
+ "Open Sharing Details" : "Avaa jakamisen yksityiskohdat",
"Added by {initiator}" : "Lisäyksen tehnyt {initiator}",
"Via “{folder}”" : "“{folder}” kautta",
"Unshare" : "Lopeta jakaminen",
- "Internal link" : "Sisäinen linkki",
"Cannot copy, please copy the link manually" : "Kopioiminen ei onnistu. Kopioi linkki manuaalisesti",
- "Copy internal link to clipboard" : "Kopioi sisäinen linkki leikepöydälle",
- "Link copied" : "Linkki kopioitu",
+ "Copy internal link" : "Kopioi sisäinen linkki",
+ "Internal link" : "Sisäinen linkki",
+ "Shared via link by {initiator}" : "Jaettu linkin kautta käyttäjältä {initiator}",
+ "Mail share ({label})" : "Sähköpostijako ({label})",
+ "Share link ({label})" : "Jaa linkki ({label})",
+ "Share link ({index})" : "Jaa linkki ({index})",
+ "Create public link" : "Luo julkinen linkki",
+ "Actions for \"{title}\"" : "Toiminnot kohteelle \"{title}\"",
+ "Error, please enter proper password and/or expiration date" : "Virhe, lisää kelvollinen salasana ja/tai päättymispäivä",
+ "Link share created" : "Linkkijako luotu",
+ "Error while creating the share" : "Virhe jakoa luotaessa",
"Please enter the following required information before creating the share" : "Anna seuraavat vaaditut tiedot, ennen kuin luot jaon",
"Password protection (enforced)" : "Salasanasuojaus (pakotettu)",
"Password protection" : "Salasanasuojaus",
"Enter a password" : "Syötä salasana",
- "Expiration date (enforced)" : "Vanhenemispäivä (pakotettu)",
- "Enter a date" : "Syötä päivämäärä",
"Create share" : "Luo jako",
- "Cancel" : "Peruuta",
"Customize link" : "Mukauta linkkiä",
"Generate QR code" : "Luo QR-koodi",
"Add another link" : "Lisää toinen linkki",
"Create a new share link" : "Luo uusi jakolinkki",
- "Shared via link by {initiator}" : "Jaettu linkin kautta käyttäjältä {initiator}",
- "Mail share ({label})" : "Sähköpostijako ({label})",
- "Share link ({label})" : "Jaa linkki ({label})",
- "Share link ({index})" : "Jaa linkki ({index})",
- "Share link" : "Jaa linkki",
- "Actions for \"{title}\"" : "Toiminnot kohteelle \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Kopioi kohteen \"{title}\" julkinen linkki leikepöydälle",
- "Error, please enter proper password and/or expiration date" : "Virhe, lisää kelvollinen salasana ja/tai päättymispäivä",
- "Link share created" : "Linkkijako luotu",
- "Error while creating the share" : "Virhe jakoa luotaessa",
"View only" : "Vain katselu",
"Can edit" : "Voi muokata",
- "File drop" : "Tiedoston pudotus",
"Custom permissions" : "Mukautetut oikeudet",
- "Search for share recipients" : "Etsi jaon vastaanottajia",
- "No recommendations. Start typing." : "Ei suosituksia. Aloita kirjoittaminen.",
"Resharing is not allowed" : "Uudelleenjako ei ole sallittu",
"Name or email …" : "Nimi tai sähköposti...",
"Name, email, or Federated Cloud ID …" : "Nimi, sähköposti tai federoitu Cloud ID...",
"Searching …" : "Haetaan…",
"No elements found." : "Elementtejä ei löytynyt.",
- "Search globally" : "Hae globaalisti",
+ "Search everywhere" : "Etsi kaikkialta",
"Guest" : "Vieras",
"Group" : "Ryhmä",
"Email" : "Sähköposti",
@@ -171,64 +177,66 @@
"Talk conversation" : "Talk-keskustelu",
"Deck board" : "Deck-taulu",
"on {server}" : "palvelimella {server}",
+ "Note:" : "Huomioi:",
+ "File drop" : "Tiedoston pudotus",
+ "Upload files to {foldername}." : "Lähetä tiedostot kansioon {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Lähettämällä tiedostot hyväksyt käyttöehdot.",
+ "View terms of service" : "Näytä käyttöehdot",
+ "Terms of service" : "Käyttöehdot",
+ "Share with group" : "Jaa ryhmän kanssa",
+ "Share in conversation" : "Jaa keskustelussa",
+ "Share with remote group" : "Jaa etäryhmän kanssa",
+ "Share with guest" : "Jaa vieraan kanssa",
+ "Update share" : "Päivitä jako",
+ "Save share" : "Tallenna jako",
+ "Read" : "Lue",
+ "Create" : "Luo",
+ "Edit" : "Muokkaa",
+ "Share" : "Jaa",
+ "Delete" : "Poista",
+ "Password field cannot be empty" : "Salasanakenttä ei voi olla tyhjä",
+ "Replace current password" : "Korvaa nykyinen salasana",
"Allow upload and editing" : "Salli lähetys ja muokkaus",
"Allow editing" : "Salli muokkaus",
"Advanced settings" : "Lisäasetukset",
"Share label" : "Jaon nimi",
+ "Generating…" : "Luodaan…",
"Set password" : "Aseta salasana",
- "Password" : "Salasana",
"Password expires {passwordExpirationTime}" : "Salasana vanhenee {passwordExpirationTime}",
"Password expired" : "Salasana vanheni",
"Video verification" : "Videovarmistus",
+ "Expiration date (enforced)" : "Vanhenemispäivä (pakotettu)",
"Set expiration date" : "Aseta vanhenemispäivä",
- "Expiration date" : "Vanhenemispäivä",
"Hide download" : "Piilota lataus",
- "Allow download" : "Salli lataus",
"Note to recipient" : "Huomio vastaanottajalle",
"Enter a note for the share recipient" : "Lisää muistiinpano jaon vastaanottajalle",
- "Read" : "Lue",
- "Create" : "Luo",
- "Edit" : "Muokkaa",
- "Share" : "Jaa",
"Delete share" : "Poista jako",
- "Share with {userName}" : "Jaa käyttäjän {userName} kanssa",
- "Share with group" : "Jaa ryhmän kanssa",
- "Share in conversation" : "Jaa keskustelussa",
- "Share with remote group" : "Jaa etäryhmän kanssa",
- "Share with guest" : "Jaa vieraan kanssa",
- "Update share" : "Päivitä jako",
- "Save share" : "Tallenna jako",
"Others with access" : "Muut, joilla on käyttöoikeus",
"Toggle list of others with access to this directory" : "Vaihda näkymää kansioon käyttöoikeuden omaavista käyttäjistä",
"Toggle list of others with access to this file" : "Vaihda näkymää tiedostoon käyttöoikeuden omaavista käyttäjistä",
+ "Shares" : "Jaot",
"Unable to load the shares list" : "Jakolistan haku epäonnistui",
"Expires {relativetime}" : "Vanhenee {relativetime}",
"this share just expired." : "tämä jako vanheni juuri.",
"Shared with you by {owner}" : "{owner} jakoi tämän kanssasi",
+ "Internal shares" : "Sisäiset jaot",
+ "External shares" : "Ulkoiset jaot",
+ "Link to a file" : "Linkki tiedostoon",
"_Accept share_::_Accept shares_" : ["Hyväksy jako","Hyväksy jaot"],
"Open in Files" : "Avaa tiedostosovelluksessa",
"_Reject share_::_Reject shares_" : ["Hylkää jako","Hylkää jaot"],
"_Restore share_::_Restore shares_" : ["Palauta jako","Palauta jaot"],
"Shared" : "Jaettu",
- "Shared multiple times with different people" : "Jaettu useita kertoja eri ihmisten kanssa",
"Shared by {ownerDisplayName}" : "Jakanut {ownerDisplayName}",
- "Show sharing options" : "Näytä jakamisen valinnat",
- "Link to a file" : "Linkki tiedostoon",
- "Error creating the share: {errorMessage}" : "Virhe luotaessa jakoa: {errorMessage}",
- "Error creating the share" : "Virhe jakoa luotaessa",
- "Error updating the share: {errorMessage}" : "Virhe päivittäessä jakoa: {errorMessage}",
- "Error updating the share" : "Virhe jakoa päivittäessä",
- "File \"{path}\" has been unshared" : "Tiedoston \"{path}\" jakaminen on lopetettu",
- "Folder \"{path}\" has been unshared" : "Kansion \"{path}\" jakaminen on lopetettu",
- "Share {propertyName} saved" : "Jako {propertyName} tallennettu",
- "Shared by" : "Jakanut",
- "Shared with" : "Jaettu",
- "Password created successfully" : "Salasana luotu onnistuneesti",
- "Shared with you and the group {group} by {owner}" : "Jaettu sinun ja ryhmän {group} kanssa käyttäjältä {owner}",
- "Shared with you and {circle} by {owner}" : "{owner} on jakanut tämän sinun ja piirin {circle} kanssa",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} on jakanut tämän sinun ja keskustelun {conversation} kanssa",
- "Shared with you in a conversation by {owner}" : "{owner} jakoi tämän kanssasi keskustelussa",
- "Shares" : "Jaot",
+ "Shared multiple times with different people" : "Jaettu useita kertoja eri ihmisten kanssa",
+ "Sharing options" : "Jakamisen valinnat",
+ "Shared with others" : "Jaettu muiden kanssa",
+ "Upload files to {foldername}" : "Lähetä tiedostot kansioon {foldername}",
+ "Public file share" : "Julkinen tiedostojako",
+ "Publicly shared file." : "Tiedosto jaettu julkisesti.",
+ "No file" : "Ei tiedostoa",
+ "Public share" : "Julkinen jako",
+ "No files" : "Ei tiedostoja",
"Overview of shared files." : "Yleisnäkymä jaetuista tiedostoista.",
"No shares" : "Ei jakoja",
"Files and folders you shared or have been shared with you will show up here" : "Tiedostot ja kansiot, jotka olet jakanut tai jotka on jaettu kanssasi, näkyvät täällä",
@@ -236,7 +244,6 @@
"List of files that are shared with you." : "Luettelo kanssasi jaetuista tiedostoista.",
"Nothing shared with you yet" : "Kanssasi ei ole vielä jaettu mitään",
"Files and folders others shared with you will show up here" : "Kanssasi jaetut tiedostot ja kansiot näkyvät täällä",
- "Shared with others" : "Jaettu muiden kanssa",
"List of files that you shared with others." : "Luettelo muille jakamistasi tiedostoista.",
"Nothing shared yet" : "Ei mitään jaettua",
"Files and folders you shared will show up here" : "Tiedostot ja kansiot, jotka olet jakanut, näkyvät täällä",
@@ -250,45 +257,54 @@
"List of unapproved shares." : "Luettelo hyväksymättömistä jaoista.",
"No pending shares" : "Ei odottavia jakoja",
"Shares you have received but not approved will show up here" : "Vastaanottamasi jaot, joita ei ole hyväksytty, näkyvät täällä",
+ "Error updating the share: {errorMessage}" : "Virhe päivittäessä jakoa: {errorMessage}",
+ "Error updating the share" : "Virhe jakoa päivittäessä",
+ "File \"{path}\" has been unshared" : "Tiedoston \"{path}\" jakaminen on lopetettu",
+ "Folder \"{path}\" has been unshared" : "Kansion \"{path}\" jakaminen on lopetettu",
+ "Share saved" : "Jako tallennettu",
+ "Upload files to {folder}" : "Lähetä tiedostot kansioon {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} jakoi kansion kanssasi.",
+ "Shared by" : "Jakanut",
+ "Shared with" : "Jaettu",
+ "Password created successfully" : "Salasana luotu onnistuneesti",
+ "Shared with you and the group {group} by {owner}" : "Jaettu sinun ja ryhmän {group} kanssa käyttäjältä {owner}",
+ "Shared with you and {circle} by {owner}" : "{owner} on jakanut tämän sinun ja piirin {circle} kanssa",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} on jakanut tämän sinun ja keskustelun {conversation} kanssa",
+ "Shared with you in a conversation by {owner}" : "{owner} jakoi tämän kanssasi keskustelussa",
+ "Share not found" : "Jakoa ei löytynyt",
+ "Back to %s" : "Takaisin kohtaan %s",
+ "Add to your Nextcloud" : "Lisää Nextcloudiisi",
+ "Waiting…" : "Odotetaan…",
+ "error" : "virhe",
+ "finished" : "valmis",
+ "This will stop your current uploads." : "Tämä pysäyttää meneillään olevat lähetykset.",
+ "Move or copy" : "Siirrä tai kopioi",
+ "You can upload into this folder" : "Voit lähettää tiedostoja tähän kansioon",
+ "Show list view" : "Näytä listanäkymä",
+ "Show grid view" : "Näytä ruudukkonäkymä",
+ "No compatible server found at {remote}" : "Yhteensopivaa palvelinta ei löytynyt osoitteesta {remote}",
+ "Invalid server URL" : "Virheellinen palvelimen URL",
+ "Failed to add the public link to your Nextcloud" : "Julkisen linkin lisääminen Nextcloudiisi epäonnistui",
+ "Download all files" : "Lataa kaikki tiedostot",
+ "Link copied to clipboard" : "Linkki kopioitu leikepöydälle",
+ "Copy to clipboard" : "Kopioi leikepöydälle",
+ "Copy internal link to clipboard" : "Kopioi sisäinen linkki leikepöydälle",
+ "Copy public link of \"{title}\" to clipboard" : "Kopioi kohteen \"{title}\" julkinen linkki leikepöydälle",
+ "Search globally" : "Hae globaalisti",
+ "Search for share recipients" : "Etsi jaon vastaanottajia",
+ "No recommendations. Start typing." : "Ei suosituksia. Aloita kirjoittaminen.",
+ "Enter your name" : "Kirjoita nimesi",
+ "Share with {userName}" : "Jaa käyttäjän {userName} kanssa",
+ "Show sharing options" : "Näytä jakamisen valinnat",
"Share note" : "Jaa muistiinpano",
"Upload files to %s" : "Lähetä tiedostoja käyttäjälle %s",
+ "%s shared a folder with you." : "%s jakoi kansion kanssasi.",
"Note" : "Huomio",
"Select or drop files" : "Valitse tai pudota tiedostoja",
"Uploading files" : "Lähetetään tiedostoja",
"Uploaded files:" : "Lähetetyt tiedostot:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Tiedostoja lähettämällä hyväksyt %1$skäyttöehdot%2$s.",
- "Add to your Nextcloud" : "Lisää Nextcloudiisi",
- "Files and folders others share with you will show up here" : "Kanssasi jaetut tiedostot ja kansiot näkyvät täällä",
- "Files and folders you share will show up here" : "Jakamasi tiedostot ja kansiot näkyvät täällä",
- "Files and folders you share by link will show up here" : "Linkin kautta jakamasi tiedostot ja kansiot näkyvät täällä",
- "Shares you deleted will show up here" : "Poistamasi jaot näkyvät täällä",
- "Shares you have received but not confirmed will show up here" : "Vastaanottamasi jaot, joita ei ole vahvistettu, näkyvät täällä",
- "Shares will show up here" : "Jaot näkyvät täällä",
- "Restore" : "Palauta",
- "Something happened. Unable to restore the share." : "Jotain tapahtui. Jakoa ei kyetty palauttamaan.",
- "Something happened. Unable to accept the share." : "Jotain tapahtui. Jakoa ei voitu hyväksyä.",
- "Something happened. Unable to reject the share." : "Tapahtui virhe. Ei voida hylätä jakoa.",
- "No expiration date set" : "Ei vanhenemispäivää asetettu",
- "Please specify a valid user" : "Määritä kelvollinen käyttäjä",
- "Accept user and group shares by default" : "Hyväksy käyttäjä- ja ryhmäjaot oletuksena",
- "Read only" : "Vain luku",
- "File drop (upload only)" : "Tiedostojen pudotus (vain lähetys)",
- "Upload" : "Lähetä",
- "Only works for users with access to this folder" : "Toimii vain käyttäjille, joilla on oikeus tähän kansioon",
- "Only works for users with access to this file" : "Toimii vain käyttäjille, joilla on käyttöoikeus tähän tiedostoon",
- "Circle" : "Piiri",
- "Update" : "Päivitä",
- "No other users with access found" : "Ei löytynyt muita käyttäjiä, joilla olisi käyttöoikeus",
- "No entries found in this folder" : "Ei kohteita tässä kansiossa",
"Name" : "Nimi",
- "Share time" : "Jakamisen ajankohta",
- "Sorry, this link does not seem to work anymore." : "Valitettavasti tämä linkki ei vaikuta enää toimivan.",
- "Reasons might be:" : "Mahdollisia syitä saattavat olla:",
- "the item was removed" : "kohde poistettiin",
- "the link expired" : "linkki vanheni",
- "sharing is disabled" : "jakaminen on poistettu käytöstä",
- "For more info, please ask the person who sent this link." : "Kysy lisätietoja henkilöltä, jolta sait linkin.",
- "Share with remote" : "Jaa etätahon kanssa",
- "Share with" : "Jaa"
+ "Filename must not be empty." : "Tiedostonimi ei voi olla tyhjä."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js
index c3a93a69e4b..54cb8699e7e 100644
--- a/apps/files_sharing/l10n/fr.js
+++ b/apps/files_sharing/l10n/fr.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "En attente...",
- "error" : "erreur",
- "finished" : "terminé",
- "This will stop your current uploads." : "Cela va arrêter vos envois en cours.",
- "Move or copy" : "Déplacer ou copier",
- "Download" : "Télécharger",
- "Delete" : "Supprimer",
- "You can upload into this folder" : "Vous pouvez téléverser des fichiers dans ce dossier",
- "Terms of service" : "Conditions d'utilisation",
- "Show list view" : "Activer l'affichage liste",
- "Show grid view" : "Activer l'affichage mosaïque",
- "No compatible server found at {remote}" : "Aucun serveur compatible trouvé sur {remote}",
- "Invalid server URL" : "URL serveur invalide",
- "Failed to add the public link to your Nextcloud" : "Échec de l'ajout du lien public à votre Nextcloud",
"File shares" : "Partages de fichiers",
"Downloaded via public link" : "Téléchargé par lien public",
"Downloaded by {email}" : "Téléchargé par {email}",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "Partage du fichier {file} avec l'utilisateur {user} expiré",
"Share for file {file} expired" : "Partage du fichier {file} expiré",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un fichier ou un dossier partagé par e-mail ou par lien public a été <strong>téléchargé</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Des fichiers ont été <strong>téléversés</strong> dans un dossier partagé par e-mail ou par lien public",
"A file or folder was shared from <strong>another server</strong>" : "Un fichier ou un dossier a été partagé depuis <strong>un autre serveur</strong>",
- "Files" : "Fichiers",
+ "Sharing" : "Partage",
"A file or folder has been <strong>shared</strong>" : "Un fichier ou un dossier a été <strong>partagé</strong>",
"Shared link" : "Lien partagé",
"Wrong share ID, share does not exist" : "ID de partage erroné, ce partage n'existe pas",
@@ -78,34 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "Veuillez indiquer un fichier ou un chemin",
"Wrong path, file/folder does not exist" : "Chemin incorrect, le fichier/dossier n'existe pas",
"Could not create share" : "Impossible de créer le partage",
- "Invalid permissions" : "Autorisations non valides",
- "Invalid date, date format must be YYYY-MM-DD" : "Date non valide, le format doit être DD/MM/YYYY",
"Please specify a valid account to share with" : "Merci de spécifier un compte valide pour le partage",
"Group sharing is disabled by the administrator" : "Le partage de groupe a été désactivé par l’administrateur",
"Please specify a valid group" : "Veuillez entrer un groupe valide",
"Public link sharing is disabled by the administrator" : "Le partage de lien public a été désactivé par l’administrateur",
- "Public upload disabled by the administrator" : "Envois publics désactivés par l'administrateur",
- "Public upload is only possible for publicly shared folders" : "Les envois publics sont possibles uniquement pour les dossiers partagés publiquement",
+ "Please specify a valid email address" : "Veuillez spécifier une adresse e-mail valide",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Partager %s en envoyant le mot de passe par Nextcloud Talk a échoué car Nextcloud Talk n'est pas activé.",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Le partage %1$s a échoué parce que l'infrastructure n'autorise pas les partages du type %2$s",
"Please specify a valid federated account ID" : "Merci de spécifier un compte fédéré valide",
"Please specify a valid federated group ID" : "Merci de spécifier un groupe fédéré valide",
- "You cannot share to a Circle if the app is not enabled" : "Vous ne pouvez pas partager au Cercle si l'application n'est pas activée",
- "Please specify a valid circle" : "Veuillez entrer un cercle valide",
+ "You cannot share to a Team if the app is not enabled" : "Vous ne pouvez pas partager à une équipe si l'application n'est pas activée",
+ "Please specify a valid team" : "Merci de spécifier un équipe valide",
"Sharing %s failed because the back end does not support room shares" : "Le partage %s a échoué parce que l'arrière-plan ne prend pas en charge les partages.",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Le partage de %s a échoué car le serveur ne supporte pas les partages ScienceMesh",
"Unknown share type" : "Type de partage inconnu",
"Not a directory" : "N'est pas un dossier",
"Could not lock node" : "Impossible de verrouiller le nœud",
- "Could not lock path" : "Impossible de verrouiller le chemin",
- "Wrong or no update parameter given" : "Mauvais ou aucun paramètre donné ",
+ "Public upload is only possible for publicly shared folders" : "Les envois publics sont possibles uniquement pour les dossiers partagés publiquement",
"Share must at least have READ or CREATE permissions" : "Le partage nécessite de disposer à minima des permissions de LECTURE et de CREATION",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Le partage doit disposer de l'autorisation LECTURE si l'autorisation METTRE À JOUR ou SUPPRIMER est définie",
+ "Public upload disabled by the administrator" : "Envois publics désactivés par l'administrateur",
+ "Could not lock path" : "Impossible de verrouiller le chemin",
+ "no sharing rights on this item" : "aucun droit de partage sur cet élément",
+ "You are not allowed to edit incoming shares" : "Vous n'êtes pas autorisé à modifier les partages entrants",
+ "Wrong or no update parameter given" : "Mauvais ou aucun paramètre donné ",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"L'envoi du mot de passe par Nextcloud Talk\" pour partager un fichier a échoué car Nextcloud Talk n'est pas activé",
+ "Custom share link tokens have been disabled by the administrator" : "Les jetons personnalisés de liens de partage ont été désactivés par l'administrateur.",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Les jetons doivent contenir au moins un caractère et ne peuvent contenir que des lettres, des chiffres ou un trait d'union",
+ "Invalid date. Format must be YYYY-MM-DD" : "Date invalide. Le format doit être JJ-MM-AAAA",
+ "No sharing rights on this item" : "Aucun droit de partage sur cet élément",
+ "Invalid share attributes provided: \"%s\"" : "Attributs de partage fournis invalides : \"%s\"",
+ "You are not allowed to send mail notifications" : "Vous n'êtes pas autorisé à envoyer des notifications par e-mail",
+ "No mail notification configured for this share type" : "Aucune notification par e-mail n'est configurée pour ce type de partage",
+ "Wrong password" : "Mot de passe incorrect",
+ "Error while sending mail notification" : "Erreur lors de l'envoi de la notification par e-mail",
+ "Failed to generate a unique token" : "Échec de génération d'un jeton unique",
+ "This share does not exist or is no longer available" : "Ce partage n'existe pas ou n'est plus disponible",
"shared by %s" : "partagé par %s",
- "Download all files" : "Télécharger tous les fichiers",
- "Direct link" : "Lien direct",
+ "Download" : "Télécharger",
"Add to your %s" : "Ajouter à votre %s ",
+ "Direct link" : "Lien direct",
"Share API is disabled" : "l’API de partage est désactivée",
"File sharing" : "Partage de fichier",
"Share will expire tomorrow" : "Le partage expirera demain",
@@ -114,70 +113,131 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Vous avez reçu {share} destiné au groupe {group} par {user}",
"Accept" : "Accepter",
"Decline" : "Décliner",
+ "Remember to upload the files to %s" : "N'oubliez pas de téléverser les fichiers dans %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Nous vous rappelons que vous n'avez pas encore téléversé de fichiers dans le dossier partagé.",
+ "Open \"%s\"" : "Ouvrir \"%s\"",
"This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Cette application permet aux personnes de partager des fichiers dans Nextcloud. Si cette option est activée, l'administrateur peut choisir quels groupes peuvent partager des fichiers. Les personnes concernées peuvent ensuite partager des fichiers et des dossiers avec d'autres comptes et groupes au sein de Nextcloud. De plus, si l'administrateur active la fonction de lien de partage, un lien externe peut être utilisé pour partager des fichiers avec d'autres personnes en dehors de Nextcloud. Les administrateurs peuvent également faire respecter les mots de passe, les dates d'expiration et permettre le partage de serveur à serveur via des liens de partage, aussi bien que le partage à partir d'appareils mobiles.\nDésactiver cette fonction supprime les fichiers et dossiers partagés sur le serveur pour tous les destinataires de partage, ainsi que sur les clients de synchronisation et les applications mobiles. Plus d'informations sont disponibles dans la documentation Nextcloud.",
- "Sharing" : "Partage",
- "Accept shares from other accounts and groups by default" : "Accepter les partages des autres comptes et groupes par défaut",
+ "People" : "Personnes",
+ "Filter accounts" : "Filtrer les comptes",
+ "The request will expire on {date} at midnight and will be password protected." : "La demande expirera le {date} à minuit et sera protégée par un mot de passe.",
+ "The request will expire on {date} at midnight." : "La demande expirera le {date} à minuit.",
+ "The request will be password protected." : "La demande sera protégée par un mot de passe.",
+ "When should the request expire?" : "Quand la demande doit-elle expirer ?",
+ "Set a submission expiration date" : "Fixer une date d'expiration de la demande",
+ "Expiration date" : "Date d’expiration",
+ "Select a date" : "Sélectionner une date",
+ "Your administrator has enforced a {count} days expiration policy." : "Votre administrateur a imposé une politique d'expiration de {count} jours.",
+ "What password should be used for the request?" : "Quel mot de passe doit être utilisé pour la demande ?",
+ "Set a password" : "Saisir un mot de passe",
+ "Password" : "Mot de passe",
+ "Enter a valid password" : "Saisir un mot de passe valide",
+ "Generate a new password" : "Générer un nouveau mot de passe",
+ "Your administrator has enforced a password protection." : "Votre administrateur a imposé une protection par mot de passe.",
+ "Automatically copying failed, please copy the share link manually" : "La copie automatique a échoué, veuillez copier le lien de partage manuellement.",
+ "Link copied" : "Lien copié",
+ "Email already added" : "E-mail déjà ajouté",
+ "Invalid email address" : "Adresse e-mail invalide",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["L'adresse mail suivante est invalide : {emails}","Les adresses mail suivantes sont invalides : {emails}","Les adresses mail suivantes sont invalides : {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} adresse e-mail déjà ajoutée","{count} adresses e-mail déjà ajoutées","{count} adresses e-mail déjà ajoutées"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} adresse e-mail ajoutée","{count} adresses e-mail ajoutées","{count} adresses e-mail ajoutées"],
+ "You can now share the link below to allow people to upload files to your directory." : "Vous pouvez désormais partager le lien ci-dessous pour permettre aux gens de téléverser des fichiers dans votre dossier.",
+ "Share link" : "Lien de partage",
+ "Copy" : "Copier",
+ "Send link via email" : "Envoyer le lien par e-mail",
+ "Enter an email address or paste a list" : "Entrez une adresse e-mail ou collez une liste",
+ "Remove email" : "Retirer l'e-mail",
+ "Select a destination" : "Choisir une destination",
+ "Select" : "Sélectionner",
+ "What are you requesting?" : "Que demandez-vous ?",
+ "Request subject" : "Sujet de la demande",
+ "Birthday party photos, History assignment…" : "Photos d'anniversaire, devoir d'Histoire...",
+ "Where should these files go?" : "Où doivent aller ces fichiers ?",
+ "Upload destination" : "Destination de téléversement",
+ "Revert to default" : "Réinitialiser",
+ "The uploaded files are visible only to you unless you choose to share them." : "Les fichiers téléversés ne sont visibles que par vous, à moins que vous ne choisissiez de les partager.",
+ "Add a note" : "Ajouter une note",
+ "Note for recipient" : "Note au destinataire",
+ "Add a note to help people understand what you are requesting." : "Ajoutez une note pour aider les gens à comprendre ce que vous demandez.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Vous pouvez ajouter des liens, une date ou toute autre information qui aidera le destinataire à comprendre ce que vous demandez.",
+ "Close" : "Fermer",
+ "_Send email and close_::_Send {count} emails and close_" : ["Envoyer {count} email et fermer","Envoyer {count} emails et fermer","Envoyer {count} e-mails et fermer"],
+ "Please select a folder, you cannot share the root directory." : "Merci de sélectionner un dossier, vous ne pouvez pas partager le répertoire racine.",
+ "File request created" : "Demande de fichier créée",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Demande de fichier créée et {count} e-mail envoyé","Demande de fichier créée et {count} e-mails envoyés","Demande de fichier créée et {count} e-mails envoyés"],
+ "Error creating the share: {errorMessage}" : "Erreur à la création du partage : {errorMessage} ",
+ "Error creating the share" : "Erreur lors de la création du partage",
+ "Error sending emails: {errorMessage}" : "Erreur à l'envoi des mails {errorMessage}",
+ "Error sending emails" : "Erreur à l'envoi des e-mails",
+ "Create a file request" : "Créer une demande de fichier",
+ "Collect files from others even if they do not have an account." : "Collectez des fichiers auprès d'autres personnes, même si elles n'ont pas de compte.",
+ "To ensure you can receive files, verify you have enough storage available." : "Pour vous assurer de pouvoir recevoir des fichiers, vérifiez que vous disposez d'un espace de stockage suffisant.",
+ "File request" : "Demande de fichier",
+ "Previous step" : "Étape précédente",
+ "Cancel" : "Annuler",
+ "Cancel the file request creation" : "Annuler la création de la demande de fichier",
+ "Close without sending emails" : "Fermer sans envoyer de mails",
+ "Continue" : "Continuer",
"Error while toggling options" : "Erreur pendant le choix des options",
- "Set default folder for accepted shares" : "Définir le dossier par défaut pour les partages acceptés",
- "Reset" : "Réinitialiser",
- "Reset folder to system default" : "Réinitialiser le dossier par défaut du système",
+ "Accept shares from other accounts and groups by default" : "Accepter par défaut les partages provenant d'autres comptes et groupes",
"Choose a default folder for accepted shares" : "Choisir un dossier par défaut pour les partagés acceptés",
"Invalid path selected" : "Chemin non valide sélectionné",
"Unknown error" : "Erreur inconnue",
- "Open Sharing Details" : "Ouvrir les détails du partage",
+ "Set default folder for accepted shares" : "Définir le dossier par défaut pour les partages acceptés",
+ "Reset" : "Réinitialiser",
+ "Reset folder to system default" : "Réinitialiser le dossier par défaut du système",
+ "Share expiration: {date}" : "Expiration du partage : {date}",
+ "Share Expiration" : "Expiration du partage",
"group" : "groupe",
"conversation" : "conversation",
"remote" : "distant",
"remote group" : "groupe distant",
"guest" : "invité",
+ "by {initiator}" : "par {initiator}",
"Shared with the group {user} by {owner}" : "Partagé avec le groupe {user} par {owner}",
"Shared with the conversation {user} by {owner}" : "Partagé avec la conversation {user} par {owner}",
"Shared with {user} by {owner}" : "Partagé avec {user} par {owner}",
+ "Open Sharing Details" : "Ouvrir les détails du partage",
"Added by {initiator}" : "Ajouté par {initiator}",
"Via “{folder}”" : "Via “{folder}”",
"Unshare" : "Ne plus partager",
- "Internal link" : "Lien interne",
"Cannot copy, please copy the link manually" : "Impossible de copier, merci de le copier manuellement",
- "Copy internal link to clipboard" : "Copier le lien interne dans le presse-papiers",
- "Only works for people with access to this folder" : "Fonctionne uniquement pour les personnes ayant accès à ce dossier",
- "Only works for people with access to this file" : "Fonctionne uniquement pour les personnes ayant accès à ce fichier",
- "Link copied" : "Lien copié",
- "Please enter the following required information before creating the share" : "Veuillez entrer les informations requises suivantes avant de créer le partage.",
- "Password protection (enforced)" : "Protection par mot de passe (forcée)",
- "Password protection" : "Protection par mot de passe",
- "Enter a password" : "Saisissez un mot de passe",
- "Expiration date (enforced)" : "Date d’expiration (forcée)",
- "Enter a date" : "Saisissez une date",
- "Create share" : "Créer un partage",
- "Cancel" : "Annuler",
- "Customize link" : "Personnaliser le lien",
- "Generate QR code" : "Générer un QR code",
- "Add another link" : "Ajouter un autre lien",
- "Create a new share link" : "Créer un nouveau lien de partage",
+ "Copy internal link" : "Copier le lien interne",
+ "Internal link" : "Lien interne",
"{shareWith} by {initiator}" : "{shareWith} par {initiator}",
"Shared via link by {initiator}" : "Partagé par lien par {initiator}",
+ "File request ({label})" : "Demande de fichier ({label})",
"Mail share ({label})" : "Partager par e-mail ({label}) ",
"Share link ({label})" : "Lien de partage ({label})",
+ "Mail share" : "Partage par mail",
"Share link ({index})" : "Lien de partage ({index})",
- "Share link" : "Lien de partage",
+ "Create public link" : "Créer un lien de partage public",
"Actions for \"{title}\"" : "Actions pour \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Copier le lien public de \"{title}\" dans le presse-papiers",
"Error, please enter proper password and/or expiration date" : "Erreur. Merci d'entrer un mot de passe valide et/ou une date d'expiration",
"Link share created" : "Lien de partage créé",
"Error while creating the share" : "Erreur lors de la création du partage",
+ "Please enter the following required information before creating the share" : "Veuillez entrer les informations requises suivantes avant de créer le partage.",
+ "Password protection (enforced)" : "Protection par mot de passe (forcée)",
+ "Password protection" : "Protection par mot de passe",
+ "Enter a password" : "Saisissez un mot de passe",
+ "Enable link expiration (enforced)" : "Activer l'expiration du lien (forcée)",
+ "Enable link expiration" : "Activer l'expiration du lien",
+ "Enter expiration date (enforced)" : "Saisir la date d'expiration (obligatoire)",
+ "Enter expiration date" : "Saisir la date d'expiration",
+ "Create share" : "Créer un partage",
+ "Customize link" : "Personnaliser le lien",
+ "Generate QR code" : "Générer un QR code",
+ "Add another link" : "Ajouter un autre lien",
+ "Create a new share link" : "Créer un nouveau lien de partage",
"Quick share options, the current selected is \"{selectedOption}\"" : "Options de partage rapide, l'option actuellement sélectionnée est « {selectedOption} »",
"View only" : "Afficher seulement",
"Can edit" : "Peut modifier",
- "File drop" : "Dépôt de fichier",
- "Custom permissions" : "Personnaliser les permissions",
- "Search for share recipients" : "Recherche de destinataires de partages",
- "No recommendations. Start typing." : "Aucune recommandation. Commencez à écrire.",
+ "Custom permissions" : "Permissions personnalisées",
"Resharing is not allowed" : "Le repartage n'est pas autorisé",
"Name or email …" : "Nom ou adresse e-mail...",
"Name, email, or Federated Cloud ID …" : "Nom, adresse e-mail ou ID de Cloud Fédéré…",
"Searching …" : "Recherche…",
"No elements found." : "Aucun élément trouvé.",
- "Search globally" : "Rechercher partout",
+ "Search everywhere" : "Chercher partout",
"Guest" : "Invité",
"Group" : "Groupe",
"Email" : "E-mail",
@@ -186,70 +246,90 @@ OC.L10N.register(
"Deck board" : "Tableau Deck",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "sur {server}",
+ "Enter external recipients" : "Saisir des destinataires externes",
+ "Search for internal recipients" : "Recherche de destinataires internes",
+ "Note from" : "Note de",
+ "Note:" : "Note :",
+ "File drop" : "Dépôt de fichier",
+ "Upload files to {foldername}." : "Téléverser les fichiers vers {foldername}.",
+ "By uploading files, you agree to the terms of service." : "En téléversant des fichiers, vous acceptez les conditions d'utilisation du service.",
+ "Successfully uploaded files" : "Fichiers téléversés avec succès",
+ "View terms of service" : "Voir les conditions d'utilisation du service",
+ "Terms of service" : "Conditions d'utilisation",
+ "Share with email {email}" : "Partager avec l'e-mail {email}",
+ "Share with group" : "Partager avec le groupe",
+ "Share in conversation" : "Partager dans la conversation",
+ "Share with {user} on remote server {server}" : "Partager avec {user} sur le serveur distant {server}",
+ "Share with remote group" : "Partager avec le groupe distant",
+ "Share with guest" : "Partager avec l'invité",
+ "Update share" : "Mettre à jour le partage",
+ "Save share" : "Enregistrer le partage",
+ "Read" : "Lire",
+ "Create" : "Créer",
+ "Edit" : "Editer",
+ "Share" : "Partager",
+ "Delete" : "Supprimer",
+ "Password field cannot be empty" : "Le mot de passe ne peut pas être vide",
+ "Replace current password" : "Remplacer le mot de passe actuel",
+ "Failed to generate a new token" : "Échec de génération d'un nouveau jeton",
"Allow upload and editing" : "Autoriser le téléversement et la modification",
"Allow editing" : "Autoriser la modification",
"Upload only" : "Téléversement seulement",
"Advanced settings" : "Paramètres avancés",
"Share label" : "Libellé du partage",
+ "Share link token" : "Jeton de lien de partage",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Définissez un jeton de lien de partage public facile à mémoriser ou créez un nouveau jeton. Il n'est pas recommandé d'utiliser un jeton facile à deviner pour les partages contenant des informations sensibles.",
+ "Generating…" : "Génération en cours...",
+ "Generate new token" : "Générer un nouveau jeton",
"Set password" : "Définir un mot de passe",
- "Password" : "Mot de passe",
"Password expires {passwordExpirationTime}" : "Le mot de passe expire {passwordExpirationTime}",
"Password expired" : "Mot de passe expiré",
"Video verification" : "Vérification vidéo",
+ "Expiration date (enforced)" : "Date d’expiration (forcée)",
"Set expiration date" : "Définir une date d'expiration",
- "Expiration date" : "Date d’expiration",
"Hide download" : "Masquer le téléchargement",
- "Allow download" : "Autoriser le téléchargement",
+ "Allow download and sync" : "Autoriser le téléchargement et la synchronisation",
"Note to recipient" : "Note au destinataire",
"Enter a note for the share recipient" : "Saisissez une note pour le destinataire du partage",
- "Read" : "Lire",
- "Create" : "Créer",
- "Edit" : "Editer",
- "Share" : "Partager",
+ "Show files in grid view" : "Afficher les fichiers dans la vue en grille",
"Delete share" : "Supprimer le partage",
- "Share with {userName}" : "Partager avec {userName}",
- "Share with email {email}" : "Partager avec l’adresse électronique {email}",
- "Share with group" : "Partager avec le groupe",
- "Share in conversation" : "Partager dans la conversation",
- "Share with {user} on remote server {server}" : "Partager avec {user} sur le serveur distant {server}",
- "Share with remote group" : "Partager avec le groupe distant",
- "Share with guest" : "Partager avec l'invité",
- "Update share" : "Mettre à jour le partage",
- "Save share" : "Enregistrer le partage",
"Others with access" : "Autres utilisateurs ayant accès",
"No other accounts with access found" : "Aucun autre compte ayant un accès n'a été trouvé",
"Toggle list of others with access to this directory" : "Afficher/Masquer la liste des autres personnes ayant accès à ce dossier",
"Toggle list of others with access to this file" : "Afficher/Masquer la liste des autres personnes ayant accès à ce fichier",
"Unable to fetch inherited shares" : "Impossible de récupérer les partages hérités",
+ "Link shares" : "Partage de liens",
+ "Shares" : "Partages",
"Unable to load the shares list" : "Impossible de charger la liste des partages",
"Expires {relativetime}" : "Expire {relativetime}",
"this share just expired." : "ce partage vient d'expirer",
"Shared with you by {owner}" : "Partagé avec vous par {owner}",
+ "Internal shares" : "Partages internes",
+ "Internal shares explanation" : "Explication sur les partages internes",
+ "External shares" : "Partages externes",
+ "External shares explanation" : "Explication sur les partages externes",
+ "Additional shares" : "Partages supplémentaires",
+ "Additional shares explanation" : "Explication sur les partages supplémentaires",
+ "Link to a file" : "Relier à un fichier",
"_Accept share_::_Accept shares_" : ["Accepter le partage","Accepter les partages","Accepter les partages"],
"Open in Files" : "Ouvrir dans Fichiers",
"_Reject share_::_Reject shares_" : ["Rejeter le partage","Rejeter les partages","Rejeter les partages"],
"_Restore share_::_Restore shares_" : ["Restaurer le partage","Restaurer les partages","Restaurer les partages"],
"Shared" : "Partagé",
- "Shared multiple times with different people" : "Partagé plusieurs fois avec plusieurs personnes",
"Shared by {ownerDisplayName}" : "Partagé par {ownerDisplayName}",
- "Show sharing options" : "Afficher les options de partage",
- "Link to a file" : "Relier à un fichier",
- "Error creating the share: {errorMessage}" : "Erreur à la création du partage : {errorMessage} ",
- "Error creating the share" : "Erreur lors de la création du partage",
- "Error updating the share: {errorMessage}" : "Erreur à la mise à jour du partage\\: {errorMessage} ",
- "Error updating the share" : "Erreur lors de la mise à jour du partage",
- "File \"{path}\" has been unshared" : "Le partage du fichier \"{path}\" a été retiré",
- "Folder \"{path}\" has been unshared" : "Le partage du dossier \"{path}\" a été retiré",
- "Share {propertyName} saved" : "{propertyName} du partage enregistré(e)(s)",
- "Shared by" : "Partagé par",
- "Shared with" : "Partagé avec",
- "Password created successfully" : "Mot de passe créé avec succès",
- "Error generating password from password policy" : "Erreur de génération du mot de passe à partir de la politique de mots de passe",
- "Shared with you and the group {group} by {owner}" : "Partagé avec vous et le groupe {group} par {owner}",
- "Shared with you and {circle} by {owner}" : "Partagé avec vous et {circle} par {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Partagé avec vous et la conversation {conversation} par {owner}",
- "Shared with you in a conversation by {owner}" : "Partagé avec vous dans une conversation de {owner}",
- "Shares" : "Partages",
+ "Shared multiple times with different people" : "Partagé plusieurs fois avec plusieurs personnes",
+ "Sharing options" : "Options de partage",
+ "Shared with others" : "Partagés avec d’autres",
+ "Create file request" : "Créer une demande de fichier",
+ "Upload files to {foldername}" : "Téléverser des fichiers vers {foldername}",
+ "Public file share" : "Partage public de fichiers",
+ "Publicly shared file." : "Fichier partagé publiquement.",
+ "No file" : "Aucun fichier",
+ "The file shared with you will show up here" : "Le fichier partagé avec vous apparaitra ici",
+ "Public share" : "Partage public",
+ "Publicly shared files." : "Fichiers partagés publiquement.",
+ "No files" : "Aucun fichier",
+ "Files and folders shared with you will show up here" : "Les dossiers et fichiers partagés avec vous apparaitront ici.",
"Overview of shared files." : "Vue d'ensemble des fichiers partagés.",
"No shares" : "Aucun partage",
"Files and folders you shared or have been shared with you will show up here" : "Les fichiers et les dossiers que vous avez partagés ou qui vous ont été partagés apparaîtront ici",
@@ -257,7 +337,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Liste des fichiers qui sont partagés avec vous.",
"Nothing shared with you yet" : "Aucun fichier n’est partagé avec vous pour l’instant",
"Files and folders others shared with you will show up here" : "Les fichiers et les dossiers que les autres ont partagés avec vous apparaîtront ici",
- "Shared with others" : "Partagés avec d’autres",
"List of files that you shared with others." : "Liste des fichiers que vous avez partagés avec d'autres",
"Nothing shared yet" : "Rien n’est partagé pour l’instant",
"Files and folders you shared will show up here" : "Les fichiers et les dossiers que vous avez partagés apparaîtront ici",
@@ -265,57 +344,99 @@ OC.L10N.register(
"List of files that are shared by link." : "Liste des fichiers qui sont partagés par lien.",
"No shared links" : "Aucun partage par lien",
"Files and folders you shared by link will show up here" : "Les fichiers et les dossiers que vous avez partagés par lien apparaîtront ici",
+ "File requests" : "Demande de fichier",
+ "List of file requests." : "Liste des demandes de fichiers.",
+ "No file requests" : "Aucune demande de fichier",
+ "File requests you have created will show up here" : "Les demandes de fichiers que vous avez créées apparaîtront ici",
"Deleted shares" : "Partages supprimés",
"List of shares you left." : "Liste des partages que vous avez quittés.",
"No deleted shares" : "Aucun partage supprimé",
- "Shares you have left will show up here" : "Les partages que vous avez quittés s'afficheront ici",
+ "Shares you have left will show up here" : "Les partages que vous avez quittés apparaîtront ici",
"Pending shares" : "Partages en attente",
"List of unapproved shares." : "Liste des partages non approuvés.",
"No pending shares" : "Aucun partage en attente",
- "Shares you have received but not approved will show up here" : "Les partages que vous avez reçus mais non approuvés apparaîtront ici.",
+ "Shares you have received but not approved will show up here" : "Les partages que vous avez reçus, mais qui n'ont pas été acceptés apparaîtront ici",
+ "Error deleting the share: {errorMessage}" : "Erreur lors de la suppression du partage : {errorMessage}",
+ "Error deleting the share" : "Erreur lors de la suppression du partage",
+ "Error updating the share: {errorMessage}" : "Erreur à la mise à jour du partage\\: {errorMessage} ",
+ "Error updating the share" : "Erreur lors de la mise à jour du partage",
+ "File \"{path}\" has been unshared" : "Le partage du fichier \"{path}\" a été retiré",
+ "Folder \"{path}\" has been unshared" : "Le partage du dossier \"{path}\" a été retiré",
+ "Could not update share" : "Impossible de mettre à jour le partage",
+ "Share saved" : "Partage enregistré",
+ "Share expiry date saved" : "Date d'expiration du partage enregistrée",
+ "Share hide-download state saved" : "État de masquage du téléchargement enregistré",
+ "Share label saved" : "Étiquette collaborative enregistrée",
+ "Share note for recipient saved" : "Note au destinataire du partage enregistrée",
+ "Share password saved" : "Mot de passe de partage enregistré",
+ "Share permissions saved" : "Permissions de partage sauvegardées",
+ "To upload files to {folder}, you need to provide your name first." : "Pour téléverser des fichiers dans {folder}, vous devez d'abord indiquer votre nom.",
+ "Upload files to {folder}" : "Téléverser les fichiers dans {folder}",
+ "Please confirm your name to upload files to {folder}" : "Veuillez confirmer votre nom pour téléverser des fichiers dans {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} a partagé un dossier avec vous.",
+ "Names must not be empty." : "Les noms ne doivent pas être vides.",
+ "Names must not start with a dot." : "Les noms ne doivent pas commencer par un point.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" n'est pas autorisé dans un nom.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" est un nom réservé et n'est pas autorisé.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" n'est pas un nom autorisé.",
+ "Names must not end with \"{extension}\"." : "Les noms ne doivent pas se terminer par \"{extension}\".",
+ "Invalid name." : "Nom invalide.",
+ "Shared by" : "Partagé par",
+ "Shared with" : "Partagé avec",
+ "Password created successfully" : "Mot de passe créé avec succès",
+ "Error generating password from password policy" : "Erreur de génération du mot de passe à partir de la politique de mots de passe",
+ "Shared with you and the group {group} by {owner}" : "Partagé avec vous et le groupe {group} par {owner}",
+ "Shared with you and {circle} by {owner}" : "Partagé avec vous et {circle} par {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Partagé avec vous et la conversation {conversation} par {owner}",
+ "Shared with you in a conversation by {owner}" : "Partagé avec vous dans une conversation de {owner}",
+ "Share not found" : "Partage non trouvé",
+ "Back to %s" : "Retourner à %s",
+ "Add to your Nextcloud" : "Ajouter à votre Nextcloud",
+ "Waiting…" : "En attente...",
+ "error" : "erreur",
+ "finished" : "terminé",
+ "This will stop your current uploads." : "Cela va arrêter vos envois en cours.",
+ "Move or copy" : "Déplacer ou copier",
+ "You can upload into this folder" : "Vous pouvez téléverser des fichiers dans ce dossier",
+ "Show list view" : "Afficher la vue en liste",
+ "Show grid view" : "Afficher la vue en grille",
+ "No compatible server found at {remote}" : "Aucun serveur compatible trouvé sur {remote}",
+ "Invalid server URL" : "URL serveur invalide",
+ "Failed to add the public link to your Nextcloud" : "Échec de l'ajout du lien public à votre Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "Vous n'êtes pas autorisé à modifier les liens de partage dont vous n'êtes pas propriétaire",
+ "Download all files" : "Télécharger tous les fichiers",
+ "Link copied to clipboard" : "Lien copié dans le presse-papier",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 adresse mail déjà ajoutée"," {count}adresses email déjà ajoutées","{count} adresses e-mail déjà ajoutées"],
+ "_1 email address added_::_{count} email addresses added_" : [" 1 adresse mail ajoutée","{count} adresses mail ajoutées","{count} adresses mail ajoutées"],
+ "Copy to clipboard" : "Copier dans le presse-papiers",
+ "Copy internal link to clipboard" : "Copier le lien interne dans le presse-papiers",
+ "Only works for people with access to this folder" : "Fonctionne uniquement pour les personnes ayant accès à ce dossier",
+ "Only works for people with access to this file" : "Fonctionne uniquement pour les personnes ayant accès à ce fichier",
+ "Copy public link of \"{title}\" to clipboard" : "Copier le lien public de \"{title}\" dans le presse-papiers",
+ "Search globally" : "Rechercher partout",
+ "Search for share recipients" : "Recherche de destinataires de partages",
+ "No recommendations. Start typing." : "Aucune recommandation. Commencez à écrire.",
+ "To upload files, you need to provide your name first." : "Pour téléverser des fichiers, vous devez fournir votre nom.",
+ "Enter your name" : "Saisissez votre nom",
+ "Submit name" : "Confirmer votre nom",
+ "Share with {userName}" : "Partager avec {userName}",
+ "Show sharing options" : "Afficher les options de partage",
"Share note" : "Partager la note",
- "Upload files to %s" : "Dépôt de fichiers dans %s",
+ "Upload files to %s" : "Téléversement de fichiers dans %s",
+ "%s shared a folder with you." : "%s a partagé un dossier avec vous.",
"Note" : "Note",
"Select or drop files" : "Sélectionnez ou glissez-déposez vos fichiers",
"Uploading files" : "Téléversement des fichiers en cours...",
"Uploaded files:" : "Fichiers envoyés :",
"By uploading files, you agree to the %1$sterms of service%2$s." : "En envoyant des fichiers, vous acceptez les %1$sconditions d'utilisation%2$s.",
- "Add to your Nextcloud" : "Ajouter à votre Nextcloud",
- "Files and folders others share with you will show up here" : "Les fichiers et dossiers partagés avec vous apparaîtront ici",
- "Files and folders you share will show up here" : "Les fichiers et dossiers que vous partagez apparaîtront ici",
- "Files and folders you share by link will show up here" : "Les fichiers et dossiers que vous partagez par lien apparaîtront ici",
- "Shares you deleted will show up here" : "Les partages que vous avez supprimés apparaîtront ici",
- "Shares you have received but not confirmed will show up here" : "Les partages que vous avez reçus mais que vous n'avez pas encore acceptés apparaîtront ici",
- "Shares will show up here" : "Les partages seront affichés ici",
- "Restore" : "Restaurer",
- "Something happened. Unable to restore the share." : "Quelque chose s'est passé. Impossible de restaurer le partage.",
- "Something happened. Unable to accept the share." : "Quelque chose s'est passé. Impossible d'accepter le partage.",
- "Something happened. Unable to reject the share." : "Quelque chose s'est passé. Impossible de refuser le partage.",
- "No expiration date set" : "Aucune date d’expiration définie",
- "Please specify a valid user" : "Veuillez entrer un utilisateur valide",
- "Please specify a valid federated user ID" : "Merci de spécifier un utilisateur fédéré valide",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Cette application permet aux utilisateurs de partager des fichiers dans Nextcloud. Si cette option est activée, l'administrateur peut choisir quels groupes peuvent partager des fichiers. Les utilisateurs concernés peuvent ensuite partager des fichiers et des dossiers avec d'autres utilisateurs et groupes au sein de Nextcloud. De plus, si l'administrateur active la fonction de lien de partage, un lien externe peut être utilisé pour partager des fichiers avec d'autres utilisateurs en dehors de Nextcloud. Les administrateurs peuvent également faire respecter les mots de passe, les dates d'expiration et permettre le partage de serveur à serveur via des liens de partage, aussi bien que le partage à partir d'appareils mobiles.\nDésactiver cette fonction supprime les fichiers et dossiers partagés sur le serveur pour tous les destinataires de partage, ainsi que sur les clients de synchronisation et les applications mobiles. Plus d'informations sont disponibles dans la documentation Nextcloud.",
- "Accept user and group shares by default" : "Accepter par défaut les partages d'utilisateurs et de groupes",
- "Read only" : "Lecture seule",
- "File drop (upload only)" : "Dépôt de fichier (envoi uniquement)",
- "Upload" : "Envoi",
- "Bundled permissions" : "Autorisations groupées",
- "Only works for users with access to this folder" : "Fonctionne uniquement pour les utilisateurs ayant accès à ce dossier",
- "Only works for users with access to this file" : "Fonctionne uniquement pour les utilisateurs ayant accès à ce fichier",
- "Circle" : "Cercle",
- "Update" : "Mise à jour",
- "Share with " : "Partager avec ",
- "No other users with access found" : "Aucun autre utilisateur ayant un accès n'a été trouvé",
- "No entries found in this folder" : "Aucune entrée trouvée dans ce dossier",
"Name" : "Nom",
- "Share time" : "Date de partage",
- "Sorry, this link does not seem to work anymore." : "Désolé, ce lien semble ne plus fonctionner.",
- "Reasons might be:" : "Les raisons peuvent être :",
- "the item was removed" : "l’élément a été supprimé",
- "the link expired" : "le lien a expiré",
- "sharing is disabled" : "le partage est désactivé",
- "For more info, please ask the person who sent this link." : "Pour plus d'informations, veuillez contacter la personne qui vous a envoyé ce lien.",
- "Share with remote" : "Partager avec le distant",
- "Share with" : "Partager avec"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utilisez cette méthode pour partager des fichiers avec des personnes ou des équipes au sein de votre organisation. Si le destinataire a déjà accès au partage, mais ne parvient pas à le localiser, vous pouvez lui envoyer le lien interne pour faciliter l'accès.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Cette méthode permet de partager des fichiers avec des personnes ou des organisations extérieures à votre organisation. Les fichiers et les dossiers peuvent être partagés via des liens de partage publics et des adresses e-mail. Vous pouvez également partager avec d'autres comptes Nextcloud hébergés sur différentes instances en utilisant leur ID de cloud fédéré.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Partages qui ne font pas partie des partages internes ou externes. Il peut s'agir de partages provenant d'applications ou d'autres sources.",
+ "Share with accounts, teams, federated cloud id" : "Partager avec des comptes, des équipes, un identifiant de cloud fédéré",
+ "Share with accounts and teams" : "Partager avec des comptes et des équipes",
+ "Federated cloud ID" : "ID de Cloud Fédéré",
+ "Email, federated cloud id" : "E-mail, ID de cloud fédéré",
+ "Filename must not be empty." : "Le nom du fichier ne doit pas être vide."
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json
index 3242ea46fb2..597fa4796e3 100644
--- a/apps/files_sharing/l10n/fr.json
+++ b/apps/files_sharing/l10n/fr.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "En attente...",
- "error" : "erreur",
- "finished" : "terminé",
- "This will stop your current uploads." : "Cela va arrêter vos envois en cours.",
- "Move or copy" : "Déplacer ou copier",
- "Download" : "Télécharger",
- "Delete" : "Supprimer",
- "You can upload into this folder" : "Vous pouvez téléverser des fichiers dans ce dossier",
- "Terms of service" : "Conditions d'utilisation",
- "Show list view" : "Activer l'affichage liste",
- "Show grid view" : "Activer l'affichage mosaïque",
- "No compatible server found at {remote}" : "Aucun serveur compatible trouvé sur {remote}",
- "Invalid server URL" : "URL serveur invalide",
- "Failed to add the public link to your Nextcloud" : "Échec de l'ajout du lien public à votre Nextcloud",
"File shares" : "Partages de fichiers",
"Downloaded via public link" : "Téléchargé par lien public",
"Downloaded by {email}" : "Téléchargé par {email}",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "Partage du fichier {file} avec l'utilisateur {user} expiré",
"Share for file {file} expired" : "Partage du fichier {file} expiré",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un fichier ou un dossier partagé par e-mail ou par lien public a été <strong>téléchargé</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Des fichiers ont été <strong>téléversés</strong> dans un dossier partagé par e-mail ou par lien public",
"A file or folder was shared from <strong>another server</strong>" : "Un fichier ou un dossier a été partagé depuis <strong>un autre serveur</strong>",
- "Files" : "Fichiers",
+ "Sharing" : "Partage",
"A file or folder has been <strong>shared</strong>" : "Un fichier ou un dossier a été <strong>partagé</strong>",
"Shared link" : "Lien partagé",
"Wrong share ID, share does not exist" : "ID de partage erroné, ce partage n'existe pas",
@@ -76,34 +63,46 @@
"Please specify a file or folder path" : "Veuillez indiquer un fichier ou un chemin",
"Wrong path, file/folder does not exist" : "Chemin incorrect, le fichier/dossier n'existe pas",
"Could not create share" : "Impossible de créer le partage",
- "Invalid permissions" : "Autorisations non valides",
- "Invalid date, date format must be YYYY-MM-DD" : "Date non valide, le format doit être DD/MM/YYYY",
"Please specify a valid account to share with" : "Merci de spécifier un compte valide pour le partage",
"Group sharing is disabled by the administrator" : "Le partage de groupe a été désactivé par l’administrateur",
"Please specify a valid group" : "Veuillez entrer un groupe valide",
"Public link sharing is disabled by the administrator" : "Le partage de lien public a été désactivé par l’administrateur",
- "Public upload disabled by the administrator" : "Envois publics désactivés par l'administrateur",
- "Public upload is only possible for publicly shared folders" : "Les envois publics sont possibles uniquement pour les dossiers partagés publiquement",
+ "Please specify a valid email address" : "Veuillez spécifier une adresse e-mail valide",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Partager %s en envoyant le mot de passe par Nextcloud Talk a échoué car Nextcloud Talk n'est pas activé.",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Le partage %1$s a échoué parce que l'infrastructure n'autorise pas les partages du type %2$s",
"Please specify a valid federated account ID" : "Merci de spécifier un compte fédéré valide",
"Please specify a valid federated group ID" : "Merci de spécifier un groupe fédéré valide",
- "You cannot share to a Circle if the app is not enabled" : "Vous ne pouvez pas partager au Cercle si l'application n'est pas activée",
- "Please specify a valid circle" : "Veuillez entrer un cercle valide",
+ "You cannot share to a Team if the app is not enabled" : "Vous ne pouvez pas partager à une équipe si l'application n'est pas activée",
+ "Please specify a valid team" : "Merci de spécifier un équipe valide",
"Sharing %s failed because the back end does not support room shares" : "Le partage %s a échoué parce que l'arrière-plan ne prend pas en charge les partages.",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Le partage de %s a échoué car le serveur ne supporte pas les partages ScienceMesh",
"Unknown share type" : "Type de partage inconnu",
"Not a directory" : "N'est pas un dossier",
"Could not lock node" : "Impossible de verrouiller le nœud",
- "Could not lock path" : "Impossible de verrouiller le chemin",
- "Wrong or no update parameter given" : "Mauvais ou aucun paramètre donné ",
+ "Public upload is only possible for publicly shared folders" : "Les envois publics sont possibles uniquement pour les dossiers partagés publiquement",
"Share must at least have READ or CREATE permissions" : "Le partage nécessite de disposer à minima des permissions de LECTURE et de CREATION",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Le partage doit disposer de l'autorisation LECTURE si l'autorisation METTRE À JOUR ou SUPPRIMER est définie",
+ "Public upload disabled by the administrator" : "Envois publics désactivés par l'administrateur",
+ "Could not lock path" : "Impossible de verrouiller le chemin",
+ "no sharing rights on this item" : "aucun droit de partage sur cet élément",
+ "You are not allowed to edit incoming shares" : "Vous n'êtes pas autorisé à modifier les partages entrants",
+ "Wrong or no update parameter given" : "Mauvais ou aucun paramètre donné ",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"L'envoi du mot de passe par Nextcloud Talk\" pour partager un fichier a échoué car Nextcloud Talk n'est pas activé",
+ "Custom share link tokens have been disabled by the administrator" : "Les jetons personnalisés de liens de partage ont été désactivés par l'administrateur.",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Les jetons doivent contenir au moins un caractère et ne peuvent contenir que des lettres, des chiffres ou un trait d'union",
+ "Invalid date. Format must be YYYY-MM-DD" : "Date invalide. Le format doit être JJ-MM-AAAA",
+ "No sharing rights on this item" : "Aucun droit de partage sur cet élément",
+ "Invalid share attributes provided: \"%s\"" : "Attributs de partage fournis invalides : \"%s\"",
+ "You are not allowed to send mail notifications" : "Vous n'êtes pas autorisé à envoyer des notifications par e-mail",
+ "No mail notification configured for this share type" : "Aucune notification par e-mail n'est configurée pour ce type de partage",
+ "Wrong password" : "Mot de passe incorrect",
+ "Error while sending mail notification" : "Erreur lors de l'envoi de la notification par e-mail",
+ "Failed to generate a unique token" : "Échec de génération d'un jeton unique",
+ "This share does not exist or is no longer available" : "Ce partage n'existe pas ou n'est plus disponible",
"shared by %s" : "partagé par %s",
- "Download all files" : "Télécharger tous les fichiers",
- "Direct link" : "Lien direct",
+ "Download" : "Télécharger",
"Add to your %s" : "Ajouter à votre %s ",
+ "Direct link" : "Lien direct",
"Share API is disabled" : "l’API de partage est désactivée",
"File sharing" : "Partage de fichier",
"Share will expire tomorrow" : "Le partage expirera demain",
@@ -112,70 +111,131 @@
"You received {share} to group {group} as a share by {user}" : "Vous avez reçu {share} destiné au groupe {group} par {user}",
"Accept" : "Accepter",
"Decline" : "Décliner",
+ "Remember to upload the files to %s" : "N'oubliez pas de téléverser les fichiers dans %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Nous vous rappelons que vous n'avez pas encore téléversé de fichiers dans le dossier partagé.",
+ "Open \"%s\"" : "Ouvrir \"%s\"",
"This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Cette application permet aux personnes de partager des fichiers dans Nextcloud. Si cette option est activée, l'administrateur peut choisir quels groupes peuvent partager des fichiers. Les personnes concernées peuvent ensuite partager des fichiers et des dossiers avec d'autres comptes et groupes au sein de Nextcloud. De plus, si l'administrateur active la fonction de lien de partage, un lien externe peut être utilisé pour partager des fichiers avec d'autres personnes en dehors de Nextcloud. Les administrateurs peuvent également faire respecter les mots de passe, les dates d'expiration et permettre le partage de serveur à serveur via des liens de partage, aussi bien que le partage à partir d'appareils mobiles.\nDésactiver cette fonction supprime les fichiers et dossiers partagés sur le serveur pour tous les destinataires de partage, ainsi que sur les clients de synchronisation et les applications mobiles. Plus d'informations sont disponibles dans la documentation Nextcloud.",
- "Sharing" : "Partage",
- "Accept shares from other accounts and groups by default" : "Accepter les partages des autres comptes et groupes par défaut",
+ "People" : "Personnes",
+ "Filter accounts" : "Filtrer les comptes",
+ "The request will expire on {date} at midnight and will be password protected." : "La demande expirera le {date} à minuit et sera protégée par un mot de passe.",
+ "The request will expire on {date} at midnight." : "La demande expirera le {date} à minuit.",
+ "The request will be password protected." : "La demande sera protégée par un mot de passe.",
+ "When should the request expire?" : "Quand la demande doit-elle expirer ?",
+ "Set a submission expiration date" : "Fixer une date d'expiration de la demande",
+ "Expiration date" : "Date d’expiration",
+ "Select a date" : "Sélectionner une date",
+ "Your administrator has enforced a {count} days expiration policy." : "Votre administrateur a imposé une politique d'expiration de {count} jours.",
+ "What password should be used for the request?" : "Quel mot de passe doit être utilisé pour la demande ?",
+ "Set a password" : "Saisir un mot de passe",
+ "Password" : "Mot de passe",
+ "Enter a valid password" : "Saisir un mot de passe valide",
+ "Generate a new password" : "Générer un nouveau mot de passe",
+ "Your administrator has enforced a password protection." : "Votre administrateur a imposé une protection par mot de passe.",
+ "Automatically copying failed, please copy the share link manually" : "La copie automatique a échoué, veuillez copier le lien de partage manuellement.",
+ "Link copied" : "Lien copié",
+ "Email already added" : "E-mail déjà ajouté",
+ "Invalid email address" : "Adresse e-mail invalide",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["L'adresse mail suivante est invalide : {emails}","Les adresses mail suivantes sont invalides : {emails}","Les adresses mail suivantes sont invalides : {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} adresse e-mail déjà ajoutée","{count} adresses e-mail déjà ajoutées","{count} adresses e-mail déjà ajoutées"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} adresse e-mail ajoutée","{count} adresses e-mail ajoutées","{count} adresses e-mail ajoutées"],
+ "You can now share the link below to allow people to upload files to your directory." : "Vous pouvez désormais partager le lien ci-dessous pour permettre aux gens de téléverser des fichiers dans votre dossier.",
+ "Share link" : "Lien de partage",
+ "Copy" : "Copier",
+ "Send link via email" : "Envoyer le lien par e-mail",
+ "Enter an email address or paste a list" : "Entrez une adresse e-mail ou collez une liste",
+ "Remove email" : "Retirer l'e-mail",
+ "Select a destination" : "Choisir une destination",
+ "Select" : "Sélectionner",
+ "What are you requesting?" : "Que demandez-vous ?",
+ "Request subject" : "Sujet de la demande",
+ "Birthday party photos, History assignment…" : "Photos d'anniversaire, devoir d'Histoire...",
+ "Where should these files go?" : "Où doivent aller ces fichiers ?",
+ "Upload destination" : "Destination de téléversement",
+ "Revert to default" : "Réinitialiser",
+ "The uploaded files are visible only to you unless you choose to share them." : "Les fichiers téléversés ne sont visibles que par vous, à moins que vous ne choisissiez de les partager.",
+ "Add a note" : "Ajouter une note",
+ "Note for recipient" : "Note au destinataire",
+ "Add a note to help people understand what you are requesting." : "Ajoutez une note pour aider les gens à comprendre ce que vous demandez.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Vous pouvez ajouter des liens, une date ou toute autre information qui aidera le destinataire à comprendre ce que vous demandez.",
+ "Close" : "Fermer",
+ "_Send email and close_::_Send {count} emails and close_" : ["Envoyer {count} email et fermer","Envoyer {count} emails et fermer","Envoyer {count} e-mails et fermer"],
+ "Please select a folder, you cannot share the root directory." : "Merci de sélectionner un dossier, vous ne pouvez pas partager le répertoire racine.",
+ "File request created" : "Demande de fichier créée",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Demande de fichier créée et {count} e-mail envoyé","Demande de fichier créée et {count} e-mails envoyés","Demande de fichier créée et {count} e-mails envoyés"],
+ "Error creating the share: {errorMessage}" : "Erreur à la création du partage : {errorMessage} ",
+ "Error creating the share" : "Erreur lors de la création du partage",
+ "Error sending emails: {errorMessage}" : "Erreur à l'envoi des mails {errorMessage}",
+ "Error sending emails" : "Erreur à l'envoi des e-mails",
+ "Create a file request" : "Créer une demande de fichier",
+ "Collect files from others even if they do not have an account." : "Collectez des fichiers auprès d'autres personnes, même si elles n'ont pas de compte.",
+ "To ensure you can receive files, verify you have enough storage available." : "Pour vous assurer de pouvoir recevoir des fichiers, vérifiez que vous disposez d'un espace de stockage suffisant.",
+ "File request" : "Demande de fichier",
+ "Previous step" : "Étape précédente",
+ "Cancel" : "Annuler",
+ "Cancel the file request creation" : "Annuler la création de la demande de fichier",
+ "Close without sending emails" : "Fermer sans envoyer de mails",
+ "Continue" : "Continuer",
"Error while toggling options" : "Erreur pendant le choix des options",
- "Set default folder for accepted shares" : "Définir le dossier par défaut pour les partages acceptés",
- "Reset" : "Réinitialiser",
- "Reset folder to system default" : "Réinitialiser le dossier par défaut du système",
+ "Accept shares from other accounts and groups by default" : "Accepter par défaut les partages provenant d'autres comptes et groupes",
"Choose a default folder for accepted shares" : "Choisir un dossier par défaut pour les partagés acceptés",
"Invalid path selected" : "Chemin non valide sélectionné",
"Unknown error" : "Erreur inconnue",
- "Open Sharing Details" : "Ouvrir les détails du partage",
+ "Set default folder for accepted shares" : "Définir le dossier par défaut pour les partages acceptés",
+ "Reset" : "Réinitialiser",
+ "Reset folder to system default" : "Réinitialiser le dossier par défaut du système",
+ "Share expiration: {date}" : "Expiration du partage : {date}",
+ "Share Expiration" : "Expiration du partage",
"group" : "groupe",
"conversation" : "conversation",
"remote" : "distant",
"remote group" : "groupe distant",
"guest" : "invité",
+ "by {initiator}" : "par {initiator}",
"Shared with the group {user} by {owner}" : "Partagé avec le groupe {user} par {owner}",
"Shared with the conversation {user} by {owner}" : "Partagé avec la conversation {user} par {owner}",
"Shared with {user} by {owner}" : "Partagé avec {user} par {owner}",
+ "Open Sharing Details" : "Ouvrir les détails du partage",
"Added by {initiator}" : "Ajouté par {initiator}",
"Via “{folder}”" : "Via “{folder}”",
"Unshare" : "Ne plus partager",
- "Internal link" : "Lien interne",
"Cannot copy, please copy the link manually" : "Impossible de copier, merci de le copier manuellement",
- "Copy internal link to clipboard" : "Copier le lien interne dans le presse-papiers",
- "Only works for people with access to this folder" : "Fonctionne uniquement pour les personnes ayant accès à ce dossier",
- "Only works for people with access to this file" : "Fonctionne uniquement pour les personnes ayant accès à ce fichier",
- "Link copied" : "Lien copié",
- "Please enter the following required information before creating the share" : "Veuillez entrer les informations requises suivantes avant de créer le partage.",
- "Password protection (enforced)" : "Protection par mot de passe (forcée)",
- "Password protection" : "Protection par mot de passe",
- "Enter a password" : "Saisissez un mot de passe",
- "Expiration date (enforced)" : "Date d’expiration (forcée)",
- "Enter a date" : "Saisissez une date",
- "Create share" : "Créer un partage",
- "Cancel" : "Annuler",
- "Customize link" : "Personnaliser le lien",
- "Generate QR code" : "Générer un QR code",
- "Add another link" : "Ajouter un autre lien",
- "Create a new share link" : "Créer un nouveau lien de partage",
+ "Copy internal link" : "Copier le lien interne",
+ "Internal link" : "Lien interne",
"{shareWith} by {initiator}" : "{shareWith} par {initiator}",
"Shared via link by {initiator}" : "Partagé par lien par {initiator}",
+ "File request ({label})" : "Demande de fichier ({label})",
"Mail share ({label})" : "Partager par e-mail ({label}) ",
"Share link ({label})" : "Lien de partage ({label})",
+ "Mail share" : "Partage par mail",
"Share link ({index})" : "Lien de partage ({index})",
- "Share link" : "Lien de partage",
+ "Create public link" : "Créer un lien de partage public",
"Actions for \"{title}\"" : "Actions pour \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Copier le lien public de \"{title}\" dans le presse-papiers",
"Error, please enter proper password and/or expiration date" : "Erreur. Merci d'entrer un mot de passe valide et/ou une date d'expiration",
"Link share created" : "Lien de partage créé",
"Error while creating the share" : "Erreur lors de la création du partage",
+ "Please enter the following required information before creating the share" : "Veuillez entrer les informations requises suivantes avant de créer le partage.",
+ "Password protection (enforced)" : "Protection par mot de passe (forcée)",
+ "Password protection" : "Protection par mot de passe",
+ "Enter a password" : "Saisissez un mot de passe",
+ "Enable link expiration (enforced)" : "Activer l'expiration du lien (forcée)",
+ "Enable link expiration" : "Activer l'expiration du lien",
+ "Enter expiration date (enforced)" : "Saisir la date d'expiration (obligatoire)",
+ "Enter expiration date" : "Saisir la date d'expiration",
+ "Create share" : "Créer un partage",
+ "Customize link" : "Personnaliser le lien",
+ "Generate QR code" : "Générer un QR code",
+ "Add another link" : "Ajouter un autre lien",
+ "Create a new share link" : "Créer un nouveau lien de partage",
"Quick share options, the current selected is \"{selectedOption}\"" : "Options de partage rapide, l'option actuellement sélectionnée est « {selectedOption} »",
"View only" : "Afficher seulement",
"Can edit" : "Peut modifier",
- "File drop" : "Dépôt de fichier",
- "Custom permissions" : "Personnaliser les permissions",
- "Search for share recipients" : "Recherche de destinataires de partages",
- "No recommendations. Start typing." : "Aucune recommandation. Commencez à écrire.",
+ "Custom permissions" : "Permissions personnalisées",
"Resharing is not allowed" : "Le repartage n'est pas autorisé",
"Name or email …" : "Nom ou adresse e-mail...",
"Name, email, or Federated Cloud ID …" : "Nom, adresse e-mail ou ID de Cloud Fédéré…",
"Searching …" : "Recherche…",
"No elements found." : "Aucun élément trouvé.",
- "Search globally" : "Rechercher partout",
+ "Search everywhere" : "Chercher partout",
"Guest" : "Invité",
"Group" : "Groupe",
"Email" : "E-mail",
@@ -184,70 +244,90 @@
"Deck board" : "Tableau Deck",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "sur {server}",
+ "Enter external recipients" : "Saisir des destinataires externes",
+ "Search for internal recipients" : "Recherche de destinataires internes",
+ "Note from" : "Note de",
+ "Note:" : "Note :",
+ "File drop" : "Dépôt de fichier",
+ "Upload files to {foldername}." : "Téléverser les fichiers vers {foldername}.",
+ "By uploading files, you agree to the terms of service." : "En téléversant des fichiers, vous acceptez les conditions d'utilisation du service.",
+ "Successfully uploaded files" : "Fichiers téléversés avec succès",
+ "View terms of service" : "Voir les conditions d'utilisation du service",
+ "Terms of service" : "Conditions d'utilisation",
+ "Share with email {email}" : "Partager avec l'e-mail {email}",
+ "Share with group" : "Partager avec le groupe",
+ "Share in conversation" : "Partager dans la conversation",
+ "Share with {user} on remote server {server}" : "Partager avec {user} sur le serveur distant {server}",
+ "Share with remote group" : "Partager avec le groupe distant",
+ "Share with guest" : "Partager avec l'invité",
+ "Update share" : "Mettre à jour le partage",
+ "Save share" : "Enregistrer le partage",
+ "Read" : "Lire",
+ "Create" : "Créer",
+ "Edit" : "Editer",
+ "Share" : "Partager",
+ "Delete" : "Supprimer",
+ "Password field cannot be empty" : "Le mot de passe ne peut pas être vide",
+ "Replace current password" : "Remplacer le mot de passe actuel",
+ "Failed to generate a new token" : "Échec de génération d'un nouveau jeton",
"Allow upload and editing" : "Autoriser le téléversement et la modification",
"Allow editing" : "Autoriser la modification",
"Upload only" : "Téléversement seulement",
"Advanced settings" : "Paramètres avancés",
"Share label" : "Libellé du partage",
+ "Share link token" : "Jeton de lien de partage",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Définissez un jeton de lien de partage public facile à mémoriser ou créez un nouveau jeton. Il n'est pas recommandé d'utiliser un jeton facile à deviner pour les partages contenant des informations sensibles.",
+ "Generating…" : "Génération en cours...",
+ "Generate new token" : "Générer un nouveau jeton",
"Set password" : "Définir un mot de passe",
- "Password" : "Mot de passe",
"Password expires {passwordExpirationTime}" : "Le mot de passe expire {passwordExpirationTime}",
"Password expired" : "Mot de passe expiré",
"Video verification" : "Vérification vidéo",
+ "Expiration date (enforced)" : "Date d’expiration (forcée)",
"Set expiration date" : "Définir une date d'expiration",
- "Expiration date" : "Date d’expiration",
"Hide download" : "Masquer le téléchargement",
- "Allow download" : "Autoriser le téléchargement",
+ "Allow download and sync" : "Autoriser le téléchargement et la synchronisation",
"Note to recipient" : "Note au destinataire",
"Enter a note for the share recipient" : "Saisissez une note pour le destinataire du partage",
- "Read" : "Lire",
- "Create" : "Créer",
- "Edit" : "Editer",
- "Share" : "Partager",
+ "Show files in grid view" : "Afficher les fichiers dans la vue en grille",
"Delete share" : "Supprimer le partage",
- "Share with {userName}" : "Partager avec {userName}",
- "Share with email {email}" : "Partager avec l’adresse électronique {email}",
- "Share with group" : "Partager avec le groupe",
- "Share in conversation" : "Partager dans la conversation",
- "Share with {user} on remote server {server}" : "Partager avec {user} sur le serveur distant {server}",
- "Share with remote group" : "Partager avec le groupe distant",
- "Share with guest" : "Partager avec l'invité",
- "Update share" : "Mettre à jour le partage",
- "Save share" : "Enregistrer le partage",
"Others with access" : "Autres utilisateurs ayant accès",
"No other accounts with access found" : "Aucun autre compte ayant un accès n'a été trouvé",
"Toggle list of others with access to this directory" : "Afficher/Masquer la liste des autres personnes ayant accès à ce dossier",
"Toggle list of others with access to this file" : "Afficher/Masquer la liste des autres personnes ayant accès à ce fichier",
"Unable to fetch inherited shares" : "Impossible de récupérer les partages hérités",
+ "Link shares" : "Partage de liens",
+ "Shares" : "Partages",
"Unable to load the shares list" : "Impossible de charger la liste des partages",
"Expires {relativetime}" : "Expire {relativetime}",
"this share just expired." : "ce partage vient d'expirer",
"Shared with you by {owner}" : "Partagé avec vous par {owner}",
+ "Internal shares" : "Partages internes",
+ "Internal shares explanation" : "Explication sur les partages internes",
+ "External shares" : "Partages externes",
+ "External shares explanation" : "Explication sur les partages externes",
+ "Additional shares" : "Partages supplémentaires",
+ "Additional shares explanation" : "Explication sur les partages supplémentaires",
+ "Link to a file" : "Relier à un fichier",
"_Accept share_::_Accept shares_" : ["Accepter le partage","Accepter les partages","Accepter les partages"],
"Open in Files" : "Ouvrir dans Fichiers",
"_Reject share_::_Reject shares_" : ["Rejeter le partage","Rejeter les partages","Rejeter les partages"],
"_Restore share_::_Restore shares_" : ["Restaurer le partage","Restaurer les partages","Restaurer les partages"],
"Shared" : "Partagé",
- "Shared multiple times with different people" : "Partagé plusieurs fois avec plusieurs personnes",
"Shared by {ownerDisplayName}" : "Partagé par {ownerDisplayName}",
- "Show sharing options" : "Afficher les options de partage",
- "Link to a file" : "Relier à un fichier",
- "Error creating the share: {errorMessage}" : "Erreur à la création du partage : {errorMessage} ",
- "Error creating the share" : "Erreur lors de la création du partage",
- "Error updating the share: {errorMessage}" : "Erreur à la mise à jour du partage\\: {errorMessage} ",
- "Error updating the share" : "Erreur lors de la mise à jour du partage",
- "File \"{path}\" has been unshared" : "Le partage du fichier \"{path}\" a été retiré",
- "Folder \"{path}\" has been unshared" : "Le partage du dossier \"{path}\" a été retiré",
- "Share {propertyName} saved" : "{propertyName} du partage enregistré(e)(s)",
- "Shared by" : "Partagé par",
- "Shared with" : "Partagé avec",
- "Password created successfully" : "Mot de passe créé avec succès",
- "Error generating password from password policy" : "Erreur de génération du mot de passe à partir de la politique de mots de passe",
- "Shared with you and the group {group} by {owner}" : "Partagé avec vous et le groupe {group} par {owner}",
- "Shared with you and {circle} by {owner}" : "Partagé avec vous et {circle} par {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Partagé avec vous et la conversation {conversation} par {owner}",
- "Shared with you in a conversation by {owner}" : "Partagé avec vous dans une conversation de {owner}",
- "Shares" : "Partages",
+ "Shared multiple times with different people" : "Partagé plusieurs fois avec plusieurs personnes",
+ "Sharing options" : "Options de partage",
+ "Shared with others" : "Partagés avec d’autres",
+ "Create file request" : "Créer une demande de fichier",
+ "Upload files to {foldername}" : "Téléverser des fichiers vers {foldername}",
+ "Public file share" : "Partage public de fichiers",
+ "Publicly shared file." : "Fichier partagé publiquement.",
+ "No file" : "Aucun fichier",
+ "The file shared with you will show up here" : "Le fichier partagé avec vous apparaitra ici",
+ "Public share" : "Partage public",
+ "Publicly shared files." : "Fichiers partagés publiquement.",
+ "No files" : "Aucun fichier",
+ "Files and folders shared with you will show up here" : "Les dossiers et fichiers partagés avec vous apparaitront ici.",
"Overview of shared files." : "Vue d'ensemble des fichiers partagés.",
"No shares" : "Aucun partage",
"Files and folders you shared or have been shared with you will show up here" : "Les fichiers et les dossiers que vous avez partagés ou qui vous ont été partagés apparaîtront ici",
@@ -255,7 +335,6 @@
"List of files that are shared with you." : "Liste des fichiers qui sont partagés avec vous.",
"Nothing shared with you yet" : "Aucun fichier n’est partagé avec vous pour l’instant",
"Files and folders others shared with you will show up here" : "Les fichiers et les dossiers que les autres ont partagés avec vous apparaîtront ici",
- "Shared with others" : "Partagés avec d’autres",
"List of files that you shared with others." : "Liste des fichiers que vous avez partagés avec d'autres",
"Nothing shared yet" : "Rien n’est partagé pour l’instant",
"Files and folders you shared will show up here" : "Les fichiers et les dossiers que vous avez partagés apparaîtront ici",
@@ -263,57 +342,99 @@
"List of files that are shared by link." : "Liste des fichiers qui sont partagés par lien.",
"No shared links" : "Aucun partage par lien",
"Files and folders you shared by link will show up here" : "Les fichiers et les dossiers que vous avez partagés par lien apparaîtront ici",
+ "File requests" : "Demande de fichier",
+ "List of file requests." : "Liste des demandes de fichiers.",
+ "No file requests" : "Aucune demande de fichier",
+ "File requests you have created will show up here" : "Les demandes de fichiers que vous avez créées apparaîtront ici",
"Deleted shares" : "Partages supprimés",
"List of shares you left." : "Liste des partages que vous avez quittés.",
"No deleted shares" : "Aucun partage supprimé",
- "Shares you have left will show up here" : "Les partages que vous avez quittés s'afficheront ici",
+ "Shares you have left will show up here" : "Les partages que vous avez quittés apparaîtront ici",
"Pending shares" : "Partages en attente",
"List of unapproved shares." : "Liste des partages non approuvés.",
"No pending shares" : "Aucun partage en attente",
- "Shares you have received but not approved will show up here" : "Les partages que vous avez reçus mais non approuvés apparaîtront ici.",
+ "Shares you have received but not approved will show up here" : "Les partages que vous avez reçus, mais qui n'ont pas été acceptés apparaîtront ici",
+ "Error deleting the share: {errorMessage}" : "Erreur lors de la suppression du partage : {errorMessage}",
+ "Error deleting the share" : "Erreur lors de la suppression du partage",
+ "Error updating the share: {errorMessage}" : "Erreur à la mise à jour du partage\\: {errorMessage} ",
+ "Error updating the share" : "Erreur lors de la mise à jour du partage",
+ "File \"{path}\" has been unshared" : "Le partage du fichier \"{path}\" a été retiré",
+ "Folder \"{path}\" has been unshared" : "Le partage du dossier \"{path}\" a été retiré",
+ "Could not update share" : "Impossible de mettre à jour le partage",
+ "Share saved" : "Partage enregistré",
+ "Share expiry date saved" : "Date d'expiration du partage enregistrée",
+ "Share hide-download state saved" : "État de masquage du téléchargement enregistré",
+ "Share label saved" : "Étiquette collaborative enregistrée",
+ "Share note for recipient saved" : "Note au destinataire du partage enregistrée",
+ "Share password saved" : "Mot de passe de partage enregistré",
+ "Share permissions saved" : "Permissions de partage sauvegardées",
+ "To upload files to {folder}, you need to provide your name first." : "Pour téléverser des fichiers dans {folder}, vous devez d'abord indiquer votre nom.",
+ "Upload files to {folder}" : "Téléverser les fichiers dans {folder}",
+ "Please confirm your name to upload files to {folder}" : "Veuillez confirmer votre nom pour téléverser des fichiers dans {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} a partagé un dossier avec vous.",
+ "Names must not be empty." : "Les noms ne doivent pas être vides.",
+ "Names must not start with a dot." : "Les noms ne doivent pas commencer par un point.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" n'est pas autorisé dans un nom.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" est un nom réservé et n'est pas autorisé.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" n'est pas un nom autorisé.",
+ "Names must not end with \"{extension}\"." : "Les noms ne doivent pas se terminer par \"{extension}\".",
+ "Invalid name." : "Nom invalide.",
+ "Shared by" : "Partagé par",
+ "Shared with" : "Partagé avec",
+ "Password created successfully" : "Mot de passe créé avec succès",
+ "Error generating password from password policy" : "Erreur de génération du mot de passe à partir de la politique de mots de passe",
+ "Shared with you and the group {group} by {owner}" : "Partagé avec vous et le groupe {group} par {owner}",
+ "Shared with you and {circle} by {owner}" : "Partagé avec vous et {circle} par {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Partagé avec vous et la conversation {conversation} par {owner}",
+ "Shared with you in a conversation by {owner}" : "Partagé avec vous dans une conversation de {owner}",
+ "Share not found" : "Partage non trouvé",
+ "Back to %s" : "Retourner à %s",
+ "Add to your Nextcloud" : "Ajouter à votre Nextcloud",
+ "Waiting…" : "En attente...",
+ "error" : "erreur",
+ "finished" : "terminé",
+ "This will stop your current uploads." : "Cela va arrêter vos envois en cours.",
+ "Move or copy" : "Déplacer ou copier",
+ "You can upload into this folder" : "Vous pouvez téléverser des fichiers dans ce dossier",
+ "Show list view" : "Afficher la vue en liste",
+ "Show grid view" : "Afficher la vue en grille",
+ "No compatible server found at {remote}" : "Aucun serveur compatible trouvé sur {remote}",
+ "Invalid server URL" : "URL serveur invalide",
+ "Failed to add the public link to your Nextcloud" : "Échec de l'ajout du lien public à votre Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "Vous n'êtes pas autorisé à modifier les liens de partage dont vous n'êtes pas propriétaire",
+ "Download all files" : "Télécharger tous les fichiers",
+ "Link copied to clipboard" : "Lien copié dans le presse-papier",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 adresse mail déjà ajoutée"," {count}adresses email déjà ajoutées","{count} adresses e-mail déjà ajoutées"],
+ "_1 email address added_::_{count} email addresses added_" : [" 1 adresse mail ajoutée","{count} adresses mail ajoutées","{count} adresses mail ajoutées"],
+ "Copy to clipboard" : "Copier dans le presse-papiers",
+ "Copy internal link to clipboard" : "Copier le lien interne dans le presse-papiers",
+ "Only works for people with access to this folder" : "Fonctionne uniquement pour les personnes ayant accès à ce dossier",
+ "Only works for people with access to this file" : "Fonctionne uniquement pour les personnes ayant accès à ce fichier",
+ "Copy public link of \"{title}\" to clipboard" : "Copier le lien public de \"{title}\" dans le presse-papiers",
+ "Search globally" : "Rechercher partout",
+ "Search for share recipients" : "Recherche de destinataires de partages",
+ "No recommendations. Start typing." : "Aucune recommandation. Commencez à écrire.",
+ "To upload files, you need to provide your name first." : "Pour téléverser des fichiers, vous devez fournir votre nom.",
+ "Enter your name" : "Saisissez votre nom",
+ "Submit name" : "Confirmer votre nom",
+ "Share with {userName}" : "Partager avec {userName}",
+ "Show sharing options" : "Afficher les options de partage",
"Share note" : "Partager la note",
- "Upload files to %s" : "Dépôt de fichiers dans %s",
+ "Upload files to %s" : "Téléversement de fichiers dans %s",
+ "%s shared a folder with you." : "%s a partagé un dossier avec vous.",
"Note" : "Note",
"Select or drop files" : "Sélectionnez ou glissez-déposez vos fichiers",
"Uploading files" : "Téléversement des fichiers en cours...",
"Uploaded files:" : "Fichiers envoyés :",
"By uploading files, you agree to the %1$sterms of service%2$s." : "En envoyant des fichiers, vous acceptez les %1$sconditions d'utilisation%2$s.",
- "Add to your Nextcloud" : "Ajouter à votre Nextcloud",
- "Files and folders others share with you will show up here" : "Les fichiers et dossiers partagés avec vous apparaîtront ici",
- "Files and folders you share will show up here" : "Les fichiers et dossiers que vous partagez apparaîtront ici",
- "Files and folders you share by link will show up here" : "Les fichiers et dossiers que vous partagez par lien apparaîtront ici",
- "Shares you deleted will show up here" : "Les partages que vous avez supprimés apparaîtront ici",
- "Shares you have received but not confirmed will show up here" : "Les partages que vous avez reçus mais que vous n'avez pas encore acceptés apparaîtront ici",
- "Shares will show up here" : "Les partages seront affichés ici",
- "Restore" : "Restaurer",
- "Something happened. Unable to restore the share." : "Quelque chose s'est passé. Impossible de restaurer le partage.",
- "Something happened. Unable to accept the share." : "Quelque chose s'est passé. Impossible d'accepter le partage.",
- "Something happened. Unable to reject the share." : "Quelque chose s'est passé. Impossible de refuser le partage.",
- "No expiration date set" : "Aucune date d’expiration définie",
- "Please specify a valid user" : "Veuillez entrer un utilisateur valide",
- "Please specify a valid federated user ID" : "Merci de spécifier un utilisateur fédéré valide",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Cette application permet aux utilisateurs de partager des fichiers dans Nextcloud. Si cette option est activée, l'administrateur peut choisir quels groupes peuvent partager des fichiers. Les utilisateurs concernés peuvent ensuite partager des fichiers et des dossiers avec d'autres utilisateurs et groupes au sein de Nextcloud. De plus, si l'administrateur active la fonction de lien de partage, un lien externe peut être utilisé pour partager des fichiers avec d'autres utilisateurs en dehors de Nextcloud. Les administrateurs peuvent également faire respecter les mots de passe, les dates d'expiration et permettre le partage de serveur à serveur via des liens de partage, aussi bien que le partage à partir d'appareils mobiles.\nDésactiver cette fonction supprime les fichiers et dossiers partagés sur le serveur pour tous les destinataires de partage, ainsi que sur les clients de synchronisation et les applications mobiles. Plus d'informations sont disponibles dans la documentation Nextcloud.",
- "Accept user and group shares by default" : "Accepter par défaut les partages d'utilisateurs et de groupes",
- "Read only" : "Lecture seule",
- "File drop (upload only)" : "Dépôt de fichier (envoi uniquement)",
- "Upload" : "Envoi",
- "Bundled permissions" : "Autorisations groupées",
- "Only works for users with access to this folder" : "Fonctionne uniquement pour les utilisateurs ayant accès à ce dossier",
- "Only works for users with access to this file" : "Fonctionne uniquement pour les utilisateurs ayant accès à ce fichier",
- "Circle" : "Cercle",
- "Update" : "Mise à jour",
- "Share with " : "Partager avec ",
- "No other users with access found" : "Aucun autre utilisateur ayant un accès n'a été trouvé",
- "No entries found in this folder" : "Aucune entrée trouvée dans ce dossier",
"Name" : "Nom",
- "Share time" : "Date de partage",
- "Sorry, this link does not seem to work anymore." : "Désolé, ce lien semble ne plus fonctionner.",
- "Reasons might be:" : "Les raisons peuvent être :",
- "the item was removed" : "l’élément a été supprimé",
- "the link expired" : "le lien a expiré",
- "sharing is disabled" : "le partage est désactivé",
- "For more info, please ask the person who sent this link." : "Pour plus d'informations, veuillez contacter la personne qui vous a envoyé ce lien.",
- "Share with remote" : "Partager avec le distant",
- "Share with" : "Partager avec"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utilisez cette méthode pour partager des fichiers avec des personnes ou des équipes au sein de votre organisation. Si le destinataire a déjà accès au partage, mais ne parvient pas à le localiser, vous pouvez lui envoyer le lien interne pour faciliter l'accès.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Cette méthode permet de partager des fichiers avec des personnes ou des organisations extérieures à votre organisation. Les fichiers et les dossiers peuvent être partagés via des liens de partage publics et des adresses e-mail. Vous pouvez également partager avec d'autres comptes Nextcloud hébergés sur différentes instances en utilisant leur ID de cloud fédéré.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Partages qui ne font pas partie des partages internes ou externes. Il peut s'agir de partages provenant d'applications ou d'autres sources.",
+ "Share with accounts, teams, federated cloud id" : "Partager avec des comptes, des équipes, un identifiant de cloud fédéré",
+ "Share with accounts and teams" : "Partager avec des comptes et des équipes",
+ "Federated cloud ID" : "ID de Cloud Fédéré",
+ "Email, federated cloud id" : "E-mail, ID de cloud fédéré",
+ "Filename must not be empty." : "Le nom du fichier ne doit pas être vide."
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ga.js b/apps/files_sharing/l10n/ga.js
new file mode 100644
index 00000000000..eae6ff8353c
--- /dev/null
+++ b/apps/files_sharing/l10n/ga.js
@@ -0,0 +1,442 @@
+OC.L10N.register(
+ "files_sharing",
+ {
+ "File shares" : "Comhroinnt",
+ "Downloaded via public link" : "Íoslódáil trí nasc poiblí",
+ "Downloaded by {email}" : "Íoslódáilte ag {email}",
+ "{file} downloaded via public link" : "{file} íoslódáilte trí nasc poiblí",
+ "{email} downloaded {file}" : "{email} íoslódáil {file}",
+ "Shared with group {group}" : "Roinnte le grúpa {group}",
+ "Removed share for group {group}" : "Baineadh an sciar don ghrúpa {group}",
+ "{actor} shared with group {group}" : "Roinn {actor} leis an ngrúpa {group}",
+ "{actor} removed share for group {group}" : "Bhain {actor} sciar den ghrúpa {group}",
+ "Share for group {group} expired" : "Chuaigh sciar do ghrúpa {group} in éag",
+ "You shared {file} with group {group}" : "Roinn tú {file} le grúpa {group}",
+ "You removed group {group} from {file}" : "Bhain tú grúpa {group} de {file}",
+ "{actor} shared {file} with group {group}" : "Roinn {actor} {file} le grúpa {group}",
+ "{actor} removed group {group} from {file}" : "Bhain {actor} grúpa {group} de {file}",
+ "Share for file {file} with group {group} expired" : "Chuaigh roinnt do chomhad {file} le grúpa {group} in éag",
+ "Shared as public link" : "Roinnte mar nasc poiblí",
+ "Removed public link" : "Baineadh nasc poiblí",
+ "Public link expired" : "Nasc poiblí imithe in éag",
+ "{actor} shared as public link" : "{actor} roinnte mar nasc poiblí",
+ "{actor} removed public link" : "Bhain {actor} nasc poiblí",
+ "Public link of {actor} expired" : "Chuaigh nasc poiblí {actor} in éag",
+ "You shared {file} as public link" : "Roinn tú {file} mar nasc poiblí",
+ "You removed public link for {file}" : "Bhain tú nasc poiblí le haghaidh {file}",
+ "Public link expired for {file}" : "Chuaigh nasc poiblí in éag le haghaidh {file}",
+ "{actor} shared {file} as public link" : "Roinn {actor} {file} mar nasc poiblí",
+ "{actor} removed public link for {file}" : "Bhain {actor} nasc poiblí le haghaidh {file}",
+ "Public link of {actor} for {file} expired" : "Chuaigh nasc poiblí {actor} le haghaidh {file} in éag",
+ "{user} accepted the remote share" : "Ghlac {user} leis an gcianroinnt",
+ "{user} declined the remote share" : "Dhiúltaigh {user} an cianroinnt",
+ "You received a new remote share {file} from {user}" : "Fuair ​​tú cianroinnt {file} nua ó {user}",
+ "{user} accepted the remote share of {file}" : "Ghlac {user} leis an gcianroinnt de {file}",
+ "{user} declined the remote share of {file}" : "Dhiúltaigh {user} an sciar cianda de {file}",
+ "{user} unshared {file} from you" : "Dhíroinnte {user} {file} uait",
+ "Shared with {user}" : "Roinnte le {user}",
+ "Removed share for {user}" : "Baineadh an sciar do {user}",
+ "You removed yourself" : "Bhain tú tú féin",
+ "{actor} removed themselves" : "Bhain {actor} iad féin",
+ "{actor} shared with {user}" : "Roinn {actor} le {user}",
+ "{actor} removed share for {user}" : "Bhain {actor} sciar do {user}",
+ "Shared by {actor}" : "Roinnte ag {actor}",
+ "{actor} removed share" : "Bhain {actor} sciar",
+ "Share for {user} expired" : "Chuaigh sciar do {user} in éag",
+ "Share expired" : "Chuaigh sciar in éag",
+ "You shared {file} with {user}" : "Roinn tú {file} le {user}",
+ "You removed {user} from {file}" : "Bhain tú {user} de {file}",
+ "You removed yourself from {file}" : "Bhain tú tú féin de {file}",
+ "{actor} removed themselves from {file}" : "Bhain {actor} iad féin de {file}",
+ "{actor} shared {file} with {user}" : "Roinn {actor} {file} le {user}",
+ "{actor} removed {user} from {file}" : "Bhain {actor} {user} de {file}",
+ "{actor} shared {file} with you" : "Roinn {actor} {file} leat",
+ "{actor} removed you from the share named {file}" : "Bhain {actor} den sciar darb ainm {file} thú",
+ "Share for file {file} with {user} expired" : "Chuaigh sciar do chomhad {file} le {user} in éag",
+ "Share for file {file} expired" : "Chuaigh sciar don chomhad {file} in éag",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "<strong>Íoslódáladh</strong> comhad nó fillteán a roinntear tríd an bpost nó trí nasc poiblí",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Tá comhaid <strong>uploaded</strong> le fillteán a roinntear tríd an bpost nó trí nasc poiblí",
+ "A file or folder was shared from <strong>another server</strong>" : "Roinneadh comhad nó fillteán ó <strong>fhreastalaí eile</strong>",
+ "Sharing" : "Roinnt",
+ "A file or folder has been <strong>shared</strong>" : "Tá comhad nó fillteán <strong>roinnte</strong>",
+ "Shared link" : "Nasc roinnte",
+ "Wrong share ID, share does not exist" : "Aitheantas comhroinnte mícheart, níl an sciar ann",
+ "Could not delete share" : "Níorbh fhéidir an sciar a scriosadh",
+ "Please specify a file or folder path" : "Sonraigh cosán comhaid nó fillteáin le do thoil",
+ "Wrong path, file/folder does not exist" : "Cosán mícheart, níl an comhad/fillteán ann",
+ "Could not create share" : "Níorbh fhéidir sciar a chruthú",
+ "Please specify a valid account to share with" : "Sonraigh cuntas bailí le roinnt leis le do thoil",
+ "Group sharing is disabled by the administrator" : "Tá comhroinnt grúpa díchumasaithe ag an riarthóir",
+ "Please specify a valid group" : "Sonraigh grúpa bailí",
+ "Public link sharing is disabled by the administrator" : "Tá comhroinnt naisc phoiblí díchumasaithe ag an riarthóir",
+ "Please specify a valid email address" : "Sonraigh seoladh ríomhphoist bailí le do thoil",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Theip ar chomhroinnt %s agus an focal faire á sheoladh ag Nextcloud Talk toisc nach bhfuil Nextcloud Talk cumasaithe",
+ "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Theip ar chomhroinnt %1$s toisc nach gceadaíonn an cúlcheann scaireanna ón gcineál %2$s",
+ "Please specify a valid federated account ID" : "Sonraigh ID cuntais chónaidhme bailí le do thoil",
+ "Please specify a valid federated group ID" : "Sonraigh aitheantas grúpa cónasctha bailí le do thoil",
+ "You cannot share to a Team if the app is not enabled" : "Ní féidir leat a roinnt le foireann mura bhfuil an feidhmchlár cumasaithe",
+ "Please specify a valid team" : "Sonraigh foireann bhailí le do thoil",
+ "Sharing %s failed because the back end does not support room shares" : "Theip ar chomhroinnt %s toisc nach dtacaíonn an ceann cúil le comhroinnt seomra",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Theip ar chomhroinnt %s toisc nach dtacaíonn an cúlcheann le scaireanna ScienceMesh",
+ "Unknown share type" : "Cineál scaire anaithnid",
+ "Not a directory" : "Ní eolaire",
+ "Could not lock node" : "Níorbh fhéidir nód a ghlasáil",
+ "Public upload is only possible for publicly shared folders" : "Ní féidir uaslódáil phoiblí a dhéanamh ach amháin ar fhillteáin a chomhroinntear go poiblí",
+ "Share must at least have READ or CREATE permissions" : "Caithfidh ceadanna READ nó CREATE a bheith ag sciar ar a laghad",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "Ní mór cead READ a bheith ag sciar má shocraítear cead UPDATE nó DELETE",
+ "Public upload disabled by the administrator" : "Dhíchumasaigh an riarthóir an uaslódáil phoiblí",
+ "Could not lock path" : "Níorbh fhéidir an cosán a ghlasáil",
+ "no sharing rights on this item" : "gan cearta comhroinnte ar an mír seo",
+ "You are not allowed to edit incoming shares" : "Níl cead agat scaireanna isteach a chur in eagar",
+ "Wrong or no update parameter given" : "Paraiméadar nuashonraithe mícheart nó gan aon tugtha",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Theip ar \"an focal faire a sheoladh ag Nextcloud Talk\" chun comhad nó fillteán a roinnt toisc nach bhfuil Nextcloud Talk cumasaithe.",
+ "Custom share link tokens have been disabled by the administrator" : "Dhíchumasaigh an riarthóir comharthaí nasc comhroinnte saincheaptha",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Ní mór carachtar 1 ar a laghad a bheith sna comharthaí agus ní fhéadfaidh ach litreacha, uimhreacha nó fleiscín a bheith iontu",
+ "Invalid date. Format must be YYYY-MM-DD" : "Dáta neamhbhailí. Ní mór don fhormáid a bheith BBBB-MM-LL",
+ "No sharing rights on this item" : "Níl aon chearta comhroinnte ar an mír seo",
+ "Invalid share attributes provided: \"%s\"" : "Cuireadh tréithe comhroinnte neamhbhailí: \"%s\"",
+ "You are not allowed to send mail notifications" : "Níl cead agat fógraí ríomhphoist a sheoladh",
+ "No mail notification configured for this share type" : "Níl aon fhógra ríomhphoist cumraithe don chineál comhroinnte seo",
+ "Wrong password" : "Pasfhocal mícheart",
+ "Error while sending mail notification" : "Earráid agus fógra ríomhphoist á sheoladh",
+ "Failed to generate a unique token" : "Theip ar chomhartha uathúil a ghiniúint",
+ "This share does not exist or is no longer available" : "Níl an sciar seo ann nó níl sé ar fáil a thuilleadh",
+ "shared by %s" : "roinnte ag %s",
+ "Download" : "Íoslódáil",
+ "Add to your %s" : "Cuir le do %s",
+ "Direct link" : "Nasc díreach",
+ "Share API is disabled" : "Tá Share API díchumasaithe",
+ "File sharing" : "Comhroinnt",
+ "Share will expire tomorrow" : "Rachaidh sciar in éag amárach",
+ "Your share of {node} will expire tomorrow" : "Rachaidh do sciar de {node} in éag amárach",
+ "You received {share} as a share by {user}" : "Fuair ​​tú {share} mar sciar le {user}",
+ "You received {share} to group {group} as a share by {user}" : "Fuair ​​tú {share} chun {group} a ghrúpáil mar sciar ag {user}",
+ "Accept" : "Glac",
+ "Decline" : "Meath",
+ "Remember to upload the files to %s" : "Cuimhnigh na comhaid a uaslódáil go %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Ba mhaith linn a mheabhrú duit nach bhfuil aon chomhaid uaslódáilte agat san fhillteán comhroinnte fós.",
+ "Open \"%s\"" : "Oscail \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Cuireann an feidhmchlár seo ar chumas daoine comhaid a roinnt laistigh de Nextcloud. Má tá sé cumasaithe, is féidir leis an riarthóir a roghnú cé na grúpaí ar féidir leo comhaid a roinnt. Is féidir leis na daoine infheidhme comhaid agus fillteáin a roinnt ansin le cuntais agus grúpaí eile laistigh de Nextcloud. Ina theannta sin, má chumasaíonn an riarthóir an ghné nasc comhroinnte, is féidir nasc seachtrach a úsáid chun comhaid a roinnt le daoine eile lasmuigh de Nextcloud. Is féidir le riarthóirí pasfhocail, dátaí éaga a fhorfheidhmiú freisin, agus roinnt freastalaí a chumasú trí naisc scaireanna, chomh maith le comhroinnt ó ghléasanna soghluaiste.\nMá mhúchtar an ghné, baintear comhaid agus fillteáin roinnte ar an bhfreastalaí do gach faighteoir scaireanna, agus freisin ar na cliaint sioncronaithe agus aipeanna móibíleacha. Tá tuilleadh eolais ar fáil sa Doiciméadúchán Nextcloud.",
+ "People" : "Daoine",
+ "Filter accounts" : "Scag cuntais",
+ "The request will expire on {date} at midnight and will be password protected." : "Rachaidh an t-iarratas in éag ar {date}ag meán oíche agus beidh sé cosanta ag pasfhocal.",
+ "The request will expire on {date} at midnight." : "Rachaidh an t-iarratas in éag ar{date}ag meán oíche.",
+ "The request will be password protected." : "Beidh an t-iarratas cosanta ag pasfhocal.",
+ "When should the request expire?" : "Cathain ar cheart don iarratas dul in éag?",
+ "Set a submission expiration date" : "Socraigh dáta éaga aighneachta",
+ "Expiration date" : "Dáta éaga",
+ "Select a date" : "Roghnaigh dáta",
+ "Your administrator has enforced a {count} days expiration policy." : "Chuir do riarthóir polasaí éaga {count} lá i bhfeidhm.",
+ "What password should be used for the request?" : "Cén pasfhocal ba chóir a úsáid don iarratas?",
+ "Set a password" : "Socraigh focal faire",
+ "Password" : "Pasfhocal",
+ "Enter a valid password" : "Cuir isteach pasfhocal bailí",
+ "Generate a new password" : "Gin pasfhocal nua",
+ "Your administrator has enforced a password protection." : "Chuir do riarthóir cosaint pasfhocail i bhfeidhm.",
+ "Automatically copying failed, please copy the share link manually" : "Theip ar chóipeáil uathoibríoch, cóipeáil an nasc comhroinnte de láimh le do thoil",
+ "Link copied" : "Cóipeáladh an nasc",
+ "Email already added" : "Ríomhphost curtha leis cheana féin",
+ "Invalid email address" : "sheoladh ríomhphoist neamhbhailí",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Níl an seoladh ríomhphoist seo a leanas bailí: {emails}","Níl na seoltaí ríomhphoist seo a leanas bailí: {emails}","Níl na seoltaí ríomhphoist seo a leanas bailí: {emails}","Níl na seoltaí ríomhphoist seo a leanas bailí: {emails}","Níl na seoltaí ríomhphoist seo a leanas bailí: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} seoladh ríomhphoist curtha leis cheana féin","{count}seoladh ríomhphoist curtha leis cheana","{count}seoladh ríomhphoist curtha leis cheana","{count}seoladh ríomhphoist curtha leis cheana","{count}seoladh ríomhphoist curtha leis cheana"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis"],
+ "You can now share the link below to allow people to upload files to your directory." : "Is féidir leat an nasc thíos a roinnt anois chun ligean do dhaoine comhaid a uaslódáil chuig do eolaire.",
+ "Share link" : "Comhroinn nasc",
+ "Copy" : "Cóipeáil",
+ "Send link via email" : "Seol an nasc trí ríomhphost",
+ "Enter an email address or paste a list" : "Cuir isteach seoladh ríomhphoist nó greamaigh liosta",
+ "Remove email" : "Bain ríomhphost",
+ "Select a destination" : "Roghnaigh ceann scríbe",
+ "Select" : "Roghnaigh",
+ "What are you requesting?" : "Cad atá á iarraidh agat?",
+ "Request subject" : "Ábhar an iarratais",
+ "Birthday party photos, History assignment…" : "Grianghraif cóisir lá breithe, tasc Staire…",
+ "Where should these files go?" : "Cá háit ar cheart do na comhaid seo dul?",
+ "Upload destination" : "Íoslódáil an ceann scríbe",
+ "Revert to default" : "Fill ar an réamhshocrú",
+ "The uploaded files are visible only to you unless you choose to share them." : "Ní féidir leatsa ach na comhaid uaslódáilte a fheiceáil ach amháin má roghnaíonn tú iad a roinnt.",
+ "Add a note" : "Cuir nóta leis",
+ "Note for recipient" : "Nóta don fhaighteoir",
+ "Add a note to help people understand what you are requesting." : "Cuir nóta leis chun cabhrú le daoine a bhfuil á iarraidh agat a thuiscint.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Is féidir leat naisc, dáta nó aon fhaisnéis eile a chur leis a chabhróidh leis an bhfaighteoir a bhfuil á iarraidh agat a thuiscint.",
+ "Close" : "Dún",
+ "_Send email and close_::_Send {count} emails and close_" : ["Seol ríomhphost agus dún","Seol {count} ríomhphost agus dún","Seol {count} ríomhphost agus dún","Seol {count} ríomhphost agus dún","Seol {count} ríomhphost agus dún"],
+ "Please select a folder, you cannot share the root directory." : "Roghnaigh fillteán, le do thoil, ní féidir leat an eolaire fréimhe a roinnt.",
+ "File request created" : "Cruthaíodh iarratas comhaid",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Cruthaíodh iarratas comhaid agus seoladh ríomhphost","Cruthaíodh iarratas comhaid agus seoladh {count} ríomhphost","Cruthaíodh iarratas comhaid agus seoladh {count} ríomhphost","Cruthaíodh iarratas comhaid agus seoladh {count} ríomhphost","Cruthaíodh iarratas comhaid agus seoladh {count} ríomhphost"],
+ "Error creating the share: {errorMessage}" : "Earráid agus an sciar á cruthú: {errorMessage}",
+ "Error creating the share" : "Earráid agus an sciar á cruthú",
+ "Error sending emails: {errorMessage}" : "Earráid agus ríomhphoist á seoladh: {errorMessage}",
+ "Error sending emails" : "Earráid agus ríomhphoist á seoladh",
+ "Create a file request" : "Cruthaigh iarratas comhad",
+ "Collect files from others even if they do not have an account." : "Bailigh comhaid ó dhaoine eile fiú mura bhfuil cuntas acu.",
+ "To ensure you can receive files, verify you have enough storage available." : "Chun a chinntiú gur féidir leat comhaid a fháil, deimhnigh go bhfuil go leor stórála ar fáil agat.",
+ "File request" : "Iarratas comhad",
+ "Previous step" : "An chéim roimhe seo",
+ "Cancel" : "Cealaigh",
+ "Cancel the file request creation" : "Cealaigh cruthú an iarratais comhaid",
+ "Close without sending emails" : "Dún gan ríomhphoist a sheoladh",
+ "Continue" : "Lean ar aghaidh",
+ "Error while toggling options" : "Earráid agus roghanna á scoránú",
+ "Accept shares from other accounts and groups by default" : "Glac le scaireanna ó chuntais agus ó ghrúpaí eile de réir réamhshocraithe",
+ "Choose a default folder for accepted shares" : "Roghnaigh fillteán réamhshocraithe le haghaidh scaireanna glactha",
+ "Invalid path selected" : "Conair neamhbhailí roghnaithe",
+ "Unknown error" : "Earráid anaithnid",
+ "Set default folder for accepted shares" : "Socraigh fillteán réamhshocraithe le haghaidh scaireanna glactha",
+ "Reset" : "Athshocraigh",
+ "Reset folder to system default" : "Athshocraigh an fillteán go réamhshocrú an chórais",
+ "Share expiration: {date}" : "Éaga scaireanna: {date}",
+ "Share Expiration" : "Comhroinn Éaga",
+ "group" : "grúpa",
+ "conversation" : "comhrá",
+ "remote" : "iargúlta",
+ "remote group" : "grúpa iargúlta",
+ "guest" : "aoi",
+ "by {initiator}" : "le {initiator}",
+ "Shared with the group {user} by {owner}" : "Roinnte leis an ngrúpa {user} ag {owner}",
+ "Shared with the conversation {user} by {owner}" : "Roinnte leis an gcomhrá {user} ag {owner}",
+ "Shared with {user} by {owner}" : "Roinnte le {user} ag {owner}",
+ "Open Sharing Details" : "Oscail Sonraí Comhroinnte",
+ "Added by {initiator}" : "Curtha leis ag {initiator}",
+ "Via “{folder}”" : "Trí “{folder}”",
+ "Unshare" : "Díroinnte",
+ "Cannot copy, please copy the link manually" : "Ní féidir cóip a dhéanamh, cóipeáil an nasc de láimh",
+ "Copy internal link" : "Cóipeáil an nasc inmheánach",
+ "Internal link" : "Nasc inmheánach",
+ "{shareWith} by {initiator}" : "{shareWith} le {initiator}",
+ "Shared via link by {initiator}" : "Roinnte trí nasc ag {initiator}",
+ "File request ({label})" : "Iarratas comhaid ({label})",
+ "Mail share ({label})" : "Comhroinnt ríomhphoist ({label})",
+ "Share link ({label})" : "Roinn nasc ({label})",
+ "Mail share" : "Comhroinnt ríomhphoist",
+ "Share link ({index})" : "Roinn nasc ({index})",
+ "Create public link" : "Cruthaigh nasc poiblí",
+ "Actions for \"{title}\"" : "Gníomhartha le haghaidh \"{title}\"",
+ "Error, please enter proper password and/or expiration date" : "Earráid, cuir isteach pasfhocal ceart agus/nó dáta éaga le do thoil",
+ "Link share created" : "Cruthaíodh comhroinnt naisc",
+ "Error while creating the share" : "Earráid agus an sciar á cruthú",
+ "Please enter the following required information before creating the share" : "Cuir isteach an t-eolas riachtanach seo a leanas sula gcruthaítear an sciar le do thoil",
+ "Password protection (enforced)" : "Cosaint pasfhocail (forfheidhmithe)",
+ "Password protection" : "Cosaint pasfhocal",
+ "Enter a password" : "Cuir isteach pasfhocal",
+ "Enable link expiration (enforced)" : "Cumasaigh dul in éag an naisc (curtha i bhfeidhm)",
+ "Enable link expiration" : "Cumasaigh dul in éag nasc",
+ "Enter expiration date (enforced)" : "Cuir isteach an dáta éaga (curtha i bhfeidhm)",
+ "Enter expiration date" : "Cuir isteach an dáta éaga",
+ "Create share" : "Cruthaigh sciar",
+ "Customize link" : "Saincheap nasc",
+ "Generate QR code" : "Gin cód QR",
+ "Add another link" : "Cuir nasc eile leis",
+ "Create a new share link" : "Cruthaigh nasc comhroinnte nua",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Roghanna scaireanna tapa, is é \"{selectedOption}\" an rogha reatha",
+ "View only" : "Amharc amháin",
+ "Can edit" : "Is féidir eagarthóireacht a dhéanamh",
+ "Custom permissions" : "Ceadanna saincheaptha",
+ "Resharing is not allowed" : "Ní cheadaítear athroinnt",
+ "Name or email …" : "Ainm nó ríomhphost…",
+ "Name, email, or Federated Cloud ID …" : "Ainm, ríomhphost, nó ID Néal Cónaidhme…",
+ "Searching …" : "Ag cuardach…",
+ "No elements found." : "Níor aimsíodh aon eilimintí.",
+ "Search everywhere" : "Cuardaigh i ngach áit",
+ "Guest" : "Aoi",
+ "Group" : "Grúpa",
+ "Email" : "Ríomhphost",
+ "Team" : "Foireann",
+ "Talk conversation" : "Labhair comhrá",
+ "Deck board" : "Bord deic",
+ "ScienceMesh" : "EolaíochtMesh",
+ "on {server}" : "ar {server}",
+ "Enter external recipients" : "Cuir isteach faighteoirí seachtracha",
+ "Search for internal recipients" : "Cuardaigh faighteoirí inmheánacha",
+ "Note from" : "Nóta ó",
+ "Note:" : "Nóta:",
+ "File drop" : "Titim comhad",
+ "Upload files to {foldername}." : "Uaslódáil comhaid go {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Trí chomhaid a uaslódáil, aontaíonn tú leis na téarmaí seirbhíse.",
+ "Successfully uploaded files" : "Uaslódáileadh na comhaid go rathúil",
+ "View terms of service" : "Féach ar théarmaí seirbhíse",
+ "Terms of service" : "Tearmaí Seirbhís",
+ "Share with {user}" : "Comhroinn le {user}",
+ "Share with email {email}" : "Roinn le ríomhphost {email}",
+ "Share with group" : "Roinn leis an ngrúpa",
+ "Share in conversation" : "Roinn sa chomhrá",
+ "Share with {user} on remote server {server}" : "Roinn le {user} ar an gcianfhreastalaí {server}",
+ "Share with remote group" : "Roinn le grúpa cianda",
+ "Share with guest" : "Roinn leis an aoi",
+ "Update share" : "Nuashonraigh sciar",
+ "Save share" : "Sábháil sciar",
+ "Read" : "Léigh",
+ "Create" : "Cruthaigh",
+ "Edit" : "Cuir in eagar",
+ "Share" : "Comhroinn",
+ "Delete" : "Scrios",
+ "Password field cannot be empty" : "Ní féidir le réimse an phasfhocail a bheith folamh",
+ "Replace current password" : "Ionadaigh an pasfhocal reatha",
+ "Failed to generate a new token" : "Theip ar chomhartha nua a ghiniúint",
+ "Allow upload and editing" : "Ceadaigh uaslódáil agus eagarthóireacht",
+ "Allow editing" : "Allow editing",
+ "Upload only" : "Uaslódáil ach amháin",
+ "Advanced settings" : "Ardsocruithe",
+ "Share label" : "Comhroinn lipéad",
+ "Share link token" : "Comhroinn comhartha nasc",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Socraigh an comhartha nasc scaireanna poiblí le rud éigin atá éasca le cuimhneamh nó giniúint comhartha nua. Ní mholtar comhartha inmheasta a úsáid le haghaidh scaireanna ina bhfuil faisnéis íogair.",
+ "Generating…" : "Ag giniúint…",
+ "Generate new token" : "Gin comhartha nua",
+ "Set password" : "Socraigh pasfhocal",
+ "Password expires {passwordExpirationTime}" : "Téann pasfhocal in éag {passwordExpirationTime}",
+ "Password expired" : "Pasfhocal imithe in éag",
+ "Video verification" : "Fíorú físeán",
+ "Expiration date (enforced)" : "Dáta éaga (curtha i bhfeidhm)",
+ "Set expiration date" : "Socraigh dáta éaga",
+ "Hide download" : "Folaigh íoslódáil",
+ "Allow download and sync" : "Ceadaigh íoslódáil agus sioncrónú",
+ "Note to recipient" : "Nóta don fhaighteoir",
+ "Enter a note for the share recipient" : "Cuir isteach nóta le haghaidh faighteoir na scaireanna",
+ "Show files in grid view" : "Taispeáin comhaid san amharc greille",
+ "Delete share" : "Scrios an sciar",
+ "Others with access" : "Daoine eile a bhfuil rochtain acu",
+ "No other accounts with access found" : "Níor aimsíodh aon chuntais eile a bhfuil rochtain acu",
+ "Toggle list of others with access to this directory" : "Scoránaigh liosta de na cinn eile a bhfuil rochtain acu ar an eolaire seo",
+ "Toggle list of others with access to this file" : "Scoránaigh liosta de na cinn eile a bhfuil rochtain acu ar an gcomhad seo",
+ "Unable to fetch inherited shares" : "Ní féidir scaireanna le hoidhreacht a fháil",
+ "Link shares" : "Scaireanna naisc",
+ "Shares" : "Scaireanna",
+ "Unable to load the shares list" : "Ní féidir an liosta scaireanna a lódáil",
+ "Expires {relativetime}" : "In éag {relativetime}",
+ "this share just expired." : "tá an sciar seo díreach imithe in éag.",
+ "Shared with you by {owner}" : "Roinnte ag {owner} leat",
+ "Internal shares" : "Scaireanna inmheánacha",
+ "Internal shares explanation" : "Míniú ar scaireanna inmheánacha",
+ "External shares" : "Scaireanna seachtracha",
+ "External shares explanation" : "Míniú ar scaireanna seachtracha",
+ "Additional shares" : "Scaireanna breise",
+ "Additional shares explanation" : "Míniú ar scaireanna breise",
+ "Link to a file" : "Nasc chuig comhad",
+ "_Accept share_::_Accept shares_" : ["Glac le sciar","Glac le scaireanna","Glac le scaireanna","Glac le scaireanna","Glac le scaireanna"],
+ "Open in Files" : "Oscail i Comhaid",
+ "_Reject share_::_Reject shares_" : ["Diúltaigh sciar","Diúltaigh scaireanna","Diúltaigh scaireanna","Diúltaigh scaireanna","Diúltaigh scaireanna"],
+ "_Restore share_::_Restore shares_" : ["Athchóirigh sciar","Athchóirigh scaireanna","Athchóirigh scaireanna","Athchóirigh scaireanna","Athchóirigh scaireanna"],
+ "Shared" : "Roinnte",
+ "Shared by {ownerDisplayName}" : "Roinnte ag {ownerDisplayName}",
+ "Shared multiple times with different people" : "Roinnte go minic le daoine éagsúla",
+ "Shared with others" : "Roinnte le daoine eile",
+ "Create file request" : "Cruthaigh iarratas comhad",
+ "Upload files to {foldername}" : "Uaslódáil comhaid go {foldername}",
+ "Public file share" : "Comhroinnt phoiblí",
+ "Publicly shared file." : "Comhad roinnte go poiblí.",
+ "No file" : "Gan chomhad",
+ "The file shared with you will show up here" : "Taispeánfar an comhad a roinntear leat anseo",
+ "Public share" : "Scair phoiblí",
+ "Publicly shared files." : "Comhaid roinnte go poiblí.",
+ "No files" : "Uimh comhaid",
+ "Files and folders shared with you will show up here" : "Taispeánfar comhaid agus fillteáin a roinntear leat anseo",
+ "Overview of shared files." : "Forbhreathnú ar chomhaid roinnte.",
+ "No shares" : "Uimh scaireanna",
+ "Files and folders you shared or have been shared with you will show up here" : "Taispeánfar comhaid agus fillteáin a roinn tú nó a roinn tú leat anseo",
+ "Shared with you" : "Roinnte leat",
+ "List of files that are shared with you." : "Liosta de na comhaid a roinntear leat.",
+ "Nothing shared with you yet" : "Níl aon rud roinnte leat go fóill",
+ "Files and folders others shared with you will show up here" : "Taispeánfar comhaid agus fillteáin eile a roinntear leat anseo",
+ "List of files that you shared with others." : "Liosta comhad a roinn tú le daoine eile.",
+ "Nothing shared yet" : "Ní dhéanfaidh aon ní roinnte go fóill",
+ "Files and folders you shared will show up here" : "Taispeánfar na comhaid agus na fillteáin a roinn tú anseo",
+ "Shared by link" : "Roinnte ag nasc",
+ "List of files that are shared by link." : "Liosta de na comhaid a roinntear trí nasc.",
+ "No shared links" : "Gan naisc roinnte",
+ "Files and folders you shared by link will show up here" : "Taispeánfar comhaid agus fillteáin a roinn tú trí naisc anseo",
+ "File requests" : "Iarratais comhaid",
+ "List of file requests." : "Liosta iarratas comhaid.",
+ "No file requests" : "Níl aon iarratas comhaid",
+ "File requests you have created will show up here" : "Taispeánfar iarratais ar chomhaid a chruthaigh tú anseo",
+ "Deleted shares" : "Scaireanna scriosta",
+ "List of shares you left." : "Liosta scaireanna a d'fhág tú.",
+ "No deleted shares" : "Níl aon scaireanna scriosta",
+ "Shares you have left will show up here" : "Taispeánfar scaireanna atá fágtha agat anseo",
+ "Pending shares" : "Scaireanna ar feitheamh",
+ "List of unapproved shares." : "Liosta scaireanna neamhcheadaithe.",
+ "No pending shares" : "Gan scaireanna ar feitheamh",
+ "Shares you have received but not approved will show up here" : "Taispeánfar scaireanna atá faighte agat ach nár faomhadh anseo",
+ "Error deleting the share: {errorMessage}" : "Earráid ag scriosadh an chomhroinnte: {errorMessage}",
+ "Error deleting the share" : "Earráid ag scriosadh an chomhroinnte",
+ "Error updating the share: {errorMessage}" : "Earráid agus an sciar á nuashonrú: {errorMessage}",
+ "Error updating the share" : "Earráid agus an sciar á nuashonrú",
+ "File \"{path}\" has been unshared" : "Comhad \"{path}\" díroinnte",
+ "Folder \"{path}\" has been unshared" : "Díroinneadh an fillteán \"{path}\".",
+ "Could not update share" : "Níorbh fhéidir an sciar a nuashonrú",
+ "Share saved" : "Sábháladh an sciar",
+ "Share expiry date saved" : "Comhroinn dáta éaga sábháilte",
+ "Share hide-download state saved" : "Stádas i bhfolach-íoslódáil roinnte a shábháil",
+ "Share label saved" : "Comhroinn lipéad sábháilte",
+ "Share note for recipient saved" : "Comhroinn nóta don fhaighteoir sábháilte",
+ "Share password saved" : "Comhroinn pasfhocal sábháilte",
+ "Share permissions saved" : "Sábháladh ceadanna comhroinnte",
+ "To upload files to {folder}, you need to provide your name first." : "Chun comhaid a uaslódáil chuig {folder}, ní mór duit d'ainm a sholáthar ar dtús.",
+ "Upload files to {folder}" : "Uaslódáil comhaid go {folder}",
+ "Please confirm your name to upload files to {folder}" : "Deimhnigh d'ainm le do thoil chun comhaid a uaslódáil chuig {folder}",
+ "{ownerDisplayName} shared a folder with you." : "Roinn {ownerDisplayName} fillteán leat.",
+ "Names must not be empty." : "Ní féidir ainmneacha a bheith folamh.",
+ "Names must not start with a dot." : "Ní mór ainmneacha a bheith ag tosú le ponc.",
+ "\"{char}\" is not allowed inside a name." : "Ní cheadaítear \"{char}\" laistigh d'ainm.",
+ "\"{segment}\" is a reserved name and not allowed." : "Is ainm curtha in áirithe é \"{segment}\" agus ní cheadaítear é.",
+ "\"{extension}\" is not an allowed name." : "Ní ainm ceadaithe é \"{extension}\".",
+ "Names must not end with \"{extension}\"." : "Ní féidir ainmneacha a chríochnú le \"{extension}\".",
+ "Invalid name." : "Ainm neamhbhailí.",
+ "Shared by" : "Roinnte ag",
+ "Shared with" : "Roinnte le",
+ "Password created successfully" : "Pasfhocal cruthaithe go rathúil",
+ "Error generating password from password policy" : "Earráid agus pasfhocal á ghiniúint ó pholasaí pasfhocail",
+ "Shared with you and the group {group} by {owner}" : "Roinnte leat agus leis an ngrúpa {group} ag {owner}",
+ "Shared with you and {circle} by {owner}" : "Roinnte leat agus {circle} ag {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Roinnte leat agus an comhrá {conversation} ag {owner}",
+ "Shared with you in a conversation by {owner}" : "Roinnte leat i gcomhrá le {owner}",
+ "Share not found" : "Ní bhfuarthas an sciar",
+ "Back to %s" : "Ar ais go dtí %s",
+ "Add to your Nextcloud" : "Cuir le do Nextcloud",
+ "Waiting…" : "Ag fanacht…",
+ "error" : "earráid",
+ "finished" : "chríochnaigh",
+ "This will stop your current uploads." : "Cuirfidh sé seo stop le d'uaslódálacha reatha.",
+ "Move or copy" : "Bog nó cóipeáil",
+ "You can upload into this folder" : "Is féidir leat a uaslódáil isteach san fhillteán seo",
+ "Show list view" : "Taispeáin amharc liosta",
+ "Show grid view" : "Taispeáin radharc greille",
+ "No compatible server found at {remote}" : "Níor aimsíodh aon fhreastalaí comhoiriúnach ag {remote}",
+ "Invalid server URL" : "URL freastalaí neamhbhailí",
+ "Failed to add the public link to your Nextcloud" : "Theip ar an nasc poiblí a chur le do Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "Níl cead agat scaireanna naisc nach leatsa a chur in eagar",
+ "Download all files" : "Gach comhaid a íoslódáil",
+ "Link copied to clipboard" : "Cóipeáladh an nasc chuig an ngearrthaisce",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 seoladh ríomhphoist curtha leis cheana féin","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana"],
+ "_1 email address added_::_{count} email addresses added_" : ["Cuireadh 1 seoladh ríomhphoist leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis"],
+ "Copy to clipboard" : "Cóipeáil chuig an ngearrthaisce",
+ "Copy internal link to clipboard" : "Cóipeáil nasc inmheánach chuig an ngearrthaisce",
+ "Only works for people with access to this folder" : "Ní oibríonn ach do dhaoine a bhfuil rochtain acu ar an bhfillteán seo",
+ "Only works for people with access to this file" : "Ní oibríonn ach do dhaoine a bhfuil rochtain acu ar an gcomhad seo",
+ "Copy public link of \"{title}\" to clipboard" : "Cóipeáil nasc poiblí de \"{title}\" chuig an ngearrthaisce",
+ "Search globally" : "Cuardaigh go domhanda",
+ "Search for share recipients" : "Cuardaigh faighteoirí scaireanna",
+ "No recommendations. Start typing." : "Gan moltaí. Tosaigh ag clóscríobh.",
+ "To upload files, you need to provide your name first." : "Chun comhaid a uaslódáil, ní mór duit d'ainm a sholáthar ar dtús.",
+ "Enter your name" : "Cuir isteach d'ainm",
+ "Submit name" : "Cuir ainm",
+ "Share with {userName}" : "Roinn le {userName}",
+ "Show sharing options" : "Taispeáin roghanna comhroinnte",
+ "Share note" : "Roinn nóta",
+ "Upload files to %s" : "Uaslódáil comhaid go %s",
+ "%s shared a folder with you." : "Roinn %s fillteán leat.",
+ "Note" : "Nóta",
+ "Select or drop files" : "Roghnaigh nó scaoil comhaid",
+ "Uploading files" : "Comhaid a uaslódáil",
+ "Uploaded files:" : "Comhaid uaslódáilte:",
+ "By uploading files, you agree to the %1$sterms of service%2$s." : "Trí chomhaid a uaslódáil, aontaíonn tú le téarmaí seirbhíse %1$s%2$s.",
+ "Name" : "Ainm",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Bain úsáid as an modh seo chun comhaid a roinnt le daoine aonair nó le foirne laistigh de d'eagraíocht. Má tá rochtain ag an bhfaighteoir ar an sciar cheana féin ach nach féidir leis í a aimsiú, is féidir leat an nasc scaire inmheánach a sheoladh chucu le go mbeidh rochtain éasca air.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Bain úsáid as an modh seo chun comhaid a roinnt le daoine aonair nó le heagraíochtaí lasmuigh de d'eagraíocht. Is féidir comhaid agus fillteáin a roinnt trí naisc scaireanna poiblí agus seoltaí ríomhphoist. Is féidir leat a roinnt freisin le cuntais Nextcloud eile arna óstáil ar chásanna éagsúla ag baint úsáide as a n-ID néil cónasctha.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Scaireanna nach cuid de na scaireanna inmheánacha nó seachtracha iad. Is féidir gur scaireanna iad seo ó aipeanna nó ó fhoinsí eile.",
+ "Share with accounts, teams, federated cloud id" : "Comhroinn le cuntais, foirne, aitheantas scamall cónaidhme",
+ "Share with accounts and teams" : "Roinn le cuntais agus foirne",
+ "Federated cloud ID" : "ID scamall cónaidhme",
+ "Email, federated cloud id" : "Ríomhphost, aitheantas scamall cónaidhme",
+ "Filename must not be empty." : "Ní ceadmhach ainm an chomhaid a bheith folamh."
+},
+"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);");
diff --git a/apps/files_sharing/l10n/ga.json b/apps/files_sharing/l10n/ga.json
new file mode 100644
index 00000000000..e1522f23883
--- /dev/null
+++ b/apps/files_sharing/l10n/ga.json
@@ -0,0 +1,440 @@
+{ "translations": {
+ "File shares" : "Comhroinnt",
+ "Downloaded via public link" : "Íoslódáil trí nasc poiblí",
+ "Downloaded by {email}" : "Íoslódáilte ag {email}",
+ "{file} downloaded via public link" : "{file} íoslódáilte trí nasc poiblí",
+ "{email} downloaded {file}" : "{email} íoslódáil {file}",
+ "Shared with group {group}" : "Roinnte le grúpa {group}",
+ "Removed share for group {group}" : "Baineadh an sciar don ghrúpa {group}",
+ "{actor} shared with group {group}" : "Roinn {actor} leis an ngrúpa {group}",
+ "{actor} removed share for group {group}" : "Bhain {actor} sciar den ghrúpa {group}",
+ "Share for group {group} expired" : "Chuaigh sciar do ghrúpa {group} in éag",
+ "You shared {file} with group {group}" : "Roinn tú {file} le grúpa {group}",
+ "You removed group {group} from {file}" : "Bhain tú grúpa {group} de {file}",
+ "{actor} shared {file} with group {group}" : "Roinn {actor} {file} le grúpa {group}",
+ "{actor} removed group {group} from {file}" : "Bhain {actor} grúpa {group} de {file}",
+ "Share for file {file} with group {group} expired" : "Chuaigh roinnt do chomhad {file} le grúpa {group} in éag",
+ "Shared as public link" : "Roinnte mar nasc poiblí",
+ "Removed public link" : "Baineadh nasc poiblí",
+ "Public link expired" : "Nasc poiblí imithe in éag",
+ "{actor} shared as public link" : "{actor} roinnte mar nasc poiblí",
+ "{actor} removed public link" : "Bhain {actor} nasc poiblí",
+ "Public link of {actor} expired" : "Chuaigh nasc poiblí {actor} in éag",
+ "You shared {file} as public link" : "Roinn tú {file} mar nasc poiblí",
+ "You removed public link for {file}" : "Bhain tú nasc poiblí le haghaidh {file}",
+ "Public link expired for {file}" : "Chuaigh nasc poiblí in éag le haghaidh {file}",
+ "{actor} shared {file} as public link" : "Roinn {actor} {file} mar nasc poiblí",
+ "{actor} removed public link for {file}" : "Bhain {actor} nasc poiblí le haghaidh {file}",
+ "Public link of {actor} for {file} expired" : "Chuaigh nasc poiblí {actor} le haghaidh {file} in éag",
+ "{user} accepted the remote share" : "Ghlac {user} leis an gcianroinnt",
+ "{user} declined the remote share" : "Dhiúltaigh {user} an cianroinnt",
+ "You received a new remote share {file} from {user}" : "Fuair ​​tú cianroinnt {file} nua ó {user}",
+ "{user} accepted the remote share of {file}" : "Ghlac {user} leis an gcianroinnt de {file}",
+ "{user} declined the remote share of {file}" : "Dhiúltaigh {user} an sciar cianda de {file}",
+ "{user} unshared {file} from you" : "Dhíroinnte {user} {file} uait",
+ "Shared with {user}" : "Roinnte le {user}",
+ "Removed share for {user}" : "Baineadh an sciar do {user}",
+ "You removed yourself" : "Bhain tú tú féin",
+ "{actor} removed themselves" : "Bhain {actor} iad féin",
+ "{actor} shared with {user}" : "Roinn {actor} le {user}",
+ "{actor} removed share for {user}" : "Bhain {actor} sciar do {user}",
+ "Shared by {actor}" : "Roinnte ag {actor}",
+ "{actor} removed share" : "Bhain {actor} sciar",
+ "Share for {user} expired" : "Chuaigh sciar do {user} in éag",
+ "Share expired" : "Chuaigh sciar in éag",
+ "You shared {file} with {user}" : "Roinn tú {file} le {user}",
+ "You removed {user} from {file}" : "Bhain tú {user} de {file}",
+ "You removed yourself from {file}" : "Bhain tú tú féin de {file}",
+ "{actor} removed themselves from {file}" : "Bhain {actor} iad féin de {file}",
+ "{actor} shared {file} with {user}" : "Roinn {actor} {file} le {user}",
+ "{actor} removed {user} from {file}" : "Bhain {actor} {user} de {file}",
+ "{actor} shared {file} with you" : "Roinn {actor} {file} leat",
+ "{actor} removed you from the share named {file}" : "Bhain {actor} den sciar darb ainm {file} thú",
+ "Share for file {file} with {user} expired" : "Chuaigh sciar do chomhad {file} le {user} in éag",
+ "Share for file {file} expired" : "Chuaigh sciar don chomhad {file} in éag",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "<strong>Íoslódáladh</strong> comhad nó fillteán a roinntear tríd an bpost nó trí nasc poiblí",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Tá comhaid <strong>uploaded</strong> le fillteán a roinntear tríd an bpost nó trí nasc poiblí",
+ "A file or folder was shared from <strong>another server</strong>" : "Roinneadh comhad nó fillteán ó <strong>fhreastalaí eile</strong>",
+ "Sharing" : "Roinnt",
+ "A file or folder has been <strong>shared</strong>" : "Tá comhad nó fillteán <strong>roinnte</strong>",
+ "Shared link" : "Nasc roinnte",
+ "Wrong share ID, share does not exist" : "Aitheantas comhroinnte mícheart, níl an sciar ann",
+ "Could not delete share" : "Níorbh fhéidir an sciar a scriosadh",
+ "Please specify a file or folder path" : "Sonraigh cosán comhaid nó fillteáin le do thoil",
+ "Wrong path, file/folder does not exist" : "Cosán mícheart, níl an comhad/fillteán ann",
+ "Could not create share" : "Níorbh fhéidir sciar a chruthú",
+ "Please specify a valid account to share with" : "Sonraigh cuntas bailí le roinnt leis le do thoil",
+ "Group sharing is disabled by the administrator" : "Tá comhroinnt grúpa díchumasaithe ag an riarthóir",
+ "Please specify a valid group" : "Sonraigh grúpa bailí",
+ "Public link sharing is disabled by the administrator" : "Tá comhroinnt naisc phoiblí díchumasaithe ag an riarthóir",
+ "Please specify a valid email address" : "Sonraigh seoladh ríomhphoist bailí le do thoil",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Theip ar chomhroinnt %s agus an focal faire á sheoladh ag Nextcloud Talk toisc nach bhfuil Nextcloud Talk cumasaithe",
+ "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Theip ar chomhroinnt %1$s toisc nach gceadaíonn an cúlcheann scaireanna ón gcineál %2$s",
+ "Please specify a valid federated account ID" : "Sonraigh ID cuntais chónaidhme bailí le do thoil",
+ "Please specify a valid federated group ID" : "Sonraigh aitheantas grúpa cónasctha bailí le do thoil",
+ "You cannot share to a Team if the app is not enabled" : "Ní féidir leat a roinnt le foireann mura bhfuil an feidhmchlár cumasaithe",
+ "Please specify a valid team" : "Sonraigh foireann bhailí le do thoil",
+ "Sharing %s failed because the back end does not support room shares" : "Theip ar chomhroinnt %s toisc nach dtacaíonn an ceann cúil le comhroinnt seomra",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Theip ar chomhroinnt %s toisc nach dtacaíonn an cúlcheann le scaireanna ScienceMesh",
+ "Unknown share type" : "Cineál scaire anaithnid",
+ "Not a directory" : "Ní eolaire",
+ "Could not lock node" : "Níorbh fhéidir nód a ghlasáil",
+ "Public upload is only possible for publicly shared folders" : "Ní féidir uaslódáil phoiblí a dhéanamh ach amháin ar fhillteáin a chomhroinntear go poiblí",
+ "Share must at least have READ or CREATE permissions" : "Caithfidh ceadanna READ nó CREATE a bheith ag sciar ar a laghad",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "Ní mór cead READ a bheith ag sciar má shocraítear cead UPDATE nó DELETE",
+ "Public upload disabled by the administrator" : "Dhíchumasaigh an riarthóir an uaslódáil phoiblí",
+ "Could not lock path" : "Níorbh fhéidir an cosán a ghlasáil",
+ "no sharing rights on this item" : "gan cearta comhroinnte ar an mír seo",
+ "You are not allowed to edit incoming shares" : "Níl cead agat scaireanna isteach a chur in eagar",
+ "Wrong or no update parameter given" : "Paraiméadar nuashonraithe mícheart nó gan aon tugtha",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Theip ar \"an focal faire a sheoladh ag Nextcloud Talk\" chun comhad nó fillteán a roinnt toisc nach bhfuil Nextcloud Talk cumasaithe.",
+ "Custom share link tokens have been disabled by the administrator" : "Dhíchumasaigh an riarthóir comharthaí nasc comhroinnte saincheaptha",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Ní mór carachtar 1 ar a laghad a bheith sna comharthaí agus ní fhéadfaidh ach litreacha, uimhreacha nó fleiscín a bheith iontu",
+ "Invalid date. Format must be YYYY-MM-DD" : "Dáta neamhbhailí. Ní mór don fhormáid a bheith BBBB-MM-LL",
+ "No sharing rights on this item" : "Níl aon chearta comhroinnte ar an mír seo",
+ "Invalid share attributes provided: \"%s\"" : "Cuireadh tréithe comhroinnte neamhbhailí: \"%s\"",
+ "You are not allowed to send mail notifications" : "Níl cead agat fógraí ríomhphoist a sheoladh",
+ "No mail notification configured for this share type" : "Níl aon fhógra ríomhphoist cumraithe don chineál comhroinnte seo",
+ "Wrong password" : "Pasfhocal mícheart",
+ "Error while sending mail notification" : "Earráid agus fógra ríomhphoist á sheoladh",
+ "Failed to generate a unique token" : "Theip ar chomhartha uathúil a ghiniúint",
+ "This share does not exist or is no longer available" : "Níl an sciar seo ann nó níl sé ar fáil a thuilleadh",
+ "shared by %s" : "roinnte ag %s",
+ "Download" : "Íoslódáil",
+ "Add to your %s" : "Cuir le do %s",
+ "Direct link" : "Nasc díreach",
+ "Share API is disabled" : "Tá Share API díchumasaithe",
+ "File sharing" : "Comhroinnt",
+ "Share will expire tomorrow" : "Rachaidh sciar in éag amárach",
+ "Your share of {node} will expire tomorrow" : "Rachaidh do sciar de {node} in éag amárach",
+ "You received {share} as a share by {user}" : "Fuair ​​tú {share} mar sciar le {user}",
+ "You received {share} to group {group} as a share by {user}" : "Fuair ​​tú {share} chun {group} a ghrúpáil mar sciar ag {user}",
+ "Accept" : "Glac",
+ "Decline" : "Meath",
+ "Remember to upload the files to %s" : "Cuimhnigh na comhaid a uaslódáil go %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Ba mhaith linn a mheabhrú duit nach bhfuil aon chomhaid uaslódáilte agat san fhillteán comhroinnte fós.",
+ "Open \"%s\"" : "Oscail \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Cuireann an feidhmchlár seo ar chumas daoine comhaid a roinnt laistigh de Nextcloud. Má tá sé cumasaithe, is féidir leis an riarthóir a roghnú cé na grúpaí ar féidir leo comhaid a roinnt. Is féidir leis na daoine infheidhme comhaid agus fillteáin a roinnt ansin le cuntais agus grúpaí eile laistigh de Nextcloud. Ina theannta sin, má chumasaíonn an riarthóir an ghné nasc comhroinnte, is féidir nasc seachtrach a úsáid chun comhaid a roinnt le daoine eile lasmuigh de Nextcloud. Is féidir le riarthóirí pasfhocail, dátaí éaga a fhorfheidhmiú freisin, agus roinnt freastalaí a chumasú trí naisc scaireanna, chomh maith le comhroinnt ó ghléasanna soghluaiste.\nMá mhúchtar an ghné, baintear comhaid agus fillteáin roinnte ar an bhfreastalaí do gach faighteoir scaireanna, agus freisin ar na cliaint sioncronaithe agus aipeanna móibíleacha. Tá tuilleadh eolais ar fáil sa Doiciméadúchán Nextcloud.",
+ "People" : "Daoine",
+ "Filter accounts" : "Scag cuntais",
+ "The request will expire on {date} at midnight and will be password protected." : "Rachaidh an t-iarratas in éag ar {date}ag meán oíche agus beidh sé cosanta ag pasfhocal.",
+ "The request will expire on {date} at midnight." : "Rachaidh an t-iarratas in éag ar{date}ag meán oíche.",
+ "The request will be password protected." : "Beidh an t-iarratas cosanta ag pasfhocal.",
+ "When should the request expire?" : "Cathain ar cheart don iarratas dul in éag?",
+ "Set a submission expiration date" : "Socraigh dáta éaga aighneachta",
+ "Expiration date" : "Dáta éaga",
+ "Select a date" : "Roghnaigh dáta",
+ "Your administrator has enforced a {count} days expiration policy." : "Chuir do riarthóir polasaí éaga {count} lá i bhfeidhm.",
+ "What password should be used for the request?" : "Cén pasfhocal ba chóir a úsáid don iarratas?",
+ "Set a password" : "Socraigh focal faire",
+ "Password" : "Pasfhocal",
+ "Enter a valid password" : "Cuir isteach pasfhocal bailí",
+ "Generate a new password" : "Gin pasfhocal nua",
+ "Your administrator has enforced a password protection." : "Chuir do riarthóir cosaint pasfhocail i bhfeidhm.",
+ "Automatically copying failed, please copy the share link manually" : "Theip ar chóipeáil uathoibríoch, cóipeáil an nasc comhroinnte de láimh le do thoil",
+ "Link copied" : "Cóipeáladh an nasc",
+ "Email already added" : "Ríomhphost curtha leis cheana féin",
+ "Invalid email address" : "sheoladh ríomhphoist neamhbhailí",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Níl an seoladh ríomhphoist seo a leanas bailí: {emails}","Níl na seoltaí ríomhphoist seo a leanas bailí: {emails}","Níl na seoltaí ríomhphoist seo a leanas bailí: {emails}","Níl na seoltaí ríomhphoist seo a leanas bailí: {emails}","Níl na seoltaí ríomhphoist seo a leanas bailí: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} seoladh ríomhphoist curtha leis cheana féin","{count}seoladh ríomhphoist curtha leis cheana","{count}seoladh ríomhphoist curtha leis cheana","{count}seoladh ríomhphoist curtha leis cheana","{count}seoladh ríomhphoist curtha leis cheana"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis"],
+ "You can now share the link below to allow people to upload files to your directory." : "Is féidir leat an nasc thíos a roinnt anois chun ligean do dhaoine comhaid a uaslódáil chuig do eolaire.",
+ "Share link" : "Comhroinn nasc",
+ "Copy" : "Cóipeáil",
+ "Send link via email" : "Seol an nasc trí ríomhphost",
+ "Enter an email address or paste a list" : "Cuir isteach seoladh ríomhphoist nó greamaigh liosta",
+ "Remove email" : "Bain ríomhphost",
+ "Select a destination" : "Roghnaigh ceann scríbe",
+ "Select" : "Roghnaigh",
+ "What are you requesting?" : "Cad atá á iarraidh agat?",
+ "Request subject" : "Ábhar an iarratais",
+ "Birthday party photos, History assignment…" : "Grianghraif cóisir lá breithe, tasc Staire…",
+ "Where should these files go?" : "Cá háit ar cheart do na comhaid seo dul?",
+ "Upload destination" : "Íoslódáil an ceann scríbe",
+ "Revert to default" : "Fill ar an réamhshocrú",
+ "The uploaded files are visible only to you unless you choose to share them." : "Ní féidir leatsa ach na comhaid uaslódáilte a fheiceáil ach amháin má roghnaíonn tú iad a roinnt.",
+ "Add a note" : "Cuir nóta leis",
+ "Note for recipient" : "Nóta don fhaighteoir",
+ "Add a note to help people understand what you are requesting." : "Cuir nóta leis chun cabhrú le daoine a bhfuil á iarraidh agat a thuiscint.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Is féidir leat naisc, dáta nó aon fhaisnéis eile a chur leis a chabhróidh leis an bhfaighteoir a bhfuil á iarraidh agat a thuiscint.",
+ "Close" : "Dún",
+ "_Send email and close_::_Send {count} emails and close_" : ["Seol ríomhphost agus dún","Seol {count} ríomhphost agus dún","Seol {count} ríomhphost agus dún","Seol {count} ríomhphost agus dún","Seol {count} ríomhphost agus dún"],
+ "Please select a folder, you cannot share the root directory." : "Roghnaigh fillteán, le do thoil, ní féidir leat an eolaire fréimhe a roinnt.",
+ "File request created" : "Cruthaíodh iarratas comhaid",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Cruthaíodh iarratas comhaid agus seoladh ríomhphost","Cruthaíodh iarratas comhaid agus seoladh {count} ríomhphost","Cruthaíodh iarratas comhaid agus seoladh {count} ríomhphost","Cruthaíodh iarratas comhaid agus seoladh {count} ríomhphost","Cruthaíodh iarratas comhaid agus seoladh {count} ríomhphost"],
+ "Error creating the share: {errorMessage}" : "Earráid agus an sciar á cruthú: {errorMessage}",
+ "Error creating the share" : "Earráid agus an sciar á cruthú",
+ "Error sending emails: {errorMessage}" : "Earráid agus ríomhphoist á seoladh: {errorMessage}",
+ "Error sending emails" : "Earráid agus ríomhphoist á seoladh",
+ "Create a file request" : "Cruthaigh iarratas comhad",
+ "Collect files from others even if they do not have an account." : "Bailigh comhaid ó dhaoine eile fiú mura bhfuil cuntas acu.",
+ "To ensure you can receive files, verify you have enough storage available." : "Chun a chinntiú gur féidir leat comhaid a fháil, deimhnigh go bhfuil go leor stórála ar fáil agat.",
+ "File request" : "Iarratas comhad",
+ "Previous step" : "An chéim roimhe seo",
+ "Cancel" : "Cealaigh",
+ "Cancel the file request creation" : "Cealaigh cruthú an iarratais comhaid",
+ "Close without sending emails" : "Dún gan ríomhphoist a sheoladh",
+ "Continue" : "Lean ar aghaidh",
+ "Error while toggling options" : "Earráid agus roghanna á scoránú",
+ "Accept shares from other accounts and groups by default" : "Glac le scaireanna ó chuntais agus ó ghrúpaí eile de réir réamhshocraithe",
+ "Choose a default folder for accepted shares" : "Roghnaigh fillteán réamhshocraithe le haghaidh scaireanna glactha",
+ "Invalid path selected" : "Conair neamhbhailí roghnaithe",
+ "Unknown error" : "Earráid anaithnid",
+ "Set default folder for accepted shares" : "Socraigh fillteán réamhshocraithe le haghaidh scaireanna glactha",
+ "Reset" : "Athshocraigh",
+ "Reset folder to system default" : "Athshocraigh an fillteán go réamhshocrú an chórais",
+ "Share expiration: {date}" : "Éaga scaireanna: {date}",
+ "Share Expiration" : "Comhroinn Éaga",
+ "group" : "grúpa",
+ "conversation" : "comhrá",
+ "remote" : "iargúlta",
+ "remote group" : "grúpa iargúlta",
+ "guest" : "aoi",
+ "by {initiator}" : "le {initiator}",
+ "Shared with the group {user} by {owner}" : "Roinnte leis an ngrúpa {user} ag {owner}",
+ "Shared with the conversation {user} by {owner}" : "Roinnte leis an gcomhrá {user} ag {owner}",
+ "Shared with {user} by {owner}" : "Roinnte le {user} ag {owner}",
+ "Open Sharing Details" : "Oscail Sonraí Comhroinnte",
+ "Added by {initiator}" : "Curtha leis ag {initiator}",
+ "Via “{folder}”" : "Trí “{folder}”",
+ "Unshare" : "Díroinnte",
+ "Cannot copy, please copy the link manually" : "Ní féidir cóip a dhéanamh, cóipeáil an nasc de láimh",
+ "Copy internal link" : "Cóipeáil an nasc inmheánach",
+ "Internal link" : "Nasc inmheánach",
+ "{shareWith} by {initiator}" : "{shareWith} le {initiator}",
+ "Shared via link by {initiator}" : "Roinnte trí nasc ag {initiator}",
+ "File request ({label})" : "Iarratas comhaid ({label})",
+ "Mail share ({label})" : "Comhroinnt ríomhphoist ({label})",
+ "Share link ({label})" : "Roinn nasc ({label})",
+ "Mail share" : "Comhroinnt ríomhphoist",
+ "Share link ({index})" : "Roinn nasc ({index})",
+ "Create public link" : "Cruthaigh nasc poiblí",
+ "Actions for \"{title}\"" : "Gníomhartha le haghaidh \"{title}\"",
+ "Error, please enter proper password and/or expiration date" : "Earráid, cuir isteach pasfhocal ceart agus/nó dáta éaga le do thoil",
+ "Link share created" : "Cruthaíodh comhroinnt naisc",
+ "Error while creating the share" : "Earráid agus an sciar á cruthú",
+ "Please enter the following required information before creating the share" : "Cuir isteach an t-eolas riachtanach seo a leanas sula gcruthaítear an sciar le do thoil",
+ "Password protection (enforced)" : "Cosaint pasfhocail (forfheidhmithe)",
+ "Password protection" : "Cosaint pasfhocal",
+ "Enter a password" : "Cuir isteach pasfhocal",
+ "Enable link expiration (enforced)" : "Cumasaigh dul in éag an naisc (curtha i bhfeidhm)",
+ "Enable link expiration" : "Cumasaigh dul in éag nasc",
+ "Enter expiration date (enforced)" : "Cuir isteach an dáta éaga (curtha i bhfeidhm)",
+ "Enter expiration date" : "Cuir isteach an dáta éaga",
+ "Create share" : "Cruthaigh sciar",
+ "Customize link" : "Saincheap nasc",
+ "Generate QR code" : "Gin cód QR",
+ "Add another link" : "Cuir nasc eile leis",
+ "Create a new share link" : "Cruthaigh nasc comhroinnte nua",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Roghanna scaireanna tapa, is é \"{selectedOption}\" an rogha reatha",
+ "View only" : "Amharc amháin",
+ "Can edit" : "Is féidir eagarthóireacht a dhéanamh",
+ "Custom permissions" : "Ceadanna saincheaptha",
+ "Resharing is not allowed" : "Ní cheadaítear athroinnt",
+ "Name or email …" : "Ainm nó ríomhphost…",
+ "Name, email, or Federated Cloud ID …" : "Ainm, ríomhphost, nó ID Néal Cónaidhme…",
+ "Searching …" : "Ag cuardach…",
+ "No elements found." : "Níor aimsíodh aon eilimintí.",
+ "Search everywhere" : "Cuardaigh i ngach áit",
+ "Guest" : "Aoi",
+ "Group" : "Grúpa",
+ "Email" : "Ríomhphost",
+ "Team" : "Foireann",
+ "Talk conversation" : "Labhair comhrá",
+ "Deck board" : "Bord deic",
+ "ScienceMesh" : "EolaíochtMesh",
+ "on {server}" : "ar {server}",
+ "Enter external recipients" : "Cuir isteach faighteoirí seachtracha",
+ "Search for internal recipients" : "Cuardaigh faighteoirí inmheánacha",
+ "Note from" : "Nóta ó",
+ "Note:" : "Nóta:",
+ "File drop" : "Titim comhad",
+ "Upload files to {foldername}." : "Uaslódáil comhaid go {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Trí chomhaid a uaslódáil, aontaíonn tú leis na téarmaí seirbhíse.",
+ "Successfully uploaded files" : "Uaslódáileadh na comhaid go rathúil",
+ "View terms of service" : "Féach ar théarmaí seirbhíse",
+ "Terms of service" : "Tearmaí Seirbhís",
+ "Share with {user}" : "Comhroinn le {user}",
+ "Share with email {email}" : "Roinn le ríomhphost {email}",
+ "Share with group" : "Roinn leis an ngrúpa",
+ "Share in conversation" : "Roinn sa chomhrá",
+ "Share with {user} on remote server {server}" : "Roinn le {user} ar an gcianfhreastalaí {server}",
+ "Share with remote group" : "Roinn le grúpa cianda",
+ "Share with guest" : "Roinn leis an aoi",
+ "Update share" : "Nuashonraigh sciar",
+ "Save share" : "Sábháil sciar",
+ "Read" : "Léigh",
+ "Create" : "Cruthaigh",
+ "Edit" : "Cuir in eagar",
+ "Share" : "Comhroinn",
+ "Delete" : "Scrios",
+ "Password field cannot be empty" : "Ní féidir le réimse an phasfhocail a bheith folamh",
+ "Replace current password" : "Ionadaigh an pasfhocal reatha",
+ "Failed to generate a new token" : "Theip ar chomhartha nua a ghiniúint",
+ "Allow upload and editing" : "Ceadaigh uaslódáil agus eagarthóireacht",
+ "Allow editing" : "Allow editing",
+ "Upload only" : "Uaslódáil ach amháin",
+ "Advanced settings" : "Ardsocruithe",
+ "Share label" : "Comhroinn lipéad",
+ "Share link token" : "Comhroinn comhartha nasc",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Socraigh an comhartha nasc scaireanna poiblí le rud éigin atá éasca le cuimhneamh nó giniúint comhartha nua. Ní mholtar comhartha inmheasta a úsáid le haghaidh scaireanna ina bhfuil faisnéis íogair.",
+ "Generating…" : "Ag giniúint…",
+ "Generate new token" : "Gin comhartha nua",
+ "Set password" : "Socraigh pasfhocal",
+ "Password expires {passwordExpirationTime}" : "Téann pasfhocal in éag {passwordExpirationTime}",
+ "Password expired" : "Pasfhocal imithe in éag",
+ "Video verification" : "Fíorú físeán",
+ "Expiration date (enforced)" : "Dáta éaga (curtha i bhfeidhm)",
+ "Set expiration date" : "Socraigh dáta éaga",
+ "Hide download" : "Folaigh íoslódáil",
+ "Allow download and sync" : "Ceadaigh íoslódáil agus sioncrónú",
+ "Note to recipient" : "Nóta don fhaighteoir",
+ "Enter a note for the share recipient" : "Cuir isteach nóta le haghaidh faighteoir na scaireanna",
+ "Show files in grid view" : "Taispeáin comhaid san amharc greille",
+ "Delete share" : "Scrios an sciar",
+ "Others with access" : "Daoine eile a bhfuil rochtain acu",
+ "No other accounts with access found" : "Níor aimsíodh aon chuntais eile a bhfuil rochtain acu",
+ "Toggle list of others with access to this directory" : "Scoránaigh liosta de na cinn eile a bhfuil rochtain acu ar an eolaire seo",
+ "Toggle list of others with access to this file" : "Scoránaigh liosta de na cinn eile a bhfuil rochtain acu ar an gcomhad seo",
+ "Unable to fetch inherited shares" : "Ní féidir scaireanna le hoidhreacht a fháil",
+ "Link shares" : "Scaireanna naisc",
+ "Shares" : "Scaireanna",
+ "Unable to load the shares list" : "Ní féidir an liosta scaireanna a lódáil",
+ "Expires {relativetime}" : "In éag {relativetime}",
+ "this share just expired." : "tá an sciar seo díreach imithe in éag.",
+ "Shared with you by {owner}" : "Roinnte ag {owner} leat",
+ "Internal shares" : "Scaireanna inmheánacha",
+ "Internal shares explanation" : "Míniú ar scaireanna inmheánacha",
+ "External shares" : "Scaireanna seachtracha",
+ "External shares explanation" : "Míniú ar scaireanna seachtracha",
+ "Additional shares" : "Scaireanna breise",
+ "Additional shares explanation" : "Míniú ar scaireanna breise",
+ "Link to a file" : "Nasc chuig comhad",
+ "_Accept share_::_Accept shares_" : ["Glac le sciar","Glac le scaireanna","Glac le scaireanna","Glac le scaireanna","Glac le scaireanna"],
+ "Open in Files" : "Oscail i Comhaid",
+ "_Reject share_::_Reject shares_" : ["Diúltaigh sciar","Diúltaigh scaireanna","Diúltaigh scaireanna","Diúltaigh scaireanna","Diúltaigh scaireanna"],
+ "_Restore share_::_Restore shares_" : ["Athchóirigh sciar","Athchóirigh scaireanna","Athchóirigh scaireanna","Athchóirigh scaireanna","Athchóirigh scaireanna"],
+ "Shared" : "Roinnte",
+ "Shared by {ownerDisplayName}" : "Roinnte ag {ownerDisplayName}",
+ "Shared multiple times with different people" : "Roinnte go minic le daoine éagsúla",
+ "Shared with others" : "Roinnte le daoine eile",
+ "Create file request" : "Cruthaigh iarratas comhad",
+ "Upload files to {foldername}" : "Uaslódáil comhaid go {foldername}",
+ "Public file share" : "Comhroinnt phoiblí",
+ "Publicly shared file." : "Comhad roinnte go poiblí.",
+ "No file" : "Gan chomhad",
+ "The file shared with you will show up here" : "Taispeánfar an comhad a roinntear leat anseo",
+ "Public share" : "Scair phoiblí",
+ "Publicly shared files." : "Comhaid roinnte go poiblí.",
+ "No files" : "Uimh comhaid",
+ "Files and folders shared with you will show up here" : "Taispeánfar comhaid agus fillteáin a roinntear leat anseo",
+ "Overview of shared files." : "Forbhreathnú ar chomhaid roinnte.",
+ "No shares" : "Uimh scaireanna",
+ "Files and folders you shared or have been shared with you will show up here" : "Taispeánfar comhaid agus fillteáin a roinn tú nó a roinn tú leat anseo",
+ "Shared with you" : "Roinnte leat",
+ "List of files that are shared with you." : "Liosta de na comhaid a roinntear leat.",
+ "Nothing shared with you yet" : "Níl aon rud roinnte leat go fóill",
+ "Files and folders others shared with you will show up here" : "Taispeánfar comhaid agus fillteáin eile a roinntear leat anseo",
+ "List of files that you shared with others." : "Liosta comhad a roinn tú le daoine eile.",
+ "Nothing shared yet" : "Ní dhéanfaidh aon ní roinnte go fóill",
+ "Files and folders you shared will show up here" : "Taispeánfar na comhaid agus na fillteáin a roinn tú anseo",
+ "Shared by link" : "Roinnte ag nasc",
+ "List of files that are shared by link." : "Liosta de na comhaid a roinntear trí nasc.",
+ "No shared links" : "Gan naisc roinnte",
+ "Files and folders you shared by link will show up here" : "Taispeánfar comhaid agus fillteáin a roinn tú trí naisc anseo",
+ "File requests" : "Iarratais comhaid",
+ "List of file requests." : "Liosta iarratas comhaid.",
+ "No file requests" : "Níl aon iarratas comhaid",
+ "File requests you have created will show up here" : "Taispeánfar iarratais ar chomhaid a chruthaigh tú anseo",
+ "Deleted shares" : "Scaireanna scriosta",
+ "List of shares you left." : "Liosta scaireanna a d'fhág tú.",
+ "No deleted shares" : "Níl aon scaireanna scriosta",
+ "Shares you have left will show up here" : "Taispeánfar scaireanna atá fágtha agat anseo",
+ "Pending shares" : "Scaireanna ar feitheamh",
+ "List of unapproved shares." : "Liosta scaireanna neamhcheadaithe.",
+ "No pending shares" : "Gan scaireanna ar feitheamh",
+ "Shares you have received but not approved will show up here" : "Taispeánfar scaireanna atá faighte agat ach nár faomhadh anseo",
+ "Error deleting the share: {errorMessage}" : "Earráid ag scriosadh an chomhroinnte: {errorMessage}",
+ "Error deleting the share" : "Earráid ag scriosadh an chomhroinnte",
+ "Error updating the share: {errorMessage}" : "Earráid agus an sciar á nuashonrú: {errorMessage}",
+ "Error updating the share" : "Earráid agus an sciar á nuashonrú",
+ "File \"{path}\" has been unshared" : "Comhad \"{path}\" díroinnte",
+ "Folder \"{path}\" has been unshared" : "Díroinneadh an fillteán \"{path}\".",
+ "Could not update share" : "Níorbh fhéidir an sciar a nuashonrú",
+ "Share saved" : "Sábháladh an sciar",
+ "Share expiry date saved" : "Comhroinn dáta éaga sábháilte",
+ "Share hide-download state saved" : "Stádas i bhfolach-íoslódáil roinnte a shábháil",
+ "Share label saved" : "Comhroinn lipéad sábháilte",
+ "Share note for recipient saved" : "Comhroinn nóta don fhaighteoir sábháilte",
+ "Share password saved" : "Comhroinn pasfhocal sábháilte",
+ "Share permissions saved" : "Sábháladh ceadanna comhroinnte",
+ "To upload files to {folder}, you need to provide your name first." : "Chun comhaid a uaslódáil chuig {folder}, ní mór duit d'ainm a sholáthar ar dtús.",
+ "Upload files to {folder}" : "Uaslódáil comhaid go {folder}",
+ "Please confirm your name to upload files to {folder}" : "Deimhnigh d'ainm le do thoil chun comhaid a uaslódáil chuig {folder}",
+ "{ownerDisplayName} shared a folder with you." : "Roinn {ownerDisplayName} fillteán leat.",
+ "Names must not be empty." : "Ní féidir ainmneacha a bheith folamh.",
+ "Names must not start with a dot." : "Ní mór ainmneacha a bheith ag tosú le ponc.",
+ "\"{char}\" is not allowed inside a name." : "Ní cheadaítear \"{char}\" laistigh d'ainm.",
+ "\"{segment}\" is a reserved name and not allowed." : "Is ainm curtha in áirithe é \"{segment}\" agus ní cheadaítear é.",
+ "\"{extension}\" is not an allowed name." : "Ní ainm ceadaithe é \"{extension}\".",
+ "Names must not end with \"{extension}\"." : "Ní féidir ainmneacha a chríochnú le \"{extension}\".",
+ "Invalid name." : "Ainm neamhbhailí.",
+ "Shared by" : "Roinnte ag",
+ "Shared with" : "Roinnte le",
+ "Password created successfully" : "Pasfhocal cruthaithe go rathúil",
+ "Error generating password from password policy" : "Earráid agus pasfhocal á ghiniúint ó pholasaí pasfhocail",
+ "Shared with you and the group {group} by {owner}" : "Roinnte leat agus leis an ngrúpa {group} ag {owner}",
+ "Shared with you and {circle} by {owner}" : "Roinnte leat agus {circle} ag {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Roinnte leat agus an comhrá {conversation} ag {owner}",
+ "Shared with you in a conversation by {owner}" : "Roinnte leat i gcomhrá le {owner}",
+ "Share not found" : "Ní bhfuarthas an sciar",
+ "Back to %s" : "Ar ais go dtí %s",
+ "Add to your Nextcloud" : "Cuir le do Nextcloud",
+ "Waiting…" : "Ag fanacht…",
+ "error" : "earráid",
+ "finished" : "chríochnaigh",
+ "This will stop your current uploads." : "Cuirfidh sé seo stop le d'uaslódálacha reatha.",
+ "Move or copy" : "Bog nó cóipeáil",
+ "You can upload into this folder" : "Is féidir leat a uaslódáil isteach san fhillteán seo",
+ "Show list view" : "Taispeáin amharc liosta",
+ "Show grid view" : "Taispeáin radharc greille",
+ "No compatible server found at {remote}" : "Níor aimsíodh aon fhreastalaí comhoiriúnach ag {remote}",
+ "Invalid server URL" : "URL freastalaí neamhbhailí",
+ "Failed to add the public link to your Nextcloud" : "Theip ar an nasc poiblí a chur le do Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "Níl cead agat scaireanna naisc nach leatsa a chur in eagar",
+ "Download all files" : "Gach comhaid a íoslódáil",
+ "Link copied to clipboard" : "Cóipeáladh an nasc chuig an ngearrthaisce",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 seoladh ríomhphoist curtha leis cheana féin","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana"],
+ "_1 email address added_::_{count} email addresses added_" : ["Cuireadh 1 seoladh ríomhphoist leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis"],
+ "Copy to clipboard" : "Cóipeáil chuig an ngearrthaisce",
+ "Copy internal link to clipboard" : "Cóipeáil nasc inmheánach chuig an ngearrthaisce",
+ "Only works for people with access to this folder" : "Ní oibríonn ach do dhaoine a bhfuil rochtain acu ar an bhfillteán seo",
+ "Only works for people with access to this file" : "Ní oibríonn ach do dhaoine a bhfuil rochtain acu ar an gcomhad seo",
+ "Copy public link of \"{title}\" to clipboard" : "Cóipeáil nasc poiblí de \"{title}\" chuig an ngearrthaisce",
+ "Search globally" : "Cuardaigh go domhanda",
+ "Search for share recipients" : "Cuardaigh faighteoirí scaireanna",
+ "No recommendations. Start typing." : "Gan moltaí. Tosaigh ag clóscríobh.",
+ "To upload files, you need to provide your name first." : "Chun comhaid a uaslódáil, ní mór duit d'ainm a sholáthar ar dtús.",
+ "Enter your name" : "Cuir isteach d'ainm",
+ "Submit name" : "Cuir ainm",
+ "Share with {userName}" : "Roinn le {userName}",
+ "Show sharing options" : "Taispeáin roghanna comhroinnte",
+ "Share note" : "Roinn nóta",
+ "Upload files to %s" : "Uaslódáil comhaid go %s",
+ "%s shared a folder with you." : "Roinn %s fillteán leat.",
+ "Note" : "Nóta",
+ "Select or drop files" : "Roghnaigh nó scaoil comhaid",
+ "Uploading files" : "Comhaid a uaslódáil",
+ "Uploaded files:" : "Comhaid uaslódáilte:",
+ "By uploading files, you agree to the %1$sterms of service%2$s." : "Trí chomhaid a uaslódáil, aontaíonn tú le téarmaí seirbhíse %1$s%2$s.",
+ "Name" : "Ainm",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Bain úsáid as an modh seo chun comhaid a roinnt le daoine aonair nó le foirne laistigh de d'eagraíocht. Má tá rochtain ag an bhfaighteoir ar an sciar cheana féin ach nach féidir leis í a aimsiú, is féidir leat an nasc scaire inmheánach a sheoladh chucu le go mbeidh rochtain éasca air.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Bain úsáid as an modh seo chun comhaid a roinnt le daoine aonair nó le heagraíochtaí lasmuigh de d'eagraíocht. Is féidir comhaid agus fillteáin a roinnt trí naisc scaireanna poiblí agus seoltaí ríomhphoist. Is féidir leat a roinnt freisin le cuntais Nextcloud eile arna óstáil ar chásanna éagsúla ag baint úsáide as a n-ID néil cónasctha.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Scaireanna nach cuid de na scaireanna inmheánacha nó seachtracha iad. Is féidir gur scaireanna iad seo ó aipeanna nó ó fhoinsí eile.",
+ "Share with accounts, teams, federated cloud id" : "Comhroinn le cuntais, foirne, aitheantas scamall cónaidhme",
+ "Share with accounts and teams" : "Roinn le cuntais agus foirne",
+ "Federated cloud ID" : "ID scamall cónaidhme",
+ "Email, federated cloud id" : "Ríomhphost, aitheantas scamall cónaidhme",
+ "Filename must not be empty." : "Ní ceadmhach ainm an chomhaid a bheith folamh."
+},"pluralForm" :"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"
+} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/gl.js b/apps/files_sharing/l10n/gl.js
index c328081afed..82bb52203f6 100644
--- a/apps/files_sharing/l10n/gl.js
+++ b/apps/files_sharing/l10n/gl.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Agardando…",
- "error" : "erro",
- "finished" : "rematado",
- "This will stop your current uploads." : "Isto deterá os envíos actuais.",
- "Move or copy" : "Mover ou copiar",
- "Download" : "Descargar",
- "Delete" : "Eliminar",
- "You can upload into this folder" : "Pode envialo a este cartafol",
- "Terms of service" : "Condicións do servizo",
- "Show list view" : "Amosar a vista de lista",
- "Show grid view" : "Amosar a vista de grade",
- "No compatible server found at {remote}" : "Non se atopa un servidor compatíbel en {remote}",
- "Invalid server URL" : "URL de servidor incorrecto",
- "Failed to add the public link to your Nextcloud" : "Non foi posíbel engadir a ligazón pública ao seu Nextcloud",
"File shares" : "Compartir ficheiros",
"Downloaded via public link" : "Descargado mediante unha ligazón pública",
"Downloaded by {email}" : "Descargado por {email}",
@@ -69,43 +55,56 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "Caducou a compartición do ficheiro {file} co usuario {user} ",
"Share for file {file} expired" : "Caducou a compartición do ficheiro {file}",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Foi <strong>descargado</strong> un ficheiro ou cartafol compartido por correo ou ligazón pública",
- "A file or folder was shared from <strong>another server</strong>" : "Compartiuse un ficheiro ou cartafol dende <strong>outro servidor</strong>",
- "Files" : "Ficheiros",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Os ficheiros foron <strong>enviados</strong> a un cartafol compartido por correo mediante ligazón pública",
+ "A file or folder was shared from <strong>another server</strong>" : "Compartiuse un ficheiro ou cartafol desde <strong>outro servidor</strong>",
+ "Sharing" : "Compartindo",
"A file or folder has been <strong>shared</strong>" : "<strong>Compartiuse</strong> un ficheiro ou cartafol",
- "Shared link" : "Ligazón compartida",
+ "Shared link" : "Ligazón para compartir",
"Wrong share ID, share does not exist" : "O ID da compartición é erróneo, a compartición non existe",
"Could not delete share" : "Non foi posíbel eliminar a compartición",
"Please specify a file or folder path" : "Especifique a ruta dun ficheiro ou cartafol",
"Wrong path, file/folder does not exist" : "Ruta errónea, o ficheiro/cartafol non existe",
"Could not create share" : "Non foi posíbel crear a compartición",
- "Invalid permissions" : "Permisos incorrectos",
- "Invalid date, date format must be YYYY-MM-DD" : "Data incorrecta, o formato da date debe ser AAAA-MM-DD",
- "Please specify a valid account to share with" : "Especifica unha conta válida para compartir",
+ "Please specify a valid account to share with" : "Especifique unha conta válida coa que compartir",
"Group sharing is disabled by the administrator" : "A opción de compartir en grupo foi desactivada pola administración desta instancia.",
"Please specify a valid group" : "Especifique un grupo correcto",
"Public link sharing is disabled by the administrator" : "Compartir por ligazón pública foi desactivado pola administración desta instancia.",
- "Public upload disabled by the administrator" : "O envío público foi desactivado pola administración desta instancia.",
- "Public upload is only possible for publicly shared folders" : "O envío público só é posíbel para aos cartafoles públicos compartidos",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Compartir %s enviando o contrasinal por Nextcloud Talk fallou porque Nextcloud Talk non está activado",
+ "Please specify a valid email address" : "Especifique un enderezo de correo-e válido",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Compartir %s enviando o contrasinal mediante Parladoiro de Nextcloud fallou porque Parladoiro de Nextcloud non está activado",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Fallou a compartición de %1$s, xa que a infraestrutura non permite accións do tipo %2$s",
"Please specify a valid federated account ID" : "Especifique un ID de conta federado válido",
"Please specify a valid federated group ID" : "Especifique un ID de grupo federado válido",
- "You cannot share to a Circle if the app is not enabled" : "Vde. non pode compartir para un círculo se a aplicación non esta activada",
- "Please specify a valid circle" : "Especifique un círculo correcto",
+ "You cannot share to a Team if the app is not enabled" : "Vde. non pode compartir cun equipo se a aplicación non está activada",
+ "Please specify a valid team" : "Especifique un equipo correcto",
"Sharing %s failed because the back end does not support room shares" : "Fallou a compartición de %s, xa que a infraestrutura non admite salas compartidas",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Produciuse un erro ao compartir %s porque a infraestrutura non admite comparticións de ScienceMesh",
"Unknown share type" : "Tipo descoñecido de compartición",
"Not a directory" : "Non é un directorio",
"Could not lock node" : "Non foi posíbel bloquear o nodo",
- "Could not lock path" : "Non foi posíbel bloquear a ruta",
- "Wrong or no update parameter given" : "Parámetro erróneo ou non actualizado",
+ "Public upload is only possible for publicly shared folders" : "O envío público só é posíbel para aos cartafoles públicos compartidos",
"Share must at least have READ or CREATE permissions" : "Compartir debe ter polo menos permisos de LER ou CREAR",
"Share must have READ permission if UPDATE or DELETE permission is set" : "A compartición debe ter permiso de LECTURA se está estabelecido o permiso ACTUALIZAR ou ELIMINAR",
- "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Produciuse un erro ao «enviar o contrasinal mediante Nextcloud Talk» para compartir un ficheiro ou cartafol porque Nextcloud Talk non está activado.",
+ "Public upload disabled by the administrator" : "O envío público foi desactivado pola administración desta instancia.",
+ "Could not lock path" : "Non foi posíbel bloquear a ruta",
+ "no sharing rights on this item" : "non hai dereitos de uso compartido deste elemento",
+ "You are not allowed to edit incoming shares" : "Vde. non ten permiso para editar os recursos compartidos entrantes",
+ "Wrong or no update parameter given" : "Parámetro erróneo ou non actualizado",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Produciuse un erro ao «enviar o contrasinal mediante Parladoiro de Nextcloud» para compartir un ficheiro ou cartafol porque Parladoiro de Nextcloud non está activado.",
+ "Custom share link tokens have been disabled by the administrator" : "A administración do seu sitio desactivou os testemuños personalizados de ligazóns de uso compartido",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Os testemuños deben conter polo menos 1 carácter e só poden conter letras, números ou un guión",
+ "Invalid date. Format must be YYYY-MM-DD" : "Data incorrecta. O formato debe ser AAAA-MM-DD",
+ "No sharing rights on this item" : "Non hai dereitos de uso compartido deste elemento",
+ "Invalid share attributes provided: \"%s\"" : "Forneceronse atributos non válidos de compartición . «%s»",
+ "You are not allowed to send mail notifications" : "Vde. non ten permiso para enviar notificacións por correo",
+ "No mail notification configured for this share type" : "Non foi configurada ningunha notificación de correo para este tipo de recurso compartido",
+ "Wrong password" : "Contrasinal erróneo",
+ "Error while sending mail notification" : "Produciuse un erro ao enviar a notificación por correo",
+ "Failed to generate a unique token" : "Produciuse un fallo ao xerar un testemuño único",
+ "This share does not exist or is no longer available" : "Este recurso compartido non existe ou xa non está dispoñíbel",
"shared by %s" : "compartido por %s",
- "Download all files" : "Descargar todos os ficheiros",
- "Direct link" : "Ligazón directa",
+ "Download" : "Descargar",
"Add to your %s" : "Engadir ao seu %s",
+ "Direct link" : "Ligazón directa",
"Share API is disabled" : "A API de compartición foi desactivada",
"File sharing" : "Compartir ficheiros",
"Share will expire tomorrow" : "A compartición caduca mañá",
@@ -114,155 +113,237 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Vde. recibiu {share} no grupo {group} como un elemento compartido de {user}",
"Accept" : "Aceptar",
"Decline" : "Declinar",
- "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permite que as persoas compartan ficheiros en Nextcloud. Se está activado, o administrador pode escoller cales son os grupos que poden compartir ficheiros. As persoas aplicables poden compartir ficheiros e cartafoles con outras contas e grupos dentro de Nextcloud. Ademais, se o administrador activa a función de compartir ligazón, pódese usar unha ligazón externa para compartir ficheiros con outras persoas fóra de Nextcloud. Os administradores tamén poden facer cumprir contrasinais, datas de caducidade e habilitar o uso compartido de servidor a servidor mediante ligazóns de uso compartido, así como a compartición desde dispositivos móbiles.\nAo desactivar a función, eliminaranse os ficheiros e cartafoles compartidos do servidor para todos os destinatarios compartidos, así como dos clientes de sincronización e aplicacións móbiles. Hai máis información dispoñible na documentación de Nextcloud.",
- "Sharing" : "Compartindo",
- "Accept shares from other accounts and groups by default" : "Acepta comparticións doutras contas e grupos por defecto",
+ "Remember to upload the files to %s" : "Lembre enviar os ficheiros a %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Queremos lembrarlle que aínda non enviou ningún ficheiro ao cartafol compartido.",
+ "Open \"%s\"" : "Abrir «%s»",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permítelle á xente compartir ficheiros dentro de Nextcloud. Se o activa, a administración do sitio pode escoller que grupos poden compartir ficheiros. As persoas implicadas poderán compartir ficheiros e cartafoles con outras contas e grupos dentro de Nextcloud. Ademais, se a administración activa a característica de ligazón compartida, pode empregarse unha ligazón externa para compartir ficheiros con outras persoas fora de Nextcloud. A administración pode impor o uso de contrasinais ou datas de caducidade e activar a compartición de servidor a servidor mediante ligazóns compartidas, así como compartir desde dispositivos móbiles.\nDesactivar esta característica retira os ficheiros compartidos e os cartafoles do servidor, para todos os receptores, e tamén dos clientes de sincronización e móbiles. Atopará máis información na documentación de Nextcloud.",
+ "People" : "Persoas",
+ "Filter accounts" : "Filtrar contas",
+ "The request will expire on {date} at midnight and will be password protected." : "A solicitude caducará na media noite do {date} e estará protexida por contrasinal.",
+ "The request will expire on {date} at midnight." : "A solicitude caducará na media noite do {date}.",
+ "The request will be password protected." : "A solicitude estará protexida por contrasinal.",
+ "When should the request expire?" : "Cando debe caducar a solicitude?",
+ "Set a submission expiration date" : "Definir unha data de caducidade de envío",
+ "Expiration date" : "Data de caducidade",
+ "Select a date" : "Seleccione unha data",
+ "Your administrator has enforced a {count} days expiration policy." : "A administración do sitio impuxo unha directiva de caducidade de {count} días.",
+ "What password should be used for the request?" : "Que contrasinal debe empregarse para a solicitude?",
+ "Set a password" : "Definir un contrasinal",
+ "Password" : "Contrasinal",
+ "Enter a valid password" : "Introduza un contrasinal válido",
+ "Generate a new password" : "Xerar un novo contrasinal",
+ "Your administrator has enforced a password protection." : "A administración do sitio impuxo unha protección por contrasinal.",
+ "Automatically copying failed, please copy the share link manually" : "Produciuse un erro ao copiar automaticamente, copie a ligazón para compartir manualmente",
+ "Link copied" : "Ligazón copiada",
+ "Email already added" : "O correo xa foi engadido",
+ "Invalid email address" : "Enderezo de correo incorrecto",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["O seguinte enderezo de correo non é válido: {emails}","Os seguintes enderezos de correo non son válidos: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["Xa foi engadido {count} enderezo de correo","Xa foron engadidos {count} enderezos de correo"],
+ "_{count} email address added_::_{count} email addresses added_" : ["Foi engadido {count} enderezo de correo","Foron engadidos {count} enderezos de correo"],
+ "You can now share the link below to allow people to upload files to your directory." : "Agora pode compartir a seguinte ligazón para permitir que as persoas envíen ficheiros ao seu directorio.",
+ "Share link" : "Ligazón para compartir",
+ "Copy" : "Copiar",
+ "Send link via email" : "Enviar a ligazón por correo",
+ "Enter an email address or paste a list" : "Introduza un enderezo de correo ou pegue unha lista",
+ "Remove email" : "Retirar o correo",
+ "Select a destination" : "Seleccione un destino",
+ "Select" : "Seleccionar",
+ "What are you requesting?" : "Que é o que está a solicitar?",
+ "Request subject" : "Asunto da solicitude",
+ "Birthday party photos, History assignment…" : "Fotos da festa de aniversario, asignación de historia…",
+ "Where should these files go?" : "Onde deben ir estes ficheiros?",
+ "Upload destination" : "Destino do envío",
+ "Revert to default" : "Reverter ao predeterminado",
+ "The uploaded files are visible only to you unless you choose to share them." : "Os ficheiros enviados só son visíbeis para Vde. a non ser que decida compartilos.",
+ "Add a note" : "Engadir unha nota",
+ "Note for recipient" : "Nota para o destinatario",
+ "Add a note to help people understand what you are requesting." : "Engada unha nota para que a xente comprenda o que está a solicitar.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Pode engadir ligazóns, datas ou calquera outra información que axude ao destinatario a comprender o que está a solicitar.",
+ "Close" : "Pechar",
+ "_Send email and close_::_Send {count} emails and close_" : ["Enviar o correo e pechar","Enviar {count} correos e pechar"],
+ "Please select a folder, you cannot share the root directory." : "Seleccione un cartafol, Vde. non pode compartir o directorio raíz.",
+ "File request created" : "Creouse a solicitude de ficheiro",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Creouse a solicitude de ficheiro e enviouse o correo","Creouse a solicitude de ficheiros e enviáronse {count} correos"],
+ "Error creating the share: {errorMessage}" : "Produciuse un erro ao crear a compartición: {errorMessage}",
+ "Error creating the share" : "Produciuse un erro ao crear a compartición",
+ "Error sending emails: {errorMessage}" : "Produciuse un erro ao enviar os correos: {errorMessage}",
+ "Error sending emails" : "Produciuse un erro ao enviar os correos",
+ "Create a file request" : "Crear unha solicitude de ficheiro",
+ "Collect files from others even if they do not have an account." : "Recoller os ficheiros doutros aínda que non teñan unha conta.",
+ "To ensure you can receive files, verify you have enough storage available." : "Para asegurarse de que pode recibir ficheiros, verifique que ten dispoñíbel espazo de almacenamento abondo.",
+ "File request" : "Solicitude de ficheiro",
+ "Previous step" : "Paso anterior",
+ "Cancel" : "Cancelar",
+ "Cancel the file request creation" : "Cancelar a creación da solicitude de ficheiro",
+ "Close without sending emails" : "Pechar sen enviar o correo",
+ "Continue" : "Continuar",
"Error while toggling options" : "Produciuse un erro ao alternar as opcións",
- "Set default folder for accepted shares" : "Estabelecer o cartafol predeterminado para as s aceptadas",
- "Reset" : "Restabelecer",
- "Reset folder to system default" : "Restabelecer o cartafol ao predeterminado do sistema",
+ "Accept shares from other accounts and groups by default" : "Aceptar comparticións doutras contas e grupos de xeito predeterminado",
"Choose a default folder for accepted shares" : "Escolla un cartafol predeterminado para as comparticións aceptadas",
"Invalid path selected" : "Seleccionou unha ruta incorrecta.",
"Unknown error" : "Produciuse un erro descoñecido",
- "Open Sharing Details" : "Abrir os detalles da compartición",
+ "Set default folder for accepted shares" : "Definir o cartafol predeterminado para as s aceptadas",
+ "Reset" : "Restabelecer",
+ "Reset folder to system default" : "Restabelecer o cartafol ao predeterminado do sistema",
"group" : "grupo",
"conversation" : "conversa",
"remote" : "remoto",
"remote group" : "grupo remoto",
"guest" : "convidado",
+ "by {initiator}" : "por {initiator}",
"Shared with the group {user} by {owner}" : "Compartido co grupo {user} por {owner}",
"Shared with the conversation {user} by {owner}" : "Compartido coa conversa {user} por {owner}",
"Shared with {user} by {owner}" : "Compartido con {user} por {owner}",
+ "Open Sharing Details" : "Abrir os detalles da compartición",
"Added by {initiator}" : "Engadido por {initiator}",
"Via “{folder}”" : "A través de «{folder}»",
"Unshare" : "Deixar de compartir",
- "Internal link" : "Ligazón interna",
"Cannot copy, please copy the link manually" : "Non foi posíbel copiala. Copie a ligazón manualmente",
- "Copy internal link to clipboard" : "Copiar a ligazón interna ao portapapeis",
- "Only works for people with access to this folder" : "Só funciona para as persoas que teñen acceso a este cartafol",
- "Only works for people with access to this file" : "Só funciona para as persoas que teñen acceso a este ficheiro",
- "Link copied" : "Ligazón copiada",
- "Please enter the following required information before creating the share" : "Introduza a seguinte información necesaria antes de crear a compartición",
- "Password protection (enforced)" : "Protección con contrasinal (obrigado)",
- "Password protection" : "Protección por contrasinal",
- "Enter a password" : "Introduza un contrasinal",
- "Expiration date (enforced)" : "Data de caducidade (obrigada)",
- "Enter a date" : "Introduza unha data",
- "Create share" : "Crear elemento compartido",
- "Cancel" : "Cancelar",
- "Customize link" : "Personalizar a ligazón",
- "Generate QR code" : "Xera un código QR",
- "Add another link" : "Engadir outra ligazón",
- "Create a new share link" : "Crear unha nova ligazón de compartición",
+ "Copy internal link" : "Copiar a ligazón interna",
+ "Internal link" : "Ligazón interna",
"{shareWith} by {initiator}" : "{shareWith} por {initiator}",
"Shared via link by {initiator}" : "Compartido mediante ligazón por {initiator}",
- "Mail share ({label})" : "Compartir correo ({label})",
- "Share link ({label})" : "Compartir a ligazón ({label})",
- "Share link ({index})" : "Compartir a ligazón ({index})",
- "Share link" : "Compartir ligazón",
+ "File request ({label})" : "Solicitude de ficheiro ({label})",
+ "Mail share ({label})" : "Compartir por correo ({label})",
+ "Share link ({label})" : "Ligazón para compartir ({label})",
+ "Mail share" : "Compartir por correo",
+ "Share link ({index})" : "Ligazón para compartir ({index})",
+ "Create public link" : "Crear ligazón pública",
"Actions for \"{title}\"" : "Accións para «{title}»",
- "Copy public link of \"{title}\" to clipboard" : "Copiar a ligazón pública de «{title}» no portapapeis",
"Error, please enter proper password and/or expiration date" : "Erro, introduza un contrasinal ou unha data de caducidade correctos",
"Link share created" : "Creouse a ligazón compartida",
"Error while creating the share" : "Produciuse un erro ao crear a compartición",
- "Quick share options, the current selected is \"{selectedOption}\"" : "Opcións compartir de forma rápida, a selección actual é \"{selectedOption}\"",
+ "Please enter the following required information before creating the share" : "Introduza a seguinte información necesaria antes de crear a compartición",
+ "Password protection (enforced)" : "Protección con contrasinal (obrigatoria)",
+ "Password protection" : "Protección por contrasinal",
+ "Enter a password" : "Introduza un contrasinal",
+ "Enable link expiration (enforced)" : "Activar a caducidade da ligazón (obrigatoria)",
+ "Enable link expiration" : "Activa a caducidade da ligazón",
+ "Enter expiration date (enforced)" : "Introducir a data de caducidade (obrigatoria)",
+ "Enter expiration date" : "Introducir a data de caducidade",
+ "Create share" : "Crear elemento compartido",
+ "Customize link" : "Personalizar a ligazón",
+ "Generate QR code" : "Xerar un código QR",
+ "Add another link" : "Engadir outra ligazón",
+ "Create a new share link" : "Crear unha nova ligazón para compartir",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Opcións de compartir de xeito rápido, a selección actual é \"{selectedOption}\"",
"View only" : "Só ver",
"Can edit" : "Pode editar",
- "File drop" : "Soltar o ficheiro",
"Custom permissions" : "Permisos personalizados",
- "Search for share recipients" : "Buscar destinatarios de comparticións",
- "No recommendations. Start typing." : "Non hai recomendacións. Comece a escribir.",
"Resharing is not allowed" : "Non se permite volver compartir",
"Name or email …" : "Nome ou correo…",
- "Name, email, or Federated Cloud ID …" : "Nome, correo ou ID da nube federada…",
+ "Name, email, or Federated Cloud ID …" : "Nome, correo ou ID de nube federada…",
"Searching …" : "Buscando…",
- "No elements found." : "Non se atoparon elementos.",
- "Search globally" : "Busca global",
+ "No elements found." : "Non se atopou ningún elemento.",
+ "Search everywhere" : "Buscar por todas partes",
"Guest" : "Convidado",
"Group" : "Grupo",
"Email" : "Correo-e",
"Team" : "Equipo",
- "Talk conversation" : "Conversa co Talk",
+ "Talk conversation" : "Conversa no Parladoiro",
"Deck board" : "Taboleiro da Gabeta",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "en {server}",
+ "Enter external recipients" : "Introduza os destinatarios externos",
+ "Search for internal recipients" : "Busca de destinatarios internos",
+ "Note from" : "Nota de",
+ "Note:" : "Nota:",
+ "File drop" : "Soltar o ficheiro",
+ "Upload files to {foldername}." : "Enviar ficheiros a {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Ao enviar ficheiros acepta as condicións de servizo.",
+ "View terms of service" : "Ver as condicións de servizo",
+ "Terms of service" : "Condicións de servizo",
+ "Share with email {email}" : "Compartir co correo {email}",
+ "Share with group" : "Compartir co grupo",
+ "Share in conversation" : "Compartir na conversa",
+ "Share with {user} on remote server {server}" : "Compartir con {user} no servidor remoto {server}",
+ "Share with remote group" : "Compartir co grupo remoto",
+ "Share with guest" : "Compartir co convidado",
+ "Update share" : "Actualizar a compartición",
+ "Save share" : "Gardar a compartición",
+ "Read" : "Ler",
+ "Create" : "Crear",
+ "Edit" : "Editar",
+ "Share" : "Compartir",
+ "Delete" : "Eliminar",
+ "Password field cannot be empty" : "O campo de contrasinal non pode estar baleiro",
+ "Replace current password" : "Substituír o contrasinal actual",
+ "Failed to generate a new token" : "Produciuse un fallo ao xerar un novo testemuño",
"Allow upload and editing" : "Permitir o envío e a edición",
"Allow editing" : "Permitir a edición",
"Upload only" : "Só enviar",
"Advanced settings" : "Axustes avanzados",
"Share label" : "Compartir a etiqueta",
- "Set password" : "Estabelecer o contrasinal",
- "Password" : "Contrasinal",
+ "Share link token" : "Compartir o testemuño da ligazón",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Defina o testemuño de ligazón de compartición pública como algo doado de lembrar ou xere un novo testemuño. Non se recomenda empregar un testemuño doado de adiviñar para as comparticións que conteñan información confidencial.",
+ "Generating…" : "Xerando…",
+ "Generate new token" : "Xerar un novo testemuño",
+ "Set password" : "Definir o contrasinal",
"Password expires {passwordExpirationTime}" : "O contrasinal caduca o {passwordExpirationTime}",
"Password expired" : "O contrasinal caducou",
"Video verification" : "Verificación de vídeo",
- "Set expiration date" : "Estabelecer a data de caducidade",
- "Expiration date" : "Data de caducidade",
+ "Expiration date (enforced)" : "Data de caducidade (obrigatoria)",
+ "Set expiration date" : "Definir a data de caducidade",
"Hide download" : "Agochar a descarga",
- "Allow download" : "Permitir a descarga",
+ "Allow download and sync" : "Permitir a descarga e a sincronización",
"Note to recipient" : "Nota para o destinatario",
"Enter a note for the share recipient" : "Introduza unha nota para o destinatario da compartición",
- "Read" : "Ler",
- "Create" : "Crear",
- "Edit" : "Editar",
- "Share" : "Compartir",
+ "Show files in grid view" : "Amosar os ficheiros en vista de grade",
"Delete share" : "Eliminar o recurso compartido",
- "Share with {userName}" : "Compartir con {userName}",
- "Share with group" : "Compartir co grupo",
- "Share in conversation" : "Compartir na conversación",
- "Share with remote group" : "Compartir co grupo remoto",
- "Share with guest" : "Compartir cun invitado",
- "Update share" : "Actualizar a compartición",
- "Save share" : "Gardar a compartición",
"Others with access" : "Outros con acceso",
"No other accounts with access found" : "Non se atoparon outras contas con acceso",
"Toggle list of others with access to this directory" : "Alternar a lista doutros con acceso a este directorio",
"Toggle list of others with access to this file" : "Alternar a lista doutros con acceso a este ficheiro",
"Unable to fetch inherited shares" : "Non é posíbel recuperar as comparticións herdadas",
+ "Link shares" : "Ligazóns para compartir",
+ "Shares" : "Comparticións",
"Unable to load the shares list" : "Non é posíbel cargar a lista de comparticións",
"Expires {relativetime}" : "Caducidades {relativetime}",
"this share just expired." : "vén de caducar esta compartición",
"Shared with you by {owner}" : "Compartido con Vde. por {owner}",
+ "Internal shares" : "Comparticións internas",
+ "Internal shares explanation" : "Explicación das comparticións internas",
+ "External shares" : "Comparticións externas",
+ "External shares explanation" : "Explicación das comparticións externas",
+ "Additional shares" : "Comparticións adicionais",
+ "Additional shares explanation" : "Explicación das comparticións adicionais",
+ "Link to a file" : "Ligazón a un ficheiro",
"_Accept share_::_Accept shares_" : ["Aceptar a compartición","Aceptar as comparticións"],
"Open in Files" : "Abrir en Ficheiros",
"_Reject share_::_Reject shares_" : ["Rexeitar a compartición","Rexeitar as comparticións"],
"_Restore share_::_Restore shares_" : ["Restaurar a compartición","Restaurar as comparticións"],
"Shared" : "Compartido",
- "Shared multiple times with different people" : "Compartido varias veces con diferentes persoas",
"Shared by {ownerDisplayName}" : "Compartido por {ownerDisplayName}",
- "Show sharing options" : "Amosar as opcións de compartición",
- "Link to a file" : "Ligazón a un ficheiro",
- "Error creating the share: {errorMessage}" : "Produciuse un erro ao crear a compartición: {errorMessage}",
- "Error creating the share" : "Produciuse un erro ao crear a compartición",
- "Error updating the share: {errorMessage}" : "Produciuse un erro ao actualizar a compartición: {errorMessage}",
- "Error updating the share" : "Produciuse un erro ao actualizar a compartición",
- "File \"{path}\" has been unshared" : "Foi retirado o ficheiro compartido «{path}».",
- "Folder \"{path}\" has been unshared" : "Foi retirado o cartafol compartido «{path}».",
- "Share {propertyName} saved" : "A compartición {propertyName} foi gardada",
- "Shared by" : "Compartido por",
- "Shared with" : "Compartido con",
- "Password created successfully" : "O contrasinal foi creado correctamente",
- "Error generating password from password policy" : "Produciuse un erro ao xerar o contrasinal a partir da directiva de contrasinais",
- "Shared with you and the group {group} by {owner}" : "Compartido con Vde. e co grupo {group} por {owner}",
- "Shared with you and {circle} by {owner}" : "Compartido con Vde. e {circle} por {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Compartido con Vde. e a conversa {conversation} por {owner}",
- "Shared with you in a conversation by {owner}" : "Compartido con Vde. nunha conversa por {owner}",
- "Shares" : "Comparticións",
+ "Shared multiple times with different people" : "Compartido varias veces con diferentes persoas",
+ "Shared with others" : "Compartido con outros",
+ "Create file request" : "Crear unha solicitude de ficheiro",
+ "Upload files to {foldername}" : "Enviar ficheiros a {foldername}",
+ "Public file share" : "Compartir ficheiro de xeito público",
+ "Publicly shared file." : "Ficheiro compartido publicamente.",
+ "No file" : "Non hai ningún ficheiro",
+ "The file shared with you will show up here" : "O ficheiro compartido con Vde. aparecerá aquí",
+ "Public share" : "Compartición pública",
+ "Publicly shared files." : "Ficheiros compartidos publicamente.",
+ "No files" : "Non hai ningún ficheiro",
+ "Files and folders shared with you will show up here" : "Os ficheiros e cartafoles compartidos con Vde. aparecerán aquí",
"Overview of shared files." : "Vista xeral dos ficheiros compartidos.",
"No shares" : "Ningunha compartición",
"Files and folders you shared or have been shared with you will show up here" : "Os ficheiros e cartafoles que Vde. compartiu ou que foron compartidos con Vde. amosaranse aquí",
"Shared with you" : "Compartido con Vde.",
"List of files that are shared with you." : "Lista de ficheiros que se comparten con Vde.",
- "Nothing shared with you yet" : "Aínda non hai nada compartido con Vde.",
+ "Nothing shared with you yet" : "Aínda non hai ren compartido con Vde.",
"Files and folders others shared with you will show up here" : "Os ficheiros e cartafoles que outros compartiron con Vde. amosaranse aquí",
- "Shared with others" : "Compartido con outros",
"List of files that you shared with others." : "Lista de ficheiros que compartiu Vde. con outros.",
- "Nothing shared yet" : "Aínda non hai nada compartido",
+ "Nothing shared yet" : "Aínda non hai ren compartido",
"Files and folders you shared will show up here" : "Os ficheiros e cartafoles que compartiu amosaranse aquí",
"Shared by link" : "Compartido por ligazón",
"List of files that are shared by link." : "Lista de ficheiros que se comparten mediante ligazón.",
"No shared links" : "Non hai ligazóns para compartir",
"Files and folders you shared by link will show up here" : "Os ficheiros e cartafoles que compariu por ligazón amosaranse aquí",
+ "File requests" : "Solicitudes de ficheiros",
+ "List of file requests." : "Lista de solicitudes de ficheiros.",
+ "No file requests" : "Non hai solicitudes de ficheiros",
+ "File requests you have created will show up here" : "As solicitudes de ficheiros que creou amosaranse aquí",
"Deleted shares" : "Comparticións eliminadas",
"List of shares you left." : "Lista de comparticións que deixou",
"No deleted shares" : "Non hai comparticións eliminadas",
@@ -271,49 +352,75 @@ OC.L10N.register(
"List of unapproved shares." : "Lista de comparticións non aprobadas.",
"No pending shares" : "Non hai comparticións pendentes",
"Shares you have received but not approved will show up here" : "As comparticións que recibiu mais non aprobou amosaranse aquí",
+ "Error deleting the share" : "Produciuse un erro ao eliminar a compartición",
+ "Error updating the share: {errorMessage}" : "Produciuse un erro ao actualizar a compartición: {errorMessage}",
+ "Error updating the share" : "Produciuse un erro ao actualizar a compartición",
+ "File \"{path}\" has been unshared" : "Foi retirado o ficheiro compartido «{path}».",
+ "Folder \"{path}\" has been unshared" : "Foi retirado o cartafol compartido «{path}».",
+ "Could not update share" : "Non foi posíbel actualizar a compartición",
+ "Share saved" : "Gardouse a compartición",
+ "Share expiry date saved" : "Gardouse a data de caducidade da compartición",
+ "Share hide-download state saved" : "Gardouse o estado de agochado e descarga da compartición",
+ "Share label saved" : "Gardouse a etiqueta de compartición",
+ "Share note for recipient saved" : "Gardouse a nota de compartición para o destinatario",
+ "Share password saved" : "Gardouse o contrasinal para compartir",
+ "Share permissions saved" : "Gardáronse os permisos para compartir",
+ "Upload files to {folder}" : "Enviar ficheiros a {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} compartiu un cartafol con Vde.",
+ "Shared by" : "Compartido por",
+ "Shared with" : "Compartido con",
+ "Password created successfully" : "O contrasinal foi creado correctamente",
+ "Error generating password from password policy" : "Produciuse un erro ao xerar o contrasinal a partir da directiva de contrasinais",
+ "Shared with you and the group {group} by {owner}" : "Compartido con Vde. e co grupo {group} por {owner}",
+ "Shared with you and {circle} by {owner}" : "Compartido con Vde. e {circle} por {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Compartido con Vde. e a conversa {conversation} por {owner}",
+ "Shared with you in a conversation by {owner}" : "Compartido con Vde. nunha conversa por {owner}",
+ "Share not found" : "Non se atopou a compartición",
+ "Back to %s" : "Volver a %s",
+ "Add to your Nextcloud" : "Engadir ao seu Nextcloud",
+ "Waiting…" : "Agardando…",
+ "error" : "erro",
+ "finished" : "rematado",
+ "This will stop your current uploads." : "Isto deterá os envíos actuais.",
+ "Move or copy" : "Mover ou copiar",
+ "You can upload into this folder" : "Pode envialo a este cartafol",
+ "Show list view" : "Amosar a vista de lista",
+ "Show grid view" : "Amosar a vista de grade",
+ "No compatible server found at {remote}" : "Non se atopa un servidor compatíbel en {remote}",
+ "Invalid server URL" : "URL de servidor incorrecto",
+ "Failed to add the public link to your Nextcloud" : "Non foi posíbel engadir a ligazón pública ao seu Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "Vde. non ten permiso para editar as ligazóns compartidas das que non é o propietario",
+ "Download all files" : "Descargar todos os ficheiros",
+ "Link copied to clipboard" : "A ligazón foi copiada no portapapeis",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Xa foi engadido 1 enderezo de correo","Xa foron engadidos {count} enderezos de correo"],
+ "_1 email address added_::_{count} email addresses added_" : ["Foi engadido 1 enderezo de correo","Foron engadidos {count} enderezos de correo"],
+ "Copy to clipboard" : "Copiar no portapapeis",
+ "Copy internal link to clipboard" : "Copiar a ligazón interna ao portapapeis",
+ "Only works for people with access to this folder" : "Só funciona para as persoas que teñen acceso a este cartafol",
+ "Only works for people with access to this file" : "Só funciona para as persoas que teñen acceso a este ficheiro",
+ "Copy public link of \"{title}\" to clipboard" : "Copiar a ligazón pública de «{title}» no portapapeis",
+ "Search globally" : "Buscar globalmente",
+ "Search for share recipients" : "Buscar destinatarios de comparticións",
+ "No recommendations. Start typing." : "Non hai recomendacións. Comece a escribir.",
+ "To upload files, you need to provide your name first." : "Para enviar ficheiros, primeiro debes fornecer o teu nome.",
+ "Enter your name" : "Introduza o seu nome",
+ "Submit name" : "Enviar o nome",
+ "Share with {userName}" : "Compartir con {userName}",
+ "Show sharing options" : "Amosar as opcións de compartición",
"Share note" : "Compartir nota",
"Upload files to %s" : "Enviar ficheiros a %s",
+ "%s shared a folder with you." : "%s compartiu un cartafol con Vde.",
"Note" : "Nota",
"Select or drop files" : "Seleccione ou arrastre e solte ficheiros",
"Uploading files" : "Enviando ficheiros",
"Uploaded files:" : "Ficheiros enviados:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "Ao enviar ficheiros acepta as %1$s condicións do servizo %2$s.",
- "Add to your Nextcloud" : "Engadir ao seu Nextcloud",
- "Files and folders others share with you will show up here" : "Os ficheiros e cartafoles que outros compartan con Vde. amosaranse aquí",
- "Files and folders you share will show up here" : "Os ficheiros e cartafoles que comparta amosaranse aquí",
- "Files and folders you share by link will show up here" : "Os ficheiros e cartafoles que comparta por ligazón amosaranse aquí",
- "Shares you deleted will show up here" : "As comparticións eliminadas amosaranse aquí",
- "Shares you have received but not confirmed will show up here" : "As comparticións recibidas mais sen confirmación amosaranse aquí",
- "Shares will show up here" : "As comparticións amosaranse aquí",
- "Restore" : "Restaurar",
- "Something happened. Unable to restore the share." : "Algo aconteceu. Non é posíbel restaurar a compartición",
- "Something happened. Unable to accept the share." : "Algo aconteceu. Non é posíbel aceptar a compartición",
- "Something happened. Unable to reject the share." : "Algo aconteceu. Non é posíbel rexeitar a compartición",
- "No expiration date set" : "Non foi estabelecida a data de caducidade",
- "Please specify a valid user" : "Especifique un usuario correcto",
- "Please specify a valid federated user ID" : "Especifique un ID de usuario federado válido",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permítelle aos usuarios compartir ficheiros dentro de Nextcloud. Se o activa, o administrador pode escoller que grupos poden compartir ficheiros. Os usuarios implicados poderán compartir ficheiros e cartafoles con outros usuarios e grupos dentro de Nextcloud. Ademais, se o administrador activa a característica de ligazón compartida, pode empregarse unha ligazón externa para compartir ficheiros con outros usuarios fora doeNextcloud. Os administradores poden impor o uso de contrasinais ou datas de caducidade e activar a compartición de servidor a servidor mediante ligazóns compartidas, así como compartir dende dispositivos móbiles.\nDesactivar esta característica retira os ficheiros compartidos e os cartafoles do servidor, para todos os receptores, e tamén dos clientes de sincronización e móbiles. Atopará máis información na documentación de Nextcloud.",
- "Accept user and group shares by default" : "Aceptar, por omisión, as comparticións de usuarios e grupos",
- "Read only" : "Só lectura",
- "File drop (upload only)" : "Soltar ficheiro (só envíos) ",
- "Upload" : "Enviar",
- "Bundled permissions" : "Permisos agrupados",
- "Only works for users with access to this folder" : "Só funciona para usuarios con acceso a este cartafol",
- "Only works for users with access to this file" : "Só funciona para usuarios con acceso a este ficheiro",
- "Circle" : "Círculo",
- "Update" : "Actualizar",
- "Share with " : "Compartir con",
- "No other users with access found" : "Non se atoparon outros usuarios con acceso",
- "No entries found in this folder" : "Non se atoparon entradas neste cartafol",
+ "By uploading files, you agree to the %1$sterms of service%2$s." : "Ao enviar ficheiros acepta as %1$s condicións de servizo %2$s.",
"Name" : "Nome",
- "Share time" : "Compartido hai",
- "Sorry, this link does not seem to work anymore." : "Desculpe, esta ligazón parece que xa non funciona.",
- "Reasons might be:" : "As razóns poderían ser:",
- "the item was removed" : "o elemento foi retirado",
- "the link expired" : "a ligazón caducou",
- "sharing is disabled" : "foi desactivada a compartición",
- "For more info, please ask the person who sent this link." : "Para obter máis información, pregúntelle á persoa que lle enviou a ligazón.",
- "Share with remote" : "Compartir co remoto",
- "Share with" : "Compartir con"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Empregue este método para compartir ficheiros con persoas ou equipos dentro da súa organización. Se o destinatario xa ten acceso á compartición mais non pode localizalo, pode enviarlles a ligazón de compartición interna para un acceso doado.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Empregue este método para compartir ficheiros con persoas ou organizacións alleas á súa organización. Os ficheiros e cartafoles pódense compartir mediante ligazóns públicas e enderezos de correo-e. Tamén pode compartir con outras contas de Nextcloud aloxadas en diferentes instancias usando o seu ID de nube federado.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Comparticións que non formen parte das comparticións internas ou externas. Pode tratarse de comparticións desde aplicacións ou outras orixes.",
+ "Share with accounts and teams" : "Compartir con contas e equipos",
+ "Email, federated cloud id" : "Correo-e, ID da nube federada",
+ "Filename must not be empty." : "O nome de ficheiro non debe estar baleiro"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/gl.json b/apps/files_sharing/l10n/gl.json
index 27aa35eda4f..71274ec95d4 100644
--- a/apps/files_sharing/l10n/gl.json
+++ b/apps/files_sharing/l10n/gl.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Agardando…",
- "error" : "erro",
- "finished" : "rematado",
- "This will stop your current uploads." : "Isto deterá os envíos actuais.",
- "Move or copy" : "Mover ou copiar",
- "Download" : "Descargar",
- "Delete" : "Eliminar",
- "You can upload into this folder" : "Pode envialo a este cartafol",
- "Terms of service" : "Condicións do servizo",
- "Show list view" : "Amosar a vista de lista",
- "Show grid view" : "Amosar a vista de grade",
- "No compatible server found at {remote}" : "Non se atopa un servidor compatíbel en {remote}",
- "Invalid server URL" : "URL de servidor incorrecto",
- "Failed to add the public link to your Nextcloud" : "Non foi posíbel engadir a ligazón pública ao seu Nextcloud",
"File shares" : "Compartir ficheiros",
"Downloaded via public link" : "Descargado mediante unha ligazón pública",
"Downloaded by {email}" : "Descargado por {email}",
@@ -67,43 +53,56 @@
"Share for file {file} with {user} expired" : "Caducou a compartición do ficheiro {file} co usuario {user} ",
"Share for file {file} expired" : "Caducou a compartición do ficheiro {file}",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Foi <strong>descargado</strong> un ficheiro ou cartafol compartido por correo ou ligazón pública",
- "A file or folder was shared from <strong>another server</strong>" : "Compartiuse un ficheiro ou cartafol dende <strong>outro servidor</strong>",
- "Files" : "Ficheiros",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Os ficheiros foron <strong>enviados</strong> a un cartafol compartido por correo mediante ligazón pública",
+ "A file or folder was shared from <strong>another server</strong>" : "Compartiuse un ficheiro ou cartafol desde <strong>outro servidor</strong>",
+ "Sharing" : "Compartindo",
"A file or folder has been <strong>shared</strong>" : "<strong>Compartiuse</strong> un ficheiro ou cartafol",
- "Shared link" : "Ligazón compartida",
+ "Shared link" : "Ligazón para compartir",
"Wrong share ID, share does not exist" : "O ID da compartición é erróneo, a compartición non existe",
"Could not delete share" : "Non foi posíbel eliminar a compartición",
"Please specify a file or folder path" : "Especifique a ruta dun ficheiro ou cartafol",
"Wrong path, file/folder does not exist" : "Ruta errónea, o ficheiro/cartafol non existe",
"Could not create share" : "Non foi posíbel crear a compartición",
- "Invalid permissions" : "Permisos incorrectos",
- "Invalid date, date format must be YYYY-MM-DD" : "Data incorrecta, o formato da date debe ser AAAA-MM-DD",
- "Please specify a valid account to share with" : "Especifica unha conta válida para compartir",
+ "Please specify a valid account to share with" : "Especifique unha conta válida coa que compartir",
"Group sharing is disabled by the administrator" : "A opción de compartir en grupo foi desactivada pola administración desta instancia.",
"Please specify a valid group" : "Especifique un grupo correcto",
"Public link sharing is disabled by the administrator" : "Compartir por ligazón pública foi desactivado pola administración desta instancia.",
- "Public upload disabled by the administrator" : "O envío público foi desactivado pola administración desta instancia.",
- "Public upload is only possible for publicly shared folders" : "O envío público só é posíbel para aos cartafoles públicos compartidos",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Compartir %s enviando o contrasinal por Nextcloud Talk fallou porque Nextcloud Talk non está activado",
+ "Please specify a valid email address" : "Especifique un enderezo de correo-e válido",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Compartir %s enviando o contrasinal mediante Parladoiro de Nextcloud fallou porque Parladoiro de Nextcloud non está activado",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Fallou a compartición de %1$s, xa que a infraestrutura non permite accións do tipo %2$s",
"Please specify a valid federated account ID" : "Especifique un ID de conta federado válido",
"Please specify a valid federated group ID" : "Especifique un ID de grupo federado válido",
- "You cannot share to a Circle if the app is not enabled" : "Vde. non pode compartir para un círculo se a aplicación non esta activada",
- "Please specify a valid circle" : "Especifique un círculo correcto",
+ "You cannot share to a Team if the app is not enabled" : "Vde. non pode compartir cun equipo se a aplicación non está activada",
+ "Please specify a valid team" : "Especifique un equipo correcto",
"Sharing %s failed because the back end does not support room shares" : "Fallou a compartición de %s, xa que a infraestrutura non admite salas compartidas",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Produciuse un erro ao compartir %s porque a infraestrutura non admite comparticións de ScienceMesh",
"Unknown share type" : "Tipo descoñecido de compartición",
"Not a directory" : "Non é un directorio",
"Could not lock node" : "Non foi posíbel bloquear o nodo",
- "Could not lock path" : "Non foi posíbel bloquear a ruta",
- "Wrong or no update parameter given" : "Parámetro erróneo ou non actualizado",
+ "Public upload is only possible for publicly shared folders" : "O envío público só é posíbel para aos cartafoles públicos compartidos",
"Share must at least have READ or CREATE permissions" : "Compartir debe ter polo menos permisos de LER ou CREAR",
"Share must have READ permission if UPDATE or DELETE permission is set" : "A compartición debe ter permiso de LECTURA se está estabelecido o permiso ACTUALIZAR ou ELIMINAR",
- "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Produciuse un erro ao «enviar o contrasinal mediante Nextcloud Talk» para compartir un ficheiro ou cartafol porque Nextcloud Talk non está activado.",
+ "Public upload disabled by the administrator" : "O envío público foi desactivado pola administración desta instancia.",
+ "Could not lock path" : "Non foi posíbel bloquear a ruta",
+ "no sharing rights on this item" : "non hai dereitos de uso compartido deste elemento",
+ "You are not allowed to edit incoming shares" : "Vde. non ten permiso para editar os recursos compartidos entrantes",
+ "Wrong or no update parameter given" : "Parámetro erróneo ou non actualizado",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Produciuse un erro ao «enviar o contrasinal mediante Parladoiro de Nextcloud» para compartir un ficheiro ou cartafol porque Parladoiro de Nextcloud non está activado.",
+ "Custom share link tokens have been disabled by the administrator" : "A administración do seu sitio desactivou os testemuños personalizados de ligazóns de uso compartido",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Os testemuños deben conter polo menos 1 carácter e só poden conter letras, números ou un guión",
+ "Invalid date. Format must be YYYY-MM-DD" : "Data incorrecta. O formato debe ser AAAA-MM-DD",
+ "No sharing rights on this item" : "Non hai dereitos de uso compartido deste elemento",
+ "Invalid share attributes provided: \"%s\"" : "Forneceronse atributos non válidos de compartición . «%s»",
+ "You are not allowed to send mail notifications" : "Vde. non ten permiso para enviar notificacións por correo",
+ "No mail notification configured for this share type" : "Non foi configurada ningunha notificación de correo para este tipo de recurso compartido",
+ "Wrong password" : "Contrasinal erróneo",
+ "Error while sending mail notification" : "Produciuse un erro ao enviar a notificación por correo",
+ "Failed to generate a unique token" : "Produciuse un fallo ao xerar un testemuño único",
+ "This share does not exist or is no longer available" : "Este recurso compartido non existe ou xa non está dispoñíbel",
"shared by %s" : "compartido por %s",
- "Download all files" : "Descargar todos os ficheiros",
- "Direct link" : "Ligazón directa",
+ "Download" : "Descargar",
"Add to your %s" : "Engadir ao seu %s",
+ "Direct link" : "Ligazón directa",
"Share API is disabled" : "A API de compartición foi desactivada",
"File sharing" : "Compartir ficheiros",
"Share will expire tomorrow" : "A compartición caduca mañá",
@@ -112,155 +111,237 @@
"You received {share} to group {group} as a share by {user}" : "Vde. recibiu {share} no grupo {group} como un elemento compartido de {user}",
"Accept" : "Aceptar",
"Decline" : "Declinar",
- "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permite que as persoas compartan ficheiros en Nextcloud. Se está activado, o administrador pode escoller cales son os grupos que poden compartir ficheiros. As persoas aplicables poden compartir ficheiros e cartafoles con outras contas e grupos dentro de Nextcloud. Ademais, se o administrador activa a función de compartir ligazón, pódese usar unha ligazón externa para compartir ficheiros con outras persoas fóra de Nextcloud. Os administradores tamén poden facer cumprir contrasinais, datas de caducidade e habilitar o uso compartido de servidor a servidor mediante ligazóns de uso compartido, así como a compartición desde dispositivos móbiles.\nAo desactivar a función, eliminaranse os ficheiros e cartafoles compartidos do servidor para todos os destinatarios compartidos, así como dos clientes de sincronización e aplicacións móbiles. Hai máis información dispoñible na documentación de Nextcloud.",
- "Sharing" : "Compartindo",
- "Accept shares from other accounts and groups by default" : "Acepta comparticións doutras contas e grupos por defecto",
+ "Remember to upload the files to %s" : "Lembre enviar os ficheiros a %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Queremos lembrarlle que aínda non enviou ningún ficheiro ao cartafol compartido.",
+ "Open \"%s\"" : "Abrir «%s»",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permítelle á xente compartir ficheiros dentro de Nextcloud. Se o activa, a administración do sitio pode escoller que grupos poden compartir ficheiros. As persoas implicadas poderán compartir ficheiros e cartafoles con outras contas e grupos dentro de Nextcloud. Ademais, se a administración activa a característica de ligazón compartida, pode empregarse unha ligazón externa para compartir ficheiros con outras persoas fora de Nextcloud. A administración pode impor o uso de contrasinais ou datas de caducidade e activar a compartición de servidor a servidor mediante ligazóns compartidas, así como compartir desde dispositivos móbiles.\nDesactivar esta característica retira os ficheiros compartidos e os cartafoles do servidor, para todos os receptores, e tamén dos clientes de sincronización e móbiles. Atopará máis información na documentación de Nextcloud.",
+ "People" : "Persoas",
+ "Filter accounts" : "Filtrar contas",
+ "The request will expire on {date} at midnight and will be password protected." : "A solicitude caducará na media noite do {date} e estará protexida por contrasinal.",
+ "The request will expire on {date} at midnight." : "A solicitude caducará na media noite do {date}.",
+ "The request will be password protected." : "A solicitude estará protexida por contrasinal.",
+ "When should the request expire?" : "Cando debe caducar a solicitude?",
+ "Set a submission expiration date" : "Definir unha data de caducidade de envío",
+ "Expiration date" : "Data de caducidade",
+ "Select a date" : "Seleccione unha data",
+ "Your administrator has enforced a {count} days expiration policy." : "A administración do sitio impuxo unha directiva de caducidade de {count} días.",
+ "What password should be used for the request?" : "Que contrasinal debe empregarse para a solicitude?",
+ "Set a password" : "Definir un contrasinal",
+ "Password" : "Contrasinal",
+ "Enter a valid password" : "Introduza un contrasinal válido",
+ "Generate a new password" : "Xerar un novo contrasinal",
+ "Your administrator has enforced a password protection." : "A administración do sitio impuxo unha protección por contrasinal.",
+ "Automatically copying failed, please copy the share link manually" : "Produciuse un erro ao copiar automaticamente, copie a ligazón para compartir manualmente",
+ "Link copied" : "Ligazón copiada",
+ "Email already added" : "O correo xa foi engadido",
+ "Invalid email address" : "Enderezo de correo incorrecto",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["O seguinte enderezo de correo non é válido: {emails}","Os seguintes enderezos de correo non son válidos: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["Xa foi engadido {count} enderezo de correo","Xa foron engadidos {count} enderezos de correo"],
+ "_{count} email address added_::_{count} email addresses added_" : ["Foi engadido {count} enderezo de correo","Foron engadidos {count} enderezos de correo"],
+ "You can now share the link below to allow people to upload files to your directory." : "Agora pode compartir a seguinte ligazón para permitir que as persoas envíen ficheiros ao seu directorio.",
+ "Share link" : "Ligazón para compartir",
+ "Copy" : "Copiar",
+ "Send link via email" : "Enviar a ligazón por correo",
+ "Enter an email address or paste a list" : "Introduza un enderezo de correo ou pegue unha lista",
+ "Remove email" : "Retirar o correo",
+ "Select a destination" : "Seleccione un destino",
+ "Select" : "Seleccionar",
+ "What are you requesting?" : "Que é o que está a solicitar?",
+ "Request subject" : "Asunto da solicitude",
+ "Birthday party photos, History assignment…" : "Fotos da festa de aniversario, asignación de historia…",
+ "Where should these files go?" : "Onde deben ir estes ficheiros?",
+ "Upload destination" : "Destino do envío",
+ "Revert to default" : "Reverter ao predeterminado",
+ "The uploaded files are visible only to you unless you choose to share them." : "Os ficheiros enviados só son visíbeis para Vde. a non ser que decida compartilos.",
+ "Add a note" : "Engadir unha nota",
+ "Note for recipient" : "Nota para o destinatario",
+ "Add a note to help people understand what you are requesting." : "Engada unha nota para que a xente comprenda o que está a solicitar.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Pode engadir ligazóns, datas ou calquera outra información que axude ao destinatario a comprender o que está a solicitar.",
+ "Close" : "Pechar",
+ "_Send email and close_::_Send {count} emails and close_" : ["Enviar o correo e pechar","Enviar {count} correos e pechar"],
+ "Please select a folder, you cannot share the root directory." : "Seleccione un cartafol, Vde. non pode compartir o directorio raíz.",
+ "File request created" : "Creouse a solicitude de ficheiro",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Creouse a solicitude de ficheiro e enviouse o correo","Creouse a solicitude de ficheiros e enviáronse {count} correos"],
+ "Error creating the share: {errorMessage}" : "Produciuse un erro ao crear a compartición: {errorMessage}",
+ "Error creating the share" : "Produciuse un erro ao crear a compartición",
+ "Error sending emails: {errorMessage}" : "Produciuse un erro ao enviar os correos: {errorMessage}",
+ "Error sending emails" : "Produciuse un erro ao enviar os correos",
+ "Create a file request" : "Crear unha solicitude de ficheiro",
+ "Collect files from others even if they do not have an account." : "Recoller os ficheiros doutros aínda que non teñan unha conta.",
+ "To ensure you can receive files, verify you have enough storage available." : "Para asegurarse de que pode recibir ficheiros, verifique que ten dispoñíbel espazo de almacenamento abondo.",
+ "File request" : "Solicitude de ficheiro",
+ "Previous step" : "Paso anterior",
+ "Cancel" : "Cancelar",
+ "Cancel the file request creation" : "Cancelar a creación da solicitude de ficheiro",
+ "Close without sending emails" : "Pechar sen enviar o correo",
+ "Continue" : "Continuar",
"Error while toggling options" : "Produciuse un erro ao alternar as opcións",
- "Set default folder for accepted shares" : "Estabelecer o cartafol predeterminado para as s aceptadas",
- "Reset" : "Restabelecer",
- "Reset folder to system default" : "Restabelecer o cartafol ao predeterminado do sistema",
+ "Accept shares from other accounts and groups by default" : "Aceptar comparticións doutras contas e grupos de xeito predeterminado",
"Choose a default folder for accepted shares" : "Escolla un cartafol predeterminado para as comparticións aceptadas",
"Invalid path selected" : "Seleccionou unha ruta incorrecta.",
"Unknown error" : "Produciuse un erro descoñecido",
- "Open Sharing Details" : "Abrir os detalles da compartición",
+ "Set default folder for accepted shares" : "Definir o cartafol predeterminado para as s aceptadas",
+ "Reset" : "Restabelecer",
+ "Reset folder to system default" : "Restabelecer o cartafol ao predeterminado do sistema",
"group" : "grupo",
"conversation" : "conversa",
"remote" : "remoto",
"remote group" : "grupo remoto",
"guest" : "convidado",
+ "by {initiator}" : "por {initiator}",
"Shared with the group {user} by {owner}" : "Compartido co grupo {user} por {owner}",
"Shared with the conversation {user} by {owner}" : "Compartido coa conversa {user} por {owner}",
"Shared with {user} by {owner}" : "Compartido con {user} por {owner}",
+ "Open Sharing Details" : "Abrir os detalles da compartición",
"Added by {initiator}" : "Engadido por {initiator}",
"Via “{folder}”" : "A través de «{folder}»",
"Unshare" : "Deixar de compartir",
- "Internal link" : "Ligazón interna",
"Cannot copy, please copy the link manually" : "Non foi posíbel copiala. Copie a ligazón manualmente",
- "Copy internal link to clipboard" : "Copiar a ligazón interna ao portapapeis",
- "Only works for people with access to this folder" : "Só funciona para as persoas que teñen acceso a este cartafol",
- "Only works for people with access to this file" : "Só funciona para as persoas que teñen acceso a este ficheiro",
- "Link copied" : "Ligazón copiada",
- "Please enter the following required information before creating the share" : "Introduza a seguinte información necesaria antes de crear a compartición",
- "Password protection (enforced)" : "Protección con contrasinal (obrigado)",
- "Password protection" : "Protección por contrasinal",
- "Enter a password" : "Introduza un contrasinal",
- "Expiration date (enforced)" : "Data de caducidade (obrigada)",
- "Enter a date" : "Introduza unha data",
- "Create share" : "Crear elemento compartido",
- "Cancel" : "Cancelar",
- "Customize link" : "Personalizar a ligazón",
- "Generate QR code" : "Xera un código QR",
- "Add another link" : "Engadir outra ligazón",
- "Create a new share link" : "Crear unha nova ligazón de compartición",
+ "Copy internal link" : "Copiar a ligazón interna",
+ "Internal link" : "Ligazón interna",
"{shareWith} by {initiator}" : "{shareWith} por {initiator}",
"Shared via link by {initiator}" : "Compartido mediante ligazón por {initiator}",
- "Mail share ({label})" : "Compartir correo ({label})",
- "Share link ({label})" : "Compartir a ligazón ({label})",
- "Share link ({index})" : "Compartir a ligazón ({index})",
- "Share link" : "Compartir ligazón",
+ "File request ({label})" : "Solicitude de ficheiro ({label})",
+ "Mail share ({label})" : "Compartir por correo ({label})",
+ "Share link ({label})" : "Ligazón para compartir ({label})",
+ "Mail share" : "Compartir por correo",
+ "Share link ({index})" : "Ligazón para compartir ({index})",
+ "Create public link" : "Crear ligazón pública",
"Actions for \"{title}\"" : "Accións para «{title}»",
- "Copy public link of \"{title}\" to clipboard" : "Copiar a ligazón pública de «{title}» no portapapeis",
"Error, please enter proper password and/or expiration date" : "Erro, introduza un contrasinal ou unha data de caducidade correctos",
"Link share created" : "Creouse a ligazón compartida",
"Error while creating the share" : "Produciuse un erro ao crear a compartición",
- "Quick share options, the current selected is \"{selectedOption}\"" : "Opcións compartir de forma rápida, a selección actual é \"{selectedOption}\"",
+ "Please enter the following required information before creating the share" : "Introduza a seguinte información necesaria antes de crear a compartición",
+ "Password protection (enforced)" : "Protección con contrasinal (obrigatoria)",
+ "Password protection" : "Protección por contrasinal",
+ "Enter a password" : "Introduza un contrasinal",
+ "Enable link expiration (enforced)" : "Activar a caducidade da ligazón (obrigatoria)",
+ "Enable link expiration" : "Activa a caducidade da ligazón",
+ "Enter expiration date (enforced)" : "Introducir a data de caducidade (obrigatoria)",
+ "Enter expiration date" : "Introducir a data de caducidade",
+ "Create share" : "Crear elemento compartido",
+ "Customize link" : "Personalizar a ligazón",
+ "Generate QR code" : "Xerar un código QR",
+ "Add another link" : "Engadir outra ligazón",
+ "Create a new share link" : "Crear unha nova ligazón para compartir",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Opcións de compartir de xeito rápido, a selección actual é \"{selectedOption}\"",
"View only" : "Só ver",
"Can edit" : "Pode editar",
- "File drop" : "Soltar o ficheiro",
"Custom permissions" : "Permisos personalizados",
- "Search for share recipients" : "Buscar destinatarios de comparticións",
- "No recommendations. Start typing." : "Non hai recomendacións. Comece a escribir.",
"Resharing is not allowed" : "Non se permite volver compartir",
"Name or email …" : "Nome ou correo…",
- "Name, email, or Federated Cloud ID …" : "Nome, correo ou ID da nube federada…",
+ "Name, email, or Federated Cloud ID …" : "Nome, correo ou ID de nube federada…",
"Searching …" : "Buscando…",
- "No elements found." : "Non se atoparon elementos.",
- "Search globally" : "Busca global",
+ "No elements found." : "Non se atopou ningún elemento.",
+ "Search everywhere" : "Buscar por todas partes",
"Guest" : "Convidado",
"Group" : "Grupo",
"Email" : "Correo-e",
"Team" : "Equipo",
- "Talk conversation" : "Conversa co Talk",
+ "Talk conversation" : "Conversa no Parladoiro",
"Deck board" : "Taboleiro da Gabeta",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "en {server}",
+ "Enter external recipients" : "Introduza os destinatarios externos",
+ "Search for internal recipients" : "Busca de destinatarios internos",
+ "Note from" : "Nota de",
+ "Note:" : "Nota:",
+ "File drop" : "Soltar o ficheiro",
+ "Upload files to {foldername}." : "Enviar ficheiros a {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Ao enviar ficheiros acepta as condicións de servizo.",
+ "View terms of service" : "Ver as condicións de servizo",
+ "Terms of service" : "Condicións de servizo",
+ "Share with email {email}" : "Compartir co correo {email}",
+ "Share with group" : "Compartir co grupo",
+ "Share in conversation" : "Compartir na conversa",
+ "Share with {user} on remote server {server}" : "Compartir con {user} no servidor remoto {server}",
+ "Share with remote group" : "Compartir co grupo remoto",
+ "Share with guest" : "Compartir co convidado",
+ "Update share" : "Actualizar a compartición",
+ "Save share" : "Gardar a compartición",
+ "Read" : "Ler",
+ "Create" : "Crear",
+ "Edit" : "Editar",
+ "Share" : "Compartir",
+ "Delete" : "Eliminar",
+ "Password field cannot be empty" : "O campo de contrasinal non pode estar baleiro",
+ "Replace current password" : "Substituír o contrasinal actual",
+ "Failed to generate a new token" : "Produciuse un fallo ao xerar un novo testemuño",
"Allow upload and editing" : "Permitir o envío e a edición",
"Allow editing" : "Permitir a edición",
"Upload only" : "Só enviar",
"Advanced settings" : "Axustes avanzados",
"Share label" : "Compartir a etiqueta",
- "Set password" : "Estabelecer o contrasinal",
- "Password" : "Contrasinal",
+ "Share link token" : "Compartir o testemuño da ligazón",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Defina o testemuño de ligazón de compartición pública como algo doado de lembrar ou xere un novo testemuño. Non se recomenda empregar un testemuño doado de adiviñar para as comparticións que conteñan información confidencial.",
+ "Generating…" : "Xerando…",
+ "Generate new token" : "Xerar un novo testemuño",
+ "Set password" : "Definir o contrasinal",
"Password expires {passwordExpirationTime}" : "O contrasinal caduca o {passwordExpirationTime}",
"Password expired" : "O contrasinal caducou",
"Video verification" : "Verificación de vídeo",
- "Set expiration date" : "Estabelecer a data de caducidade",
- "Expiration date" : "Data de caducidade",
+ "Expiration date (enforced)" : "Data de caducidade (obrigatoria)",
+ "Set expiration date" : "Definir a data de caducidade",
"Hide download" : "Agochar a descarga",
- "Allow download" : "Permitir a descarga",
+ "Allow download and sync" : "Permitir a descarga e a sincronización",
"Note to recipient" : "Nota para o destinatario",
"Enter a note for the share recipient" : "Introduza unha nota para o destinatario da compartición",
- "Read" : "Ler",
- "Create" : "Crear",
- "Edit" : "Editar",
- "Share" : "Compartir",
+ "Show files in grid view" : "Amosar os ficheiros en vista de grade",
"Delete share" : "Eliminar o recurso compartido",
- "Share with {userName}" : "Compartir con {userName}",
- "Share with group" : "Compartir co grupo",
- "Share in conversation" : "Compartir na conversación",
- "Share with remote group" : "Compartir co grupo remoto",
- "Share with guest" : "Compartir cun invitado",
- "Update share" : "Actualizar a compartición",
- "Save share" : "Gardar a compartición",
"Others with access" : "Outros con acceso",
"No other accounts with access found" : "Non se atoparon outras contas con acceso",
"Toggle list of others with access to this directory" : "Alternar a lista doutros con acceso a este directorio",
"Toggle list of others with access to this file" : "Alternar a lista doutros con acceso a este ficheiro",
"Unable to fetch inherited shares" : "Non é posíbel recuperar as comparticións herdadas",
+ "Link shares" : "Ligazóns para compartir",
+ "Shares" : "Comparticións",
"Unable to load the shares list" : "Non é posíbel cargar a lista de comparticións",
"Expires {relativetime}" : "Caducidades {relativetime}",
"this share just expired." : "vén de caducar esta compartición",
"Shared with you by {owner}" : "Compartido con Vde. por {owner}",
+ "Internal shares" : "Comparticións internas",
+ "Internal shares explanation" : "Explicación das comparticións internas",
+ "External shares" : "Comparticións externas",
+ "External shares explanation" : "Explicación das comparticións externas",
+ "Additional shares" : "Comparticións adicionais",
+ "Additional shares explanation" : "Explicación das comparticións adicionais",
+ "Link to a file" : "Ligazón a un ficheiro",
"_Accept share_::_Accept shares_" : ["Aceptar a compartición","Aceptar as comparticións"],
"Open in Files" : "Abrir en Ficheiros",
"_Reject share_::_Reject shares_" : ["Rexeitar a compartición","Rexeitar as comparticións"],
"_Restore share_::_Restore shares_" : ["Restaurar a compartición","Restaurar as comparticións"],
"Shared" : "Compartido",
- "Shared multiple times with different people" : "Compartido varias veces con diferentes persoas",
"Shared by {ownerDisplayName}" : "Compartido por {ownerDisplayName}",
- "Show sharing options" : "Amosar as opcións de compartición",
- "Link to a file" : "Ligazón a un ficheiro",
- "Error creating the share: {errorMessage}" : "Produciuse un erro ao crear a compartición: {errorMessage}",
- "Error creating the share" : "Produciuse un erro ao crear a compartición",
- "Error updating the share: {errorMessage}" : "Produciuse un erro ao actualizar a compartición: {errorMessage}",
- "Error updating the share" : "Produciuse un erro ao actualizar a compartición",
- "File \"{path}\" has been unshared" : "Foi retirado o ficheiro compartido «{path}».",
- "Folder \"{path}\" has been unshared" : "Foi retirado o cartafol compartido «{path}».",
- "Share {propertyName} saved" : "A compartición {propertyName} foi gardada",
- "Shared by" : "Compartido por",
- "Shared with" : "Compartido con",
- "Password created successfully" : "O contrasinal foi creado correctamente",
- "Error generating password from password policy" : "Produciuse un erro ao xerar o contrasinal a partir da directiva de contrasinais",
- "Shared with you and the group {group} by {owner}" : "Compartido con Vde. e co grupo {group} por {owner}",
- "Shared with you and {circle} by {owner}" : "Compartido con Vde. e {circle} por {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Compartido con Vde. e a conversa {conversation} por {owner}",
- "Shared with you in a conversation by {owner}" : "Compartido con Vde. nunha conversa por {owner}",
- "Shares" : "Comparticións",
+ "Shared multiple times with different people" : "Compartido varias veces con diferentes persoas",
+ "Shared with others" : "Compartido con outros",
+ "Create file request" : "Crear unha solicitude de ficheiro",
+ "Upload files to {foldername}" : "Enviar ficheiros a {foldername}",
+ "Public file share" : "Compartir ficheiro de xeito público",
+ "Publicly shared file." : "Ficheiro compartido publicamente.",
+ "No file" : "Non hai ningún ficheiro",
+ "The file shared with you will show up here" : "O ficheiro compartido con Vde. aparecerá aquí",
+ "Public share" : "Compartición pública",
+ "Publicly shared files." : "Ficheiros compartidos publicamente.",
+ "No files" : "Non hai ningún ficheiro",
+ "Files and folders shared with you will show up here" : "Os ficheiros e cartafoles compartidos con Vde. aparecerán aquí",
"Overview of shared files." : "Vista xeral dos ficheiros compartidos.",
"No shares" : "Ningunha compartición",
"Files and folders you shared or have been shared with you will show up here" : "Os ficheiros e cartafoles que Vde. compartiu ou que foron compartidos con Vde. amosaranse aquí",
"Shared with you" : "Compartido con Vde.",
"List of files that are shared with you." : "Lista de ficheiros que se comparten con Vde.",
- "Nothing shared with you yet" : "Aínda non hai nada compartido con Vde.",
+ "Nothing shared with you yet" : "Aínda non hai ren compartido con Vde.",
"Files and folders others shared with you will show up here" : "Os ficheiros e cartafoles que outros compartiron con Vde. amosaranse aquí",
- "Shared with others" : "Compartido con outros",
"List of files that you shared with others." : "Lista de ficheiros que compartiu Vde. con outros.",
- "Nothing shared yet" : "Aínda non hai nada compartido",
+ "Nothing shared yet" : "Aínda non hai ren compartido",
"Files and folders you shared will show up here" : "Os ficheiros e cartafoles que compartiu amosaranse aquí",
"Shared by link" : "Compartido por ligazón",
"List of files that are shared by link." : "Lista de ficheiros que se comparten mediante ligazón.",
"No shared links" : "Non hai ligazóns para compartir",
"Files and folders you shared by link will show up here" : "Os ficheiros e cartafoles que compariu por ligazón amosaranse aquí",
+ "File requests" : "Solicitudes de ficheiros",
+ "List of file requests." : "Lista de solicitudes de ficheiros.",
+ "No file requests" : "Non hai solicitudes de ficheiros",
+ "File requests you have created will show up here" : "As solicitudes de ficheiros que creou amosaranse aquí",
"Deleted shares" : "Comparticións eliminadas",
"List of shares you left." : "Lista de comparticións que deixou",
"No deleted shares" : "Non hai comparticións eliminadas",
@@ -269,49 +350,75 @@
"List of unapproved shares." : "Lista de comparticións non aprobadas.",
"No pending shares" : "Non hai comparticións pendentes",
"Shares you have received but not approved will show up here" : "As comparticións que recibiu mais non aprobou amosaranse aquí",
+ "Error deleting the share" : "Produciuse un erro ao eliminar a compartición",
+ "Error updating the share: {errorMessage}" : "Produciuse un erro ao actualizar a compartición: {errorMessage}",
+ "Error updating the share" : "Produciuse un erro ao actualizar a compartición",
+ "File \"{path}\" has been unshared" : "Foi retirado o ficheiro compartido «{path}».",
+ "Folder \"{path}\" has been unshared" : "Foi retirado o cartafol compartido «{path}».",
+ "Could not update share" : "Non foi posíbel actualizar a compartición",
+ "Share saved" : "Gardouse a compartición",
+ "Share expiry date saved" : "Gardouse a data de caducidade da compartición",
+ "Share hide-download state saved" : "Gardouse o estado de agochado e descarga da compartición",
+ "Share label saved" : "Gardouse a etiqueta de compartición",
+ "Share note for recipient saved" : "Gardouse a nota de compartición para o destinatario",
+ "Share password saved" : "Gardouse o contrasinal para compartir",
+ "Share permissions saved" : "Gardáronse os permisos para compartir",
+ "Upload files to {folder}" : "Enviar ficheiros a {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} compartiu un cartafol con Vde.",
+ "Shared by" : "Compartido por",
+ "Shared with" : "Compartido con",
+ "Password created successfully" : "O contrasinal foi creado correctamente",
+ "Error generating password from password policy" : "Produciuse un erro ao xerar o contrasinal a partir da directiva de contrasinais",
+ "Shared with you and the group {group} by {owner}" : "Compartido con Vde. e co grupo {group} por {owner}",
+ "Shared with you and {circle} by {owner}" : "Compartido con Vde. e {circle} por {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Compartido con Vde. e a conversa {conversation} por {owner}",
+ "Shared with you in a conversation by {owner}" : "Compartido con Vde. nunha conversa por {owner}",
+ "Share not found" : "Non se atopou a compartición",
+ "Back to %s" : "Volver a %s",
+ "Add to your Nextcloud" : "Engadir ao seu Nextcloud",
+ "Waiting…" : "Agardando…",
+ "error" : "erro",
+ "finished" : "rematado",
+ "This will stop your current uploads." : "Isto deterá os envíos actuais.",
+ "Move or copy" : "Mover ou copiar",
+ "You can upload into this folder" : "Pode envialo a este cartafol",
+ "Show list view" : "Amosar a vista de lista",
+ "Show grid view" : "Amosar a vista de grade",
+ "No compatible server found at {remote}" : "Non se atopa un servidor compatíbel en {remote}",
+ "Invalid server URL" : "URL de servidor incorrecto",
+ "Failed to add the public link to your Nextcloud" : "Non foi posíbel engadir a ligazón pública ao seu Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "Vde. non ten permiso para editar as ligazóns compartidas das que non é o propietario",
+ "Download all files" : "Descargar todos os ficheiros",
+ "Link copied to clipboard" : "A ligazón foi copiada no portapapeis",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Xa foi engadido 1 enderezo de correo","Xa foron engadidos {count} enderezos de correo"],
+ "_1 email address added_::_{count} email addresses added_" : ["Foi engadido 1 enderezo de correo","Foron engadidos {count} enderezos de correo"],
+ "Copy to clipboard" : "Copiar no portapapeis",
+ "Copy internal link to clipboard" : "Copiar a ligazón interna ao portapapeis",
+ "Only works for people with access to this folder" : "Só funciona para as persoas que teñen acceso a este cartafol",
+ "Only works for people with access to this file" : "Só funciona para as persoas que teñen acceso a este ficheiro",
+ "Copy public link of \"{title}\" to clipboard" : "Copiar a ligazón pública de «{title}» no portapapeis",
+ "Search globally" : "Buscar globalmente",
+ "Search for share recipients" : "Buscar destinatarios de comparticións",
+ "No recommendations. Start typing." : "Non hai recomendacións. Comece a escribir.",
+ "To upload files, you need to provide your name first." : "Para enviar ficheiros, primeiro debes fornecer o teu nome.",
+ "Enter your name" : "Introduza o seu nome",
+ "Submit name" : "Enviar o nome",
+ "Share with {userName}" : "Compartir con {userName}",
+ "Show sharing options" : "Amosar as opcións de compartición",
"Share note" : "Compartir nota",
"Upload files to %s" : "Enviar ficheiros a %s",
+ "%s shared a folder with you." : "%s compartiu un cartafol con Vde.",
"Note" : "Nota",
"Select or drop files" : "Seleccione ou arrastre e solte ficheiros",
"Uploading files" : "Enviando ficheiros",
"Uploaded files:" : "Ficheiros enviados:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "Ao enviar ficheiros acepta as %1$s condicións do servizo %2$s.",
- "Add to your Nextcloud" : "Engadir ao seu Nextcloud",
- "Files and folders others share with you will show up here" : "Os ficheiros e cartafoles que outros compartan con Vde. amosaranse aquí",
- "Files and folders you share will show up here" : "Os ficheiros e cartafoles que comparta amosaranse aquí",
- "Files and folders you share by link will show up here" : "Os ficheiros e cartafoles que comparta por ligazón amosaranse aquí",
- "Shares you deleted will show up here" : "As comparticións eliminadas amosaranse aquí",
- "Shares you have received but not confirmed will show up here" : "As comparticións recibidas mais sen confirmación amosaranse aquí",
- "Shares will show up here" : "As comparticións amosaranse aquí",
- "Restore" : "Restaurar",
- "Something happened. Unable to restore the share." : "Algo aconteceu. Non é posíbel restaurar a compartición",
- "Something happened. Unable to accept the share." : "Algo aconteceu. Non é posíbel aceptar a compartición",
- "Something happened. Unable to reject the share." : "Algo aconteceu. Non é posíbel rexeitar a compartición",
- "No expiration date set" : "Non foi estabelecida a data de caducidade",
- "Please specify a valid user" : "Especifique un usuario correcto",
- "Please specify a valid federated user ID" : "Especifique un ID de usuario federado válido",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permítelle aos usuarios compartir ficheiros dentro de Nextcloud. Se o activa, o administrador pode escoller que grupos poden compartir ficheiros. Os usuarios implicados poderán compartir ficheiros e cartafoles con outros usuarios e grupos dentro de Nextcloud. Ademais, se o administrador activa a característica de ligazón compartida, pode empregarse unha ligazón externa para compartir ficheiros con outros usuarios fora doeNextcloud. Os administradores poden impor o uso de contrasinais ou datas de caducidade e activar a compartición de servidor a servidor mediante ligazóns compartidas, así como compartir dende dispositivos móbiles.\nDesactivar esta característica retira os ficheiros compartidos e os cartafoles do servidor, para todos os receptores, e tamén dos clientes de sincronización e móbiles. Atopará máis información na documentación de Nextcloud.",
- "Accept user and group shares by default" : "Aceptar, por omisión, as comparticións de usuarios e grupos",
- "Read only" : "Só lectura",
- "File drop (upload only)" : "Soltar ficheiro (só envíos) ",
- "Upload" : "Enviar",
- "Bundled permissions" : "Permisos agrupados",
- "Only works for users with access to this folder" : "Só funciona para usuarios con acceso a este cartafol",
- "Only works for users with access to this file" : "Só funciona para usuarios con acceso a este ficheiro",
- "Circle" : "Círculo",
- "Update" : "Actualizar",
- "Share with " : "Compartir con",
- "No other users with access found" : "Non se atoparon outros usuarios con acceso",
- "No entries found in this folder" : "Non se atoparon entradas neste cartafol",
+ "By uploading files, you agree to the %1$sterms of service%2$s." : "Ao enviar ficheiros acepta as %1$s condicións de servizo %2$s.",
"Name" : "Nome",
- "Share time" : "Compartido hai",
- "Sorry, this link does not seem to work anymore." : "Desculpe, esta ligazón parece que xa non funciona.",
- "Reasons might be:" : "As razóns poderían ser:",
- "the item was removed" : "o elemento foi retirado",
- "the link expired" : "a ligazón caducou",
- "sharing is disabled" : "foi desactivada a compartición",
- "For more info, please ask the person who sent this link." : "Para obter máis información, pregúntelle á persoa que lle enviou a ligazón.",
- "Share with remote" : "Compartir co remoto",
- "Share with" : "Compartir con"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Empregue este método para compartir ficheiros con persoas ou equipos dentro da súa organización. Se o destinatario xa ten acceso á compartición mais non pode localizalo, pode enviarlles a ligazón de compartición interna para un acceso doado.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Empregue este método para compartir ficheiros con persoas ou organizacións alleas á súa organización. Os ficheiros e cartafoles pódense compartir mediante ligazóns públicas e enderezos de correo-e. Tamén pode compartir con outras contas de Nextcloud aloxadas en diferentes instancias usando o seu ID de nube federado.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Comparticións que non formen parte das comparticións internas ou externas. Pode tratarse de comparticións desde aplicacións ou outras orixes.",
+ "Share with accounts and teams" : "Compartir con contas e equipos",
+ "Email, federated cloud id" : "Correo-e, ID da nube federada",
+ "Filename must not be empty." : "O nome de ficheiro non debe estar baleiro"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/he.js b/apps/files_sharing/l10n/he.js
deleted file mode 100644
index 722bc31cf70..00000000000
--- a/apps/files_sharing/l10n/he.js
+++ /dev/null
@@ -1,234 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Waiting…" : "בהמתנה…",
- "error" : "שגיאה",
- "finished" : "הסתיים",
- "This will stop your current uploads." : "פעולה זו תעצור את השליחות הנוכחיות שלך.",
- "Move or copy" : "העברה או העתקה",
- "Download" : "הורדה",
- "Delete" : "מחיקה",
- "You can upload into this folder" : "ניתן להעלות לתיקייה זו",
- "Terms of service" : "תנאי שירות",
- "No compatible server found at {remote}" : "לא נמצא שרת תואם בכתובת {remote}",
- "Invalid server URL" : "כתובת השרת שגויה",
- "Failed to add the public link to your Nextcloud" : "אירע כשל בהוספת קישור ציבורי ל־Nextcloud שלך",
- "File shares" : "שיתופי קבצים",
- "Downloaded via public link" : "הורד על בסיס קישור ציבורי",
- "Downloaded by {email}" : "הורד על ידי {email}",
- "{file} downloaded via public link" : "{file} התקבל דרך קישור ציבורי",
- "{email} downloaded {file}" : "{file} הורד על ידי {email}",
- "Shared with group {group}" : "שותף עם הקבוצה {group}",
- "Removed share for group {group}" : "הוסר שיתוף עם הקבוצה {group}",
- "{actor} shared with group {group}" : "שותף עם הקבוצה {group} על ידי {actor}",
- "{actor} removed share for group {group}" : "הוסר השיתוף עם הקבוצה {group} על ידי {actor}",
- "Share for group {group} expired" : "תוקף השיתוף עם הקבוצה {group} פג",
- "You shared {file} with group {group}" : "שיתפת {file} עם הקבוצה {group}",
- "You removed group {group} from {file}" : "הסרת את הקבוצה {group} מהקובץ {file}",
- "{actor} shared {file} with group {group}" : "הקובץ {file} שותף עם הקבוצה {group} על ידי {actor}",
- "{actor} removed group {group} from {file}" : "הקבוצה {group} הוסרה מהשיתוף {file} על ידי {actor}",
- "Share for file {file} with group {group} expired" : "תוקף שיתוף הקובץ {file} עם הקבוצה {group} פג",
- "Shared as public link" : "שותף כקישור ציבורי",
- "Removed public link" : "הסיר/ה קישור ציבורי",
- "Public link expired" : "קישור ציבורי פג תוקף",
- "{actor} shared as public link" : "שותף כקישור ציבורי על ידי {actor}",
- "{actor} removed public link" : "הקישור הציבורי הוסר על ידי {actor}",
- "Public link of {actor} expired" : "תוקף הקישור הציבורי של {actor} פג",
- "You shared {file} as public link" : "שיתפת את {file} כקישור ציבורי",
- "You removed public link for {file}" : "הסרת קישור ציבורי עבור {file}",
- "Public link expired for {file}" : "תוקף הקישור הציבורי עבור {file} פג",
- "{actor} shared {file} as public link" : "{file} שותף כקישור ציבורי על ידי {actor}",
- "{actor} removed public link for {file}" : "הקישור הציבורי עבור {file} הוסר על ידי {actor}",
- "Public link of {actor} for {file} expired" : "תוקף הקישור הציבורי של {actor} עבור {file} פג",
- "{user} accepted the remote share" : "השיתוף המרוחק התקבל על ידי {user}",
- "{user} declined the remote share" : "השיתוף המרוחק נדחה על ידי {user}",
- "You received a new remote share {file} from {user}" : "קיבלת שיתוף מרוחק חדש {file} מאת",
- "{user} accepted the remote share of {file}" : "השיתוף המרוחק של {file} התקבל על ידי {user}",
- "{user} declined the remote share of {file}" : "השיתוף המרוחק של {file} נדחה על ידי {user}",
- "{user} unshared {file} from you" : "{user} ביטל שיתוף של {file} ממך",
- "Shared with {user}" : "שותף עם {user}",
- "Removed share for {user}" : "הוסר השיתוף עבור {user}",
- "You removed yourself" : "הסרת את עצמך",
- "{actor} removed themselves" : "{actor} הסירו את עצמם",
- "{actor} shared with {user}" : "שותף עם {user} על ידי {actor}",
- "{actor} removed share for {user}" : "השיתוף עבור {user} הוסר על ידי {actor}",
- "Shared by {actor}" : "שותף על ידי {actor}",
- "{actor} removed share" : "שיתוף הוסר על ידי {actor}",
- "Share for {user} expired" : "תוקף השיתוף של {user} פג",
- "Share expired" : "תוקף השיתוף פג",
- "You shared {file} with {user}" : "שיתפת את {file} עם {user}",
- "You removed {user} from {file}" : "הסרת את {user} מהקובץ {file}",
- "You removed yourself from {file}" : "הסרת את עצמך מהקובץ {file}",
- "{actor} removed themselves from {file}" : "{actor} הסיר את עצמו מ- {file}",
- "{actor} shared {file} with {user}" : "{file} שותף עם {user} על ידי {actor}",
- "{actor} removed {user} from {file}" : "{actor} הסיר את {user} מ- {file}",
- "{actor} shared {file} with you" : "{actor} שיתף {file} איתך",
- "{actor} removed you from the share named {file}" : "הוסרת מהשיתוף בשם {file} על ידי {actor}",
- "Share for file {file} with {user} expired" : "תוקף שיתוף הקובץ {file} עם {user} פג",
- "Share for file {file} expired" : "שיתוף הקובץ {file} פג",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "קובץ או תיקייה ששותפו בדוא״ל או דרך קישור ציבורי <strong>הורדו</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "קובץ או תיקייה שותפו מ- <strong>שרת אחר</strong>",
- "Files" : "קבצים",
- "A file or folder has been <strong>shared</strong>" : "קובץ או תיקייה <strong>שותפו<strong/>",
- "Shared link" : "שותף קישור",
- "Could not delete share" : "לא ניתן היה למחוק את השיתוף",
- "Please specify a file or folder path" : "יש לספק נתיב לקובץ או תיקייה",
- "Could not create share" : "לא ניתן ליצור שיתוף",
- "Invalid date, date format must be YYYY-MM-DD" : "תאריך לא חוקי, תבנית התאריך חייבת להיות YYYY-MM-DD",
- "Group sharing is disabled by the administrator" : "שיתוף קבוצתי מנוטרל על ידי המנהל",
- "Please specify a valid group" : "יש לספק קבוצה חוקית",
- "Public link sharing is disabled by the administrator" : "שיתוף ציבורי מנוטרל על ידי המנהל",
- "Public upload disabled by the administrator" : "שיתוף ציבורי מנוטרל על ידי המנהל",
- "Public upload is only possible for publicly shared folders" : "העלאה ציבורית אפשרית רק אל תיקיות משותפות ציבוריות",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "שיתוף%s שליחת הסיסמה באמצעות Nextcloud Talk נכשל מכיוון ש- Nextcloud Talk אינו מופעל",
- "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "השיתוף%1$s נכשל מכיוון שה-\"קצה אחורי\" אינו מאפשר שיתופים מסוג %2$s",
- "You cannot share to a Circle if the app is not enabled" : "לא ניתן לשתף למעגל אם היישומון לא מופעל",
- "Please specify a valid circle" : "נא לציין מעגל תקני",
- "Sharing %s failed because the back end does not support room shares" : "השיתוף של%sנכשל מכיוון שה-\"קצה אחורי\" אינו תומך בשיתופי חדרים",
- "Unknown share type" : "סוג שיתוף אינו מוכר",
- "Not a directory" : "אינה תיקייה",
- "Could not lock node" : "לא היה ניתן לנעול את הצומת",
- "Could not lock path" : "לא ניתן היה לנעול נתיב",
- "Wrong or no update parameter given" : "משתנה עדכון שניתן שגוי או לא קיים",
- "shared by %s" : "שותף על ידי %s",
- "Download all files" : "הורדת כל הקבצים",
- "Direct link" : "קישור ישיר",
- "Share API is disabled" : "שיתוף API מנוטרל",
- "File sharing" : "שיתוף קבצים",
- "Share will expire tomorrow" : "תוקף השיתוף יפוג מחר",
- "Your share of {node} will expire tomorrow" : "תוקף השיתוף שלך {node} יפוג מחר",
- "You received {share} as a share by {user}" : "קיבלת {share} כשיתוף מאת {user}",
- "You received {share} to group {group} as a share by {user}" : "קיבלת {share} לקבוצה {group} כשיתוף על ידי {user}",
- "Accept" : "קבלה",
- "Decline" : "דחייה",
- "Sharing" : "שיתוף",
- "Reset" : "איפוס",
- "Invalid path selected" : "הנתיב שנבחר שגוי",
- "Unknown error" : "שגיאה בלתי ידועה",
- "group" : "קבוצה",
- "conversation" : "דיון",
- "remote" : "מרוחק",
- "remote group" : "קבוצה מרוחקת",
- "guest" : "אורח",
- "Shared with the group {user} by {owner}" : "שותף עם הקבוצה {user} על ידי {owner}",
- "Shared with the conversation {user} by {owner}" : "שותף עם הדיון {user} על ידי {owner}",
- "Shared with {user} by {owner}" : "שותף עם {user} על ידי {owner}",
- "Added by {initiator}" : "נוסף על ידי {initiator}",
- "Via “{folder}”" : "דרך „{folder}”",
- "Unshare" : "ביטול שיתוף",
- "Internal link" : "קישור פנימי",
- "Cannot copy, please copy the link manually" : "לא ניתן להעתיק, נא להעתיק את הקישור ידנית",
- "Link copied" : "הקישור הועתק",
- "Please enter the following required information before creating the share" : "נא למלא את הפרטים הנחוצים הבאים בטרם יצירת השיתוף",
- "Password protection (enforced)" : "הגנה בססמה (נאכף)",
- "Password protection" : "Password protection",
- "Enter a password" : "נא להקליד ססמה",
- "Expiration date (enforced)" : "תאריך תפוגה (נאכף)",
- "Enter a date" : "נא למלא תאריך",
- "Create share" : "צור שיתוף",
- "Cancel" : "ביטול",
- "Add another link" : "הוספת קישור נוסף",
- "Create a new share link" : "יצירת קישור שיתוף חדש",
- "{shareWith} by {initiator}" : "{shareWith} באמצעות {initiator}",
- "Shared via link by {initiator}" : "שותף דרך קישור על ידי {initiator}",
- "Share link ({label})" : "שתף קישור ({label})",
- "Share link" : "שיתוף קישור",
- "Error, please enter proper password and/or expiration date" : "שגיאה, נא למלא ססמה ו/או תאריך תפוגה כראוי",
- "View only" : "לצפיה בלבד",
- "Can edit" : "ניתן לערוך",
- "No recommendations. Start typing." : "אין המלצות. נא להתחיל להקליד.",
- "Resharing is not allowed" : "שיתוף מחדש אסור",
- "Name or email …" : "שם או דוא\"ל ...",
- "Name, email, or Federated Cloud ID …" : "שם, דוא\"ל או ID ענן מאוחד...",
- "Searching …" : "מתבצע חיפוש…",
- "No elements found." : "לא נמצאו רכיבים.",
- "Search globally" : "חיפוש גלובלי",
- "Guest" : "אורח/ת",
- "Group" : "קבוצה",
- "Email" : "דוא״ל",
- "Deck board" : "לוח חסיפה",
- "on {server}" : "על גבי {server}",
- "Allow upload and editing" : "לאפשר העלאה ועריכה",
- "Allow editing" : "לאפשר עריכה",
- "Advanced settings" : "הגדרות מתקדמות",
- "Share label" : "שתף תווית",
- "Password" : "ססמה",
- "Video verification" : "אימות וידאו",
- "Set expiration date" : "הגדרת תאריך תפוגה",
- "Expiration date" : "מועד תפוגה",
- "Hide download" : "הסתרת הורדה",
- "Note to recipient" : "מסר לנמען",
- "Enter a note for the share recipient" : "נא להוסיף הערה למקבלי השיתוף",
- "Read" : "קריאה",
- "Edit" : "עריכה",
- "Share" : "שיתוף",
- "Others with access" : "נוספים עם גישה",
- "Toggle list of others with access to this directory" : "החלפת מצב הנוספים עם גישה לתיקייה הזאת",
- "Toggle list of others with access to this file" : "החלפת מצב הנוספים עם גישה לקובץ הזה",
- "Unable to fetch inherited shares" : "לא ניתן לקבל את השיתופים שנורשו",
- "Unable to load the shares list" : "לא ניתן לטעון את רשימת השיתופים",
- "Expires {relativetime}" : "תפוגה: {relativetime}",
- "this share just expired." : "תוקף השיתוף פג זה עתה.",
- "Shared with you by {owner}" : "שותף אתך על ידי {owner}",
- "Shared" : "משותף",
- "Link to a file" : "קישור לקובץ",
- "Error creating the share" : "יצירת השיתוף נכשלה",
- "Error updating the share" : "שגיאה בעדכון השיתוף",
- "Shared by" : "שותף על־ידי",
- "Shared with" : "משותף עם",
- "Shared with you and the group {group} by {owner}" : "שותף אתך ועם הקבוצה {group} על ידי {owner}",
- "Shared with you and {circle} by {owner}" : "משותף אתך ועם {circle} על ידי {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "שותף אתך והדיון {conversation} על ידי {owner}",
- "Shared with you in a conversation by {owner}" : "שותף אתך בדיון על ידי {owner}",
- "Shares" : "שיתופים",
- "No shares" : "אין שיתופים",
- "Shared with you" : "שיתף/שיתפה אתך",
- "Nothing shared with you yet" : "עדיין לא שיתפו אתך דבר",
- "Shared with others" : "משותף עם אחרים",
- "Nothing shared yet" : "עדיין לא שותף דבר",
- "Shared by link" : "משותף עם קישור",
- "No shared links" : "אין קישורים משותפים",
- "Deleted shares" : "שיתופים שנמחקו",
- "No deleted shares" : "אין שיתופים שנמחקו",
- "Pending shares" : "שיתופים ממתינים",
- "No pending shares" : "אין שיתופים ממתינים",
- "Share note" : "פתק שיתוף",
- "Upload files to %s" : "העלאת קבצים על %s",
- "Note" : "פתק",
- "Select or drop files" : "בחירה או השלכה של קבצים",
- "Uploading files" : "מועלים קבצים",
- "Uploaded files:" : "קבצים שהועלו:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "עצם העלאתם של קבצים מביעה את הסכמתך ל%1$sתנאי השירות%2$s.",
- "Add to your Nextcloud" : "הוספה ל־Nextcloud שלך",
- "Files and folders others share with you will show up here" : "קבצים ותיקיות שאחרים שיתפו אתך יוצגו כאן",
- "Files and folders you share will show up here" : "קבצים ותיקיות ששיתפת יוצגו כאן",
- "Files and folders you share by link will show up here" : "קבצים ותיקיות ששיתפת עם קישור יוצגו כאן",
- "Shares you deleted will show up here" : "שיתופים שמחקת יופיעו כאן",
- "Shares you have received but not confirmed will show up here" : "שיתופים שקיבלת אבל לא אישרת יופיעו כאן",
- "Shares will show up here" : "שיתופים יופיעו כאן",
- "Restore" : "שחזור",
- "Something happened. Unable to restore the share." : "משהו התרחש. לא ניתן לשחזר את השיתוף.",
- "Something happened. Unable to accept the share." : "משהו התרחש. לא ניתן לשחזר את השיתוף.",
- "Something happened. Unable to reject the share." : "משהו התרחש. לא ניתן לדחות את השיתוף.",
- "No expiration date set" : "לא הוגדר מועד תפוגה",
- "Please specify a valid user" : "יש לספק משתמש חוקי",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "יישום זה מאפשר למשתמשים לשתף קבצים בתוך Nextcloud. אם מופעלת, מנהל המערכת יכול לבחור אילו קבוצות יוכלו לשתף קבצים. לאחר מכן, המשתמשים הרלוונטיים יכולים לשתף קבצים ותיקיות עם משתמשים וקבוצות אחרים בתוך Nextcloud. בנוסף, אם מנהל המערכת מאפשר את תכונת share link, ניתן להשתמש בקישור חיצוני לשתף קבצים עם משתמשים אחרים מחוץ ל- Nextcloud. מנהלים יכולים גם לאכוף סיסמאות, תאריכי תפוגה, ולאפשר שיתוף שרת לשרת באמצעות קישורי שיתוף, ובנוסף גם שיתוף ממכשירים ניידים.\nכיבוי התכונה מסיר קבצים ותיקיות משותפים בשרת לכל מקבלי השיתוף, וגם ללקוחות הסינכרון ולאפליקציות הסלולריות. מידע נוסף זמין בתיעוד Nextcloud.",
- "Accept user and group shares by default" : "לקבל את שיתופי המשתמשים והקבוצות כבררת מחדל",
- "Read only" : "קריאה בלבד",
- "File drop (upload only)" : "השלכת קבצים (העלאה בלבד)",
- "Upload" : "העלאה",
- "Only works for users with access to this folder" : "עובד רק עבור משתמשים עם גישה לתיקייה הזו",
- "Only works for users with access to this file" : "עובד רק עבור משתמשים עם גישה לקובץ הזה",
- "Circle" : "מעגל",
- "Update" : "עדכון",
- "No other users with access found" : "לא נמצאו משתמשים נוספים עם גישה",
- "No entries found in this folder" : "לא נמצאו כניסות לתיקייה זו",
- "Name" : "שם",
- "Share time" : "זמן שיתוף",
- "Reasons might be:" : "הסיבות יכולות להיות:",
- "the item was removed" : "הפריט הוסר",
- "the link expired" : "הקישור פג תוקף",
- "sharing is disabled" : "השיתוף נוטרל",
- "For more info, please ask the person who sent this link." : "למידע נוסף, יש לפנות לשולח קישור זה."
-},
-"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;");
diff --git a/apps/files_sharing/l10n/he.json b/apps/files_sharing/l10n/he.json
deleted file mode 100644
index 6ce36f0bd01..00000000000
--- a/apps/files_sharing/l10n/he.json
+++ /dev/null
@@ -1,232 +0,0 @@
-{ "translations": {
- "Waiting…" : "בהמתנה…",
- "error" : "שגיאה",
- "finished" : "הסתיים",
- "This will stop your current uploads." : "פעולה זו תעצור את השליחות הנוכחיות שלך.",
- "Move or copy" : "העברה או העתקה",
- "Download" : "הורדה",
- "Delete" : "מחיקה",
- "You can upload into this folder" : "ניתן להעלות לתיקייה זו",
- "Terms of service" : "תנאי שירות",
- "No compatible server found at {remote}" : "לא נמצא שרת תואם בכתובת {remote}",
- "Invalid server URL" : "כתובת השרת שגויה",
- "Failed to add the public link to your Nextcloud" : "אירע כשל בהוספת קישור ציבורי ל־Nextcloud שלך",
- "File shares" : "שיתופי קבצים",
- "Downloaded via public link" : "הורד על בסיס קישור ציבורי",
- "Downloaded by {email}" : "הורד על ידי {email}",
- "{file} downloaded via public link" : "{file} התקבל דרך קישור ציבורי",
- "{email} downloaded {file}" : "{file} הורד על ידי {email}",
- "Shared with group {group}" : "שותף עם הקבוצה {group}",
- "Removed share for group {group}" : "הוסר שיתוף עם הקבוצה {group}",
- "{actor} shared with group {group}" : "שותף עם הקבוצה {group} על ידי {actor}",
- "{actor} removed share for group {group}" : "הוסר השיתוף עם הקבוצה {group} על ידי {actor}",
- "Share for group {group} expired" : "תוקף השיתוף עם הקבוצה {group} פג",
- "You shared {file} with group {group}" : "שיתפת {file} עם הקבוצה {group}",
- "You removed group {group} from {file}" : "הסרת את הקבוצה {group} מהקובץ {file}",
- "{actor} shared {file} with group {group}" : "הקובץ {file} שותף עם הקבוצה {group} על ידי {actor}",
- "{actor} removed group {group} from {file}" : "הקבוצה {group} הוסרה מהשיתוף {file} על ידי {actor}",
- "Share for file {file} with group {group} expired" : "תוקף שיתוף הקובץ {file} עם הקבוצה {group} פג",
- "Shared as public link" : "שותף כקישור ציבורי",
- "Removed public link" : "הסיר/ה קישור ציבורי",
- "Public link expired" : "קישור ציבורי פג תוקף",
- "{actor} shared as public link" : "שותף כקישור ציבורי על ידי {actor}",
- "{actor} removed public link" : "הקישור הציבורי הוסר על ידי {actor}",
- "Public link of {actor} expired" : "תוקף הקישור הציבורי של {actor} פג",
- "You shared {file} as public link" : "שיתפת את {file} כקישור ציבורי",
- "You removed public link for {file}" : "הסרת קישור ציבורי עבור {file}",
- "Public link expired for {file}" : "תוקף הקישור הציבורי עבור {file} פג",
- "{actor} shared {file} as public link" : "{file} שותף כקישור ציבורי על ידי {actor}",
- "{actor} removed public link for {file}" : "הקישור הציבורי עבור {file} הוסר על ידי {actor}",
- "Public link of {actor} for {file} expired" : "תוקף הקישור הציבורי של {actor} עבור {file} פג",
- "{user} accepted the remote share" : "השיתוף המרוחק התקבל על ידי {user}",
- "{user} declined the remote share" : "השיתוף המרוחק נדחה על ידי {user}",
- "You received a new remote share {file} from {user}" : "קיבלת שיתוף מרוחק חדש {file} מאת",
- "{user} accepted the remote share of {file}" : "השיתוף המרוחק של {file} התקבל על ידי {user}",
- "{user} declined the remote share of {file}" : "השיתוף המרוחק של {file} נדחה על ידי {user}",
- "{user} unshared {file} from you" : "{user} ביטל שיתוף של {file} ממך",
- "Shared with {user}" : "שותף עם {user}",
- "Removed share for {user}" : "הוסר השיתוף עבור {user}",
- "You removed yourself" : "הסרת את עצמך",
- "{actor} removed themselves" : "{actor} הסירו את עצמם",
- "{actor} shared with {user}" : "שותף עם {user} על ידי {actor}",
- "{actor} removed share for {user}" : "השיתוף עבור {user} הוסר על ידי {actor}",
- "Shared by {actor}" : "שותף על ידי {actor}",
- "{actor} removed share" : "שיתוף הוסר על ידי {actor}",
- "Share for {user} expired" : "תוקף השיתוף של {user} פג",
- "Share expired" : "תוקף השיתוף פג",
- "You shared {file} with {user}" : "שיתפת את {file} עם {user}",
- "You removed {user} from {file}" : "הסרת את {user} מהקובץ {file}",
- "You removed yourself from {file}" : "הסרת את עצמך מהקובץ {file}",
- "{actor} removed themselves from {file}" : "{actor} הסיר את עצמו מ- {file}",
- "{actor} shared {file} with {user}" : "{file} שותף עם {user} על ידי {actor}",
- "{actor} removed {user} from {file}" : "{actor} הסיר את {user} מ- {file}",
- "{actor} shared {file} with you" : "{actor} שיתף {file} איתך",
- "{actor} removed you from the share named {file}" : "הוסרת מהשיתוף בשם {file} על ידי {actor}",
- "Share for file {file} with {user} expired" : "תוקף שיתוף הקובץ {file} עם {user} פג",
- "Share for file {file} expired" : "שיתוף הקובץ {file} פג",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "קובץ או תיקייה ששותפו בדוא״ל או דרך קישור ציבורי <strong>הורדו</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "קובץ או תיקייה שותפו מ- <strong>שרת אחר</strong>",
- "Files" : "קבצים",
- "A file or folder has been <strong>shared</strong>" : "קובץ או תיקייה <strong>שותפו<strong/>",
- "Shared link" : "שותף קישור",
- "Could not delete share" : "לא ניתן היה למחוק את השיתוף",
- "Please specify a file or folder path" : "יש לספק נתיב לקובץ או תיקייה",
- "Could not create share" : "לא ניתן ליצור שיתוף",
- "Invalid date, date format must be YYYY-MM-DD" : "תאריך לא חוקי, תבנית התאריך חייבת להיות YYYY-MM-DD",
- "Group sharing is disabled by the administrator" : "שיתוף קבוצתי מנוטרל על ידי המנהל",
- "Please specify a valid group" : "יש לספק קבוצה חוקית",
- "Public link sharing is disabled by the administrator" : "שיתוף ציבורי מנוטרל על ידי המנהל",
- "Public upload disabled by the administrator" : "שיתוף ציבורי מנוטרל על ידי המנהל",
- "Public upload is only possible for publicly shared folders" : "העלאה ציבורית אפשרית רק אל תיקיות משותפות ציבוריות",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "שיתוף%s שליחת הסיסמה באמצעות Nextcloud Talk נכשל מכיוון ש- Nextcloud Talk אינו מופעל",
- "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "השיתוף%1$s נכשל מכיוון שה-\"קצה אחורי\" אינו מאפשר שיתופים מסוג %2$s",
- "You cannot share to a Circle if the app is not enabled" : "לא ניתן לשתף למעגל אם היישומון לא מופעל",
- "Please specify a valid circle" : "נא לציין מעגל תקני",
- "Sharing %s failed because the back end does not support room shares" : "השיתוף של%sנכשל מכיוון שה-\"קצה אחורי\" אינו תומך בשיתופי חדרים",
- "Unknown share type" : "סוג שיתוף אינו מוכר",
- "Not a directory" : "אינה תיקייה",
- "Could not lock node" : "לא היה ניתן לנעול את הצומת",
- "Could not lock path" : "לא ניתן היה לנעול נתיב",
- "Wrong or no update parameter given" : "משתנה עדכון שניתן שגוי או לא קיים",
- "shared by %s" : "שותף על ידי %s",
- "Download all files" : "הורדת כל הקבצים",
- "Direct link" : "קישור ישיר",
- "Share API is disabled" : "שיתוף API מנוטרל",
- "File sharing" : "שיתוף קבצים",
- "Share will expire tomorrow" : "תוקף השיתוף יפוג מחר",
- "Your share of {node} will expire tomorrow" : "תוקף השיתוף שלך {node} יפוג מחר",
- "You received {share} as a share by {user}" : "קיבלת {share} כשיתוף מאת {user}",
- "You received {share} to group {group} as a share by {user}" : "קיבלת {share} לקבוצה {group} כשיתוף על ידי {user}",
- "Accept" : "קבלה",
- "Decline" : "דחייה",
- "Sharing" : "שיתוף",
- "Reset" : "איפוס",
- "Invalid path selected" : "הנתיב שנבחר שגוי",
- "Unknown error" : "שגיאה בלתי ידועה",
- "group" : "קבוצה",
- "conversation" : "דיון",
- "remote" : "מרוחק",
- "remote group" : "קבוצה מרוחקת",
- "guest" : "אורח",
- "Shared with the group {user} by {owner}" : "שותף עם הקבוצה {user} על ידי {owner}",
- "Shared with the conversation {user} by {owner}" : "שותף עם הדיון {user} על ידי {owner}",
- "Shared with {user} by {owner}" : "שותף עם {user} על ידי {owner}",
- "Added by {initiator}" : "נוסף על ידי {initiator}",
- "Via “{folder}”" : "דרך „{folder}”",
- "Unshare" : "ביטול שיתוף",
- "Internal link" : "קישור פנימי",
- "Cannot copy, please copy the link manually" : "לא ניתן להעתיק, נא להעתיק את הקישור ידנית",
- "Link copied" : "הקישור הועתק",
- "Please enter the following required information before creating the share" : "נא למלא את הפרטים הנחוצים הבאים בטרם יצירת השיתוף",
- "Password protection (enforced)" : "הגנה בססמה (נאכף)",
- "Password protection" : "Password protection",
- "Enter a password" : "נא להקליד ססמה",
- "Expiration date (enforced)" : "תאריך תפוגה (נאכף)",
- "Enter a date" : "נא למלא תאריך",
- "Create share" : "צור שיתוף",
- "Cancel" : "ביטול",
- "Add another link" : "הוספת קישור נוסף",
- "Create a new share link" : "יצירת קישור שיתוף חדש",
- "{shareWith} by {initiator}" : "{shareWith} באמצעות {initiator}",
- "Shared via link by {initiator}" : "שותף דרך קישור על ידי {initiator}",
- "Share link ({label})" : "שתף קישור ({label})",
- "Share link" : "שיתוף קישור",
- "Error, please enter proper password and/or expiration date" : "שגיאה, נא למלא ססמה ו/או תאריך תפוגה כראוי",
- "View only" : "לצפיה בלבד",
- "Can edit" : "ניתן לערוך",
- "No recommendations. Start typing." : "אין המלצות. נא להתחיל להקליד.",
- "Resharing is not allowed" : "שיתוף מחדש אסור",
- "Name or email …" : "שם או דוא\"ל ...",
- "Name, email, or Federated Cloud ID …" : "שם, דוא\"ל או ID ענן מאוחד...",
- "Searching …" : "מתבצע חיפוש…",
- "No elements found." : "לא נמצאו רכיבים.",
- "Search globally" : "חיפוש גלובלי",
- "Guest" : "אורח/ת",
- "Group" : "קבוצה",
- "Email" : "דוא״ל",
- "Deck board" : "לוח חסיפה",
- "on {server}" : "על גבי {server}",
- "Allow upload and editing" : "לאפשר העלאה ועריכה",
- "Allow editing" : "לאפשר עריכה",
- "Advanced settings" : "הגדרות מתקדמות",
- "Share label" : "שתף תווית",
- "Password" : "ססמה",
- "Video verification" : "אימות וידאו",
- "Set expiration date" : "הגדרת תאריך תפוגה",
- "Expiration date" : "מועד תפוגה",
- "Hide download" : "הסתרת הורדה",
- "Note to recipient" : "מסר לנמען",
- "Enter a note for the share recipient" : "נא להוסיף הערה למקבלי השיתוף",
- "Read" : "קריאה",
- "Edit" : "עריכה",
- "Share" : "שיתוף",
- "Others with access" : "נוספים עם גישה",
- "Toggle list of others with access to this directory" : "החלפת מצב הנוספים עם גישה לתיקייה הזאת",
- "Toggle list of others with access to this file" : "החלפת מצב הנוספים עם גישה לקובץ הזה",
- "Unable to fetch inherited shares" : "לא ניתן לקבל את השיתופים שנורשו",
- "Unable to load the shares list" : "לא ניתן לטעון את רשימת השיתופים",
- "Expires {relativetime}" : "תפוגה: {relativetime}",
- "this share just expired." : "תוקף השיתוף פג זה עתה.",
- "Shared with you by {owner}" : "שותף אתך על ידי {owner}",
- "Shared" : "משותף",
- "Link to a file" : "קישור לקובץ",
- "Error creating the share" : "יצירת השיתוף נכשלה",
- "Error updating the share" : "שגיאה בעדכון השיתוף",
- "Shared by" : "שותף על־ידי",
- "Shared with" : "משותף עם",
- "Shared with you and the group {group} by {owner}" : "שותף אתך ועם הקבוצה {group} על ידי {owner}",
- "Shared with you and {circle} by {owner}" : "משותף אתך ועם {circle} על ידי {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "שותף אתך והדיון {conversation} על ידי {owner}",
- "Shared with you in a conversation by {owner}" : "שותף אתך בדיון על ידי {owner}",
- "Shares" : "שיתופים",
- "No shares" : "אין שיתופים",
- "Shared with you" : "שיתף/שיתפה אתך",
- "Nothing shared with you yet" : "עדיין לא שיתפו אתך דבר",
- "Shared with others" : "משותף עם אחרים",
- "Nothing shared yet" : "עדיין לא שותף דבר",
- "Shared by link" : "משותף עם קישור",
- "No shared links" : "אין קישורים משותפים",
- "Deleted shares" : "שיתופים שנמחקו",
- "No deleted shares" : "אין שיתופים שנמחקו",
- "Pending shares" : "שיתופים ממתינים",
- "No pending shares" : "אין שיתופים ממתינים",
- "Share note" : "פתק שיתוף",
- "Upload files to %s" : "העלאת קבצים על %s",
- "Note" : "פתק",
- "Select or drop files" : "בחירה או השלכה של קבצים",
- "Uploading files" : "מועלים קבצים",
- "Uploaded files:" : "קבצים שהועלו:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "עצם העלאתם של קבצים מביעה את הסכמתך ל%1$sתנאי השירות%2$s.",
- "Add to your Nextcloud" : "הוספה ל־Nextcloud שלך",
- "Files and folders others share with you will show up here" : "קבצים ותיקיות שאחרים שיתפו אתך יוצגו כאן",
- "Files and folders you share will show up here" : "קבצים ותיקיות ששיתפת יוצגו כאן",
- "Files and folders you share by link will show up here" : "קבצים ותיקיות ששיתפת עם קישור יוצגו כאן",
- "Shares you deleted will show up here" : "שיתופים שמחקת יופיעו כאן",
- "Shares you have received but not confirmed will show up here" : "שיתופים שקיבלת אבל לא אישרת יופיעו כאן",
- "Shares will show up here" : "שיתופים יופיעו כאן",
- "Restore" : "שחזור",
- "Something happened. Unable to restore the share." : "משהו התרחש. לא ניתן לשחזר את השיתוף.",
- "Something happened. Unable to accept the share." : "משהו התרחש. לא ניתן לשחזר את השיתוף.",
- "Something happened. Unable to reject the share." : "משהו התרחש. לא ניתן לדחות את השיתוף.",
- "No expiration date set" : "לא הוגדר מועד תפוגה",
- "Please specify a valid user" : "יש לספק משתמש חוקי",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "יישום זה מאפשר למשתמשים לשתף קבצים בתוך Nextcloud. אם מופעלת, מנהל המערכת יכול לבחור אילו קבוצות יוכלו לשתף קבצים. לאחר מכן, המשתמשים הרלוונטיים יכולים לשתף קבצים ותיקיות עם משתמשים וקבוצות אחרים בתוך Nextcloud. בנוסף, אם מנהל המערכת מאפשר את תכונת share link, ניתן להשתמש בקישור חיצוני לשתף קבצים עם משתמשים אחרים מחוץ ל- Nextcloud. מנהלים יכולים גם לאכוף סיסמאות, תאריכי תפוגה, ולאפשר שיתוף שרת לשרת באמצעות קישורי שיתוף, ובנוסף גם שיתוף ממכשירים ניידים.\nכיבוי התכונה מסיר קבצים ותיקיות משותפים בשרת לכל מקבלי השיתוף, וגם ללקוחות הסינכרון ולאפליקציות הסלולריות. מידע נוסף זמין בתיעוד Nextcloud.",
- "Accept user and group shares by default" : "לקבל את שיתופי המשתמשים והקבוצות כבררת מחדל",
- "Read only" : "קריאה בלבד",
- "File drop (upload only)" : "השלכת קבצים (העלאה בלבד)",
- "Upload" : "העלאה",
- "Only works for users with access to this folder" : "עובד רק עבור משתמשים עם גישה לתיקייה הזו",
- "Only works for users with access to this file" : "עובד רק עבור משתמשים עם גישה לקובץ הזה",
- "Circle" : "מעגל",
- "Update" : "עדכון",
- "No other users with access found" : "לא נמצאו משתמשים נוספים עם גישה",
- "No entries found in this folder" : "לא נמצאו כניסות לתיקייה זו",
- "Name" : "שם",
- "Share time" : "זמן שיתוף",
- "Reasons might be:" : "הסיבות יכולות להיות:",
- "the item was removed" : "הפריט הוסר",
- "the link expired" : "הקישור פג תוקף",
- "sharing is disabled" : "השיתוף נוטרל",
- "For more info, please ask the person who sent this link." : "למידע נוסף, יש לפנות לשולח קישור זה."
-},"pluralForm" :"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/hr.js b/apps/files_sharing/l10n/hr.js
deleted file mode 100644
index c8804482837..00000000000
--- a/apps/files_sharing/l10n/hr.js
+++ /dev/null
@@ -1,246 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Waiting…" : "Čekanje…",
- "error" : "pogreška",
- "finished" : "završeno",
- "This will stop your current uploads." : "Ovo će zaustaviti vaše trenutačne otpreme.",
- "Move or copy" : "Premjesti ili kopiraj",
- "Download" : "Preuzmi",
- "Delete" : "Izbriši",
- "You can upload into this folder" : "Možete otpremiti u ovu mapu",
- "Terms of service" : "Uvjeti pružanja usluge",
- "No compatible server found at {remote}" : "Nije pronađen nijedan kompatibilni poslužitelj na {remote}",
- "Invalid server URL" : "Nevažeći URL poslužitelja",
- "Failed to add the public link to your Nextcloud" : "Dodavanje javne poveznice u Nextcloud nije uspjelo",
- "File shares" : "Dijeljenja datoteke",
- "Downloaded via public link" : "Preuzeto putem javne poveznice",
- "Downloaded by {email}" : "Preuzeo {email}",
- "{file} downloaded via public link" : "{file} preuzeto putem javne poveznice",
- "{email} downloaded {file}" : "{email} preuzeo {file}",
- "Shared with group {group}" : "Dijeljeno s grupom {group}",
- "Removed share for group {group}" : "Uklonjeno dijeljenje za grupu {group}",
- "{actor} shared with group {group}" : "{actor} dijeli s grupom {group}",
- "{actor} removed share for group {group}" : "{actor} je uklonio dijeljenje za grupu {group}",
- "Share for group {group} expired" : "Isteklo je dijeljenje za grupu {group}",
- "You shared {file} with group {group}" : "Dijelite {file} s grupom {group}",
- "You removed group {group} from {file}" : "Uklonili ste grupu {group} iz {file}",
- "{actor} shared {file} with group {group}" : "{actor} dijeli {file} s grupom {group}",
- "{actor} removed group {group} from {file}" : "{actor} je uklonio grupu {group} iz {file}",
- "Share for file {file} with group {group} expired" : "Isteklo je dijeljenje datoteke {file} s grupom {group}",
- "Shared as public link" : "Dijeljeno kao javna poveznica",
- "Removed public link" : "Uklonjena javna poveznica",
- "Public link expired" : "Javna poveznica je istekla",
- "{actor} shared as public link" : "{actor} dijeli kao javnu poveznicu",
- "{actor} removed public link" : "{actor} je uklonio javnu poveznicu",
- "Public link of {actor} expired" : "Istekla je javna poveznica {actor}",
- "You shared {file} as public link" : "Dijelite {file} kao javnu poveznicu",
- "You removed public link for {file}" : "Uklonili ste javnu poveznicu na {file}",
- "Public link expired for {file}" : "Istekla je javna poveznica za {file}",
- "{actor} shared {file} as public link" : "{actor} dijeli {file} kao javnu poveznicu",
- "{actor} removed public link for {file}" : "{actor} je uklonio javnu poveznicu za {file}",
- "Public link of {actor} for {file} expired" : "Istekla je javna poveznica {actor} za {file}",
- "{user} accepted the remote share" : "{user} je prihvatio udaljeno dijeljenje",
- "{user} declined the remote share" : "{user} je odbio udaljeno dijeljenje",
- "You received a new remote share {file} from {user}" : "Primili ste novo udaljeno dijeljenje {file} od {user}",
- "{user} accepted the remote share of {file}" : "{user} je prihvatio udaljeno dijeljenje {file}",
- "{user} declined the remote share of {file}" : "{user} je odbio udaljeno dijeljenje {file}",
- "{user} unshared {file} from you" : "{user} je prestao dijeliti {file} s vama",
- "Shared with {user}" : "Dijeljeno s {user}",
- "Removed share for {user}" : "Uklonjeno dijeljenje za {user}",
- "You removed yourself" : "Uklonili ste sami",
- "{actor} removed themselves" : "{actor} je sam uklonio",
- "{actor} shared with {user}" : "{actor} dijeli s {user}",
- "{actor} removed share for {user}" : "{actor} je uklonio dijeljenje za {user}",
- "Shared by {actor}" : "Dijeli {actor}",
- "{actor} removed share" : "{actor} je uklonio dijeljenje",
- "Share for {user} expired" : "Isteklo je dijeljenje za {user}",
- "Share expired" : "Dijeljenje je isteklo",
- "You shared {file} with {user}" : "Dijelite {file} s {user}",
- "You removed {user} from {file}" : "Uklonili ste {user} iz {file}",
- "You removed yourself from {file}" : "Uklonili ste sebe iz {file}",
- "{actor} removed themselves from {file}" : "{actor} je uklonio sebe iz {file}",
- "{actor} shared {file} with {user}" : "{actor} dijeli {file} s {user}",
- "{actor} removed {user} from {file}" : "{actor} je uklonio {user} iz {file}",
- "{actor} shared {file} with you" : "{actor} dijeli {file} s vama",
- "{actor} removed you from the share named {file}" : "{actor} vas je uklonio iz dijeljenja pod nazivom {file}",
- "Share for file {file} with {user} expired" : "Isteklo je dijeljenje datoteke {file} s {user}",
- "Share for file {file} expired" : "Isteklo je dijeljenje datoteke {file}",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Datoteka ili mapa dijeljena poštom ili javnom poveznicom <strong>je preuzeta</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Datoteka ili mapa dijeli se s <strong>drugog poslužitelja</strong>",
- "Files" : "Datoteke",
- "A file or folder has been <strong>shared</strong>" : "Datoteka ili mapa je <strong>dijeljena</strong>",
- "Shared link" : "Dijeljena poveznica",
- "Could not delete share" : "Dijeljenje nije moguće izbrisati",
- "Please specify a file or folder path" : "Navedite put datoteke ili mape",
- "Could not create share" : "Nije moguće stvoriti dijeljenje",
- "Invalid permissions" : "Nevažeća dopuštenja",
- "Invalid date, date format must be YYYY-MM-DD" : "Nevažeći datum, oblik datuma mora biti GGGG-MM-DD",
- "Group sharing is disabled by the administrator" : "Administrator je onemogućio grupno dijeljenje",
- "Please specify a valid group" : "Navedite valjanu grupu",
- "Public link sharing is disabled by the administrator" : "Administrator je onemogućio dijeljenje javnih poveznica",
- "Public upload disabled by the administrator" : "Administrator je onemogućio javno otpremanje",
- "Public upload is only possible for publicly shared folders" : "Javno otpremanje moguće je samo za javno dijeljene mape",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Neuspješno dijeljenje %s slanjem zaporke za Nextcloud Talk jer Nextcloud Talk nije omogućen",
- "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Neuspješno dijeljenje %1$s jer pozadinski servis ne dopušta dijeljenje vrste %2$s",
- "Please specify a valid federated group ID" : "Navedite važeći ID udružene grupe",
- "You cannot share to a Circle if the app is not enabled" : "Ne možete dijeliti s krugom ako aplikacija nije omogućena",
- "Please specify a valid circle" : "Navedite valjani krug",
- "Sharing %s failed because the back end does not support room shares" : "Neuspješno dijeljenje %s jer pozadinski servis ne dopušta dijeljenje između soba",
- "Unknown share type" : "Nepoznata vrsta dijeljenja",
- "Not a directory" : "Nije imenik",
- "Could not lock node" : "Nije moguće zaključati čvorište",
- "Could not lock path" : "Put nije moguće zaključati",
- "Wrong or no update parameter given" : "Pogrešan parametar ili nije dodan parametar ažuriranja",
- "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "„Slanje zaporke putem aplikacije Nextcloud Talk“ radi dijeljenja datoteke ili mape nije uspjelo jer Nextcloud Talk nije omogućen.",
- "shared by %s" : "dijeli %s",
- "Download all files" : "Preuzmi sve datoteke",
- "Direct link" : "Izravna poveznica",
- "Add to your %s" : "Dodajte u svoj %s",
- "Share API is disabled" : "API za dijeljenje je onemogućen",
- "File sharing" : "Dijeljenje datoteka",
- "Share will expire tomorrow" : "Dijeljenje istječe sutra",
- "Your share of {node} will expire tomorrow" : "Vaše dijeljenje {node} istječe sutra",
- "You received {share} as a share by {user}" : "Primili ste {share} kao dijeljenje od {user}",
- "You received {share} to group {group} as a share by {user}" : "Primili ste {share} grupi {group} kao dijeljenje od {user}",
- "Accept" : "Prihvati",
- "Decline" : "Odbij",
- "Sharing" : "Dijeljenje",
- "Reset" : "Resetiraj",
- "Invalid path selected" : "Odabran nevažeći put",
- "Unknown error" : "Nepoznata pogreška",
- "group" : "grupa",
- "conversation" : "razgovor",
- "remote" : "na daljinu",
- "remote group" : "udaljena grupa",
- "guest" : "gost",
- "Shared with the group {user} by {owner}" : "S grupom {user} dijeli {owner}",
- "Shared with the conversation {user} by {owner}" : "S razgovorom {user} dijeli {owner}",
- "Shared with {user} by {owner}" : "S {user} dijeli {owner}",
- "Added by {initiator}" : "Dodao {initiator}",
- "Via “{folder}”" : "Putem „{folder}“",
- "Unshare" : "Prestani dijeliti",
- "Internal link" : "Interna poveznica",
- "Cannot copy, please copy the link manually" : "Kopiranje nije moguće, ručno kopirajte poveznicu",
- "Link copied" : "Poveznica je kopirana",
- "Please enter the following required information before creating the share" : "Unesite sljedeće informacije prije stvaranja dijeljenja",
- "Password protection (enforced)" : "Zaštita zaporkom (provedeno)",
- "Password protection" : "Zaštita zaporkom",
- "Enter a password" : "Unesite zaporku",
- "Expiration date (enforced)" : "Datum isteka (provedeno)",
- "Enter a date" : "Unesi datum",
- "Create share" : "Stvori dijeljenje",
- "Cancel" : "Odustani",
- "Add another link" : "Dodaj drugu poveznicu",
- "Create a new share link" : "Stvori novu poveznicu dijeljenja",
- "{shareWith} by {initiator}" : "{shareWith} od {initiator}",
- "Shared via link by {initiator}" : "Dijeli {initiator} putem poveznice",
- "Mail share ({label})" : "Dijeljenje poštom ({label})",
- "Share link ({label})" : "Poveznica dijeljenja ({label})",
- "Share link" : "Dijeli poveznicu",
- "Error, please enter proper password and/or expiration date" : "Pogreška, unesite točnu zaporku i/ili datum isteka",
- "View only" : "Samo za gledanje",
- "Can edit" : "Uređivanje moguće",
- "File drop" : "Povlačenje datoteke",
- "No recommendations. Start typing." : "Nema preporuka. Započnite unos.",
- "Resharing is not allowed" : "Ponovno dijeljenje nije dopušteno",
- "Name or email …" : "Ime ili adresa e-pošte…",
- "Name, email, or Federated Cloud ID …" : "Naziv, adresa e-pošte ili ID udruženog oblaka…",
- "Searching …" : "Traženje…",
- "No elements found." : "Elementi nisu pronađeni.",
- "Search globally" : "Pretraži globalno",
- "Guest" : "Gost",
- "Group" : "Grupa",
- "Email" : "E-pošta",
- "Talk conversation" : "Razgovori u alatu Talk",
- "Deck board" : "Deck ploča",
- "on {server}" : "na {server}",
- "Allow upload and editing" : "Omogući otpremanje i uređivanje",
- "Allow editing" : "Dopusti uređivanje",
- "Advanced settings" : "Napredne postavke",
- "Share label" : "oznaka za dijeljenje",
- "Password" : "Zaporka",
- "Video verification" : "Provjera videozapisa",
- "Set expiration date" : "Postavi datum isteka",
- "Expiration date" : "Datum isteka",
- "Hide download" : "Sakrij preuzimanje",
- "Note to recipient" : "Obavijest primatelju",
- "Enter a note for the share recipient" : "Unesite bilješku za primatelja dijeljenja",
- "Read" : "Čitaj",
- "Create" : "Stvori",
- "Edit" : "Uredi",
- "Share" : "Dijeli",
- "Delete share" : "Izbriši dijeljenje",
- "Others with access" : "Korisnici s omogućenim pristupom",
- "Toggle list of others with access to this directory" : "Uključi/isključi popis korisnika koji smiju pristupiti ovom direktoriju",
- "Toggle list of others with access to this file" : "Uključi/isključi popis korisnika koji smiju pristupiti ovoj datoteci",
- "Unable to fetch inherited shares" : "Neuspješno dohvaćanje naslijeđenih dijeljenja",
- "Unable to load the shares list" : "Nije moguće učitati popis dijeljenja",
- "Expires {relativetime}" : "Istječe {relativetime}",
- "this share just expired." : "ovo dijeljenje je upravo isteklo.",
- "Shared with you by {owner}" : "S vama podijelio {owner}",
- "Shared" : "Dijeljeno",
- "Link to a file" : "Poveži s datotekom",
- "Error creating the share: {errorMessage}" : "Pogreška pri stvaranju dijeljenja: {errorMessage}",
- "Error creating the share" : "Pogreška pri stvaranju dijeljenja",
- "Error updating the share: {errorMessage}" : "Pogreška pri ažuriranju dijeljenja: {errorMessage}",
- "Error updating the share" : "Pogreška pri ažuriranju dijeljenja",
- "Shared by" : "Podijeljeno od",
- "Shared with" : "Dijeljeno s",
- "Shared with you and the group {group} by {owner}" : "Dijeljeno s vama i grupom {group} vlasnika {owner}",
- "Shared with you and {circle} by {owner}" : "Dijeljeno s vama i {circle} od strane {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Dijeljeno s vama i razgovorom {conversation} vlasnika {owner}",
- "Shared with you in a conversation by {owner}" : "{owner} dijeli s vama u razgovoru",
- "Shares" : "Dijeljenja",
- "No shares" : "Nema dijeljenja",
- "Shared with you" : "Podijeljeno s vama",
- "Nothing shared with you yet" : "Još ništa nije dijeljeno s vama",
- "Shared with others" : "Podijeljeno s ostalima",
- "Nothing shared yet" : "Još ništa nije dijeljeno",
- "Shared by link" : "Podijeljeno putem poveznice",
- "No shared links" : "Nema dijeljenih poveznica",
- "Deleted shares" : "Izbrisana dijeljenja",
- "No deleted shares" : "Nema izbrisanih dijeljenja",
- "Pending shares" : "Dijeljenja na čekanju",
- "No pending shares" : "Nema dijeljenja na čekanju",
- "Share note" : "Dijeli bilješku",
- "Upload files to %s" : "Otpremi datoteke na %s",
- "Note" : "Bilješka",
- "Select or drop files" : "Odaberi ili ispusti datoteke",
- "Uploading files" : "Otpremanje datoteka",
- "Uploaded files:" : "Otpremljene datoteke:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "Otpremanjem datoteka prihvaćate %1$ uvjete korištenja usluge%2$s.",
- "Add to your Nextcloud" : "Dodaj u svoj Nextcloud",
- "Files and folders others share with you will show up here" : "Ovdje će se prikazati datoteke i mape koje drugi podijele s vama",
- "Files and folders you share will show up here" : "Ovdje će se prikazati datoteke i mape koje dijelite",
- "Files and folders you share by link will show up here" : "Ovdje će se prikazati datoteke i mape koje dijelite putem poveznice",
- "Shares you deleted will show up here" : "Ovdje će se prikazati izbrisana dijeljenja",
- "Shares you have received but not confirmed will show up here" : "Ovdje će se prikazati primljena dijeljenja koja nisu potvrđena",
- "Shares will show up here" : "Ovdje će se prikazati dijeljenja",
- "Restore" : "Vrati",
- "Something happened. Unable to restore the share." : "Nešto se dogodilo. Dijeljenje nije moguće vratiti.",
- "Something happened. Unable to accept the share." : "Nešto se dogodilo. Dijeljenje nije moguće prihvatiti.",
- "Something happened. Unable to reject the share." : "Nešto se dogodilo. Dijeljenje nije moguće odbiti.",
- "No expiration date set" : "Nije postavljen datum isteka",
- "Please specify a valid user" : "Navedite valjanog korisnika",
- "Please specify a valid federated user ID" : "Navedite važeći ID udruženog korisnika",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Ova aplikacija omogućuje korisnicima dijeljenje datoteka unutar Nextclouda. Ako je omogućena, administrator može odabrati grupe koje mogu dijeliti datoteke. Tada važeći korisnici mogu dijeliti datoteke i mape s drugim korisnicima i grupama unutar Nextclouda. Ako administrator omogući značajku poveznice dijeljenja, vanjska poveznica može se koristiti za dijeljenje datoteka s drugim korisnicima izvan Nextclouda. Administratori također mogu nametnuti zaporke, datume isteka i omogućiti dijeljenje između poslužitelja putem poveznica za dijeljenje, kao i dijeljenje s mobilnih uređaja.\nIsključivanjem ove značajke uklanjaju se dijeljene datoteke i mape s poslužitelja za sve primatelje dijeljenja, a također i s klijenata za sinkronizaciju i mobilnih aplikacija. Više informacija možete pronaći u Nextcloudovoj dokumentaciji.",
- "Accept user and group shares by default" : "Automatski prihvati dijeljenja korisnika i grupa",
- "Read only" : "Samo za čitanje",
- "File drop (upload only)" : "Povlačenje datoteke (samo za otpremanje)",
- "Upload" : "Otpremi",
- "Only works for users with access to this folder" : "Samo za korisnike koji smiju pristupiti ovoj mapi",
- "Only works for users with access to this file" : "Samo za korisnike koji smiju pristupiti ovoj datoteci",
- "Circle" : "Krug",
- "Update" : "Ažuriraj",
- "No other users with access found" : "Nije pronađen nijedan drugi korisnik s omogućenim pristupom",
- "No entries found in this folder" : "U ovoj mapi nisu pronađeni nikakvi zapisi",
- "Name" : "Naziv",
- "Share time" : "Vrijeme dijeljenja",
- "Reasons might be:" : "Mogući razlozi su:",
- "the item was removed" : "stavka je uklonjena",
- "the link expired" : "poveznica je istekla",
- "sharing is disabled" : "dijeljenje je onemogućeno",
- "For more info, please ask the person who sent this link." : "Za više se informacija obratite osobi koja je poslala ovu poveznicu."
-},
-"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/hr.json b/apps/files_sharing/l10n/hr.json
deleted file mode 100644
index 518ce8a2e63..00000000000
--- a/apps/files_sharing/l10n/hr.json
+++ /dev/null
@@ -1,244 +0,0 @@
-{ "translations": {
- "Waiting…" : "Čekanje…",
- "error" : "pogreška",
- "finished" : "završeno",
- "This will stop your current uploads." : "Ovo će zaustaviti vaše trenutačne otpreme.",
- "Move or copy" : "Premjesti ili kopiraj",
- "Download" : "Preuzmi",
- "Delete" : "Izbriši",
- "You can upload into this folder" : "Možete otpremiti u ovu mapu",
- "Terms of service" : "Uvjeti pružanja usluge",
- "No compatible server found at {remote}" : "Nije pronađen nijedan kompatibilni poslužitelj na {remote}",
- "Invalid server URL" : "Nevažeći URL poslužitelja",
- "Failed to add the public link to your Nextcloud" : "Dodavanje javne poveznice u Nextcloud nije uspjelo",
- "File shares" : "Dijeljenja datoteke",
- "Downloaded via public link" : "Preuzeto putem javne poveznice",
- "Downloaded by {email}" : "Preuzeo {email}",
- "{file} downloaded via public link" : "{file} preuzeto putem javne poveznice",
- "{email} downloaded {file}" : "{email} preuzeo {file}",
- "Shared with group {group}" : "Dijeljeno s grupom {group}",
- "Removed share for group {group}" : "Uklonjeno dijeljenje za grupu {group}",
- "{actor} shared with group {group}" : "{actor} dijeli s grupom {group}",
- "{actor} removed share for group {group}" : "{actor} je uklonio dijeljenje za grupu {group}",
- "Share for group {group} expired" : "Isteklo je dijeljenje za grupu {group}",
- "You shared {file} with group {group}" : "Dijelite {file} s grupom {group}",
- "You removed group {group} from {file}" : "Uklonili ste grupu {group} iz {file}",
- "{actor} shared {file} with group {group}" : "{actor} dijeli {file} s grupom {group}",
- "{actor} removed group {group} from {file}" : "{actor} je uklonio grupu {group} iz {file}",
- "Share for file {file} with group {group} expired" : "Isteklo je dijeljenje datoteke {file} s grupom {group}",
- "Shared as public link" : "Dijeljeno kao javna poveznica",
- "Removed public link" : "Uklonjena javna poveznica",
- "Public link expired" : "Javna poveznica je istekla",
- "{actor} shared as public link" : "{actor} dijeli kao javnu poveznicu",
- "{actor} removed public link" : "{actor} je uklonio javnu poveznicu",
- "Public link of {actor} expired" : "Istekla je javna poveznica {actor}",
- "You shared {file} as public link" : "Dijelite {file} kao javnu poveznicu",
- "You removed public link for {file}" : "Uklonili ste javnu poveznicu na {file}",
- "Public link expired for {file}" : "Istekla je javna poveznica za {file}",
- "{actor} shared {file} as public link" : "{actor} dijeli {file} kao javnu poveznicu",
- "{actor} removed public link for {file}" : "{actor} je uklonio javnu poveznicu za {file}",
- "Public link of {actor} for {file} expired" : "Istekla je javna poveznica {actor} za {file}",
- "{user} accepted the remote share" : "{user} je prihvatio udaljeno dijeljenje",
- "{user} declined the remote share" : "{user} je odbio udaljeno dijeljenje",
- "You received a new remote share {file} from {user}" : "Primili ste novo udaljeno dijeljenje {file} od {user}",
- "{user} accepted the remote share of {file}" : "{user} je prihvatio udaljeno dijeljenje {file}",
- "{user} declined the remote share of {file}" : "{user} je odbio udaljeno dijeljenje {file}",
- "{user} unshared {file} from you" : "{user} je prestao dijeliti {file} s vama",
- "Shared with {user}" : "Dijeljeno s {user}",
- "Removed share for {user}" : "Uklonjeno dijeljenje za {user}",
- "You removed yourself" : "Uklonili ste sami",
- "{actor} removed themselves" : "{actor} je sam uklonio",
- "{actor} shared with {user}" : "{actor} dijeli s {user}",
- "{actor} removed share for {user}" : "{actor} je uklonio dijeljenje za {user}",
- "Shared by {actor}" : "Dijeli {actor}",
- "{actor} removed share" : "{actor} je uklonio dijeljenje",
- "Share for {user} expired" : "Isteklo je dijeljenje za {user}",
- "Share expired" : "Dijeljenje je isteklo",
- "You shared {file} with {user}" : "Dijelite {file} s {user}",
- "You removed {user} from {file}" : "Uklonili ste {user} iz {file}",
- "You removed yourself from {file}" : "Uklonili ste sebe iz {file}",
- "{actor} removed themselves from {file}" : "{actor} je uklonio sebe iz {file}",
- "{actor} shared {file} with {user}" : "{actor} dijeli {file} s {user}",
- "{actor} removed {user} from {file}" : "{actor} je uklonio {user} iz {file}",
- "{actor} shared {file} with you" : "{actor} dijeli {file} s vama",
- "{actor} removed you from the share named {file}" : "{actor} vas je uklonio iz dijeljenja pod nazivom {file}",
- "Share for file {file} with {user} expired" : "Isteklo je dijeljenje datoteke {file} s {user}",
- "Share for file {file} expired" : "Isteklo je dijeljenje datoteke {file}",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Datoteka ili mapa dijeljena poštom ili javnom poveznicom <strong>je preuzeta</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Datoteka ili mapa dijeli se s <strong>drugog poslužitelja</strong>",
- "Files" : "Datoteke",
- "A file or folder has been <strong>shared</strong>" : "Datoteka ili mapa je <strong>dijeljena</strong>",
- "Shared link" : "Dijeljena poveznica",
- "Could not delete share" : "Dijeljenje nije moguće izbrisati",
- "Please specify a file or folder path" : "Navedite put datoteke ili mape",
- "Could not create share" : "Nije moguće stvoriti dijeljenje",
- "Invalid permissions" : "Nevažeća dopuštenja",
- "Invalid date, date format must be YYYY-MM-DD" : "Nevažeći datum, oblik datuma mora biti GGGG-MM-DD",
- "Group sharing is disabled by the administrator" : "Administrator je onemogućio grupno dijeljenje",
- "Please specify a valid group" : "Navedite valjanu grupu",
- "Public link sharing is disabled by the administrator" : "Administrator je onemogućio dijeljenje javnih poveznica",
- "Public upload disabled by the administrator" : "Administrator je onemogućio javno otpremanje",
- "Public upload is only possible for publicly shared folders" : "Javno otpremanje moguće je samo za javno dijeljene mape",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Neuspješno dijeljenje %s slanjem zaporke za Nextcloud Talk jer Nextcloud Talk nije omogućen",
- "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Neuspješno dijeljenje %1$s jer pozadinski servis ne dopušta dijeljenje vrste %2$s",
- "Please specify a valid federated group ID" : "Navedite važeći ID udružene grupe",
- "You cannot share to a Circle if the app is not enabled" : "Ne možete dijeliti s krugom ako aplikacija nije omogućena",
- "Please specify a valid circle" : "Navedite valjani krug",
- "Sharing %s failed because the back end does not support room shares" : "Neuspješno dijeljenje %s jer pozadinski servis ne dopušta dijeljenje između soba",
- "Unknown share type" : "Nepoznata vrsta dijeljenja",
- "Not a directory" : "Nije imenik",
- "Could not lock node" : "Nije moguće zaključati čvorište",
- "Could not lock path" : "Put nije moguće zaključati",
- "Wrong or no update parameter given" : "Pogrešan parametar ili nije dodan parametar ažuriranja",
- "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "„Slanje zaporke putem aplikacije Nextcloud Talk“ radi dijeljenja datoteke ili mape nije uspjelo jer Nextcloud Talk nije omogućen.",
- "shared by %s" : "dijeli %s",
- "Download all files" : "Preuzmi sve datoteke",
- "Direct link" : "Izravna poveznica",
- "Add to your %s" : "Dodajte u svoj %s",
- "Share API is disabled" : "API za dijeljenje je onemogućen",
- "File sharing" : "Dijeljenje datoteka",
- "Share will expire tomorrow" : "Dijeljenje istječe sutra",
- "Your share of {node} will expire tomorrow" : "Vaše dijeljenje {node} istječe sutra",
- "You received {share} as a share by {user}" : "Primili ste {share} kao dijeljenje od {user}",
- "You received {share} to group {group} as a share by {user}" : "Primili ste {share} grupi {group} kao dijeljenje od {user}",
- "Accept" : "Prihvati",
- "Decline" : "Odbij",
- "Sharing" : "Dijeljenje",
- "Reset" : "Resetiraj",
- "Invalid path selected" : "Odabran nevažeći put",
- "Unknown error" : "Nepoznata pogreška",
- "group" : "grupa",
- "conversation" : "razgovor",
- "remote" : "na daljinu",
- "remote group" : "udaljena grupa",
- "guest" : "gost",
- "Shared with the group {user} by {owner}" : "S grupom {user} dijeli {owner}",
- "Shared with the conversation {user} by {owner}" : "S razgovorom {user} dijeli {owner}",
- "Shared with {user} by {owner}" : "S {user} dijeli {owner}",
- "Added by {initiator}" : "Dodao {initiator}",
- "Via “{folder}”" : "Putem „{folder}“",
- "Unshare" : "Prestani dijeliti",
- "Internal link" : "Interna poveznica",
- "Cannot copy, please copy the link manually" : "Kopiranje nije moguće, ručno kopirajte poveznicu",
- "Link copied" : "Poveznica je kopirana",
- "Please enter the following required information before creating the share" : "Unesite sljedeće informacije prije stvaranja dijeljenja",
- "Password protection (enforced)" : "Zaštita zaporkom (provedeno)",
- "Password protection" : "Zaštita zaporkom",
- "Enter a password" : "Unesite zaporku",
- "Expiration date (enforced)" : "Datum isteka (provedeno)",
- "Enter a date" : "Unesi datum",
- "Create share" : "Stvori dijeljenje",
- "Cancel" : "Odustani",
- "Add another link" : "Dodaj drugu poveznicu",
- "Create a new share link" : "Stvori novu poveznicu dijeljenja",
- "{shareWith} by {initiator}" : "{shareWith} od {initiator}",
- "Shared via link by {initiator}" : "Dijeli {initiator} putem poveznice",
- "Mail share ({label})" : "Dijeljenje poštom ({label})",
- "Share link ({label})" : "Poveznica dijeljenja ({label})",
- "Share link" : "Dijeli poveznicu",
- "Error, please enter proper password and/or expiration date" : "Pogreška, unesite točnu zaporku i/ili datum isteka",
- "View only" : "Samo za gledanje",
- "Can edit" : "Uređivanje moguće",
- "File drop" : "Povlačenje datoteke",
- "No recommendations. Start typing." : "Nema preporuka. Započnite unos.",
- "Resharing is not allowed" : "Ponovno dijeljenje nije dopušteno",
- "Name or email …" : "Ime ili adresa e-pošte…",
- "Name, email, or Federated Cloud ID …" : "Naziv, adresa e-pošte ili ID udruženog oblaka…",
- "Searching …" : "Traženje…",
- "No elements found." : "Elementi nisu pronađeni.",
- "Search globally" : "Pretraži globalno",
- "Guest" : "Gost",
- "Group" : "Grupa",
- "Email" : "E-pošta",
- "Talk conversation" : "Razgovori u alatu Talk",
- "Deck board" : "Deck ploča",
- "on {server}" : "na {server}",
- "Allow upload and editing" : "Omogući otpremanje i uređivanje",
- "Allow editing" : "Dopusti uređivanje",
- "Advanced settings" : "Napredne postavke",
- "Share label" : "oznaka za dijeljenje",
- "Password" : "Zaporka",
- "Video verification" : "Provjera videozapisa",
- "Set expiration date" : "Postavi datum isteka",
- "Expiration date" : "Datum isteka",
- "Hide download" : "Sakrij preuzimanje",
- "Note to recipient" : "Obavijest primatelju",
- "Enter a note for the share recipient" : "Unesite bilješku za primatelja dijeljenja",
- "Read" : "Čitaj",
- "Create" : "Stvori",
- "Edit" : "Uredi",
- "Share" : "Dijeli",
- "Delete share" : "Izbriši dijeljenje",
- "Others with access" : "Korisnici s omogućenim pristupom",
- "Toggle list of others with access to this directory" : "Uključi/isključi popis korisnika koji smiju pristupiti ovom direktoriju",
- "Toggle list of others with access to this file" : "Uključi/isključi popis korisnika koji smiju pristupiti ovoj datoteci",
- "Unable to fetch inherited shares" : "Neuspješno dohvaćanje naslijeđenih dijeljenja",
- "Unable to load the shares list" : "Nije moguće učitati popis dijeljenja",
- "Expires {relativetime}" : "Istječe {relativetime}",
- "this share just expired." : "ovo dijeljenje je upravo isteklo.",
- "Shared with you by {owner}" : "S vama podijelio {owner}",
- "Shared" : "Dijeljeno",
- "Link to a file" : "Poveži s datotekom",
- "Error creating the share: {errorMessage}" : "Pogreška pri stvaranju dijeljenja: {errorMessage}",
- "Error creating the share" : "Pogreška pri stvaranju dijeljenja",
- "Error updating the share: {errorMessage}" : "Pogreška pri ažuriranju dijeljenja: {errorMessage}",
- "Error updating the share" : "Pogreška pri ažuriranju dijeljenja",
- "Shared by" : "Podijeljeno od",
- "Shared with" : "Dijeljeno s",
- "Shared with you and the group {group} by {owner}" : "Dijeljeno s vama i grupom {group} vlasnika {owner}",
- "Shared with you and {circle} by {owner}" : "Dijeljeno s vama i {circle} od strane {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Dijeljeno s vama i razgovorom {conversation} vlasnika {owner}",
- "Shared with you in a conversation by {owner}" : "{owner} dijeli s vama u razgovoru",
- "Shares" : "Dijeljenja",
- "No shares" : "Nema dijeljenja",
- "Shared with you" : "Podijeljeno s vama",
- "Nothing shared with you yet" : "Još ništa nije dijeljeno s vama",
- "Shared with others" : "Podijeljeno s ostalima",
- "Nothing shared yet" : "Još ništa nije dijeljeno",
- "Shared by link" : "Podijeljeno putem poveznice",
- "No shared links" : "Nema dijeljenih poveznica",
- "Deleted shares" : "Izbrisana dijeljenja",
- "No deleted shares" : "Nema izbrisanih dijeljenja",
- "Pending shares" : "Dijeljenja na čekanju",
- "No pending shares" : "Nema dijeljenja na čekanju",
- "Share note" : "Dijeli bilješku",
- "Upload files to %s" : "Otpremi datoteke na %s",
- "Note" : "Bilješka",
- "Select or drop files" : "Odaberi ili ispusti datoteke",
- "Uploading files" : "Otpremanje datoteka",
- "Uploaded files:" : "Otpremljene datoteke:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "Otpremanjem datoteka prihvaćate %1$ uvjete korištenja usluge%2$s.",
- "Add to your Nextcloud" : "Dodaj u svoj Nextcloud",
- "Files and folders others share with you will show up here" : "Ovdje će se prikazati datoteke i mape koje drugi podijele s vama",
- "Files and folders you share will show up here" : "Ovdje će se prikazati datoteke i mape koje dijelite",
- "Files and folders you share by link will show up here" : "Ovdje će se prikazati datoteke i mape koje dijelite putem poveznice",
- "Shares you deleted will show up here" : "Ovdje će se prikazati izbrisana dijeljenja",
- "Shares you have received but not confirmed will show up here" : "Ovdje će se prikazati primljena dijeljenja koja nisu potvrđena",
- "Shares will show up here" : "Ovdje će se prikazati dijeljenja",
- "Restore" : "Vrati",
- "Something happened. Unable to restore the share." : "Nešto se dogodilo. Dijeljenje nije moguće vratiti.",
- "Something happened. Unable to accept the share." : "Nešto se dogodilo. Dijeljenje nije moguće prihvatiti.",
- "Something happened. Unable to reject the share." : "Nešto se dogodilo. Dijeljenje nije moguće odbiti.",
- "No expiration date set" : "Nije postavljen datum isteka",
- "Please specify a valid user" : "Navedite valjanog korisnika",
- "Please specify a valid federated user ID" : "Navedite važeći ID udruženog korisnika",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Ova aplikacija omogućuje korisnicima dijeljenje datoteka unutar Nextclouda. Ako je omogućena, administrator može odabrati grupe koje mogu dijeliti datoteke. Tada važeći korisnici mogu dijeliti datoteke i mape s drugim korisnicima i grupama unutar Nextclouda. Ako administrator omogući značajku poveznice dijeljenja, vanjska poveznica može se koristiti za dijeljenje datoteka s drugim korisnicima izvan Nextclouda. Administratori također mogu nametnuti zaporke, datume isteka i omogućiti dijeljenje između poslužitelja putem poveznica za dijeljenje, kao i dijeljenje s mobilnih uređaja.\nIsključivanjem ove značajke uklanjaju se dijeljene datoteke i mape s poslužitelja za sve primatelje dijeljenja, a također i s klijenata za sinkronizaciju i mobilnih aplikacija. Više informacija možete pronaći u Nextcloudovoj dokumentaciji.",
- "Accept user and group shares by default" : "Automatski prihvati dijeljenja korisnika i grupa",
- "Read only" : "Samo za čitanje",
- "File drop (upload only)" : "Povlačenje datoteke (samo za otpremanje)",
- "Upload" : "Otpremi",
- "Only works for users with access to this folder" : "Samo za korisnike koji smiju pristupiti ovoj mapi",
- "Only works for users with access to this file" : "Samo za korisnike koji smiju pristupiti ovoj datoteci",
- "Circle" : "Krug",
- "Update" : "Ažuriraj",
- "No other users with access found" : "Nije pronađen nijedan drugi korisnik s omogućenim pristupom",
- "No entries found in this folder" : "U ovoj mapi nisu pronađeni nikakvi zapisi",
- "Name" : "Naziv",
- "Share time" : "Vrijeme dijeljenja",
- "Reasons might be:" : "Mogući razlozi su:",
- "the item was removed" : "stavka je uklonjena",
- "the link expired" : "poveznica je istekla",
- "sharing is disabled" : "dijeljenje je onemogućeno",
- "For more info, please ask the person who sent this link." : "Za više se informacija obratite osobi koja je poslala ovu poveznicu."
-},"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/hu.js b/apps/files_sharing/l10n/hu.js
index dc91c3e97e7..2e6bb8ff77d 100644
--- a/apps/files_sharing/l10n/hu.js
+++ b/apps/files_sharing/l10n/hu.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Várakozás…",
- "error" : "hiba",
- "finished" : "kész",
- "This will stop your current uploads." : "Ez le fogja állítani a jelenlegi feltöltéseit.",
- "Move or copy" : "Áthelyezés vagy másolás",
- "Download" : "Letöltés",
- "Delete" : "Törlés",
- "You can upload into this folder" : "Ebbe a mappába fel tud tölteni",
- "Terms of service" : "Szolgáltatási feltételek",
- "Show list view" : "Listanézet megjelenítése",
- "Show grid view" : "Rácsnézet megjelenítése",
- "No compatible server found at {remote}" : "Nem található kompatibilis kiszolgáló itt: {remote}",
- "Invalid server URL" : "Érvénytelen kiszolgáló URL",
- "Failed to add the public link to your Nextcloud" : "Nem sikerült hozzáadni a nyilvános hivatkozást a Nexcloudjához",
"File shares" : "Fájlmegosztások",
"Downloaded via public link" : "Letöltve nyilvános hivatkozással",
"Downloaded by {email}" : "Letöltötte: {email}",
@@ -70,7 +56,7 @@ OC.L10N.register(
"Share for file {file} expired" : "A(z) {file} fájl megosztása lejárt",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Egy e-mailben vagy nyilvános hivatkozással megosztott fájl vagy mappa <strong>letöltve</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Egy fájl vagy mappa meg lett osztva egy <strong>másik kiszolgálóról</strong>",
- "Files" : "Fájlok",
+ "Sharing" : "Megosztás",
"A file or folder has been <strong>shared</strong>" : "Egy fájl vagy mappa <strong>megosztva</strong>",
"Shared link" : "Hivatkozás megosztva",
"Wrong share ID, share does not exist" : "Hibás megosztási azonosító, a megosztás nem létezik",
@@ -78,32 +64,34 @@ OC.L10N.register(
"Please specify a file or folder path" : "Adjon meg egy fájl- vagy mappaútvonalat",
"Wrong path, file/folder does not exist" : "Hibás útvonal, a fájl/mappa nem létezik",
"Could not create share" : "A megosztás nem hozható létre",
- "Invalid permissions" : "Érvénytelen jogosultságok",
- "Invalid date, date format must be YYYY-MM-DD" : "Érvénytelen dátum, a dátumnak YYYY-MM-DD formátumúnak kell lennie",
+ "Please specify a valid account to share with" : "Adjon meg egy érvényes fiókot a megosztáshoz",
"Group sharing is disabled by the administrator" : "A csoportos megosztást letiltotta a rendszergazda",
"Please specify a valid group" : "Adjon meg egy érvényes csoportot",
"Public link sharing is disabled by the administrator" : "A nyilvános hivatkozással történő megosztást letiltotta a rendszergazda",
- "Public upload disabled by the administrator" : "A nyilvános feltöltést letiltotta a rendszergazda",
- "Public upload is only possible for publicly shared folders" : "A nyilvános feltöltés csak a nyilvánosan megosztott mappákban lehetséges",
+ "Please specify a valid email address" : "Adjon meg egy érvényes e-mail-címet",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "A(z) %s megosztás jelszavának Nextcloud Beszélgetéssel történő elküldése sikertelen, mert a Nextcloud Beszélgetés nem engedélyezett",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "A(z) %1$s megosztása sikertelen, mert a háttérprogram nem engedélyezi a(z) %2$s típusú megosztást",
+ "Please specify a valid federated account ID" : "Adjon meg egy érvényes föderált fiókazonosítót",
"Please specify a valid federated group ID" : "Adjon meg egy érvényes föderált csoportazonosítót",
- "You cannot share to a Circle if the app is not enabled" : "Nem tudja megosztani egy Kör számára, ha az alkalmazás nem engedélyezett",
- "Please specify a valid circle" : "Adjon meg egy érvényes Kört",
+ "You cannot share to a Team if the app is not enabled" : "Nem tudja megosztani egy Csapat számára, ha az alkalmazás nem engedélyezett",
+ "Please specify a valid team" : "Adjon meg egy érvényes csapatot",
"Sharing %s failed because the back end does not support room shares" : "A(z) %s megosztása sikertelen, mert a háttérprogram nem támogatja a szobamegosztásokat",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "A(z) %s megosztása sikertelen, mert a háttérprogram nem támogatja a ScienceMesh megosztásokat",
"Unknown share type" : "Ismeretlen megosztástípus",
"Not a directory" : "Nem könyvtár",
"Could not lock node" : "Nem sikerült zárolni a csomópontot",
- "Could not lock path" : "Nem sikerült zárolni az útvonalat",
- "Wrong or no update parameter given" : "Hibás vagy üres frissítési paraméter",
+ "Public upload is only possible for publicly shared folders" : "A nyilvános feltöltés csak a nyilvánosan megosztott mappákban lehetséges",
"Share must at least have READ or CREATE permissions" : "A megosztásnak legalább OLVASÁSI és LÉTREHOZÁSI engedéllyel kell rendelkeznie",
"Share must have READ permission if UPDATE or DELETE permission is set" : "A megosztásnak OLVASÁSI jogosultsággal kell rendelkeznie, ha a FRISSÍTÉSI vagy TÖRLÉSI jogosultság meg van adva",
+ "Public upload disabled by the administrator" : "A nyilvános feltöltést letiltotta a rendszergazda",
+ "Could not lock path" : "Nem sikerült zárolni az útvonalat",
+ "Wrong or no update parameter given" : "Hibás vagy üres frissítési paraméter",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "A „Jelszó kiküldése a Nextcloud Beszélgetéssel” nem sikerült a fájlnál vagy mappánál, mert a Nextcloud Beszélgetés nem engedélyezett.",
+ "Wrong password" : "Hibás jelszó",
"shared by %s" : "megosztotta: %s",
- "Download all files" : "Összes fájl letöltése",
- "Direct link" : "Közvetlen hivatkozás",
+ "Download" : "Letöltés",
"Add to your %s" : "Hozzáadás a %shoz",
+ "Direct link" : "Közvetlen hivatkozás",
"Share API is disabled" : "Megosztás API letiltva",
"File sharing" : "Fájlmegosztás",
"Share will expire tomorrow" : "A megosztás holnap lejár",
@@ -112,15 +100,35 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "A(z) {share} megosztást a(z) {group} csoportba kapta {user} felhasználótól.",
"Accept" : "Elfogadás",
"Decline" : "Elutasítás",
- "Sharing" : "Megosztás",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Ez az alkalmazás lehetővé teszi fájlok megosztását a Nextcloudon belül. Amennyiben engedélyezve van, a rendszergazda kiválaszthatja, hogy mely csoportok oszthassanak meg fájlokat. Az érintettek ezután megoszthatják a fájlokat és mappákat más fiókokkal és csoportokkal a Nextcloudon belül. Ezenkívül, ha a rendszergazda engedélyezi a megosztás hivatkozással funkciót, akkor egy külső hivatkozás segítségével fájlokat oszthat meg más fiókokkal a Nextcloudon kívül. A rendszergazdák kikényszeríthetik a jelszavakat, a lejárati dátumokat, és engedélyezhetik a megosztási hivatkozásokkal történő kiszolgálók közötti, valamint a mobileszközökön történő megosztást.\nA funkció kikapcsolása eltávolítja a megosztott fájlokat és mappákat a kiszolgálóról az összes megosztott címzett, valamint a szinkronizálási kliensek és mobilalkalmazások számára. További információ a Nextcloud dokumentációjában található.",
+ "People" : "Emberek",
+ "Filter accounts" : "Fiókok szűrése",
+ "Expiration date" : "Lejárati dátum",
+ "Set a password" : "Jelszó beállítása",
+ "Password" : "Jelszó",
+ "Enter a valid password" : "Adjon meg érvényes jelszót",
+ "Generate a new password" : "Új jelszó előállítása",
+ "Link copied" : "Hivatkozás másolva",
+ "Invalid email address" : "Érvénytelen e-mail-cím",
+ "Share link" : "Megosztási hivatkozás",
+ "Copy" : "Másolás",
+ "Send link via email" : "Hivatkozás küldése levélben",
+ "Remove email" : "E-mail eltávolítása",
+ "Select" : "Kiválasztás",
+ "Add a note" : "Megjegyzés hozzáadása",
+ "Close" : "Bezárás",
+ "Error creating the share: {errorMessage}" : "Hiba történt a megosztás létrehozása során: {errorMessage}",
+ "Error creating the share" : "Megosztás létrehozása sikertelen",
+ "File request" : "Fájlkérés",
+ "Cancel" : "Mégse",
+ "Continue" : "Folytatás",
"Error while toggling options" : "Hiba a beállítások módosításakor",
- "Set default folder for accepted shares" : "Alapértelmezett mappa beállítása az elfogadott megosztásokhoz",
- "Reset" : "Visszaállítás",
- "Reset folder to system default" : "Mappa visszaállítása az alapértelmezett értékre",
"Choose a default folder for accepted shares" : "Válasszon egy mappát az elfogadott megosztásokhoz",
"Invalid path selected" : "Érvénytelen útvonal választva",
"Unknown error" : "Ismeretlen hiba",
- "Open Sharing Details" : "Megosztás részleteinek megnyitása",
+ "Set default folder for accepted shares" : "Alapértelmezett mappa beállítása az elfogadott megosztásokhoz",
+ "Reset" : "Visszaállítás",
+ "Reset folder to system default" : "Mappa visszaállítása az alapértelmezett értékre",
"group" : "csoport",
"conversation" : "beszélgetés",
"remote" : "távoli",
@@ -129,132 +137,160 @@ OC.L10N.register(
"Shared with the group {user} by {owner}" : "{owner} megosztotta a(z) {user} csoporttal",
"Shared with the conversation {user} by {owner}" : "{owner} megosztotta a(z) {user} beszélgetésben",
"Shared with {user} by {owner}" : " {owner} megosztotta {user} felhasználóval",
+ "Open Sharing Details" : "Megosztás részleteinek megnyitása",
"Added by {initiator}" : "Általa hozzáadva: {initiator}",
"Via “{folder}”" : "A(z) „{folder}” mappán keretül",
"Unshare" : "Megosztás visszavonása",
- "Internal link" : "Belső hivatkozás",
"Cannot copy, please copy the link manually" : "A másolás sikertelen, másolja kézzel a hivatkozást",
- "Copy internal link to clipboard" : "Belső hivatkozás másolása a vágólapra",
- "Link copied" : "Hivatkozás másolva",
- "Please enter the following required information before creating the share" : "A megosztás létrehozása előtt adja meg a következő szükséges információkat",
- "Password protection (enforced)" : "Jelszavas védelem (megkövetelve)",
- "Password protection" : "Jelszavas védelem",
- "Enter a password" : "Adja meg a jelszót",
- "Expiration date (enforced)" : "Lejárati idő (megkövetelve)",
- "Enter a date" : "Adjon meg egy dátumot",
- "Create share" : "Megosztás létrehozása",
- "Cancel" : "Mégse",
- "Customize link" : "Hivatkozás testreszabása",
- "Add another link" : "További hivatkozás hozzáadása",
- "Create a new share link" : "Új megosztási hivatkozás létrehozása",
+ "Copy internal link" : "Belső hivatkozás másolása",
+ "Internal link" : "Belső hivatkozás",
"{shareWith} by {initiator}" : "{shareWith}, {initiator} által",
"Shared via link by {initiator}" : "{initiator} által hivatkozással megosztva",
"Mail share ({label})" : "E-mail megosztás ({label})",
"Share link ({label})" : "Megosztási hivatkozás ({label})",
"Share link ({index})" : "Megosztási hivatkozás ({index})",
- "Share link" : "Megosztási hivatkozás",
+ "Create public link" : "Nyilvános hivatkozás létrehozása",
"Actions for \"{title}\"" : "A(z) „{title}” műveletei",
- "Copy public link of \"{title}\" to clipboard" : "A(z) „{title}” nyilvános hivatkozás másolása a vágólapra",
"Error, please enter proper password and/or expiration date" : "Hiba, írja be a megfelelő jelszót vagy lejárati dátumot",
"Link share created" : "Megosztási hivatkozás létrehozása",
"Error while creating the share" : "Hiba a megosztás létrehozása során",
+ "Please enter the following required information before creating the share" : "A megosztás létrehozása előtt adja meg a következő szükséges információkat",
+ "Password protection (enforced)" : "Jelszavas védelem (megkövetelve)",
+ "Password protection" : "Jelszavas védelem",
+ "Enter a password" : "Adja meg a jelszót",
+ "Create share" : "Megosztás létrehozása",
+ "Customize link" : "Hivatkozás testreszabása",
+ "Generate QR code" : "QR-kód készítése",
+ "Add another link" : "További hivatkozás hozzáadása",
+ "Create a new share link" : "Új megosztási hivatkozás létrehozása",
"View only" : "Csak megtekintés",
"Can edit" : "Szerkesztheti",
- "File drop" : "Fájllerakat",
"Custom permissions" : "Egyéni jogosultságok",
- "Search for share recipients" : "Megosztás résztvevőinek keresése",
- "No recommendations. Start typing." : "Nincs javaslat. Kezdjen gépelni.",
- "Resharing is not allowed" : "A megosztás továbbadása nem engedélyezett",
+ "Resharing is not allowed" : "A továbbosztás nem engedélyezett",
"Name or email …" : "Név vagy e-mail-cím…",
"Name, email, or Federated Cloud ID …" : "Név, e-mail-cím vagy föderált felhőazonosító…",
"Searching …" : "Keresés…",
"No elements found." : "Nem található elem.",
- "Search globally" : "Globális keresés",
+ "Search everywhere" : "Keresés mindenhol",
"Guest" : "Vendég",
"Group" : "Csoport",
"Email" : "E-mail",
+ "Team" : "Csapat",
"Talk conversation" : "Beszélgetés",
"Deck board" : "Kártyatábla",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "{server} kiszolgálón",
+ "Note:" : "Megjegyzés:",
+ "File drop" : "Fájllerakat",
+ "Terms of service" : "Szolgáltatási feltételek",
+ "Update share" : "Megosztás frissítése",
+ "Save share" : "Megosztás mentése",
+ "Read" : "Olvasás",
+ "Create" : "Létrehozás",
+ "Edit" : "Szerkesztés",
+ "Share" : "Megosztás",
+ "Delete" : "Törlés",
"Allow upload and editing" : "Feltöltés és szerkesztés engedélyezése",
"Allow editing" : "Szerkesztés engedélyezése",
"Upload only" : "Csak feltöltés",
"Advanced settings" : "Speciális beállítások",
"Share label" : "Megosztás címkéje",
"Set password" : "Jelszó beállítása",
- "Password" : "Jelszó",
"Password expires {passwordExpirationTime}" : "A jelszó lejárati ideje: {passwordExpirationTime}",
"Password expired" : "A jelszó lejárt",
"Video verification" : "Videós ellenőrzés",
+ "Expiration date (enforced)" : "Lejárati idő (megkövetelve)",
"Set expiration date" : "Lejárati idő beállítása",
- "Expiration date" : "Lejárati dátum",
"Hide download" : "Letöltés elrejtése",
- "Allow download" : "Letöltés engedélyezése",
+ "Allow download and sync" : "Letöltés és szinkronizálás engedélyezése",
"Note to recipient" : "Jegyzet a címzettnek",
"Enter a note for the share recipient" : "Adjon meg egy megjegyzést a megosztás címzettje számára",
- "Read" : "Olvasás",
- "Create" : "Létrehozás",
- "Edit" : "Szerkesztés",
- "Share" : "Megosztás",
"Delete share" : "Megosztás törlése",
- "Update share" : "Megosztás frissítése",
- "Save share" : "Megosztás mentése",
"Others with access" : "Mások, akik hozzáféréssel rendelkeznek",
"Toggle list of others with access to this directory" : "A könyvtárhoz hozzáféréssel rendelkezők listája be/ki",
"Toggle list of others with access to this file" : "A fájlhoz hozzáféréssel rendelkezők listája be/ki",
"Unable to fetch inherited shares" : "Nem sikerült lekérni az örökölt megosztásokat",
+ "Shares" : "Megosztások",
"Unable to load the shares list" : "A megosztások listájának betöltése sikertelen",
"Expires {relativetime}" : "Lejárat: {relativetime}",
"this share just expired." : "ez a megosztás épp most járt le.",
"Shared with you by {owner}" : "{owner} megosztotta Önnel",
+ "Internal shares" : "Belső megosztások",
+ "External shares" : "Külső megosztások",
+ "Link to a file" : "Hivatkozás egy fájlhoz",
"_Accept share_::_Accept shares_" : ["Megosztás elfogadása","Megosztások elfogadása"],
"Open in Files" : "Megnyitás a Fájlokban",
"_Reject share_::_Reject shares_" : ["Megosztás elutasítása","Megosztások elutasítása"],
"_Restore share_::_Restore shares_" : ["Megosztás helyreállítása","Megosztások helyreállítása"],
"Shared" : "Megosztva",
"Shared by {ownerDisplayName}" : "Megosztotta: {ownerDisplayName}",
- "Show sharing options" : "Megosztási beállítások megjelenítése",
- "Link to a file" : "Hivatkozás egy fájlhoz",
- "Error creating the share: {errorMessage}" : "Hiba történt a megosztás létrehozása során: {errorMessage}",
- "Error creating the share" : "Megosztás létrehozása sikertelen",
- "Error updating the share: {errorMessage}" : "Hiba történt a megosztás frissítése során: {errorMessage}",
- "Error updating the share" : "Hiba történt a megosztás frissítése során",
- "File \"{path}\" has been unshared" : "A(z) „{path}” fájl megosztása leállítva",
- "Folder \"{path}\" has been unshared" : "A(z) „{path}” mappa megosztása leállítva",
- "Share {propertyName} saved" : "A(z) {propertyName} megosztás mentve",
- "Shared by" : "Megosztotta:",
- "Shared with" : "Megosztva vele:",
- "Password created successfully" : "A jelszó sikeresen létrehozva",
- "Error generating password from password policy" : "Hiba a jelszóházirend alapján történő jelszó-előállítás során",
- "Shared with you and the group {group} by {owner}" : "{owner} megosztotta Önnel és a(z) {group} csoporttal",
- "Shared with you and {circle} by {owner}" : "{owner} megosztotta Önnel és a(z) {circle} körrel",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} megosztotta Önnel és a(z) {conversation} beszélgetéssel",
- "Shared with you in a conversation by {owner}" : "{owner} megosztotta Önnel egy beszélgetésben",
- "Shares" : "Megosztások",
+ "Shared multiple times with different people" : "Többször megosztva különböző személyekkel",
+ "Sharing options" : "Megosztási beállítások",
+ "Shared with others" : "Megosztva másokkal",
+ "Create file request" : "Fájlkérés létrehozása",
+ "No file" : "Nincs fájl",
+ "Public share" : "Nyilvános megosztás",
"Overview of shared files." : "Megosztott fájlok áttekintése.",
"No shares" : "Nincs megosztás",
"Files and folders you shared or have been shared with you will show up here" : "A saját és mások által megosztott fájlok és mappák itt jelennek meg.",
"Shared with you" : "Megosztva Önnel",
- "List of files that are shared with you." : "A mások által megosztott fájlok listázása.",
+ "List of files that are shared with you." : "A mások által megosztott fájlok listája.",
"Nothing shared with you yet" : "Még semmi sincs megosztva Önnel",
"Files and folders others shared with you will show up here" : "A mások által megosztott fájlok és mappák itt jelennek meg",
- "Shared with others" : "Megosztva másokkal",
- "List of files that you shared with others." : "A másokkal megosztott fájlok listázása.",
+ "List of files that you shared with others." : "A másokkal megosztott fájlok listája.",
"Nothing shared yet" : "Még semmi sincs megosztva",
"Files and folders you shared will show up here" : "A megosztott fájlok és mappák itt fognak megjelenni",
"Shared by link" : "Megosztva hivatkozással",
- "List of files that are shared by link." : "Hivatkozással megosztott fájlok listázása.",
+ "List of files that are shared by link." : "Hivatkozással megosztott fájlok listája.",
"No shared links" : "Nincs megosztott hivatkozás",
- "Files and folders you shared by link will show up here" : "Hivatkozással megosztott fájlok és mappák itt jelennek meg",
+ "Files and folders you shared by link will show up here" : "A hivatkozással megosztott fájlok és mappák itt jelennek meg",
"Deleted shares" : "Törölt megosztások",
- "List of shares you left." : "Elhagyott megosztások listázása.",
+ "List of shares you left." : "Elhagyott megosztások listája.",
"No deleted shares" : "Nincs törölt megosztás",
"Shares you have left will show up here" : "Az Ön által elhagyott megosztások itt jelennek meg.",
"Pending shares" : "Függőben lévő megosztások",
- "List of unapproved shares." : "Nem jóváhagyott megosztások listázása.",
+ "List of unapproved shares." : "Nem jóváhagyott megosztások listája.",
"No pending shares" : "Nincsenek függőben lévő megosztások",
"Shares you have received but not approved will show up here" : "Az érkezett, de még nem jóváhagyott megosztások itt jelennek meg",
+ "Error updating the share: {errorMessage}" : "Hiba történt a megosztás frissítése során: {errorMessage}",
+ "Error updating the share" : "Hiba történt a megosztás frissítése során",
+ "File \"{path}\" has been unshared" : "A(z) „{path}” fájl megosztása leállítva",
+ "Folder \"{path}\" has been unshared" : "A(z) „{path}” mappa megosztása leállítva",
+ "Share label saved" : "A megosztás címkéje mentve",
+ "Share password saved" : "A megosztás jelszava mentve",
+ "Shared by" : "Megosztotta:",
+ "Shared with" : "Megosztva vele:",
+ "Password created successfully" : "A jelszó sikeresen létrehozva",
+ "Error generating password from password policy" : "Hiba a jelszóházirend alapján történő jelszó-előállítás során",
+ "Shared with you and the group {group} by {owner}" : "{owner} megosztotta Önnel és a(z) {group} csoporttal",
+ "Shared with you and {circle} by {owner}" : "{owner} megosztotta Önnel és a(z) {circle} körrel",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} megosztotta Önnel és a(z) {conversation} beszélgetéssel",
+ "Shared with you in a conversation by {owner}" : "{owner} megosztotta Önnel egy beszélgetésben",
+ "Share not found" : "A megosztás nem található",
+ "Back to %s" : "Vissza ide: %s",
+ "Add to your Nextcloud" : "Hozzáadás a Nextcloudjához",
+ "Waiting…" : "Várakozás…",
+ "error" : "hiba",
+ "finished" : "kész",
+ "This will stop your current uploads." : "Ez le fogja állítani a jelenlegi feltöltéseit.",
+ "Move or copy" : "Áthelyezés vagy másolás",
+ "You can upload into this folder" : "Ebbe a mappába fel tud tölteni",
+ "Show list view" : "Listanézet megjelenítése",
+ "Show grid view" : "Rácsnézet megjelenítése",
+ "No compatible server found at {remote}" : "Nem található kompatibilis kiszolgáló itt: {remote}",
+ "Invalid server URL" : "Érvénytelen kiszolgáló URL",
+ "Failed to add the public link to your Nextcloud" : "Nem sikerült hozzáadni a nyilvános hivatkozást a Nexcloudjához",
+ "Download all files" : "Összes fájl letöltése",
+ "Link copied to clipboard" : "Hivatkozás a vágólapra másolva",
+ "Copy to clipboard" : "Másolás a vágólapra",
+ "Copy internal link to clipboard" : "Belső hivatkozás másolása a vágólapra",
+ "Only works for people with access to this file" : "Csak azoknál működik, akiknek van hozzáférésük ehhez a fájlhoz",
+ "Copy public link of \"{title}\" to clipboard" : "A(z) „{title}” nyilvános hivatkozás másolása a vágólapra",
+ "Search globally" : "Globális keresés",
+ "Search for share recipients" : "Megosztás résztvevőinek keresése",
+ "No recommendations. Start typing." : "Nincs javaslat. Kezdjen gépelni.",
+ "Enter your name" : "Adja meg a nevét",
+ "Show sharing options" : "Megosztási beállítások megjelenítése",
"Share note" : "Jegyzet megosztása",
"Upload files to %s" : "Fájlok feltöltése ide: %s",
"Note" : "Megjegyzés",
@@ -262,41 +298,7 @@ OC.L10N.register(
"Uploading files" : "Fájlok feltöltése",
"Uploaded files:" : "Feltöltött fájlok:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "A fájlok feltöltésével elfogadja a %1$sszolgáltatási feltételeket %2$s.",
- "Add to your Nextcloud" : "Hozzáadás a Nextcloudjához",
- "Files and folders others share with you will show up here" : "A mások által megosztott fájlok és mappák itt jelennek meg",
- "Files and folders you share will show up here" : "Az Ön által megosztott fájlok és mappák itt jelennek meg",
- "Files and folders you share by link will show up here" : "A hivatkozással megosztott fájlok és mappák itt jelennek meg",
- "Shares you deleted will show up here" : "A törölt megosztások itt jelennek meg",
- "Shares you have received but not confirmed will show up here" : "A kapott, de még el nem fogadott megosztások itt jelennek meg",
- "Shares will show up here" : "A megosztások itt jelennek meg",
- "Restore" : "Helyreállítás",
- "Something happened. Unable to restore the share." : "Hiba történt. Nem lehet visszaállítani a megosztást.",
- "Something happened. Unable to accept the share." : "Valami történt. Nem lehet elfogadni a megosztást.",
- "Something happened. Unable to reject the share." : "Valami történt. Nem sikerült elutasítani a megosztást.",
- "No expiration date set" : "Nincs beállítva lejárati dátum",
- "Please specify a valid user" : "Adjon meg egy érvényes felhasználót",
- "Please specify a valid federated user ID" : "Adjon meg egy érvényes föderált felhasználóazonosítót",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Ez az alkalmazás lehetővé teszi a felhasználók számára a fájlok megosztását a Nextcloudon belül. Amennyiben engedélyezve van, a rendszergazda kiválaszthatja, hogy mely csoportok oszthassanak meg fájlokat. Az érintett felhasználók ezután megoszthatják a fájlokat és mappákat más felhasználókkal és csoportokkal a Nextcloudon belül. Ezenkívül, ha a rendszergazda engedélyezi a megosztás hivatkozással funkciót, akkor egy külső hivatkozás segítségével fájlokat oszthat meg más felhasználókkal a Nextcloudon kívül. A rendszergazdák kikényszeríthetik a jelszavakat, a lejárati dátumokat, és engedélyezhetik a megosztási hivatkozásokkal történő kiszolgálók közötti, valamint a mobileszközökön történő megosztást.\nA funkció kikapcsolása eltávolítja a megosztott fájlokat és mappákat a kiszolgálóról az összes megosztott címzett, valamint a szinkronizálási kliensek és mobilalkalmazások számára. További információ a Nextcloud dokumentációjában található.",
- "Accept user and group shares by default" : "A felhasználói és csoportos megosztás elfogadása alapértelmezetten",
- "Read only" : "Csak olvasható",
- "File drop (upload only)" : "Fájl ejtés (csak feltöltés)",
- "Upload" : "Feltöltés",
- "Bundled permissions" : "Összetartozó jogosultságok",
- "Only works for users with access to this folder" : "Csak azoknál a felhasználóknál működik, akiknek hozzáférésük van ehhez a mappához",
- "Only works for users with access to this file" : "Csak azoknál a felhasználóknál működik, akiknek hozzáférésük van ehhez a fájlhoz",
- "Circle" : "Kör",
- "Update" : "Frissítés",
- "Share with " : "Megosztás vele:",
- "No other users with access found" : "Nincs más felhasználó, aki hozzáféréssel rendelkezik",
- "No entries found in this folder" : "Nincsenek bejegyzések ebben a mappában",
"Name" : "Név",
- "Share time" : "Megosztás időpontja",
- "Sorry, this link does not seem to work anymore." : "Sajnos úgy tűnik, ez a hivatkozás már nem működik.",
- "Reasons might be:" : "Ennek oka a következő lehet:",
- "the item was removed" : "az elem el lett távolítva",
- "the link expired" : "lejárt a hivatkozás érvényességi ideje",
- "sharing is disabled" : "a megosztás letiltásra került",
- "For more info, please ask the person who sent this link." : "További információért forduljon ahhoz, aki ezt a hivatkozást küldte.",
- "Share with" : "Megosztva a következővel"
+ "Filename must not be empty." : "A fájlnév nem lehet üres."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/hu.json b/apps/files_sharing/l10n/hu.json
index aa32d7ffaf7..b503f4eea85 100644
--- a/apps/files_sharing/l10n/hu.json
+++ b/apps/files_sharing/l10n/hu.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Várakozás…",
- "error" : "hiba",
- "finished" : "kész",
- "This will stop your current uploads." : "Ez le fogja állítani a jelenlegi feltöltéseit.",
- "Move or copy" : "Áthelyezés vagy másolás",
- "Download" : "Letöltés",
- "Delete" : "Törlés",
- "You can upload into this folder" : "Ebbe a mappába fel tud tölteni",
- "Terms of service" : "Szolgáltatási feltételek",
- "Show list view" : "Listanézet megjelenítése",
- "Show grid view" : "Rácsnézet megjelenítése",
- "No compatible server found at {remote}" : "Nem található kompatibilis kiszolgáló itt: {remote}",
- "Invalid server URL" : "Érvénytelen kiszolgáló URL",
- "Failed to add the public link to your Nextcloud" : "Nem sikerült hozzáadni a nyilvános hivatkozást a Nexcloudjához",
"File shares" : "Fájlmegosztások",
"Downloaded via public link" : "Letöltve nyilvános hivatkozással",
"Downloaded by {email}" : "Letöltötte: {email}",
@@ -68,7 +54,7 @@
"Share for file {file} expired" : "A(z) {file} fájl megosztása lejárt",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Egy e-mailben vagy nyilvános hivatkozással megosztott fájl vagy mappa <strong>letöltve</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Egy fájl vagy mappa meg lett osztva egy <strong>másik kiszolgálóról</strong>",
- "Files" : "Fájlok",
+ "Sharing" : "Megosztás",
"A file or folder has been <strong>shared</strong>" : "Egy fájl vagy mappa <strong>megosztva</strong>",
"Shared link" : "Hivatkozás megosztva",
"Wrong share ID, share does not exist" : "Hibás megosztási azonosító, a megosztás nem létezik",
@@ -76,32 +62,34 @@
"Please specify a file or folder path" : "Adjon meg egy fájl- vagy mappaútvonalat",
"Wrong path, file/folder does not exist" : "Hibás útvonal, a fájl/mappa nem létezik",
"Could not create share" : "A megosztás nem hozható létre",
- "Invalid permissions" : "Érvénytelen jogosultságok",
- "Invalid date, date format must be YYYY-MM-DD" : "Érvénytelen dátum, a dátumnak YYYY-MM-DD formátumúnak kell lennie",
+ "Please specify a valid account to share with" : "Adjon meg egy érvényes fiókot a megosztáshoz",
"Group sharing is disabled by the administrator" : "A csoportos megosztást letiltotta a rendszergazda",
"Please specify a valid group" : "Adjon meg egy érvényes csoportot",
"Public link sharing is disabled by the administrator" : "A nyilvános hivatkozással történő megosztást letiltotta a rendszergazda",
- "Public upload disabled by the administrator" : "A nyilvános feltöltést letiltotta a rendszergazda",
- "Public upload is only possible for publicly shared folders" : "A nyilvános feltöltés csak a nyilvánosan megosztott mappákban lehetséges",
+ "Please specify a valid email address" : "Adjon meg egy érvényes e-mail-címet",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "A(z) %s megosztás jelszavának Nextcloud Beszélgetéssel történő elküldése sikertelen, mert a Nextcloud Beszélgetés nem engedélyezett",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "A(z) %1$s megosztása sikertelen, mert a háttérprogram nem engedélyezi a(z) %2$s típusú megosztást",
+ "Please specify a valid federated account ID" : "Adjon meg egy érvényes föderált fiókazonosítót",
"Please specify a valid federated group ID" : "Adjon meg egy érvényes föderált csoportazonosítót",
- "You cannot share to a Circle if the app is not enabled" : "Nem tudja megosztani egy Kör számára, ha az alkalmazás nem engedélyezett",
- "Please specify a valid circle" : "Adjon meg egy érvényes Kört",
+ "You cannot share to a Team if the app is not enabled" : "Nem tudja megosztani egy Csapat számára, ha az alkalmazás nem engedélyezett",
+ "Please specify a valid team" : "Adjon meg egy érvényes csapatot",
"Sharing %s failed because the back end does not support room shares" : "A(z) %s megosztása sikertelen, mert a háttérprogram nem támogatja a szobamegosztásokat",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "A(z) %s megosztása sikertelen, mert a háttérprogram nem támogatja a ScienceMesh megosztásokat",
"Unknown share type" : "Ismeretlen megosztástípus",
"Not a directory" : "Nem könyvtár",
"Could not lock node" : "Nem sikerült zárolni a csomópontot",
- "Could not lock path" : "Nem sikerült zárolni az útvonalat",
- "Wrong or no update parameter given" : "Hibás vagy üres frissítési paraméter",
+ "Public upload is only possible for publicly shared folders" : "A nyilvános feltöltés csak a nyilvánosan megosztott mappákban lehetséges",
"Share must at least have READ or CREATE permissions" : "A megosztásnak legalább OLVASÁSI és LÉTREHOZÁSI engedéllyel kell rendelkeznie",
"Share must have READ permission if UPDATE or DELETE permission is set" : "A megosztásnak OLVASÁSI jogosultsággal kell rendelkeznie, ha a FRISSÍTÉSI vagy TÖRLÉSI jogosultság meg van adva",
+ "Public upload disabled by the administrator" : "A nyilvános feltöltést letiltotta a rendszergazda",
+ "Could not lock path" : "Nem sikerült zárolni az útvonalat",
+ "Wrong or no update parameter given" : "Hibás vagy üres frissítési paraméter",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "A „Jelszó kiküldése a Nextcloud Beszélgetéssel” nem sikerült a fájlnál vagy mappánál, mert a Nextcloud Beszélgetés nem engedélyezett.",
+ "Wrong password" : "Hibás jelszó",
"shared by %s" : "megosztotta: %s",
- "Download all files" : "Összes fájl letöltése",
- "Direct link" : "Közvetlen hivatkozás",
+ "Download" : "Letöltés",
"Add to your %s" : "Hozzáadás a %shoz",
+ "Direct link" : "Közvetlen hivatkozás",
"Share API is disabled" : "Megosztás API letiltva",
"File sharing" : "Fájlmegosztás",
"Share will expire tomorrow" : "A megosztás holnap lejár",
@@ -110,15 +98,35 @@
"You received {share} to group {group} as a share by {user}" : "A(z) {share} megosztást a(z) {group} csoportba kapta {user} felhasználótól.",
"Accept" : "Elfogadás",
"Decline" : "Elutasítás",
- "Sharing" : "Megosztás",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Ez az alkalmazás lehetővé teszi fájlok megosztását a Nextcloudon belül. Amennyiben engedélyezve van, a rendszergazda kiválaszthatja, hogy mely csoportok oszthassanak meg fájlokat. Az érintettek ezután megoszthatják a fájlokat és mappákat más fiókokkal és csoportokkal a Nextcloudon belül. Ezenkívül, ha a rendszergazda engedélyezi a megosztás hivatkozással funkciót, akkor egy külső hivatkozás segítségével fájlokat oszthat meg más fiókokkal a Nextcloudon kívül. A rendszergazdák kikényszeríthetik a jelszavakat, a lejárati dátumokat, és engedélyezhetik a megosztási hivatkozásokkal történő kiszolgálók közötti, valamint a mobileszközökön történő megosztást.\nA funkció kikapcsolása eltávolítja a megosztott fájlokat és mappákat a kiszolgálóról az összes megosztott címzett, valamint a szinkronizálási kliensek és mobilalkalmazások számára. További információ a Nextcloud dokumentációjában található.",
+ "People" : "Emberek",
+ "Filter accounts" : "Fiókok szűrése",
+ "Expiration date" : "Lejárati dátum",
+ "Set a password" : "Jelszó beállítása",
+ "Password" : "Jelszó",
+ "Enter a valid password" : "Adjon meg érvényes jelszót",
+ "Generate a new password" : "Új jelszó előállítása",
+ "Link copied" : "Hivatkozás másolva",
+ "Invalid email address" : "Érvénytelen e-mail-cím",
+ "Share link" : "Megosztási hivatkozás",
+ "Copy" : "Másolás",
+ "Send link via email" : "Hivatkozás küldése levélben",
+ "Remove email" : "E-mail eltávolítása",
+ "Select" : "Kiválasztás",
+ "Add a note" : "Megjegyzés hozzáadása",
+ "Close" : "Bezárás",
+ "Error creating the share: {errorMessage}" : "Hiba történt a megosztás létrehozása során: {errorMessage}",
+ "Error creating the share" : "Megosztás létrehozása sikertelen",
+ "File request" : "Fájlkérés",
+ "Cancel" : "Mégse",
+ "Continue" : "Folytatás",
"Error while toggling options" : "Hiba a beállítások módosításakor",
- "Set default folder for accepted shares" : "Alapértelmezett mappa beállítása az elfogadott megosztásokhoz",
- "Reset" : "Visszaállítás",
- "Reset folder to system default" : "Mappa visszaállítása az alapértelmezett értékre",
"Choose a default folder for accepted shares" : "Válasszon egy mappát az elfogadott megosztásokhoz",
"Invalid path selected" : "Érvénytelen útvonal választva",
"Unknown error" : "Ismeretlen hiba",
- "Open Sharing Details" : "Megosztás részleteinek megnyitása",
+ "Set default folder for accepted shares" : "Alapértelmezett mappa beállítása az elfogadott megosztásokhoz",
+ "Reset" : "Visszaállítás",
+ "Reset folder to system default" : "Mappa visszaállítása az alapértelmezett értékre",
"group" : "csoport",
"conversation" : "beszélgetés",
"remote" : "távoli",
@@ -127,132 +135,160 @@
"Shared with the group {user} by {owner}" : "{owner} megosztotta a(z) {user} csoporttal",
"Shared with the conversation {user} by {owner}" : "{owner} megosztotta a(z) {user} beszélgetésben",
"Shared with {user} by {owner}" : " {owner} megosztotta {user} felhasználóval",
+ "Open Sharing Details" : "Megosztás részleteinek megnyitása",
"Added by {initiator}" : "Általa hozzáadva: {initiator}",
"Via “{folder}”" : "A(z) „{folder}” mappán keretül",
"Unshare" : "Megosztás visszavonása",
- "Internal link" : "Belső hivatkozás",
"Cannot copy, please copy the link manually" : "A másolás sikertelen, másolja kézzel a hivatkozást",
- "Copy internal link to clipboard" : "Belső hivatkozás másolása a vágólapra",
- "Link copied" : "Hivatkozás másolva",
- "Please enter the following required information before creating the share" : "A megosztás létrehozása előtt adja meg a következő szükséges információkat",
- "Password protection (enforced)" : "Jelszavas védelem (megkövetelve)",
- "Password protection" : "Jelszavas védelem",
- "Enter a password" : "Adja meg a jelszót",
- "Expiration date (enforced)" : "Lejárati idő (megkövetelve)",
- "Enter a date" : "Adjon meg egy dátumot",
- "Create share" : "Megosztás létrehozása",
- "Cancel" : "Mégse",
- "Customize link" : "Hivatkozás testreszabása",
- "Add another link" : "További hivatkozás hozzáadása",
- "Create a new share link" : "Új megosztási hivatkozás létrehozása",
+ "Copy internal link" : "Belső hivatkozás másolása",
+ "Internal link" : "Belső hivatkozás",
"{shareWith} by {initiator}" : "{shareWith}, {initiator} által",
"Shared via link by {initiator}" : "{initiator} által hivatkozással megosztva",
"Mail share ({label})" : "E-mail megosztás ({label})",
"Share link ({label})" : "Megosztási hivatkozás ({label})",
"Share link ({index})" : "Megosztási hivatkozás ({index})",
- "Share link" : "Megosztási hivatkozás",
+ "Create public link" : "Nyilvános hivatkozás létrehozása",
"Actions for \"{title}\"" : "A(z) „{title}” műveletei",
- "Copy public link of \"{title}\" to clipboard" : "A(z) „{title}” nyilvános hivatkozás másolása a vágólapra",
"Error, please enter proper password and/or expiration date" : "Hiba, írja be a megfelelő jelszót vagy lejárati dátumot",
"Link share created" : "Megosztási hivatkozás létrehozása",
"Error while creating the share" : "Hiba a megosztás létrehozása során",
+ "Please enter the following required information before creating the share" : "A megosztás létrehozása előtt adja meg a következő szükséges információkat",
+ "Password protection (enforced)" : "Jelszavas védelem (megkövetelve)",
+ "Password protection" : "Jelszavas védelem",
+ "Enter a password" : "Adja meg a jelszót",
+ "Create share" : "Megosztás létrehozása",
+ "Customize link" : "Hivatkozás testreszabása",
+ "Generate QR code" : "QR-kód készítése",
+ "Add another link" : "További hivatkozás hozzáadása",
+ "Create a new share link" : "Új megosztási hivatkozás létrehozása",
"View only" : "Csak megtekintés",
"Can edit" : "Szerkesztheti",
- "File drop" : "Fájllerakat",
"Custom permissions" : "Egyéni jogosultságok",
- "Search for share recipients" : "Megosztás résztvevőinek keresése",
- "No recommendations. Start typing." : "Nincs javaslat. Kezdjen gépelni.",
- "Resharing is not allowed" : "A megosztás továbbadása nem engedélyezett",
+ "Resharing is not allowed" : "A továbbosztás nem engedélyezett",
"Name or email …" : "Név vagy e-mail-cím…",
"Name, email, or Federated Cloud ID …" : "Név, e-mail-cím vagy föderált felhőazonosító…",
"Searching …" : "Keresés…",
"No elements found." : "Nem található elem.",
- "Search globally" : "Globális keresés",
+ "Search everywhere" : "Keresés mindenhol",
"Guest" : "Vendég",
"Group" : "Csoport",
"Email" : "E-mail",
+ "Team" : "Csapat",
"Talk conversation" : "Beszélgetés",
"Deck board" : "Kártyatábla",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "{server} kiszolgálón",
+ "Note:" : "Megjegyzés:",
+ "File drop" : "Fájllerakat",
+ "Terms of service" : "Szolgáltatási feltételek",
+ "Update share" : "Megosztás frissítése",
+ "Save share" : "Megosztás mentése",
+ "Read" : "Olvasás",
+ "Create" : "Létrehozás",
+ "Edit" : "Szerkesztés",
+ "Share" : "Megosztás",
+ "Delete" : "Törlés",
"Allow upload and editing" : "Feltöltés és szerkesztés engedélyezése",
"Allow editing" : "Szerkesztés engedélyezése",
"Upload only" : "Csak feltöltés",
"Advanced settings" : "Speciális beállítások",
"Share label" : "Megosztás címkéje",
"Set password" : "Jelszó beállítása",
- "Password" : "Jelszó",
"Password expires {passwordExpirationTime}" : "A jelszó lejárati ideje: {passwordExpirationTime}",
"Password expired" : "A jelszó lejárt",
"Video verification" : "Videós ellenőrzés",
+ "Expiration date (enforced)" : "Lejárati idő (megkövetelve)",
"Set expiration date" : "Lejárati idő beállítása",
- "Expiration date" : "Lejárati dátum",
"Hide download" : "Letöltés elrejtése",
- "Allow download" : "Letöltés engedélyezése",
+ "Allow download and sync" : "Letöltés és szinkronizálás engedélyezése",
"Note to recipient" : "Jegyzet a címzettnek",
"Enter a note for the share recipient" : "Adjon meg egy megjegyzést a megosztás címzettje számára",
- "Read" : "Olvasás",
- "Create" : "Létrehozás",
- "Edit" : "Szerkesztés",
- "Share" : "Megosztás",
"Delete share" : "Megosztás törlése",
- "Update share" : "Megosztás frissítése",
- "Save share" : "Megosztás mentése",
"Others with access" : "Mások, akik hozzáféréssel rendelkeznek",
"Toggle list of others with access to this directory" : "A könyvtárhoz hozzáféréssel rendelkezők listája be/ki",
"Toggle list of others with access to this file" : "A fájlhoz hozzáféréssel rendelkezők listája be/ki",
"Unable to fetch inherited shares" : "Nem sikerült lekérni az örökölt megosztásokat",
+ "Shares" : "Megosztások",
"Unable to load the shares list" : "A megosztások listájának betöltése sikertelen",
"Expires {relativetime}" : "Lejárat: {relativetime}",
"this share just expired." : "ez a megosztás épp most járt le.",
"Shared with you by {owner}" : "{owner} megosztotta Önnel",
+ "Internal shares" : "Belső megosztások",
+ "External shares" : "Külső megosztások",
+ "Link to a file" : "Hivatkozás egy fájlhoz",
"_Accept share_::_Accept shares_" : ["Megosztás elfogadása","Megosztások elfogadása"],
"Open in Files" : "Megnyitás a Fájlokban",
"_Reject share_::_Reject shares_" : ["Megosztás elutasítása","Megosztások elutasítása"],
"_Restore share_::_Restore shares_" : ["Megosztás helyreállítása","Megosztások helyreállítása"],
"Shared" : "Megosztva",
"Shared by {ownerDisplayName}" : "Megosztotta: {ownerDisplayName}",
- "Show sharing options" : "Megosztási beállítások megjelenítése",
- "Link to a file" : "Hivatkozás egy fájlhoz",
- "Error creating the share: {errorMessage}" : "Hiba történt a megosztás létrehozása során: {errorMessage}",
- "Error creating the share" : "Megosztás létrehozása sikertelen",
- "Error updating the share: {errorMessage}" : "Hiba történt a megosztás frissítése során: {errorMessage}",
- "Error updating the share" : "Hiba történt a megosztás frissítése során",
- "File \"{path}\" has been unshared" : "A(z) „{path}” fájl megosztása leállítva",
- "Folder \"{path}\" has been unshared" : "A(z) „{path}” mappa megosztása leállítva",
- "Share {propertyName} saved" : "A(z) {propertyName} megosztás mentve",
- "Shared by" : "Megosztotta:",
- "Shared with" : "Megosztva vele:",
- "Password created successfully" : "A jelszó sikeresen létrehozva",
- "Error generating password from password policy" : "Hiba a jelszóházirend alapján történő jelszó-előállítás során",
- "Shared with you and the group {group} by {owner}" : "{owner} megosztotta Önnel és a(z) {group} csoporttal",
- "Shared with you and {circle} by {owner}" : "{owner} megosztotta Önnel és a(z) {circle} körrel",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} megosztotta Önnel és a(z) {conversation} beszélgetéssel",
- "Shared with you in a conversation by {owner}" : "{owner} megosztotta Önnel egy beszélgetésben",
- "Shares" : "Megosztások",
+ "Shared multiple times with different people" : "Többször megosztva különböző személyekkel",
+ "Sharing options" : "Megosztási beállítások",
+ "Shared with others" : "Megosztva másokkal",
+ "Create file request" : "Fájlkérés létrehozása",
+ "No file" : "Nincs fájl",
+ "Public share" : "Nyilvános megosztás",
"Overview of shared files." : "Megosztott fájlok áttekintése.",
"No shares" : "Nincs megosztás",
"Files and folders you shared or have been shared with you will show up here" : "A saját és mások által megosztott fájlok és mappák itt jelennek meg.",
"Shared with you" : "Megosztva Önnel",
- "List of files that are shared with you." : "A mások által megosztott fájlok listázása.",
+ "List of files that are shared with you." : "A mások által megosztott fájlok listája.",
"Nothing shared with you yet" : "Még semmi sincs megosztva Önnel",
"Files and folders others shared with you will show up here" : "A mások által megosztott fájlok és mappák itt jelennek meg",
- "Shared with others" : "Megosztva másokkal",
- "List of files that you shared with others." : "A másokkal megosztott fájlok listázása.",
+ "List of files that you shared with others." : "A másokkal megosztott fájlok listája.",
"Nothing shared yet" : "Még semmi sincs megosztva",
"Files and folders you shared will show up here" : "A megosztott fájlok és mappák itt fognak megjelenni",
"Shared by link" : "Megosztva hivatkozással",
- "List of files that are shared by link." : "Hivatkozással megosztott fájlok listázása.",
+ "List of files that are shared by link." : "Hivatkozással megosztott fájlok listája.",
"No shared links" : "Nincs megosztott hivatkozás",
- "Files and folders you shared by link will show up here" : "Hivatkozással megosztott fájlok és mappák itt jelennek meg",
+ "Files and folders you shared by link will show up here" : "A hivatkozással megosztott fájlok és mappák itt jelennek meg",
"Deleted shares" : "Törölt megosztások",
- "List of shares you left." : "Elhagyott megosztások listázása.",
+ "List of shares you left." : "Elhagyott megosztások listája.",
"No deleted shares" : "Nincs törölt megosztás",
"Shares you have left will show up here" : "Az Ön által elhagyott megosztások itt jelennek meg.",
"Pending shares" : "Függőben lévő megosztások",
- "List of unapproved shares." : "Nem jóváhagyott megosztások listázása.",
+ "List of unapproved shares." : "Nem jóváhagyott megosztások listája.",
"No pending shares" : "Nincsenek függőben lévő megosztások",
"Shares you have received but not approved will show up here" : "Az érkezett, de még nem jóváhagyott megosztások itt jelennek meg",
+ "Error updating the share: {errorMessage}" : "Hiba történt a megosztás frissítése során: {errorMessage}",
+ "Error updating the share" : "Hiba történt a megosztás frissítése során",
+ "File \"{path}\" has been unshared" : "A(z) „{path}” fájl megosztása leállítva",
+ "Folder \"{path}\" has been unshared" : "A(z) „{path}” mappa megosztása leállítva",
+ "Share label saved" : "A megosztás címkéje mentve",
+ "Share password saved" : "A megosztás jelszava mentve",
+ "Shared by" : "Megosztotta:",
+ "Shared with" : "Megosztva vele:",
+ "Password created successfully" : "A jelszó sikeresen létrehozva",
+ "Error generating password from password policy" : "Hiba a jelszóházirend alapján történő jelszó-előállítás során",
+ "Shared with you and the group {group} by {owner}" : "{owner} megosztotta Önnel és a(z) {group} csoporttal",
+ "Shared with you and {circle} by {owner}" : "{owner} megosztotta Önnel és a(z) {circle} körrel",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} megosztotta Önnel és a(z) {conversation} beszélgetéssel",
+ "Shared with you in a conversation by {owner}" : "{owner} megosztotta Önnel egy beszélgetésben",
+ "Share not found" : "A megosztás nem található",
+ "Back to %s" : "Vissza ide: %s",
+ "Add to your Nextcloud" : "Hozzáadás a Nextcloudjához",
+ "Waiting…" : "Várakozás…",
+ "error" : "hiba",
+ "finished" : "kész",
+ "This will stop your current uploads." : "Ez le fogja állítani a jelenlegi feltöltéseit.",
+ "Move or copy" : "Áthelyezés vagy másolás",
+ "You can upload into this folder" : "Ebbe a mappába fel tud tölteni",
+ "Show list view" : "Listanézet megjelenítése",
+ "Show grid view" : "Rácsnézet megjelenítése",
+ "No compatible server found at {remote}" : "Nem található kompatibilis kiszolgáló itt: {remote}",
+ "Invalid server URL" : "Érvénytelen kiszolgáló URL",
+ "Failed to add the public link to your Nextcloud" : "Nem sikerült hozzáadni a nyilvános hivatkozást a Nexcloudjához",
+ "Download all files" : "Összes fájl letöltése",
+ "Link copied to clipboard" : "Hivatkozás a vágólapra másolva",
+ "Copy to clipboard" : "Másolás a vágólapra",
+ "Copy internal link to clipboard" : "Belső hivatkozás másolása a vágólapra",
+ "Only works for people with access to this file" : "Csak azoknál működik, akiknek van hozzáférésük ehhez a fájlhoz",
+ "Copy public link of \"{title}\" to clipboard" : "A(z) „{title}” nyilvános hivatkozás másolása a vágólapra",
+ "Search globally" : "Globális keresés",
+ "Search for share recipients" : "Megosztás résztvevőinek keresése",
+ "No recommendations. Start typing." : "Nincs javaslat. Kezdjen gépelni.",
+ "Enter your name" : "Adja meg a nevét",
+ "Show sharing options" : "Megosztási beállítások megjelenítése",
"Share note" : "Jegyzet megosztása",
"Upload files to %s" : "Fájlok feltöltése ide: %s",
"Note" : "Megjegyzés",
@@ -260,41 +296,7 @@
"Uploading files" : "Fájlok feltöltése",
"Uploaded files:" : "Feltöltött fájlok:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "A fájlok feltöltésével elfogadja a %1$sszolgáltatási feltételeket %2$s.",
- "Add to your Nextcloud" : "Hozzáadás a Nextcloudjához",
- "Files and folders others share with you will show up here" : "A mások által megosztott fájlok és mappák itt jelennek meg",
- "Files and folders you share will show up here" : "Az Ön által megosztott fájlok és mappák itt jelennek meg",
- "Files and folders you share by link will show up here" : "A hivatkozással megosztott fájlok és mappák itt jelennek meg",
- "Shares you deleted will show up here" : "A törölt megosztások itt jelennek meg",
- "Shares you have received but not confirmed will show up here" : "A kapott, de még el nem fogadott megosztások itt jelennek meg",
- "Shares will show up here" : "A megosztások itt jelennek meg",
- "Restore" : "Helyreállítás",
- "Something happened. Unable to restore the share." : "Hiba történt. Nem lehet visszaállítani a megosztást.",
- "Something happened. Unable to accept the share." : "Valami történt. Nem lehet elfogadni a megosztást.",
- "Something happened. Unable to reject the share." : "Valami történt. Nem sikerült elutasítani a megosztást.",
- "No expiration date set" : "Nincs beállítva lejárati dátum",
- "Please specify a valid user" : "Adjon meg egy érvényes felhasználót",
- "Please specify a valid federated user ID" : "Adjon meg egy érvényes föderált felhasználóazonosítót",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Ez az alkalmazás lehetővé teszi a felhasználók számára a fájlok megosztását a Nextcloudon belül. Amennyiben engedélyezve van, a rendszergazda kiválaszthatja, hogy mely csoportok oszthassanak meg fájlokat. Az érintett felhasználók ezután megoszthatják a fájlokat és mappákat más felhasználókkal és csoportokkal a Nextcloudon belül. Ezenkívül, ha a rendszergazda engedélyezi a megosztás hivatkozással funkciót, akkor egy külső hivatkozás segítségével fájlokat oszthat meg más felhasználókkal a Nextcloudon kívül. A rendszergazdák kikényszeríthetik a jelszavakat, a lejárati dátumokat, és engedélyezhetik a megosztási hivatkozásokkal történő kiszolgálók közötti, valamint a mobileszközökön történő megosztást.\nA funkció kikapcsolása eltávolítja a megosztott fájlokat és mappákat a kiszolgálóról az összes megosztott címzett, valamint a szinkronizálási kliensek és mobilalkalmazások számára. További információ a Nextcloud dokumentációjában található.",
- "Accept user and group shares by default" : "A felhasználói és csoportos megosztás elfogadása alapértelmezetten",
- "Read only" : "Csak olvasható",
- "File drop (upload only)" : "Fájl ejtés (csak feltöltés)",
- "Upload" : "Feltöltés",
- "Bundled permissions" : "Összetartozó jogosultságok",
- "Only works for users with access to this folder" : "Csak azoknál a felhasználóknál működik, akiknek hozzáférésük van ehhez a mappához",
- "Only works for users with access to this file" : "Csak azoknál a felhasználóknál működik, akiknek hozzáférésük van ehhez a fájlhoz",
- "Circle" : "Kör",
- "Update" : "Frissítés",
- "Share with " : "Megosztás vele:",
- "No other users with access found" : "Nincs más felhasználó, aki hozzáféréssel rendelkezik",
- "No entries found in this folder" : "Nincsenek bejegyzések ebben a mappában",
"Name" : "Név",
- "Share time" : "Megosztás időpontja",
- "Sorry, this link does not seem to work anymore." : "Sajnos úgy tűnik, ez a hivatkozás már nem működik.",
- "Reasons might be:" : "Ennek oka a következő lehet:",
- "the item was removed" : "az elem el lett távolítva",
- "the link expired" : "lejárt a hivatkozás érvényességi ideje",
- "sharing is disabled" : "a megosztás letiltásra került",
- "For more info, please ask the person who sent this link." : "További információért forduljon ahhoz, aki ezt a hivatkozást küldte.",
- "Share with" : "Megosztva a következővel"
+ "Filename must not be empty." : "A fájlnév nem lehet üres."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/hy.js b/apps/files_sharing/l10n/hy.js
deleted file mode 100644
index 2e8a459c6da..00000000000
--- a/apps/files_sharing/l10n/hy.js
+++ /dev/null
@@ -1,10 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Cancel" : "Չեղարկել",
- "Password" : "Գաղտնաբառ",
- "Name" : "Անուն",
- "Download" : "Ներբեռնել",
- "Download %s" : "Ներբեռնել %s"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/hy.json b/apps/files_sharing/l10n/hy.json
deleted file mode 100644
index a189280c922..00000000000
--- a/apps/files_sharing/l10n/hy.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "translations": {
- "Cancel" : "Չեղարկել",
- "Password" : "Գաղտնաբառ",
- "Name" : "Անուն",
- "Download" : "Ներբեռնել",
- "Download %s" : "Ներբեռնել %s"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ia.js b/apps/files_sharing/l10n/ia.js
deleted file mode 100644
index 8e6401b8835..00000000000
--- a/apps/files_sharing/l10n/ia.js
+++ /dev/null
@@ -1,15 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Cancel" : "Cancellar",
- "A file or folder has been <strong>shared</strong>" : "Un file o un dossier ha essite <strong>compartite</strong>",
- "You shared %1$s with %2$s" : "Tu compartiva %1$s con %2$s",
- "You shared %1$s with group %2$s" : "Tu compartiva %1$s con gruppo %2$s",
- "You shared %1$s via link" : "Tu compartiva %1$s via ligamine",
- "%2$s shared %1$s with you" : "%2$s compartiva %1$s con te",
- "Shares" : "Comparti",
- "Password" : "Contrasigno",
- "Name" : "Nomine",
- "Download" : "Discargar"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/ia.json b/apps/files_sharing/l10n/ia.json
deleted file mode 100644
index e5efb202155..00000000000
--- a/apps/files_sharing/l10n/ia.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{ "translations": {
- "Cancel" : "Cancellar",
- "A file or folder has been <strong>shared</strong>" : "Un file o un dossier ha essite <strong>compartite</strong>",
- "You shared %1$s with %2$s" : "Tu compartiva %1$s con %2$s",
- "You shared %1$s with group %2$s" : "Tu compartiva %1$s con gruppo %2$s",
- "You shared %1$s via link" : "Tu compartiva %1$s via ligamine",
- "%2$s shared %1$s with you" : "%2$s compartiva %1$s con te",
- "Shares" : "Comparti",
- "Password" : "Contrasigno",
- "Name" : "Nomine",
- "Download" : "Discargar"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/id.js b/apps/files_sharing/l10n/id.js
deleted file mode 100644
index d7b18e9fa88..00000000000
--- a/apps/files_sharing/l10n/id.js
+++ /dev/null
@@ -1,69 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with others" : "Dibagikan dengan lainnya",
- "Shared with you" : "Dibagikan dengan Anda",
- "Shared by link" : "Dibagikan dengan tautan",
- "Nothing shared with you yet" : "Tidak ada yang dibagikan kepada Anda",
- "Files and folders others share with you will show up here" : "Berkas dan folder lainnya yang dibagikan kepada Anda akan ditampilkan disini",
- "Nothing shared yet" : "Tidak ada yang dibagikan",
- "Files and folders you share will show up here" : "Berkas dan folder yang Anda bagikan akan ditampilkan disini",
- "No shared links" : "Tidak ada tautan berbagi",
- "Files and folders you share by link will show up here" : "Berkas dan folder yang Anda bagikan menggunakan tautan akan ditampilkan disini",
- "Download" : "Unduh",
- "You can upload into this folder" : "Anda dapat mengunggah kedalam folder ini",
- "No compatible server found at {remote}" : "Tidak ditemukan server yang kompatibel pada {remote}",
- "Invalid server URL" : "Server URL tidak valid",
- "Failed to add the public link to your Nextcloud" : "Gagal menambah tautan publik ke Nextcloud Anda",
- "No expiration date set" : "Tanggal kedaluwarsa tidak diatur",
- "Shared by" : "Dibagikan oleh",
- "Sharing" : "Berbagi",
- "Downloaded via public link" : "Diunduh via tautan publik",
- "Removed public link" : "tautan publik dihapus",
- "Public link expired" : "tautan publik kedaluwarsa",
- "A file or folder was shared from <strong>another server</strong>" : "Sebuah berkas atau folder telah dibagikan dari <strong>server lainnya</strong>",
- "A file or folder has been <strong>shared</strong>" : "Sebuah berkas atau folder telah <strong>dibagikan</strong>",
- "Wrong share ID, share doesn't exist" : "ID pembagian salah, tidak ada yang bisa dibagi",
- "could not delete share" : "tidak dapat menghapus pembagian",
- "Could not delete share" : "Tidak dapat menghapus pembagian",
- "Please specify a file or folder path" : "Tentukan berkas atau folder",
- "Wrong path, file/folder doesn't exist" : "Salah path, berkas/folder tidak ada",
- "Could not create share" : "Tidak dapat membuat pembagian",
- "invalid permissions" : "izin tidak sah",
- "Please specify a valid user" : "Tentukan pengguna yang valid",
- "Group sharing is disabled by the administrator" : "Berbagi grup dinonaktifkan oleh administrator",
- "Please specify a valid group" : "Tentukan grup yang valid",
- "Public link sharing is disabled by the administrator" : "Pembagian tautan publik dinonaktifkan oleh administrator",
- "Public upload disabled by the administrator" : "Pengunggahan publik dinonaktifkan oleh administrator",
- "Public upload is only possible for publicly shared folders" : "Pengunggahan publik hanya bisa untuk folder yang dibagikan kepada publik",
- "Invalid date, date format must be YYYY-MM-DD" : "Tanggal salah, format tanggal harus TTTT-BB-HH",
- "Unknown share type" : "Tipe berbagi tidak diketahui",
- "Not a directory" : "Bukan direktori",
- "Could not lock path" : "Tidak dapat mengunci path",
- "Wrong or no update parameter given" : "Parameter salah atau tidak diperbarui",
- "Can't change permissions for public share links" : "Tidak dapat mengubah izin untuk tautan berbagi publik",
- "Cannot increase permissions" : "Tidak dapat menambah izin",
- "Direct link" : "Tautan langsung",
- "Add to your Nextcloud" : "Tambahkan ke Nextcloud Anda",
- "Share API is disabled" : "API pembagian dinonaktifkan",
- "No entries found in this folder" : "Tidak ada entri yang ditemukan dalam folder ini",
- "Name" : "Nama",
- "Share time" : "Waktu berbagi",
- "Expiration date" : "Tanggal kedaluwarsa",
- "Sorry, this link doesn’t seem to work anymore." : "Maaf, tautan ini tampaknya tidak berfungsi lagi.",
- "Reasons might be:" : "Alasan yang mungkin:",
- "the item was removed" : "item telah dihapus",
- "the link expired" : "tautan telah kedaluwarsa",
- "sharing is disabled" : "berbagi dinonaktifkan",
- "For more info, please ask the person who sent this link." : "Untuk info lebih lanjut, silakan tanyakan orang yang mengirim tautan ini.",
- "Download %s" : "Unduh %s",
- "Upload files to %s" : "Unggah berkas ke %s",
- "Select or drop files" : "Pilih atau drop berkas",
- "Uploading files…" : "Mengunggah berkas...",
- "Uploaded files:" : "Berkas terunggah:",
- "Sharing %s failed because the back end does not allow shares from type %s" : "Gagal berbagi %s karena backend tidak mengizinkan berbagi dengan tipe %s",
- "This share is password-protected" : "Berbagi ini dilindungi kata sandi",
- "The password is wrong. Try again." : "Kata sandi salah. Coba lagi",
- "Password" : "Kata sandi"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/id.json b/apps/files_sharing/l10n/id.json
deleted file mode 100644
index 3226abaeba0..00000000000
--- a/apps/files_sharing/l10n/id.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{ "translations": {
- "Shared with others" : "Dibagikan dengan lainnya",
- "Shared with you" : "Dibagikan dengan Anda",
- "Shared by link" : "Dibagikan dengan tautan",
- "Nothing shared with you yet" : "Tidak ada yang dibagikan kepada Anda",
- "Files and folders others share with you will show up here" : "Berkas dan folder lainnya yang dibagikan kepada Anda akan ditampilkan disini",
- "Nothing shared yet" : "Tidak ada yang dibagikan",
- "Files and folders you share will show up here" : "Berkas dan folder yang Anda bagikan akan ditampilkan disini",
- "No shared links" : "Tidak ada tautan berbagi",
- "Files and folders you share by link will show up here" : "Berkas dan folder yang Anda bagikan menggunakan tautan akan ditampilkan disini",
- "Download" : "Unduh",
- "You can upload into this folder" : "Anda dapat mengunggah kedalam folder ini",
- "No compatible server found at {remote}" : "Tidak ditemukan server yang kompatibel pada {remote}",
- "Invalid server URL" : "Server URL tidak valid",
- "Failed to add the public link to your Nextcloud" : "Gagal menambah tautan publik ke Nextcloud Anda",
- "No expiration date set" : "Tanggal kedaluwarsa tidak diatur",
- "Shared by" : "Dibagikan oleh",
- "Sharing" : "Berbagi",
- "Downloaded via public link" : "Diunduh via tautan publik",
- "Removed public link" : "tautan publik dihapus",
- "Public link expired" : "tautan publik kedaluwarsa",
- "A file or folder was shared from <strong>another server</strong>" : "Sebuah berkas atau folder telah dibagikan dari <strong>server lainnya</strong>",
- "A file or folder has been <strong>shared</strong>" : "Sebuah berkas atau folder telah <strong>dibagikan</strong>",
- "Wrong share ID, share doesn't exist" : "ID pembagian salah, tidak ada yang bisa dibagi",
- "could not delete share" : "tidak dapat menghapus pembagian",
- "Could not delete share" : "Tidak dapat menghapus pembagian",
- "Please specify a file or folder path" : "Tentukan berkas atau folder",
- "Wrong path, file/folder doesn't exist" : "Salah path, berkas/folder tidak ada",
- "Could not create share" : "Tidak dapat membuat pembagian",
- "invalid permissions" : "izin tidak sah",
- "Please specify a valid user" : "Tentukan pengguna yang valid",
- "Group sharing is disabled by the administrator" : "Berbagi grup dinonaktifkan oleh administrator",
- "Please specify a valid group" : "Tentukan grup yang valid",
- "Public link sharing is disabled by the administrator" : "Pembagian tautan publik dinonaktifkan oleh administrator",
- "Public upload disabled by the administrator" : "Pengunggahan publik dinonaktifkan oleh administrator",
- "Public upload is only possible for publicly shared folders" : "Pengunggahan publik hanya bisa untuk folder yang dibagikan kepada publik",
- "Invalid date, date format must be YYYY-MM-DD" : "Tanggal salah, format tanggal harus TTTT-BB-HH",
- "Unknown share type" : "Tipe berbagi tidak diketahui",
- "Not a directory" : "Bukan direktori",
- "Could not lock path" : "Tidak dapat mengunci path",
- "Wrong or no update parameter given" : "Parameter salah atau tidak diperbarui",
- "Can't change permissions for public share links" : "Tidak dapat mengubah izin untuk tautan berbagi publik",
- "Cannot increase permissions" : "Tidak dapat menambah izin",
- "Direct link" : "Tautan langsung",
- "Add to your Nextcloud" : "Tambahkan ke Nextcloud Anda",
- "Share API is disabled" : "API pembagian dinonaktifkan",
- "No entries found in this folder" : "Tidak ada entri yang ditemukan dalam folder ini",
- "Name" : "Nama",
- "Share time" : "Waktu berbagi",
- "Expiration date" : "Tanggal kedaluwarsa",
- "Sorry, this link doesn’t seem to work anymore." : "Maaf, tautan ini tampaknya tidak berfungsi lagi.",
- "Reasons might be:" : "Alasan yang mungkin:",
- "the item was removed" : "item telah dihapus",
- "the link expired" : "tautan telah kedaluwarsa",
- "sharing is disabled" : "berbagi dinonaktifkan",
- "For more info, please ask the person who sent this link." : "Untuk info lebih lanjut, silakan tanyakan orang yang mengirim tautan ini.",
- "Download %s" : "Unduh %s",
- "Upload files to %s" : "Unggah berkas ke %s",
- "Select or drop files" : "Pilih atau drop berkas",
- "Uploading files…" : "Mengunggah berkas...",
- "Uploaded files:" : "Berkas terunggah:",
- "Sharing %s failed because the back end does not allow shares from type %s" : "Gagal berbagi %s karena backend tidak mengizinkan berbagi dengan tipe %s",
- "This share is password-protected" : "Berbagi ini dilindungi kata sandi",
- "The password is wrong. Try again." : "Kata sandi salah. Coba lagi",
- "Password" : "Kata sandi"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/is.js b/apps/files_sharing/l10n/is.js
index 17c5024fcda..940669c69e0 100644
--- a/apps/files_sharing/l10n/is.js
+++ b/apps/files_sharing/l10n/is.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Bíð…",
- "error" : "villa",
- "finished" : "lokið",
- "This will stop your current uploads." : "Þetta mun stöðva núverandi innsendingar þínar.",
- "Move or copy" : "Færa eða afrita",
- "Download" : "Sækja",
- "Delete" : "Eyða",
- "You can upload into this folder" : "Þú getur sent inn skrár í þessa möppu",
- "Terms of service" : "Þjónustuskilmálar",
- "Show list view" : "Birta listasýn",
- "Show grid view" : "Birta reitasýn",
- "No compatible server found at {remote}" : "Enginn samhæfður vefþjónn fannst á {remote}",
- "Invalid server URL" : "Ógild URI-slóð vefþjóns",
- "Failed to add the public link to your Nextcloud" : "Mistókst að bæta opinberum tengli í þitt eigið Nextcloud",
"File shares" : "Skráasameignir",
"Downloaded via public link" : "Náð í með almenningstengli",
"Downloaded by {email}" : "Náð í með {email}",
@@ -70,7 +56,7 @@ OC.L10N.register(
"Share for file {file} expired" : "Sameign fyrir skrána {file} er útrunnin",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Skrá eða mappa sem deilt var með tölvupósti eða almenningstengli var <strong>sótt</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Skjali eða möppu hefur verið deilt <strong>frá öðrum þjóni</strong>",
- "Files" : "Skrár",
+ "Sharing" : "Deiling",
"A file or folder has been <strong>shared</strong>" : "Skjali eða möppu hefur verið <strong>deilt</strong>",
"Shared link" : "Deilitengill",
"Wrong share ID, share does not exist" : "Rangt auðkenni sameignar, sameign er ekki til",
@@ -78,32 +64,42 @@ OC.L10N.register(
"Please specify a file or folder path" : "Tiltaktu skrá eða slóð á möppu",
"Wrong path, file/folder does not exist" : "Röng slóð, skráin/mappan er ekki til",
"Could not create share" : "Ekki tókst að búa til sameign",
- "Invalid permissions" : "Ógildar aðgangsheimildir",
- "Invalid date, date format must be YYYY-MM-DD" : "Ógild dagsetning, dagsetningasniðið verður að vera ÁÁÁÁ-MM-DD",
+ "Please specify a valid account to share with" : "Tilgreindu gildan aðgang til að nota til að deila",
"Group sharing is disabled by the administrator" : "Deiling innan hóps hefur verið gerð óvirk af kerfisstjóra.",
"Please specify a valid group" : "Settu inn gildan hóp",
"Public link sharing is disabled by the administrator" : "Deiling opinberra sameignartengla hefur verið gerð óvirk af kerfisstjóra.",
- "Public upload disabled by the administrator" : "Opinber innsending hefur verið gerð óvirk af kerfisstjóra.",
- "Public upload is only possible for publicly shared folders" : "Opinber innsending er einungis möguleg í möppur sem er deilt opinberlega",
+ "Please specify a valid email address" : "Tilgreindu gilt tölvupóstfang",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Deiling á %s með því að senda lykilorð með Nextcloud Talk mistókst því að Nextcloud Talk er ekki virkt",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Deiling %1$s mistókst, því bakvinnslukerfið leyfir ekki sameignir af gerðinni %2$s",
+ "Please specify a valid federated account ID" : "Tilgreindu gilt skýjasambandsauðkenni aðgangs",
"Please specify a valid federated group ID" : "Skilgreindu gilt skýjasambandsauðkenni hóps",
- "You cannot share to a Circle if the app is not enabled" : "Þú getur ekki deilt með hring ef forritið er ekki virkt",
- "Please specify a valid circle" : "Skilgreindu gildan hring",
+ "You cannot share to a Team if the app is not enabled" : "Þú getur ekki deilt með teymi ef forritið er ekki virkt",
+ "Please specify a valid team" : "Settu inn gilt teymi",
"Sharing %s failed because the back end does not support room shares" : "Deiling %s mistókst því bakvinnslukerfið leyfir ekki spjallsvæðasameignir",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Deiling %s mistókst því bakvinnslukerfið leyfir ekki ScienceMesh-sameignir",
"Unknown share type" : "Óþekkt tegund sameignar",
"Not a directory" : "Er ekki mappa",
"Could not lock node" : "Gat ekki læst hnút",
- "Could not lock path" : "Gat ekki læst slóð",
- "Wrong or no update parameter given" : "Rangt eða ekkert uppfærsluviðfang gefið",
+ "Public upload is only possible for publicly shared folders" : "Opinber innsending er einungis möguleg í möppur sem er deilt opinberlega",
"Share must at least have READ or CREATE permissions" : "Sameign verður að hafa að minnsta kosti LESA eða ÚTBÚA heimildir",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Sameign verður að hafa LESA heimild ef UPPFÆRA eða EYÐA heimildir eru veittar",
+ "Public upload disabled by the administrator" : "Opinber innsending hefur verið gerð óvirk af kerfisstjóra.",
+ "Could not lock path" : "Gat ekki læst slóð",
+ "no sharing rights on this item" : "engin heimild til deilingar þessu atriði",
+ "You are not allowed to edit incoming shares" : "Þú hefur ekki heimild til að breyta innkomandi sameignum",
+ "Wrong or no update parameter given" : "Rangt eða ekkert uppfærsluviðfang gefið",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Deiling með því að senda lykilorð með Nextcloud Talk til að deila skrá eða möppu mistókst því að Nextcloud Talk er ekki virkt.",
+ "Invalid date. Format must be YYYY-MM-DD" : "Ógild dagsetning. Sniðið verður að vera ÁÁÁÁ-MM-DD",
+ "No sharing rights on this item" : "Engin heimild til deilingar þessu atriði",
+ "You are not allowed to send mail notifications" : "Þú hefur ekki heimild til að senda tilkynningar í tölvupósti",
+ "Wrong password" : "Rangt lykilorð",
+ "Error while sending mail notification" : "Villa við að senda tilkynningu í tölvupósti",
+ "Failed to generate a unique token" : "Mistókst að búa til einstakt teikn",
+ "This share does not exist or is no longer available" : "Þessi sameign er ekki til eða ekki lengur tiltæk",
"shared by %s" : "Deilt af %s",
- "Download all files" : "Sækja allar skrár",
- "Direct link" : "Beinn tengill",
+ "Download" : "Sækja",
"Add to your %s" : "Bæta við þitt %s",
+ "Direct link" : "Beinn tengill",
"Share API is disabled" : "Deilingar-API er óvirkt",
"File sharing" : "Skráadeiling",
"Share will expire tomorrow" : "Sameignin rennur út á morgun",
@@ -112,126 +108,202 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Þú tókst við {share} fyrir hópinn {group} sem sameign frá {user}",
"Accept" : "Samþykkja",
"Decline" : "Hafna",
- "Sharing" : "Deiling",
+ "Remember to upload the files to %s" : "Mundu að senda skrárnar inn til %s",
+ "Open \"%s\"" : "Opna \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Þetta forrit gerir notendum kleift að deila skrám innan Nextcloud. Ef þetta er virkt getur stjórnandi valið hvaða hópar geti deilt skrám. Viðkomandi notendur geta þá deilt skrám og möppum með öðrum notendum og hópum innan Nextcloud. Að auki, ef stjórnandinn virkjar eiginleikan til að deila með tenglum, er hægt að nota ytri tengil til að deila skrám með öðrum notendum utan Nextcloud. Stjórnendur geta líka krafist notkunar lykilorða, gildistíma og virkjað þjónn-í-þjón deilingu með deilitenglum, rétt eins og deilingu með snjalltækjum.\nSé slökkt á þessum eiginleika, eru deildar skrár og möppur fjarlægðar af þjóninum fyrir alla notendur þessara sameigna, og einnig úr samstillingaforritum og snjalltækjum. Ítarlegri upplýsingar um þetta má finna í hjálparskjölum Nextcloud.",
+ "People" : "Fólk",
+ "Filter accounts" : "Sía aðganga",
+ "The request will expire on {date} at midnight and will be password protected." : "Beiðnin mun renna út þann {date} á miðnætti og verður varin með lykilorði.",
+ "The request will expire on {date} at midnight." : "Beiðnin mun renna út þann {date} á miðnætti.",
+ "The request will be password protected." : "Beiðnin verður varin með lykilorði.",
+ "When should the request expire?" : "Hvenær á beiðnin að renna út?",
+ "Set a submission expiration date" : "Setja gildistíma innsendingar",
+ "Expiration date" : "Gildir til",
+ "Select a date" : "Veldu dagsetningu",
+ "What password should be used for the request?" : "Hvaða lykilorð á að nota fyrir beiðnina?",
+ "Set a password" : "Setja lykilorð",
+ "Password" : "Lykilorð",
+ "Enter a valid password" : "Settu inn gilt lykilorð",
+ "Generate a new password" : "Útbúa nýtt lykilorð",
+ "Your administrator has enforced a password protection." : "Kerfisstjórinn þinn hefur krafist verndunar með lykilorði.",
+ "Link copied" : "Tengill afritaður",
+ "Email already added" : "Tölvupóstfangi þegar bætt við",
+ "Invalid email address" : "Ógilt tölvupóstfang",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Eftirfarandi tölvupóstfang er ógilt: {emails}","Eftirfarandi tölvupóstföng eru ógild: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} tölvupóstfangi þegar bætt við","{count} tölvupóstföngum þegar bætt við"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} tölvupóstfangi bætt við","{count} tölvupóstföngum bætt við"],
+ "Share link" : "Tengill á sameign",
+ "Copy" : "Afrita",
+ "Send link via email" : "Senda tengil með tölvupósti",
+ "Enter an email address or paste a list" : "Settu inn tölvupóstfang eða límdu inn lista",
+ "Remove email" : "Fjarlægja tölvupóstfang",
+ "Select a destination" : "Veldu áfangastað",
+ "Select" : "Velja",
+ "What are you requesting?" : "Hvað ertu að biðja um?",
+ "Request subject" : "Viðfangsefni beiðnar",
+ "Birthday party photos, History assignment…" : "Myndir úr afmæli, söguverkefni…",
+ "Where should these files go?" : "Hvert ættu þessar skrár að fara?",
+ "Upload destination" : "Áfangastaður innsendinga",
+ "Revert to default" : "Endurstilla á sjálfgefið",
+ "Add a note" : "Bæta við minnispunkti",
+ "Note for recipient" : "Minnispunktur til viðtakanda",
+ "Add a note to help people understand what you are requesting." : "Bættu við minnispunkti svo fólk viti að um hvað þú sért að biðja.",
+ "Close" : "Loka",
+ "_Send email and close_::_Send {count} emails and close_" : ["Senda tölvupóst og loka","Senda {count} tölvupósta og loka"],
+ "File request created" : "Beiðni um skrá útbúin",
+ "Error creating the share: {errorMessage}" : "Villa kom upp við að búa til sameignina: {errorMessage}",
+ "Error creating the share" : "Villa við að búa til sameignina",
+ "Error sending emails: {errorMessage}" : "Villa við að senda tölvupósta: {errorMessage}",
+ "Error sending emails" : "Villa við að senda tölvupósta",
+ "Create a file request" : "Útbúa beiðni um skrá",
+ "File request" : "Beiðni um skrá",
+ "Previous step" : "Fyrra skref",
+ "Cancel" : "Hætta við",
+ "Cancel the file request creation" : "Hætta við gerð beiðnar um skrá",
+ "Close without sending emails" : "Loka án þess að senda tölvupósta",
+ "Continue" : "Halda áfram",
"Error while toggling options" : "Villa við að víxla valkostum",
- "Set default folder for accepted shares" : "Stilltu sjáfgefna möppu fyrir samþykktar sameignir",
- "Reset" : "Endurstilla",
- "Reset folder to system default" : "Frumstilla möppu á sjálfgefna í kerfinu",
"Choose a default folder for accepted shares" : "Veldu sjáfgefna möppu fyrir samþykktar sameignir",
"Invalid path selected" : "Ógild slóð valin",
"Unknown error" : "Óþekkt villa",
- "Open Sharing Details" : "Opna nánari upplýsingar um deilingu",
+ "Set default folder for accepted shares" : "Stilltu sjáfgefna möppu fyrir samþykktar sameignir",
+ "Reset" : "Endurstilla",
+ "Reset folder to system default" : "Frumstilla möppu á sjálfgefna í kerfinu",
"group" : "hópur",
"conversation" : "samtal",
"remote" : "fjartengt",
"remote group" : "fjartengdur hópur",
"guest" : "gestanotandi",
+ "by {initiator}" : "af {initiator}",
"Shared with the group {user} by {owner}" : "Deilt með hópnum {user} af {owner}",
"Shared with the conversation {user} by {owner}" : "Deilt með þér í samtali við {user} af {owner}",
"Shared with {user} by {owner}" : "Deilt með {user} af {owner}",
+ "Open Sharing Details" : "Opna nánari upplýsingar um deilingu",
"Added by {initiator}" : "Bætt við af {initiator}",
"Via “{folder}”" : "Í gegnum “{folder}”",
"Unshare" : "Hætta deilingu",
- "Internal link" : "Innri tengill",
"Cannot copy, please copy the link manually" : "Mistókst að afrita, afritaðu tengilinn handvirkt",
- "Copy internal link to clipboard" : "Afrita innri tengil á klippispjald",
- "Link copied" : "Tengill afritaður",
- "Please enter the following required information before creating the share" : "Settu inn eftirfarandi nauðsynlegar upplýsingar áður en þú býrð til sameignina",
- "Password protection (enforced)" : "Verndun með lykilorði (nauðsynleg)",
- "Password protection" : "Verndun með lykilorði",
- "Enter a password" : "Settu inn lykilorð",
- "Expiration date (enforced)" : "Gildistími (nauðsynlegur)",
- "Enter a date" : "Settu inn dagsetningu",
- "Create share" : "Búa til sameign",
- "Cancel" : "Hætta við",
- "Customize link" : "Sérsníða tengil",
- "Add another link" : "Bæta við öðrum tengli",
- "Create a new share link" : "Búa til nýjan tengil á sameign",
+ "Copy internal link" : "Afrita innri tengil",
+ "Internal link" : "Innri tengill",
"{shareWith} by {initiator}" : "{shareWith} af {initiator}",
"Shared via link by {initiator}" : "Deilt með tengli af {initiator}",
+ "File request ({label})" : "Beiðni um skrá ({label})",
"Mail share ({label})" : "Deilt með tölvupósti ({label})",
"Share link ({label})" : "Tengill á sameign ({label})",
+ "Mail share" : "Deiling með tölvupósti",
"Share link ({index})" : "Tengill á sameign ({index})",
- "Share link" : "Tengill á sameign",
+ "Create public link" : "Búa til opinberan tengil",
"Actions for \"{title}\"" : "Aðgerðir fyrir \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Afrita opinberan tengil \"{title}\" á klippispjald",
"Error, please enter proper password and/or expiration date" : "Villa, settu inn alvöru lykilorð og/eða gildisdagsetningu",
"Link share created" : "Sameign í gegnum tengil útbúin",
"Error while creating the share" : "Villa kom upp við að búa til sameignina",
+ "Please enter the following required information before creating the share" : "Settu inn eftirfarandi nauðsynlegar upplýsingar áður en þú býrð til sameignina",
+ "Password protection (enforced)" : "Verndun með lykilorði (nauðsynleg)",
+ "Password protection" : "Verndun með lykilorði",
+ "Enter a password" : "Settu inn lykilorð",
+ "Enable link expiration (enforced)" : "Virkja gildistíma tengils (nauðsynlegt)",
+ "Enable link expiration" : "Virkja gildistíma tengils",
+ "Enter expiration date (enforced)" : "Settu inn gildistíma (nauðsynlegt)",
+ "Enter expiration date" : "Settu inn gildistíma",
+ "Create share" : "Búa til sameign",
+ "Customize link" : "Sérsníða tengil",
+ "Generate QR code" : "Útbúa QR-kóða",
+ "Add another link" : "Bæta við öðrum tengli",
+ "Create a new share link" : "Búa til nýjan tengil á sameign",
"View only" : "Einungis skoða",
"Can edit" : "Getur breytt",
- "File drop" : "Slepping skráa",
"Custom permissions" : "Sérsniðnar heimildir",
- "Search for share recipients" : "Leita að viðtakendum sameignar",
- "No recommendations. Start typing." : "Engar tillögur. Byrjaðu að skrifa.",
"Resharing is not allowed" : "Endurdeiling er ekki leyfð",
"Name or email …" : "Nafn eða tölvupóstfang …",
"Name, email, or Federated Cloud ID …" : "Nafn, tölvupóstfang eða skýjasambandsauðkenni (Federated Cloud ID) …",
"Searching …" : "Leita …",
"No elements found." : "Engin stök fundust.",
- "Search globally" : "Leita allstaðar",
+ "Search everywhere" : "Leita allsstaðar",
"Guest" : "Gestur",
"Group" : "Hópur",
"Email" : "Tölvupóstur",
+ "Team" : "Teymi",
"Talk conversation" : "Samtal í Talk-spjalli",
"Deck board" : "Deck-borð",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "á {server}",
+ "Note from" : "Minnispunktur frá",
+ "Note:" : "Athugaðu:",
+ "File drop" : "Slepping skráa",
+ "Upload files to {foldername}." : "Senda skrár inn í {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Með því að senda inn skrár, samþykkir þú þjónustuskilmálana.",
+ "View terms of service" : "Skoða þjónustuskilmála",
+ "Terms of service" : "Þjónustuskilmálar",
+ "Share with email {email}" : "Deila í tölvupósti með {email}",
+ "Share with group" : "Deila með hópi",
+ "Share in conversation" : "Deila í samtali",
+ "Share with {user} on remote server {server}" : "Deila með {user} á fjartengda þjóninum {server}",
+ "Share with remote group" : "Deila með fjartengdum hópi",
+ "Share with guest" : "Deila með gesti",
+ "Update share" : "Uppfæra sameign",
+ "Save share" : "Vista sameign",
+ "Read" : "Lesa",
+ "Create" : "Búa til",
+ "Edit" : "Breyta",
+ "Share" : "Deila",
+ "Delete" : "Eyða",
+ "Replace current password" : "Skipta út fyrirliggjandi lykilorði",
+ "Failed to generate a new token" : "Mistókst að búa til nýtt teikn",
"Allow upload and editing" : "Leyfa innsendingu og breytingar",
"Allow editing" : "Leyfa breytingar",
"Upload only" : "Einungis innsending",
"Advanced settings" : "Ítarlegri valkostir",
"Share label" : "Merking á sameign",
+ "Generating…" : "Útbý…",
+ "Generate new token" : "Búa til nýtt teikn",
"Set password" : "Stilltu lykilorð",
- "Password" : "Lykilorð",
"Password expires {passwordExpirationTime}" : "Lykilorð rennur út {passwordExpirationTime}",
"Password expired" : "Lykilorð er útrunnið",
"Video verification" : "Sannvottun í myndskeiði",
+ "Expiration date (enforced)" : "Gildistími (nauðsynlegur)",
"Set expiration date" : "Setja gildistíma",
- "Expiration date" : "Gildir til",
"Hide download" : "Fela niðurhal",
- "Allow download" : "Leyfa niðurhal",
+ "Allow download and sync" : "Leyfa niðurhal og samstillingu",
"Note to recipient" : "Minnispunktur til viðtakanda",
"Enter a note for the share recipient" : "Settu inn minnispunkt til viðtakanda sameignar",
- "Read" : "Lesa",
- "Create" : "Búa til",
- "Edit" : "Breyta",
- "Share" : "Deila",
+ "Show files in grid view" : "Birta skrár í reitasýn",
"Delete share" : "Eyða sameign",
- "Update share" : "Uppfæra sameign",
- "Save share" : "Vista sameign",
"Others with access" : "Aðrir með aðgang",
+ "No other accounts with access found" : "Engir aðrir notendur með aðgang fundust",
"Toggle list of others with access to this directory" : "Víxla af/á lista yfir aðra með aðgang að þessari möppu",
"Toggle list of others with access to this file" : "Víxla af/á lista yfir aðra með aðgang að þessari skrá",
"Unable to fetch inherited shares" : "Mistókst að sækja erfðar sameignir",
+ "Link shares" : "Sameignartenglar",
+ "Shares" : "Sameignir",
"Unable to load the shares list" : "Mistókst aði hlaða inn lista yfir sameignir",
"Expires {relativetime}" : "Rennur út {relativetime}",
"this share just expired." : "Þessi sameign var að renna út.",
"Shared with you by {owner}" : "Deilt með þér af {owner}",
+ "Internal shares" : "Innri sameignir",
+ "Internal shares explanation" : "Útskýring á innri sameignum",
+ "External shares" : "Utanaðkomandi sameignir",
+ "External shares explanation" : "Útskýring á utanaðkomandi sameignum",
+ "Additional shares" : "Viðbótarsameignir",
+ "Additional shares explanation" : "Útskýring á viðbótarsameignum",
+ "Link to a file" : "Tengill í skrá",
"_Accept share_::_Accept shares_" : ["Samþykkja sameign","Samþykkja sameignir"],
"Open in Files" : "Opna í skráaforritinu",
"_Reject share_::_Reject shares_" : ["Hafna sameign","Hafna sameignum"],
"_Restore share_::_Restore shares_" : ["Endurheimta sameign","Endurheimta sameignir"],
"Shared" : "Deilt",
"Shared by {ownerDisplayName}" : "Deilt af {ownerDisplayName}",
- "Show sharing options" : "Birta valkostir deilingar",
- "Link to a file" : "Tengill í skrá",
- "Error creating the share: {errorMessage}" : "Villa kom upp við að búa til sameignina: {errorMessage}",
- "Error creating the share" : "Villa við að búa til sameignina",
- "Error updating the share: {errorMessage}" : "Villa kom upp við að uppfæra sameignina: {errorMessage}",
- "Error updating the share" : "Villa við að uppfæra sameignina",
- "File \"{path}\" has been unshared" : "Skráin \"{path}\" hefur verið tekin úr deilingu",
- "Folder \"{path}\" has been unshared" : "Mappan \"{path}\" hefur verið tekin úr deilingu",
- "Share {propertyName} saved" : "Sameignin {propertyName} vistuð",
- "Shared by" : "Deilt af",
- "Shared with" : "Deilt með",
- "Password created successfully" : "Tókst að búa til lykilorð",
- "Error generating password from password policy" : "Villa við að útbúa lykilorð út frá lykilorðastefnu",
- "Shared with you and the group {group} by {owner}" : "Deilt með þér og hópnum {group} af {owner}",
- "Shared with you and {circle} by {owner}" : "Deilt með þér og {circle} af {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Deilt með þér og samtalinu {conversation} af {owner}",
- "Shared with you in a conversation by {owner}" : "Deilt með þér í samtali af {owner}",
- "Shares" : "Sameignir",
+ "Shared multiple times with different people" : "Deilt mörgum sinnum með mismunandi fólki",
+ "Shared with others" : "Deilt með öðrum",
+ "Create file request" : "Útbúa beiðni um skrá",
+ "Upload files to {foldername}" : "Senda skrár inn í {foldername}",
+ "Public file share" : "Opinber skráasameign",
+ "Publicly shared file." : "Skrá deilt opinberlega.",
+ "No file" : "Engin skrá",
+ "The file shared with you will show up here" : "Skráin sem deilt er með þér birtist hér",
+ "Public share" : "Opinber sameign",
+ "Publicly shared files." : "Skrár deilt opinberlega.",
+ "No files" : "Engar skrár",
+ "Files and folders shared with you will show up here" : "Skrár og möppur sem deilt er með þér birtast hér",
"Overview of shared files." : "Yfirlit yfir deildar skrár.",
"No shares" : "Engar sameignir",
"Files and folders you shared or have been shared with you will show up here" : "Skrár og möppur sem þú hefur deilt eða aðrir deila með þér birtast hér",
@@ -239,7 +311,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Listi yfir skrár sem er deilt með þér.",
"Nothing shared with you yet" : "Engu deilt með þér ennþá",
"Files and folders others shared with you will show up here" : "Skrár og möppur sem aðrir hafa deilt með þér birtast hér",
- "Shared with others" : "Deilt með öðrum",
"List of files that you shared with others." : "Listi yfir skrár sem þú hefur deilt með öðrum.",
"Nothing shared yet" : "Engu deilt ennþá",
"Files and folders you shared will show up here" : "Skrár og möppur sem þú hefur deilt birtast hér",
@@ -247,6 +318,10 @@ OC.L10N.register(
"List of files that are shared by link." : "Listi yfir skrár sem er deilt með tengli.",
"No shared links" : "Engir sameignartenglar",
"Files and folders you shared by link will show up here" : "Skrár og möppur sem þú hefur deilt í gegnum tengil birtast hér",
+ "File requests" : "Beiðnir um skrár",
+ "List of file requests." : "Listi yfir beiðnir um skrár.",
+ "No file requests" : "Engar beiðnir um skrár",
+ "File requests you have created will show up here" : "Beiðnir um skrár sem þú hefur útbúið munu birtast hér",
"Deleted shares" : "Eyddar sameignir",
"List of shares you left." : "Listi yfir sameignir sem þú hefur yfirgefið.",
"No deleted shares" : "Engar eyddar sameignir",
@@ -255,48 +330,70 @@ OC.L10N.register(
"List of unapproved shares." : "Listi yfir ósamþykktar sameignir.",
"No pending shares" : "Engar sameignir í bið",
"Shares you have received but not approved will show up here" : "Sameignir sem þú hefur fengið en ekki samþykkt munu birtast hér",
+ "Error updating the share: {errorMessage}" : "Villa kom upp við að uppfæra sameignina: {errorMessage}",
+ "Error updating the share" : "Villa við að uppfæra sameignina",
+ "File \"{path}\" has been unshared" : "Skráin \"{path}\" hefur verið tekin úr deilingu",
+ "Folder \"{path}\" has been unshared" : "Mappan \"{path}\" hefur verið tekin úr deilingu",
+ "Could not update share" : "Gat ekki uppfært sameign",
+ "Share saved" : "Sameign vistuð",
+ "Share expiry date saved" : "Gildistími sameignar vistaður",
+ "Share label saved" : "Merking sameignar vistuð",
+ "Share note for recipient saved" : "Minnispunktur til viðtakanda sameignar vistaður",
+ "Share password saved" : "Lykilorð sameignar vistað",
+ "Share permissions saved" : "Heimildir sameignar vistaðar",
+ "Upload files to {folder}" : "Senda skrár inn í {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} deildi möppu með þér.",
+ "Shared by" : "Deilt af",
+ "Shared with" : "Deilt með",
+ "Password created successfully" : "Tókst að búa til lykilorð",
+ "Error generating password from password policy" : "Villa við að útbúa lykilorð út frá lykilorðastefnu",
+ "Shared with you and the group {group} by {owner}" : "Deilt með þér og hópnum {group} af {owner}",
+ "Shared with you and {circle} by {owner}" : "Deilt með þér og {circle} af {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Deilt með þér og samtalinu {conversation} af {owner}",
+ "Shared with you in a conversation by {owner}" : "Deilt með þér í samtali af {owner}",
+ "Share not found" : "Sameign fannst ekki",
+ "Back to %s" : "Til baka í %s",
+ "Add to your Nextcloud" : "Bæta í þitt eigið Nextcloud",
+ "Waiting…" : "Bíð…",
+ "error" : "villa",
+ "finished" : "lokið",
+ "This will stop your current uploads." : "Þetta mun stöðva núverandi innsendingar þínar.",
+ "Move or copy" : "Færa eða afrita",
+ "You can upload into this folder" : "Þú getur sent inn skrár í þessa möppu",
+ "Show list view" : "Birta listasýn",
+ "Show grid view" : "Birta reitasýn",
+ "No compatible server found at {remote}" : "Enginn samhæfður vefþjónn fannst á {remote}",
+ "Invalid server URL" : "Ógild URI-slóð vefþjóns",
+ "Failed to add the public link to your Nextcloud" : "Mistókst að bæta opinberum tengli í þitt eigið Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "Þú hefur ekki heimild til að breyta tenglum á sameignir sem þú átt ekki.",
+ "Download all files" : "Sækja allar skrár",
+ "Link copied to clipboard" : "Tengill afritaður á klippispjald",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 tölvupóstfangi þegar bætt við","{count} tölvupóstföngum þegar bætt við"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 tölvupóstfangi bætt við","{count} tölvupóstföngum bætt við"],
+ "Copy to clipboard" : "Afrita á klippispjald",
+ "Copy internal link to clipboard" : "Afrita innri tengil á klippispjald",
+ "Only works for people with access to this folder" : "Virkar bara fyrir fólk sem hefur aðgang að þessari möppu",
+ "Only works for people with access to this file" : "Virkar bara fyrir fólk sem hefur aðgang að þessari skrá",
+ "Copy public link of \"{title}\" to clipboard" : "Afrita opinberan tengil \"{title}\" á klippispjald",
+ "Search globally" : "Leita allstaðar",
+ "Search for share recipients" : "Leita að viðtakendum sameignar",
+ "No recommendations. Start typing." : "Engar tillögur. Byrjaðu að skrifa.",
+ "To upload files, you need to provide your name first." : "Til að senda inn skrár þarftu fyrst að gefa upp nafnið þitt.",
+ "Enter your name" : "Settu inn nafnið þitt",
+ "Submit name" : "Nafn við innsendingu",
+ "Share with {userName}" : "Deila með {userName}",
+ "Show sharing options" : "Birta valkostir deilingar",
"Share note" : "Deila minnispunkti",
"Upload files to %s" : "Senda inn skrár á %s",
+ "%s shared a folder with you." : "%s deildi möppu með þér.",
"Note" : "Minnispunktur",
"Select or drop files" : "Veldu eða slepptu skrám",
"Uploading files" : "Sendi inn skrár",
"Uploaded files:" : "Innsendar skrár:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Með því að senda inn skrár, samþykkir þú %1$sþjónustuskilmálana%2$s.",
- "Add to your Nextcloud" : "Bæta í þitt eigið Nextcloud",
- "Files and folders others share with you will show up here" : "Skrár og möppur sem aðrir deila með þér birtast hér",
- "Files and folders you share will show up here" : "Skrár og möppur sem þú deilir birtast hér",
- "Files and folders you share by link will show up here" : "Skrár og möppur sem þú deilir með tenglum birtast hér",
- "Shares you deleted will show up here" : "Sameignir sem þú hefur eytt munu birtast hér",
- "Shares you have received but not confirmed will show up here" : "Sameignir sem þú hefur fengið en ekki staðfest munu birtast hér",
- "Shares will show up here" : "Sameignir munu birtast hér",
- "Restore" : "Endurheimta",
- "Something happened. Unable to restore the share." : "Eitthvað skrýtið gerðist. Gat ekki endurheimt sameignina.",
- "Something happened. Unable to accept the share." : "Eitthvað skrýtið gerðist. Gat ekki samþykkt sameignina.",
- "Something happened. Unable to reject the share." : "Eitthvað skrýtið gerðist. Gat ekki hafnað sameigninni.",
- "No expiration date set" : "Engin dagsetning fyrir gildistíma er sett",
- "Please specify a valid user" : "Settu inn gilt notandanafn",
- "Please specify a valid federated user ID" : "Skilgreindu gilt skýjasambandsauðkenni notanda",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Þetta forrit gerir notendum kleift að deila skrám innan Nextcloud. Ef þetta er virkt getur stjórnandi valið hvaða hópar geti deilt skrám. Viðkomandi notendur geta þá deilt skrám og möppum með öðrum notendum og hópum innan Nextcloud. Að auki, ef stjórnandinn virkjar eiginleikan til að deila með tenglum, er hægt að nota ytri tengil til að deila skrám með öðrum notendum utan Nextcloud. Stjórnendur geta líka krafist notkunar lykilorða, gildistíma og virkjað þjónn-í-þjón deilingu með deilitenglum, rétt eins og deilingu með snjalltækjum.\nSé slökkt á þessum eiginleika, eru deildar skrár og möppur fjarlægðar af þjóninum fyrir alla notendur þessara sameigna, og einnig úr samstillingaforritum og snjalltækjum. Ítarlegri upplýsingar um þetta má finna í hjálparskjölum Nextcloud.",
- "Accept user and group shares by default" : "Samþykkja sjálfgefið sameignir frá notendum og hópum",
- "Read only" : "Skrifvarið",
- "File drop (upload only)" : "Slepping skráa (einungis innsending)",
- "Upload" : "Senda inn",
- "Bundled permissions" : "Meðfylgjandi heimildir",
- "Only works for users with access to this folder" : "Virkar bara fyrir notendur sem hafa aðgang að þessari möppu",
- "Only works for users with access to this file" : "Virkar bara fyrir notendur sem hafa aðgang að þessari skrá",
- "Circle" : "Hringur",
- "Update" : "Uppfæra",
- "Share with " : "Deila með ",
- "No other users with access found" : "Engir aðrir notendur með aðgang fundust",
- "No entries found in this folder" : "Engar skrár fundust í þessari möppu",
- "Name" : "Nafn",
- "Share time" : "Deilingartími",
- "Sorry, this link does not seem to work anymore." : "Því miður, þessi tengill virðist ekki virka lengur.",
- "Reasons might be:" : "Mögulegar ástæður gætu verið:",
- "the item was removed" : "atriðið var fjarlægt",
- "the link expired" : "tengillinn er útrunninn",
- "sharing is disabled" : "slökkt er á skráadeilingu",
- "For more info, please ask the person who sent this link." : "Til að vita meira skaltu hafa samband við þann sem sendi þér þennan tengil.",
- "Share with" : "Deila með"
+ "Name" : "Heiti",
+ "Share with accounts and teams" : "Deila með notendaaðgöngum og teymum",
+ "Email, federated cloud id" : "Tölvupóstfang, skýjasambandsauðkenni (Federated Cloud ID)",
+ "Filename must not be empty." : "Skráarheiti má ekki vera tómt."
},
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/apps/files_sharing/l10n/is.json b/apps/files_sharing/l10n/is.json
index 4ef665f214a..4746ce966ce 100644
--- a/apps/files_sharing/l10n/is.json
+++ b/apps/files_sharing/l10n/is.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Bíð…",
- "error" : "villa",
- "finished" : "lokið",
- "This will stop your current uploads." : "Þetta mun stöðva núverandi innsendingar þínar.",
- "Move or copy" : "Færa eða afrita",
- "Download" : "Sækja",
- "Delete" : "Eyða",
- "You can upload into this folder" : "Þú getur sent inn skrár í þessa möppu",
- "Terms of service" : "Þjónustuskilmálar",
- "Show list view" : "Birta listasýn",
- "Show grid view" : "Birta reitasýn",
- "No compatible server found at {remote}" : "Enginn samhæfður vefþjónn fannst á {remote}",
- "Invalid server URL" : "Ógild URI-slóð vefþjóns",
- "Failed to add the public link to your Nextcloud" : "Mistókst að bæta opinberum tengli í þitt eigið Nextcloud",
"File shares" : "Skráasameignir",
"Downloaded via public link" : "Náð í með almenningstengli",
"Downloaded by {email}" : "Náð í með {email}",
@@ -68,7 +54,7 @@
"Share for file {file} expired" : "Sameign fyrir skrána {file} er útrunnin",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Skrá eða mappa sem deilt var með tölvupósti eða almenningstengli var <strong>sótt</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Skjali eða möppu hefur verið deilt <strong>frá öðrum þjóni</strong>",
- "Files" : "Skrár",
+ "Sharing" : "Deiling",
"A file or folder has been <strong>shared</strong>" : "Skjali eða möppu hefur verið <strong>deilt</strong>",
"Shared link" : "Deilitengill",
"Wrong share ID, share does not exist" : "Rangt auðkenni sameignar, sameign er ekki til",
@@ -76,32 +62,42 @@
"Please specify a file or folder path" : "Tiltaktu skrá eða slóð á möppu",
"Wrong path, file/folder does not exist" : "Röng slóð, skráin/mappan er ekki til",
"Could not create share" : "Ekki tókst að búa til sameign",
- "Invalid permissions" : "Ógildar aðgangsheimildir",
- "Invalid date, date format must be YYYY-MM-DD" : "Ógild dagsetning, dagsetningasniðið verður að vera ÁÁÁÁ-MM-DD",
+ "Please specify a valid account to share with" : "Tilgreindu gildan aðgang til að nota til að deila",
"Group sharing is disabled by the administrator" : "Deiling innan hóps hefur verið gerð óvirk af kerfisstjóra.",
"Please specify a valid group" : "Settu inn gildan hóp",
"Public link sharing is disabled by the administrator" : "Deiling opinberra sameignartengla hefur verið gerð óvirk af kerfisstjóra.",
- "Public upload disabled by the administrator" : "Opinber innsending hefur verið gerð óvirk af kerfisstjóra.",
- "Public upload is only possible for publicly shared folders" : "Opinber innsending er einungis möguleg í möppur sem er deilt opinberlega",
+ "Please specify a valid email address" : "Tilgreindu gilt tölvupóstfang",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Deiling á %s með því að senda lykilorð með Nextcloud Talk mistókst því að Nextcloud Talk er ekki virkt",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Deiling %1$s mistókst, því bakvinnslukerfið leyfir ekki sameignir af gerðinni %2$s",
+ "Please specify a valid federated account ID" : "Tilgreindu gilt skýjasambandsauðkenni aðgangs",
"Please specify a valid federated group ID" : "Skilgreindu gilt skýjasambandsauðkenni hóps",
- "You cannot share to a Circle if the app is not enabled" : "Þú getur ekki deilt með hring ef forritið er ekki virkt",
- "Please specify a valid circle" : "Skilgreindu gildan hring",
+ "You cannot share to a Team if the app is not enabled" : "Þú getur ekki deilt með teymi ef forritið er ekki virkt",
+ "Please specify a valid team" : "Settu inn gilt teymi",
"Sharing %s failed because the back end does not support room shares" : "Deiling %s mistókst því bakvinnslukerfið leyfir ekki spjallsvæðasameignir",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Deiling %s mistókst því bakvinnslukerfið leyfir ekki ScienceMesh-sameignir",
"Unknown share type" : "Óþekkt tegund sameignar",
"Not a directory" : "Er ekki mappa",
"Could not lock node" : "Gat ekki læst hnút",
- "Could not lock path" : "Gat ekki læst slóð",
- "Wrong or no update parameter given" : "Rangt eða ekkert uppfærsluviðfang gefið",
+ "Public upload is only possible for publicly shared folders" : "Opinber innsending er einungis möguleg í möppur sem er deilt opinberlega",
"Share must at least have READ or CREATE permissions" : "Sameign verður að hafa að minnsta kosti LESA eða ÚTBÚA heimildir",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Sameign verður að hafa LESA heimild ef UPPFÆRA eða EYÐA heimildir eru veittar",
+ "Public upload disabled by the administrator" : "Opinber innsending hefur verið gerð óvirk af kerfisstjóra.",
+ "Could not lock path" : "Gat ekki læst slóð",
+ "no sharing rights on this item" : "engin heimild til deilingar þessu atriði",
+ "You are not allowed to edit incoming shares" : "Þú hefur ekki heimild til að breyta innkomandi sameignum",
+ "Wrong or no update parameter given" : "Rangt eða ekkert uppfærsluviðfang gefið",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Deiling með því að senda lykilorð með Nextcloud Talk til að deila skrá eða möppu mistókst því að Nextcloud Talk er ekki virkt.",
+ "Invalid date. Format must be YYYY-MM-DD" : "Ógild dagsetning. Sniðið verður að vera ÁÁÁÁ-MM-DD",
+ "No sharing rights on this item" : "Engin heimild til deilingar þessu atriði",
+ "You are not allowed to send mail notifications" : "Þú hefur ekki heimild til að senda tilkynningar í tölvupósti",
+ "Wrong password" : "Rangt lykilorð",
+ "Error while sending mail notification" : "Villa við að senda tilkynningu í tölvupósti",
+ "Failed to generate a unique token" : "Mistókst að búa til einstakt teikn",
+ "This share does not exist or is no longer available" : "Þessi sameign er ekki til eða ekki lengur tiltæk",
"shared by %s" : "Deilt af %s",
- "Download all files" : "Sækja allar skrár",
- "Direct link" : "Beinn tengill",
+ "Download" : "Sækja",
"Add to your %s" : "Bæta við þitt %s",
+ "Direct link" : "Beinn tengill",
"Share API is disabled" : "Deilingar-API er óvirkt",
"File sharing" : "Skráadeiling",
"Share will expire tomorrow" : "Sameignin rennur út á morgun",
@@ -110,126 +106,202 @@
"You received {share} to group {group} as a share by {user}" : "Þú tókst við {share} fyrir hópinn {group} sem sameign frá {user}",
"Accept" : "Samþykkja",
"Decline" : "Hafna",
- "Sharing" : "Deiling",
+ "Remember to upload the files to %s" : "Mundu að senda skrárnar inn til %s",
+ "Open \"%s\"" : "Opna \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Þetta forrit gerir notendum kleift að deila skrám innan Nextcloud. Ef þetta er virkt getur stjórnandi valið hvaða hópar geti deilt skrám. Viðkomandi notendur geta þá deilt skrám og möppum með öðrum notendum og hópum innan Nextcloud. Að auki, ef stjórnandinn virkjar eiginleikan til að deila með tenglum, er hægt að nota ytri tengil til að deila skrám með öðrum notendum utan Nextcloud. Stjórnendur geta líka krafist notkunar lykilorða, gildistíma og virkjað þjónn-í-þjón deilingu með deilitenglum, rétt eins og deilingu með snjalltækjum.\nSé slökkt á þessum eiginleika, eru deildar skrár og möppur fjarlægðar af þjóninum fyrir alla notendur þessara sameigna, og einnig úr samstillingaforritum og snjalltækjum. Ítarlegri upplýsingar um þetta má finna í hjálparskjölum Nextcloud.",
+ "People" : "Fólk",
+ "Filter accounts" : "Sía aðganga",
+ "The request will expire on {date} at midnight and will be password protected." : "Beiðnin mun renna út þann {date} á miðnætti og verður varin með lykilorði.",
+ "The request will expire on {date} at midnight." : "Beiðnin mun renna út þann {date} á miðnætti.",
+ "The request will be password protected." : "Beiðnin verður varin með lykilorði.",
+ "When should the request expire?" : "Hvenær á beiðnin að renna út?",
+ "Set a submission expiration date" : "Setja gildistíma innsendingar",
+ "Expiration date" : "Gildir til",
+ "Select a date" : "Veldu dagsetningu",
+ "What password should be used for the request?" : "Hvaða lykilorð á að nota fyrir beiðnina?",
+ "Set a password" : "Setja lykilorð",
+ "Password" : "Lykilorð",
+ "Enter a valid password" : "Settu inn gilt lykilorð",
+ "Generate a new password" : "Útbúa nýtt lykilorð",
+ "Your administrator has enforced a password protection." : "Kerfisstjórinn þinn hefur krafist verndunar með lykilorði.",
+ "Link copied" : "Tengill afritaður",
+ "Email already added" : "Tölvupóstfangi þegar bætt við",
+ "Invalid email address" : "Ógilt tölvupóstfang",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Eftirfarandi tölvupóstfang er ógilt: {emails}","Eftirfarandi tölvupóstföng eru ógild: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} tölvupóstfangi þegar bætt við","{count} tölvupóstföngum þegar bætt við"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} tölvupóstfangi bætt við","{count} tölvupóstföngum bætt við"],
+ "Share link" : "Tengill á sameign",
+ "Copy" : "Afrita",
+ "Send link via email" : "Senda tengil með tölvupósti",
+ "Enter an email address or paste a list" : "Settu inn tölvupóstfang eða límdu inn lista",
+ "Remove email" : "Fjarlægja tölvupóstfang",
+ "Select a destination" : "Veldu áfangastað",
+ "Select" : "Velja",
+ "What are you requesting?" : "Hvað ertu að biðja um?",
+ "Request subject" : "Viðfangsefni beiðnar",
+ "Birthday party photos, History assignment…" : "Myndir úr afmæli, söguverkefni…",
+ "Where should these files go?" : "Hvert ættu þessar skrár að fara?",
+ "Upload destination" : "Áfangastaður innsendinga",
+ "Revert to default" : "Endurstilla á sjálfgefið",
+ "Add a note" : "Bæta við minnispunkti",
+ "Note for recipient" : "Minnispunktur til viðtakanda",
+ "Add a note to help people understand what you are requesting." : "Bættu við minnispunkti svo fólk viti að um hvað þú sért að biðja.",
+ "Close" : "Loka",
+ "_Send email and close_::_Send {count} emails and close_" : ["Senda tölvupóst og loka","Senda {count} tölvupósta og loka"],
+ "File request created" : "Beiðni um skrá útbúin",
+ "Error creating the share: {errorMessage}" : "Villa kom upp við að búa til sameignina: {errorMessage}",
+ "Error creating the share" : "Villa við að búa til sameignina",
+ "Error sending emails: {errorMessage}" : "Villa við að senda tölvupósta: {errorMessage}",
+ "Error sending emails" : "Villa við að senda tölvupósta",
+ "Create a file request" : "Útbúa beiðni um skrá",
+ "File request" : "Beiðni um skrá",
+ "Previous step" : "Fyrra skref",
+ "Cancel" : "Hætta við",
+ "Cancel the file request creation" : "Hætta við gerð beiðnar um skrá",
+ "Close without sending emails" : "Loka án þess að senda tölvupósta",
+ "Continue" : "Halda áfram",
"Error while toggling options" : "Villa við að víxla valkostum",
- "Set default folder for accepted shares" : "Stilltu sjáfgefna möppu fyrir samþykktar sameignir",
- "Reset" : "Endurstilla",
- "Reset folder to system default" : "Frumstilla möppu á sjálfgefna í kerfinu",
"Choose a default folder for accepted shares" : "Veldu sjáfgefna möppu fyrir samþykktar sameignir",
"Invalid path selected" : "Ógild slóð valin",
"Unknown error" : "Óþekkt villa",
- "Open Sharing Details" : "Opna nánari upplýsingar um deilingu",
+ "Set default folder for accepted shares" : "Stilltu sjáfgefna möppu fyrir samþykktar sameignir",
+ "Reset" : "Endurstilla",
+ "Reset folder to system default" : "Frumstilla möppu á sjálfgefna í kerfinu",
"group" : "hópur",
"conversation" : "samtal",
"remote" : "fjartengt",
"remote group" : "fjartengdur hópur",
"guest" : "gestanotandi",
+ "by {initiator}" : "af {initiator}",
"Shared with the group {user} by {owner}" : "Deilt með hópnum {user} af {owner}",
"Shared with the conversation {user} by {owner}" : "Deilt með þér í samtali við {user} af {owner}",
"Shared with {user} by {owner}" : "Deilt með {user} af {owner}",
+ "Open Sharing Details" : "Opna nánari upplýsingar um deilingu",
"Added by {initiator}" : "Bætt við af {initiator}",
"Via “{folder}”" : "Í gegnum “{folder}”",
"Unshare" : "Hætta deilingu",
- "Internal link" : "Innri tengill",
"Cannot copy, please copy the link manually" : "Mistókst að afrita, afritaðu tengilinn handvirkt",
- "Copy internal link to clipboard" : "Afrita innri tengil á klippispjald",
- "Link copied" : "Tengill afritaður",
- "Please enter the following required information before creating the share" : "Settu inn eftirfarandi nauðsynlegar upplýsingar áður en þú býrð til sameignina",
- "Password protection (enforced)" : "Verndun með lykilorði (nauðsynleg)",
- "Password protection" : "Verndun með lykilorði",
- "Enter a password" : "Settu inn lykilorð",
- "Expiration date (enforced)" : "Gildistími (nauðsynlegur)",
- "Enter a date" : "Settu inn dagsetningu",
- "Create share" : "Búa til sameign",
- "Cancel" : "Hætta við",
- "Customize link" : "Sérsníða tengil",
- "Add another link" : "Bæta við öðrum tengli",
- "Create a new share link" : "Búa til nýjan tengil á sameign",
+ "Copy internal link" : "Afrita innri tengil",
+ "Internal link" : "Innri tengill",
"{shareWith} by {initiator}" : "{shareWith} af {initiator}",
"Shared via link by {initiator}" : "Deilt með tengli af {initiator}",
+ "File request ({label})" : "Beiðni um skrá ({label})",
"Mail share ({label})" : "Deilt með tölvupósti ({label})",
"Share link ({label})" : "Tengill á sameign ({label})",
+ "Mail share" : "Deiling með tölvupósti",
"Share link ({index})" : "Tengill á sameign ({index})",
- "Share link" : "Tengill á sameign",
+ "Create public link" : "Búa til opinberan tengil",
"Actions for \"{title}\"" : "Aðgerðir fyrir \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Afrita opinberan tengil \"{title}\" á klippispjald",
"Error, please enter proper password and/or expiration date" : "Villa, settu inn alvöru lykilorð og/eða gildisdagsetningu",
"Link share created" : "Sameign í gegnum tengil útbúin",
"Error while creating the share" : "Villa kom upp við að búa til sameignina",
+ "Please enter the following required information before creating the share" : "Settu inn eftirfarandi nauðsynlegar upplýsingar áður en þú býrð til sameignina",
+ "Password protection (enforced)" : "Verndun með lykilorði (nauðsynleg)",
+ "Password protection" : "Verndun með lykilorði",
+ "Enter a password" : "Settu inn lykilorð",
+ "Enable link expiration (enforced)" : "Virkja gildistíma tengils (nauðsynlegt)",
+ "Enable link expiration" : "Virkja gildistíma tengils",
+ "Enter expiration date (enforced)" : "Settu inn gildistíma (nauðsynlegt)",
+ "Enter expiration date" : "Settu inn gildistíma",
+ "Create share" : "Búa til sameign",
+ "Customize link" : "Sérsníða tengil",
+ "Generate QR code" : "Útbúa QR-kóða",
+ "Add another link" : "Bæta við öðrum tengli",
+ "Create a new share link" : "Búa til nýjan tengil á sameign",
"View only" : "Einungis skoða",
"Can edit" : "Getur breytt",
- "File drop" : "Slepping skráa",
"Custom permissions" : "Sérsniðnar heimildir",
- "Search for share recipients" : "Leita að viðtakendum sameignar",
- "No recommendations. Start typing." : "Engar tillögur. Byrjaðu að skrifa.",
"Resharing is not allowed" : "Endurdeiling er ekki leyfð",
"Name or email …" : "Nafn eða tölvupóstfang …",
"Name, email, or Federated Cloud ID …" : "Nafn, tölvupóstfang eða skýjasambandsauðkenni (Federated Cloud ID) …",
"Searching …" : "Leita …",
"No elements found." : "Engin stök fundust.",
- "Search globally" : "Leita allstaðar",
+ "Search everywhere" : "Leita allsstaðar",
"Guest" : "Gestur",
"Group" : "Hópur",
"Email" : "Tölvupóstur",
+ "Team" : "Teymi",
"Talk conversation" : "Samtal í Talk-spjalli",
"Deck board" : "Deck-borð",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "á {server}",
+ "Note from" : "Minnispunktur frá",
+ "Note:" : "Athugaðu:",
+ "File drop" : "Slepping skráa",
+ "Upload files to {foldername}." : "Senda skrár inn í {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Með því að senda inn skrár, samþykkir þú þjónustuskilmálana.",
+ "View terms of service" : "Skoða þjónustuskilmála",
+ "Terms of service" : "Þjónustuskilmálar",
+ "Share with email {email}" : "Deila í tölvupósti með {email}",
+ "Share with group" : "Deila með hópi",
+ "Share in conversation" : "Deila í samtali",
+ "Share with {user} on remote server {server}" : "Deila með {user} á fjartengda þjóninum {server}",
+ "Share with remote group" : "Deila með fjartengdum hópi",
+ "Share with guest" : "Deila með gesti",
+ "Update share" : "Uppfæra sameign",
+ "Save share" : "Vista sameign",
+ "Read" : "Lesa",
+ "Create" : "Búa til",
+ "Edit" : "Breyta",
+ "Share" : "Deila",
+ "Delete" : "Eyða",
+ "Replace current password" : "Skipta út fyrirliggjandi lykilorði",
+ "Failed to generate a new token" : "Mistókst að búa til nýtt teikn",
"Allow upload and editing" : "Leyfa innsendingu og breytingar",
"Allow editing" : "Leyfa breytingar",
"Upload only" : "Einungis innsending",
"Advanced settings" : "Ítarlegri valkostir",
"Share label" : "Merking á sameign",
+ "Generating…" : "Útbý…",
+ "Generate new token" : "Búa til nýtt teikn",
"Set password" : "Stilltu lykilorð",
- "Password" : "Lykilorð",
"Password expires {passwordExpirationTime}" : "Lykilorð rennur út {passwordExpirationTime}",
"Password expired" : "Lykilorð er útrunnið",
"Video verification" : "Sannvottun í myndskeiði",
+ "Expiration date (enforced)" : "Gildistími (nauðsynlegur)",
"Set expiration date" : "Setja gildistíma",
- "Expiration date" : "Gildir til",
"Hide download" : "Fela niðurhal",
- "Allow download" : "Leyfa niðurhal",
+ "Allow download and sync" : "Leyfa niðurhal og samstillingu",
"Note to recipient" : "Minnispunktur til viðtakanda",
"Enter a note for the share recipient" : "Settu inn minnispunkt til viðtakanda sameignar",
- "Read" : "Lesa",
- "Create" : "Búa til",
- "Edit" : "Breyta",
- "Share" : "Deila",
+ "Show files in grid view" : "Birta skrár í reitasýn",
"Delete share" : "Eyða sameign",
- "Update share" : "Uppfæra sameign",
- "Save share" : "Vista sameign",
"Others with access" : "Aðrir með aðgang",
+ "No other accounts with access found" : "Engir aðrir notendur með aðgang fundust",
"Toggle list of others with access to this directory" : "Víxla af/á lista yfir aðra með aðgang að þessari möppu",
"Toggle list of others with access to this file" : "Víxla af/á lista yfir aðra með aðgang að þessari skrá",
"Unable to fetch inherited shares" : "Mistókst að sækja erfðar sameignir",
+ "Link shares" : "Sameignartenglar",
+ "Shares" : "Sameignir",
"Unable to load the shares list" : "Mistókst aði hlaða inn lista yfir sameignir",
"Expires {relativetime}" : "Rennur út {relativetime}",
"this share just expired." : "Þessi sameign var að renna út.",
"Shared with you by {owner}" : "Deilt með þér af {owner}",
+ "Internal shares" : "Innri sameignir",
+ "Internal shares explanation" : "Útskýring á innri sameignum",
+ "External shares" : "Utanaðkomandi sameignir",
+ "External shares explanation" : "Útskýring á utanaðkomandi sameignum",
+ "Additional shares" : "Viðbótarsameignir",
+ "Additional shares explanation" : "Útskýring á viðbótarsameignum",
+ "Link to a file" : "Tengill í skrá",
"_Accept share_::_Accept shares_" : ["Samþykkja sameign","Samþykkja sameignir"],
"Open in Files" : "Opna í skráaforritinu",
"_Reject share_::_Reject shares_" : ["Hafna sameign","Hafna sameignum"],
"_Restore share_::_Restore shares_" : ["Endurheimta sameign","Endurheimta sameignir"],
"Shared" : "Deilt",
"Shared by {ownerDisplayName}" : "Deilt af {ownerDisplayName}",
- "Show sharing options" : "Birta valkostir deilingar",
- "Link to a file" : "Tengill í skrá",
- "Error creating the share: {errorMessage}" : "Villa kom upp við að búa til sameignina: {errorMessage}",
- "Error creating the share" : "Villa við að búa til sameignina",
- "Error updating the share: {errorMessage}" : "Villa kom upp við að uppfæra sameignina: {errorMessage}",
- "Error updating the share" : "Villa við að uppfæra sameignina",
- "File \"{path}\" has been unshared" : "Skráin \"{path}\" hefur verið tekin úr deilingu",
- "Folder \"{path}\" has been unshared" : "Mappan \"{path}\" hefur verið tekin úr deilingu",
- "Share {propertyName} saved" : "Sameignin {propertyName} vistuð",
- "Shared by" : "Deilt af",
- "Shared with" : "Deilt með",
- "Password created successfully" : "Tókst að búa til lykilorð",
- "Error generating password from password policy" : "Villa við að útbúa lykilorð út frá lykilorðastefnu",
- "Shared with you and the group {group} by {owner}" : "Deilt með þér og hópnum {group} af {owner}",
- "Shared with you and {circle} by {owner}" : "Deilt með þér og {circle} af {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Deilt með þér og samtalinu {conversation} af {owner}",
- "Shared with you in a conversation by {owner}" : "Deilt með þér í samtali af {owner}",
- "Shares" : "Sameignir",
+ "Shared multiple times with different people" : "Deilt mörgum sinnum með mismunandi fólki",
+ "Shared with others" : "Deilt með öðrum",
+ "Create file request" : "Útbúa beiðni um skrá",
+ "Upload files to {foldername}" : "Senda skrár inn í {foldername}",
+ "Public file share" : "Opinber skráasameign",
+ "Publicly shared file." : "Skrá deilt opinberlega.",
+ "No file" : "Engin skrá",
+ "The file shared with you will show up here" : "Skráin sem deilt er með þér birtist hér",
+ "Public share" : "Opinber sameign",
+ "Publicly shared files." : "Skrár deilt opinberlega.",
+ "No files" : "Engar skrár",
+ "Files and folders shared with you will show up here" : "Skrár og möppur sem deilt er með þér birtast hér",
"Overview of shared files." : "Yfirlit yfir deildar skrár.",
"No shares" : "Engar sameignir",
"Files and folders you shared or have been shared with you will show up here" : "Skrár og möppur sem þú hefur deilt eða aðrir deila með þér birtast hér",
@@ -237,7 +309,6 @@
"List of files that are shared with you." : "Listi yfir skrár sem er deilt með þér.",
"Nothing shared with you yet" : "Engu deilt með þér ennþá",
"Files and folders others shared with you will show up here" : "Skrár og möppur sem aðrir hafa deilt með þér birtast hér",
- "Shared with others" : "Deilt með öðrum",
"List of files that you shared with others." : "Listi yfir skrár sem þú hefur deilt með öðrum.",
"Nothing shared yet" : "Engu deilt ennþá",
"Files and folders you shared will show up here" : "Skrár og möppur sem þú hefur deilt birtast hér",
@@ -245,6 +316,10 @@
"List of files that are shared by link." : "Listi yfir skrár sem er deilt með tengli.",
"No shared links" : "Engir sameignartenglar",
"Files and folders you shared by link will show up here" : "Skrár og möppur sem þú hefur deilt í gegnum tengil birtast hér",
+ "File requests" : "Beiðnir um skrár",
+ "List of file requests." : "Listi yfir beiðnir um skrár.",
+ "No file requests" : "Engar beiðnir um skrár",
+ "File requests you have created will show up here" : "Beiðnir um skrár sem þú hefur útbúið munu birtast hér",
"Deleted shares" : "Eyddar sameignir",
"List of shares you left." : "Listi yfir sameignir sem þú hefur yfirgefið.",
"No deleted shares" : "Engar eyddar sameignir",
@@ -253,48 +328,70 @@
"List of unapproved shares." : "Listi yfir ósamþykktar sameignir.",
"No pending shares" : "Engar sameignir í bið",
"Shares you have received but not approved will show up here" : "Sameignir sem þú hefur fengið en ekki samþykkt munu birtast hér",
+ "Error updating the share: {errorMessage}" : "Villa kom upp við að uppfæra sameignina: {errorMessage}",
+ "Error updating the share" : "Villa við að uppfæra sameignina",
+ "File \"{path}\" has been unshared" : "Skráin \"{path}\" hefur verið tekin úr deilingu",
+ "Folder \"{path}\" has been unshared" : "Mappan \"{path}\" hefur verið tekin úr deilingu",
+ "Could not update share" : "Gat ekki uppfært sameign",
+ "Share saved" : "Sameign vistuð",
+ "Share expiry date saved" : "Gildistími sameignar vistaður",
+ "Share label saved" : "Merking sameignar vistuð",
+ "Share note for recipient saved" : "Minnispunktur til viðtakanda sameignar vistaður",
+ "Share password saved" : "Lykilorð sameignar vistað",
+ "Share permissions saved" : "Heimildir sameignar vistaðar",
+ "Upload files to {folder}" : "Senda skrár inn í {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} deildi möppu með þér.",
+ "Shared by" : "Deilt af",
+ "Shared with" : "Deilt með",
+ "Password created successfully" : "Tókst að búa til lykilorð",
+ "Error generating password from password policy" : "Villa við að útbúa lykilorð út frá lykilorðastefnu",
+ "Shared with you and the group {group} by {owner}" : "Deilt með þér og hópnum {group} af {owner}",
+ "Shared with you and {circle} by {owner}" : "Deilt með þér og {circle} af {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Deilt með þér og samtalinu {conversation} af {owner}",
+ "Shared with you in a conversation by {owner}" : "Deilt með þér í samtali af {owner}",
+ "Share not found" : "Sameign fannst ekki",
+ "Back to %s" : "Til baka í %s",
+ "Add to your Nextcloud" : "Bæta í þitt eigið Nextcloud",
+ "Waiting…" : "Bíð…",
+ "error" : "villa",
+ "finished" : "lokið",
+ "This will stop your current uploads." : "Þetta mun stöðva núverandi innsendingar þínar.",
+ "Move or copy" : "Færa eða afrita",
+ "You can upload into this folder" : "Þú getur sent inn skrár í þessa möppu",
+ "Show list view" : "Birta listasýn",
+ "Show grid view" : "Birta reitasýn",
+ "No compatible server found at {remote}" : "Enginn samhæfður vefþjónn fannst á {remote}",
+ "Invalid server URL" : "Ógild URI-slóð vefþjóns",
+ "Failed to add the public link to your Nextcloud" : "Mistókst að bæta opinberum tengli í þitt eigið Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "Þú hefur ekki heimild til að breyta tenglum á sameignir sem þú átt ekki.",
+ "Download all files" : "Sækja allar skrár",
+ "Link copied to clipboard" : "Tengill afritaður á klippispjald",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 tölvupóstfangi þegar bætt við","{count} tölvupóstföngum þegar bætt við"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 tölvupóstfangi bætt við","{count} tölvupóstföngum bætt við"],
+ "Copy to clipboard" : "Afrita á klippispjald",
+ "Copy internal link to clipboard" : "Afrita innri tengil á klippispjald",
+ "Only works for people with access to this folder" : "Virkar bara fyrir fólk sem hefur aðgang að þessari möppu",
+ "Only works for people with access to this file" : "Virkar bara fyrir fólk sem hefur aðgang að þessari skrá",
+ "Copy public link of \"{title}\" to clipboard" : "Afrita opinberan tengil \"{title}\" á klippispjald",
+ "Search globally" : "Leita allstaðar",
+ "Search for share recipients" : "Leita að viðtakendum sameignar",
+ "No recommendations. Start typing." : "Engar tillögur. Byrjaðu að skrifa.",
+ "To upload files, you need to provide your name first." : "Til að senda inn skrár þarftu fyrst að gefa upp nafnið þitt.",
+ "Enter your name" : "Settu inn nafnið þitt",
+ "Submit name" : "Nafn við innsendingu",
+ "Share with {userName}" : "Deila með {userName}",
+ "Show sharing options" : "Birta valkostir deilingar",
"Share note" : "Deila minnispunkti",
"Upload files to %s" : "Senda inn skrár á %s",
+ "%s shared a folder with you." : "%s deildi möppu með þér.",
"Note" : "Minnispunktur",
"Select or drop files" : "Veldu eða slepptu skrám",
"Uploading files" : "Sendi inn skrár",
"Uploaded files:" : "Innsendar skrár:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Með því að senda inn skrár, samþykkir þú %1$sþjónustuskilmálana%2$s.",
- "Add to your Nextcloud" : "Bæta í þitt eigið Nextcloud",
- "Files and folders others share with you will show up here" : "Skrár og möppur sem aðrir deila með þér birtast hér",
- "Files and folders you share will show up here" : "Skrár og möppur sem þú deilir birtast hér",
- "Files and folders you share by link will show up here" : "Skrár og möppur sem þú deilir með tenglum birtast hér",
- "Shares you deleted will show up here" : "Sameignir sem þú hefur eytt munu birtast hér",
- "Shares you have received but not confirmed will show up here" : "Sameignir sem þú hefur fengið en ekki staðfest munu birtast hér",
- "Shares will show up here" : "Sameignir munu birtast hér",
- "Restore" : "Endurheimta",
- "Something happened. Unable to restore the share." : "Eitthvað skrýtið gerðist. Gat ekki endurheimt sameignina.",
- "Something happened. Unable to accept the share." : "Eitthvað skrýtið gerðist. Gat ekki samþykkt sameignina.",
- "Something happened. Unable to reject the share." : "Eitthvað skrýtið gerðist. Gat ekki hafnað sameigninni.",
- "No expiration date set" : "Engin dagsetning fyrir gildistíma er sett",
- "Please specify a valid user" : "Settu inn gilt notandanafn",
- "Please specify a valid federated user ID" : "Skilgreindu gilt skýjasambandsauðkenni notanda",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Þetta forrit gerir notendum kleift að deila skrám innan Nextcloud. Ef þetta er virkt getur stjórnandi valið hvaða hópar geti deilt skrám. Viðkomandi notendur geta þá deilt skrám og möppum með öðrum notendum og hópum innan Nextcloud. Að auki, ef stjórnandinn virkjar eiginleikan til að deila með tenglum, er hægt að nota ytri tengil til að deila skrám með öðrum notendum utan Nextcloud. Stjórnendur geta líka krafist notkunar lykilorða, gildistíma og virkjað þjónn-í-þjón deilingu með deilitenglum, rétt eins og deilingu með snjalltækjum.\nSé slökkt á þessum eiginleika, eru deildar skrár og möppur fjarlægðar af þjóninum fyrir alla notendur þessara sameigna, og einnig úr samstillingaforritum og snjalltækjum. Ítarlegri upplýsingar um þetta má finna í hjálparskjölum Nextcloud.",
- "Accept user and group shares by default" : "Samþykkja sjálfgefið sameignir frá notendum og hópum",
- "Read only" : "Skrifvarið",
- "File drop (upload only)" : "Slepping skráa (einungis innsending)",
- "Upload" : "Senda inn",
- "Bundled permissions" : "Meðfylgjandi heimildir",
- "Only works for users with access to this folder" : "Virkar bara fyrir notendur sem hafa aðgang að þessari möppu",
- "Only works for users with access to this file" : "Virkar bara fyrir notendur sem hafa aðgang að þessari skrá",
- "Circle" : "Hringur",
- "Update" : "Uppfæra",
- "Share with " : "Deila með ",
- "No other users with access found" : "Engir aðrir notendur með aðgang fundust",
- "No entries found in this folder" : "Engar skrár fundust í þessari möppu",
- "Name" : "Nafn",
- "Share time" : "Deilingartími",
- "Sorry, this link does not seem to work anymore." : "Því miður, þessi tengill virðist ekki virka lengur.",
- "Reasons might be:" : "Mögulegar ástæður gætu verið:",
- "the item was removed" : "atriðið var fjarlægt",
- "the link expired" : "tengillinn er útrunninn",
- "sharing is disabled" : "slökkt er á skráadeilingu",
- "For more info, please ask the person who sent this link." : "Til að vita meira skaltu hafa samband við þann sem sendi þér þennan tengil.",
- "Share with" : "Deila með"
+ "Name" : "Heiti",
+ "Share with accounts and teams" : "Deila með notendaaðgöngum og teymum",
+ "Email, federated cloud id" : "Tölvupóstfang, skýjasambandsauðkenni (Federated Cloud ID)",
+ "Filename must not be empty." : "Skráarheiti má ekki vera tómt."
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/it.js b/apps/files_sharing/l10n/it.js
index fd9e41dd73e..f10bd3a4e8e 100644
--- a/apps/files_sharing/l10n/it.js
+++ b/apps/files_sharing/l10n/it.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Attendere...",
- "error" : "errore",
- "finished" : "terminato",
- "This will stop your current uploads." : "Questo fermerà i tuoi caricamenti attuali.",
- "Move or copy" : "Sposta o copia",
- "Download" : "Scarica",
- "Delete" : "Elimina",
- "You can upload into this folder" : "Puoi caricare in questa cartella",
- "Terms of service" : "Termini del servizio",
- "Show list view" : "Commuta la vista a lista",
- "Show grid view" : "Commuta la vista a griglia",
- "No compatible server found at {remote}" : "Nessun server compatibile trovato su {remote}",
- "Invalid server URL" : "URL del server non valido",
- "Failed to add the public link to your Nextcloud" : "Aggiunta del collegamento pubblico al tuo Nextcloud non riuscita",
"File shares" : "Condivisioni dei file",
"Downloaded via public link" : "Scaricata tramite collegamento pubblico",
"Downloaded by {email}" : "Scaricato da {email}",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "Condivisione per il file {file} con {user} scaduta",
"Share for file {file} expired" : "Condivisione per il file {file} scaduta",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un file o una cartella condiviso via posta elettronica o collegamento pubblico è stato <strong>scaricato</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "I file sono stati <strong>caricati</strong> in una cartella condivisa via email o da collegamento pubblico",
"A file or folder was shared from <strong>another server</strong>" : "Un file o una cartella è stato condiviso da <strong>un altro server</strong>",
- "Files" : "File",
+ "Sharing" : "Condivisione",
"A file or folder has been <strong>shared</strong>" : "Un file o una cartella è stato <strong>condiviso</strong>",
"Shared link" : "Collegamento condiviso",
"Wrong share ID, share does not exist" : "ID di condivisione errato, la condivisione non esiste",
@@ -78,32 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "Specifica un percorso di un file o di una cartella",
"Wrong path, file/folder does not exist" : "Percorso errato, file/cartella inesistente",
"Could not create share" : "Impossibile creare la condivisione",
- "Invalid permissions" : "Permessi non validi",
- "Invalid date, date format must be YYYY-MM-DD" : "Data non valida, il formato della data deve essere AAAA-MM-GG",
+ "Please specify a valid account to share with" : "Specifica un account valido con cui condividere",
"Group sharing is disabled by the administrator" : "La condivisione di gruppo è disabilitata dall'amministratore",
"Please specify a valid group" : "Specifica un gruppo valido",
"Public link sharing is disabled by the administrator" : "La condivisione pubblica di collegamenti è disabilitata dall'amministratore",
- "Public upload disabled by the administrator" : "Caricamento pubblico disabilitato dall'amministratore",
- "Public upload is only possible for publicly shared folders" : "Il caricamento pubblico è possibile solo per cartelle condivise pubblicamente",
+ "Please specify a valid email address" : "Specifica un indirizzo di posta valido",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "La condivisione di %s tramite invio della password da Nextcloud Talk non è riuscito poiché Nextcloud Talk non è abilitato",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Condivisione di %1$s non riuscita poiché il motore non consente condivisioni del tipo %2$s",
+ "Please specify a valid federated account ID" : "Specificare un ID account federato valido",
"Please specify a valid federated group ID" : "Specifica un ID di gruppo federato valido",
- "You cannot share to a Circle if the app is not enabled" : "Non puoi condividere con una cerchia se l'applicazione non è abilitata",
- "Please specify a valid circle" : "Specifica una cerchia valida",
+ "You cannot share to a Team if the app is not enabled" : "Non puoi condividere con una squadra se l'applicazione non è abilitata",
+ "Please specify a valid team" : "Specifica una squadra valida",
"Sharing %s failed because the back end does not support room shares" : "Condivisione di %s non riuscita poiché il motore non supporta condivisioni di stanza",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Condivisione di %s non riuscita poiché il motore non supporta condivisioni di ScienceMesh",
"Unknown share type" : "Tipo di condivisione sconosciuto",
"Not a directory" : "Non è una cartella",
"Could not lock node" : "Impossibile bloccare il nodo",
- "Could not lock path" : "Impossibile bloccare il percorso",
- "Wrong or no update parameter given" : "Parametro fornito non valido o non di aggiornamento",
+ "Public upload is only possible for publicly shared folders" : "Il caricamento pubblico è possibile solo per cartelle condivise pubblicamente",
"Share must at least have READ or CREATE permissions" : "La condivisione deve disporre almeno delle autorizzazioni READ o CREATE",
"Share must have READ permission if UPDATE or DELETE permission is set" : "La condivisione deve disporre dell'autorizzazione READ se l'autorizzazione è impostata su UPDATE o DELETE.",
+ "Public upload disabled by the administrator" : "Caricamento pubblico disabilitato dall'amministratore",
+ "Could not lock path" : "Impossibile bloccare il percorso",
+ "no sharing rights on this item" : "nessun diritto di condivisione per questo elemento",
+ "You are not allowed to edit incoming shares" : "Non ti è consentito modificare le condivisioni in ingresso",
+ "Wrong or no update parameter given" : "Parametro fornito non valido o non di aggiornamento",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Invio della password da Nextcloud Talk\" per condividere un file o una cartella non è riuscito poiché Nextcloud Talk non è attivato.",
+ "Custom share link tokens have been disabled by the administrator" : "I token di collegamento di condivisione personalizzati sono stati disabilitati dall'amministratore",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "I token devono contenere almeno 1 carattere e possono contenere solo lettere, numeri o un trattino",
+ "Invalid date. Format must be YYYY-MM-DD" : "Data non valida. Il formato deve essere AAAA-MM-GG",
+ "No sharing rights on this item" : "Nessun diritto di condivisione per questo elemento",
+ "Invalid share attributes provided: \"%s\"" : "Attributi di condivisione forniti non validi: \"%s\"",
+ "You are not allowed to send mail notifications" : "Non ti è consentito inviare notifiche via posta",
+ "No mail notification configured for this share type" : "Nessuna notifica via posta configurata per questo tipo di condivisione",
+ "Wrong password" : "Password errata",
+ "Error while sending mail notification" : "Errore durante l'invio della notifica via posta",
+ "Failed to generate a unique token" : "Impossibile generare un token univoco",
+ "This share does not exist or is no longer available" : "Questa condivisione non esiste o non è più disponibile",
"shared by %s" : "condiviso da %s",
- "Download all files" : "Scarica tutti i file",
- "Direct link" : "Collegamento diretto",
+ "Download" : "Scarica",
"Add to your %s" : "Aggiungi al tuo %s",
+ "Direct link" : "Collegamento diretto",
"Share API is disabled" : "API di condivisione disabilitate",
"File sharing" : "Condivisione di file",
"Share will expire tomorrow" : "La condivisione scadrà domani",
@@ -112,130 +113,234 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Hai ricevuto {share} al gruppo {group} come condivisione da {user}",
"Accept" : "Accetta",
"Decline" : "Rifiuta",
- "Sharing" : "Condivisione",
+ "Remember to upload the files to %s" : "Ricorda di caricare i file in %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Vorremmo gentilmente ricordarti che non hai ancora caricato alcun file nella cartella condivisa.",
+ "Open \"%s\"" : "Apri \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Questa applicazione consente agli utenti di condividere file all'interno di Nextcloud. Se abilitata, l'amministratore può scegliere quali gruppi possono condividere file. Gli utenti ai quali si applica possono quindi condividere file e cartelle con altri utenti e gruppi all'interno di Nextcloud. In aggiunta, se l'amministratore abilita la funzionalità dei collegamenti di condivisione, un collegamento esterno può essere utilizzato per condividere file con altri utenti all'esterno di Nextcloud. Gli amministratori possono inoltre forzare le password, le date di scadenza e abilitare la condivisione tra server tramite collegamenti di condivisione, così come la condivisione da dispositivi mobili.\nLa disattivazione della funzionalità rimuove i file e le cartelle condivisi sul server per tutti i destinatari della condivisione, e anche sui client di sincronizzazione e sulle applicazioni mobili. Altre informazioni sono disponibili nella documentazione di Nextcloud.",
+ "People" : "Persone",
+ "Filter accounts" : "Filtra account",
+ "The request will expire on {date} at midnight and will be password protected." : "La richiesta scadrà il {date} a mezzanotte e sarà protetta da password.",
+ "The request will expire on {date} at midnight." : "La richiesta scadrà il {date} a mezzanotte.",
+ "The request will be password protected." : "La richiesta sarà protetta da password.",
+ "When should the request expire?" : "Quando deve scadere la richiesta?",
+ "Set a submission expiration date" : "Imposta data di scadenza dell'invio",
+ "Expiration date" : "Data di scadenza",
+ "Select a date" : "Seleziona una data",
+ "Your administrator has enforced a {count} days expiration policy." : "Il tuo amministratore ha imposto una regola di scadenza di {count} giorni.",
+ "What password should be used for the request?" : "Che password deve essere usata per la richiesta?",
+ "Set a password" : "Imposta una password",
+ "Password" : "Password",
+ "Enter a valid password" : "Inserisci una password valida",
+ "Generate a new password" : "Genera una password nuova",
+ "Your administrator has enforced a password protection." : "Il tuo amministratore ha imposto una protezione con password.",
+ "Automatically copying failed, please copy the share link manually" : "Copia automatica fallita, copia il collegamento di condivisione a mano",
+ "Link copied" : "Collegamento copiato",
+ "Email already added" : "Indirizzo di posta già aggiunto",
+ "Invalid email address" : "Indirizzo di posta non valido",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["L'indirizzo di posta seguente non è valido: {emails}","Gli indirizzi di posta seguenti non sono validi: {emails}","Gli indirizzi di posta seguenti non sono validi: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} indirizzo email già aggiunto","{count} indirizzi email già aggiunti","{count} indirizzi email già aggiunti"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} indirizzo email aggiunto","{count} indirizzi email già aggiunti","{count} indirizzi email già aggiunti"],
+ "You can now share the link below to allow people to upload files to your directory." : "Puoi ora condividere il collegamento sotto per consentire alle persone di caricare file nella tua cartella.",
+ "Share link" : "Condividi collegamento",
+ "Copy" : "Copia",
+ "Send link via email" : "Invia collegamento tramite email",
+ "Enter an email address or paste a list" : "Inserisci un indirizzo di posta o incolla una lista",
+ "Remove email" : "Rimuovi email",
+ "Select a destination" : "Seleziona una destinazione",
+ "Select" : "Seleziona",
+ "What are you requesting?" : "Cosa stai richiedendo?",
+ "Request subject" : "Oggetto della richiesta",
+ "Birthday party photos, History assignment…" : "Foto della festa di compleanno, compito di storia…",
+ "Where should these files go?" : "Dove devono finire questi file?",
+ "Upload destination" : "Destinazione di caricamento",
+ "Revert to default" : "Ripristina valore predefinito",
+ "The uploaded files are visible only to you unless you choose to share them." : "I file caricati sono visibili solo a te a meno che tu scelga di condividerli.",
+ "Add a note" : "Aggiungi una nota",
+ "Note for recipient" : "Nota per il destinatario",
+ "Add a note to help people understand what you are requesting." : "Aggiungi una nota per aiutare le persone a capire cosa stai richiedendo.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Puoi aggiungere collegamenti, date o qualsiasi altra informazione che aiuterà il destinatario a capire cosa stai richiedendo.",
+ "Close" : "Chiudi",
+ "_Send email and close_::_Send {count} emails and close_" : ["Invia un'email e chiudi","Invia {count} email e chiudi","Invia {count} email e chiudi"],
+ "Please select a folder, you cannot share the root directory." : "Seleziona una cartella, non puoi condividere la cartella radice.",
+ "File request created" : "Richiesta di file creata",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Richiesta di file creata e email inviata","Richiesta di file creata e {count} email inviate","Richiesta di file creata e {count} email inviate"],
+ "Error creating the share: {errorMessage}" : "Errore durante la creazione della condivisione: {errorMessage}",
+ "Error creating the share" : "Errore durante la creazione della condivisione",
+ "Error sending emails: {errorMessage}" : "Errore di invio delle email: {errorMessage}",
+ "Error sending emails" : "Errore di invio delle email",
+ "Create a file request" : "Crea una richiesta di file",
+ "Collect files from others even if they do not have an account." : "Ritira file dagli altri anche se non hanno un account.",
+ "To ensure you can receive files, verify you have enough storage available." : "Per assicurarti di potere ricevere file, verifica di avere abbastanza spazio disponibile.",
+ "File request" : "Richiesta file",
+ "Previous step" : "Passo precedente",
+ "Cancel" : "Annulla",
+ "Cancel the file request creation" : "Annulla la creazione della richiesta di file",
+ "Close without sending emails" : "Chiudi senza inviare email",
+ "Continue" : "Continua",
"Error while toggling options" : "Errore durante il cambio delle opzioni",
- "Set default folder for accepted shares" : "Imposta cartella predefinita per condivisioni accettate",
- "Reset" : "Ripristina",
- "Reset folder to system default" : "Ripristina la cartella alla predefinita di sistema",
+ "Accept shares from other accounts and groups by default" : "Accetta condivisioni da altri account e gruppi per impostazione predefinita",
"Choose a default folder for accepted shares" : "Scegli una cartella predefinita per le condivisioni accettate",
"Invalid path selected" : "Percorso selezionato non valido",
"Unknown error" : "Errore sconosciuto",
- "Open Sharing Details" : "Apri i dettagli di condivisione",
+ "Set default folder for accepted shares" : "Imposta cartella predefinita per condivisioni accettate",
+ "Reset" : "Ripristina",
+ "Reset folder to system default" : "Ripristina la cartella alla predefinita di sistema",
+ "Share expiration: {date}" : "Scadenza condivisione: {date}",
+ "Share Expiration" : "Scadenza Condivisione",
"group" : "gruppo",
"conversation" : "conversazione",
"remote" : "remota",
"remote group" : "gruppo remoto",
"guest" : "ospite",
+ "by {initiator}" : "da {initiator}",
"Shared with the group {user} by {owner}" : "Condiviso con il gruppo {user} da {owner}",
"Shared with the conversation {user} by {owner}" : "Condiviso con la conversazione {user} da {owner}",
"Shared with {user} by {owner}" : "Condiviso con {user} da {owner}",
+ "Open Sharing Details" : "Apri i dettagli di condivisione",
"Added by {initiator}" : "Aggiunto da {initiator}",
"Via “{folder}”" : "Tramite “{folder}”",
"Unshare" : "Rimuovi condivisione",
- "Internal link" : "Collegamento interno",
"Cannot copy, please copy the link manually" : "Impossibile copiare, copia il collegamento manualmente",
- "Copy internal link to clipboard" : "Copia il collegamento interno negli appunti",
- "Link copied" : "Collegamento copiato",
- "Please enter the following required information before creating the share" : "Digita le seguenti informazioni richieste prima di creare la condivisione",
- "Password protection (enforced)" : "Protezione con password (applicata)",
- "Password protection" : "Protezione con password",
- "Enter a password" : "Digita una password",
- "Expiration date (enforced)" : "Data di scadenza (applicata)",
- "Enter a date" : "Digita una data",
- "Create share" : "Crea condivisione",
- "Cancel" : "Annulla",
- "Customize link" : "Personalizza il collegamento",
- "Add another link" : "Aggiungi un altro collegamento",
- "Create a new share link" : "Crea un nuovo collegamento di condivisione",
+ "Copy internal link" : "Copia collegamento interno",
+ "For people who already have access" : "Per le persone che hanno già accesso",
+ "Internal link" : "Collegamento interno",
"{shareWith} by {initiator}" : "{shareWith} da {initiator}",
"Shared via link by {initiator}" : "Condiviso tramite collegamento da {initiator}",
+ "File request ({label})" : "Richiesta di file ({label})",
"Mail share ({label})" : "Condivisione email ({label})",
"Share link ({label})" : "Condividi collegamento ({label})",
+ "Mail share" : "Condivisione via posta",
"Share link ({index})" : "Condividi collegamento ({index})",
- "Share link" : "Condividi collegamento",
+ "Create public link" : "Crea collegamento pubblico",
"Actions for \"{title}\"" : "Azioni per \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Copia il collegamento pubblico di \"{title}\" negli appunti",
+ "Copy public link of \"{title}\"" : "Copia il link pubblico di \"{title}\"",
"Error, please enter proper password and/or expiration date" : "Errore, digita la password corretta e/o la data di scadenza",
"Link share created" : "Collegamento alla condivisione creato ",
"Error while creating the share" : "Errore durante la creazione della condivisione",
+ "Please enter the following required information before creating the share" : "Digita le seguenti informazioni richieste prima di creare la condivisione",
+ "Password protection (enforced)" : "Protezione con password (applicata)",
+ "Password protection" : "Protezione con password",
+ "Enter a password" : "Digita una password",
+ "Enable link expiration (enforced)" : "Abilita scadenza link (imposta)",
+ "Enable link expiration" : "Abilita scadenza link",
+ "Enter expiration date (enforced)" : "Inserisci la data di scadenza (imposta)",
+ "Enter expiration date" : "Inserisci la data di scadenza",
+ "Create share" : "Crea condivisione",
+ "Customize link" : "Personalizza il collegamento",
+ "Generate QR code" : "Genera codice QR",
+ "Add another link" : "Aggiungi un altro collegamento",
+ "Create a new share link" : "Crea un nuovo collegamento di condivisione",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Opzioni di condivisione rapida, l'attuale selezionata è \"{selectedOption}\"",
"View only" : "Sola lettura",
"Can edit" : "Può modificare",
- "File drop" : "Elimina file",
"Custom permissions" : "Autorizzazioni personalizzate",
- "Search for share recipients" : "Cerca i destinatari della condivisione",
- "No recommendations. Start typing." : "Nessun consiglio. Inizia a digitare.",
"Resharing is not allowed" : "La ri-condivisione non è consentita",
"Name or email …" : "Nome o email...",
"Name, email, or Federated Cloud ID …" : "Nome, email o ID di cloud federata...",
"Searching …" : "Ricerca in corso...",
"No elements found." : "Nessun elemento trovato.",
- "Search globally" : "Cerca globalmente",
+ "Search everywhere" : "Cerca ovunque",
"Guest" : "Ospite",
"Group" : "Gruppo",
"Email" : "Posta elettronica",
+ "Team" : "Team",
"Talk conversation" : "Conversazione di Talk",
"Deck board" : "Lavagna di Deck",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "su {server}",
+ "Enter external recipients" : "Inserisci i destinatari esterni",
+ "Search for internal recipients" : "Cerca destinatari interni",
+ "Note from" : "Nota da",
+ "Note:" : "Nota:",
+ "File drop" : "Deposita file",
+ "Upload files to {foldername}." : "Carica i file su{foldername}.",
+ "By uploading files, you agree to the terms of service." : "Caricando i file accetti i termini del servizio.",
+ "Successfully uploaded files" : "File caricati correttamente",
+ "View terms of service" : "Visualizza i termini del servizio",
+ "Terms of service" : "Termini del servizio",
+ "Share with {user}" : "Condividi con {user}",
+ "Share with email {email}" : "Condividi con l'email {email}",
+ "Share with group" : "Condividi con gruppo",
+ "Share in conversation" : "Condividi nella conversazione",
+ "Share with {user} on remote server {server}" : "Condividi con {user} sul server remoto {server}",
+ "Share with remote group" : "Condividi con gruppo remoto",
+ "Share with guest" : "Condividi con ospite",
+ "Update share" : "Aggiorna condivisione",
+ "Save share" : "Salva condivisione",
+ "Read" : "Lettura",
+ "Create" : "Crea",
+ "Edit" : "Modifica",
+ "Share" : "Condividi",
+ "Delete" : "Elimina",
+ "Password field cannot be empty" : "Il campo password non può essere vuoto",
+ "Replace current password" : "Sostituisci la password attuale",
+ "Failed to generate a new token" : "Impossibile generare un nuovo token",
"Allow upload and editing" : "Consenti caricamento e modifica",
"Allow editing" : "Consenti la modifica",
"Upload only" : "Solo caricamento",
"Advanced settings" : "Impostazioni avanzate",
"Share label" : "Condividi etichetta",
+ "Share link token" : "Condividi il link del token",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Imposta il token del link di condivisione pubblica su qualcosa di facile da ricordare o genera un nuovo token. Non è consigliabile usare un token indovinabile per le condivisioni che contengono informazioni sensibili.",
+ "Generating…" : "Generazione in corso…",
+ "Generate new token" : "Genera nuovo token",
"Set password" : "Imposta password",
- "Password" : "Password",
"Password expires {passwordExpirationTime}" : "Scadenza password {passwordExpirationTime}",
"Password expired" : "Password scaduta",
"Video verification" : "Verifica video",
+ "Expiration date (enforced)" : "Data di scadenza (applicata)",
"Set expiration date" : "Imposta data di scadenza",
- "Expiration date" : "Data di scadenza",
"Hide download" : "Nascondi scaricamento",
- "Allow download" : "Consenti scaricamento",
+ "Allow download and sync" : "Consenti scaricamento e sincr.",
"Note to recipient" : "Nota al destinatario",
"Enter a note for the share recipient" : "Digita una nota per il destinatario della condivisione",
- "Read" : "Lettura",
- "Create" : "Crea",
- "Edit" : "Modifica",
- "Share" : "Condividi",
+ "Show files in grid view" : "Mostra i file nella vista a griglia",
"Delete share" : "Elimina condivisione",
- "Share with {userName}" : "Condividi con {userName}",
- "Share with group" : "Condividi con gruppo",
- "Share in conversation" : "Condividi nella conversazione",
- "Share with guest" : "Condividi con ospite",
- "Update share" : "Aggiorna condivisione",
- "Save share" : "Salva condivisione",
"Others with access" : "Altri con accesso",
+ "No other accounts with access found" : "Nessun altro account trovato con accesso",
"Toggle list of others with access to this directory" : "Attiva l'elenco degli altri utenti con accesso a questa cartella ",
"Toggle list of others with access to this file" : "Attiva l'elenco degli altri utenti con accesso a questo file ",
"Unable to fetch inherited shares" : "Impossibile recuperare le condivisioni ereditate",
+ "Link shares" : "Condivisioni dei link",
+ "Shares" : "Condivisioni",
+ "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Condividi i file all'interno della tua organizzazione. Anche i destinatari che possono già visualizzare il file possono utilizzare questo link per accedervi facilmente.",
+ "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Condividi file con altri utenti esterni alla tua organizzazione tramite link pubblici e indirizzi email. Puoi anche condividere file con account Nextcloud su altre istanze utilizzando il loro ID cloud federato.",
+ "Shares from apps or other sources which are not included in internal or external shares." : "Condivisioni da app o altre fonti non incluse nelle condivisioni interne o esterne.",
+ "Type names, teams, federated cloud IDs" : "Digita nomi, team, ID cloud federati",
+ "Type names or teams" : "Digita nomi o team",
+ "Type a federated cloud ID" : "Digita un ID cloud federato",
+ "Type an email" : "Digita un'email",
+ "Type an email or federated cloud ID" : "Digita un indirizzo email o un ID cloud federato",
"Unable to load the shares list" : "Impossibile caricare l'elenco delle condivisioni",
"Expires {relativetime}" : "Scade il {relativetime}",
"this share just expired." : "questa condivisione è appena scaduta.",
"Shared with you by {owner}" : "Condiviso con te da {owner}",
+ "Internal shares" : "Condivisioni interne",
+ "Internal shares explanation" : "Spiegazione delle condivisioni interne",
+ "External shares" : "Condivisioni esterne",
+ "External shares explanation" : "Spiegazione delle condivisioni esterne",
+ "Additional shares" : "Azioni aggiuntive",
+ "Additional shares explanation" : "Spiegazione delle azioni aggiuntive",
+ "Link to a file" : "Collega a un file",
"_Accept share_::_Accept shares_" : ["Accetta condivisione","Accetta condivisioni","Accetta condivisioni"],
"Open in Files" : "Apri in File",
"_Reject share_::_Reject shares_" : ["Rifiuta condivisione","Rifiuta condivisioni","Rifiuta condivisioni"],
"_Restore share_::_Restore shares_" : ["Ripristina condivisione","Ripristina condivisioni","Ripristina condivisioni"],
"Shared" : "Condiviso",
"Shared by {ownerDisplayName}" : "Condiviso da {ownerDisplayName}",
- "Show sharing options" : "Mostra le opzioni di condivisione",
- "Link to a file" : "Collega a un file",
- "Error creating the share: {errorMessage}" : "Errore durante la creazione della condivisione: {errorMessage}",
- "Error creating the share" : "Errore durante la creazione della condivisione",
- "Error updating the share: {errorMessage}" : "Errore durante l'aggiornamento della condivisione: {errorMessage}",
- "Error updating the share" : "Errore durante l'aggiornamento della condivisione",
- "File \"{path}\" has been unshared" : "La condivisione del file \"{path}\" è stata rimossa",
- "Folder \"{path}\" has been unshared" : "La condivisione della cartella \"{path}\" è stata rimossa",
- "Share {propertyName} saved" : "Condivisione {propertyName} salvata",
- "Shared by" : "Condiviso da",
- "Shared with" : "Condiviso con",
- "Password created successfully" : "Password creata correttamente",
- "Error generating password from password policy" : "Errore: la password non rispetta i criteri stabiliti",
- "Shared with you and the group {group} by {owner}" : "Condiviso con te e con il gruppo {group} da {owner}",
- "Shared with you and {circle} by {owner}" : "Condiviso con te e {circle} da {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Condiviso con te e con la conversazione {conversation} da {owner}",
- "Shared with you in a conversation by {owner}" : "Condiviso con te in una conversazione da {owner}",
- "Shares" : "Condivisioni",
+ "Shared multiple times with different people" : "Condiviso più volte con diverse persone",
+ "Sharing options" : "Opzioni di condivisione",
+ "Shared with others" : "Condivisi con altri",
+ "Create file request" : "Crea richiesta di file",
+ "Upload files to {foldername}" : "Carica i file su {foldername}",
+ "Public file share" : "Condivisione di file pubblici",
+ "Publicly shared file." : "File condiviso pubblicamente.",
+ "No file" : "Nessun file",
+ "The file shared with you will show up here" : "Il file condiviso con te verrà visualizzato qui",
+ "Public share" : "Condivisione pubblica",
+ "Publicly shared files." : "File condivisi pubblicamente.",
+ "No files" : "Nessun file",
+ "Files and folders shared with you will show up here" : "I file e le cartelle condivisi con te verranno visualizzati qui",
"Overview of shared files." : "Panoramica dei file condivisi.",
"No shares" : "Nessuna condivisione",
"Files and folders you shared or have been shared with you will show up here" : "I file e le cartelle che hai condiviso o che sono stati condivisi con te con te saranno mostrati qui",
@@ -243,7 +348,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Lista di file che sono condivisi con te.",
"Nothing shared with you yet" : "Non è stato condiviso ancora niente con te",
"Files and folders others shared with you will show up here" : "I file e le cartelle che altri hanno condiviso con te saranno mostrati qui",
- "Shared with others" : "Condivisi con altri",
"List of files that you shared with others." : "Lista di file che sono condivisi con altri.",
"Nothing shared yet" : "Ancora nessuna condivisione",
"Files and folders you shared will show up here" : "I file e le cartelle che hai condiviso saranno mostrati qui",
@@ -251,6 +355,10 @@ OC.L10N.register(
"List of files that are shared by link." : "Lista di file che sono condivisi via link.",
"No shared links" : "Nessun collegamento condiviso",
"Files and folders you shared by link will show up here" : "I file e le cartelle che hai condiviso tramite collegamento saranno mostrati qui",
+ "File requests" : "Richieste di file",
+ "List of file requests." : "Lista di richieste di file.",
+ "No file requests" : "Nessuna richiesta di file",
+ "File requests you have created will show up here" : "Le richieste di file che hai creato saranno mostrate qui",
"Deleted shares" : "Condivisioni eliminate",
"List of shares you left." : "Lista di condivisioni che hai abbandonato.",
"No deleted shares" : "Nessuna condivisione eliminata",
@@ -259,48 +367,87 @@ OC.L10N.register(
"List of unapproved shares." : "Lista di condivisioni non approvate.",
"No pending shares" : "Nessuna condivisione in corso",
"Shares you have received but not approved will show up here" : "Le condivisioni che hai ricevuto, ma non approvato saranno mostrate qui",
+ "Error deleting the share: {errorMessage}" : "Errore durante l'eliminazione della condivisione: {errorMessage}",
+ "Error deleting the share" : "Errore durante l'eliminazione della condivisione",
+ "Error updating the share: {errorMessage}" : "Errore durante l'aggiornamento della condivisione: {errorMessage}",
+ "Error updating the share" : "Errore durante l'aggiornamento della condivisione",
+ "File \"{path}\" has been unshared" : "La condivisione del file \"{path}\" è stata rimossa",
+ "Folder \"{path}\" has been unshared" : "La condivisione della cartella \"{path}\" è stata rimossa",
+ "Could not update share" : "Impossibile aggiornare la condivisione",
+ "Share saved" : "Condivisione salvata",
+ "Share expiry date saved" : "Data di scadenza della condivisione salvata",
+ "Share hide-download state saved" : "Stato nascondi-download della condivisione salvato",
+ "Share label saved" : "Condividi etichetta salvata",
+ "Share note for recipient saved" : "Condividi nota salvata per il destinatario",
+ "Share password saved" : "Condividi la password salvata",
+ "Share permissions saved" : "Condivisione dei permessi salvati",
+ "To upload files to {folder}, you need to provide your name first." : "Per caricare file su {folder}, devi prima fornire il tuo nome.",
+ "Upload files to {folder}" : "Carica file su {folder}",
+ "Please confirm your name to upload files to {folder}" : "Si prega di confermare il nome per caricare i file su {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha condiviso una cartella con te.",
+ "Names must not be empty." : "I nomi non devono essere vuoti.",
+ "Names must not start with a dot." : "I nomi non devono iniziare con un punto.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" non è consentito all'interno di un nome.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" è un nome riservato e non consentito.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" non è un nome consentito.",
+ "Names must not end with \"{extension}\"." : "I nomi non devono terminare con \"{extension}\".",
+ "Invalid name." : "Nome non valido.",
+ "Shared by" : "Condiviso da",
+ "Shared with" : "Condiviso con",
+ "Password created successfully" : "Password creata correttamente",
+ "Error generating password from password policy" : "Errore: la password non rispetta i criteri stabiliti",
+ "Shared with you and the group {group} by {owner}" : "Condiviso con te e con il gruppo {group} da {owner}",
+ "Shared with you and {circle} by {owner}" : "Condiviso con te e {circle} da {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Condiviso con te e con la conversazione {conversation} da {owner}",
+ "Shared with you in a conversation by {owner}" : "Condiviso con te in una conversazione da {owner}",
+ "Share not found" : "Condivisione non trovata",
+ "Back to %s" : "Torna a %s",
+ "Add to your Nextcloud" : "Aggiungi al tuo Nextcloud",
+ "Waiting…" : "Attendere...",
+ "error" : "errore",
+ "finished" : "terminato",
+ "This will stop your current uploads." : "Questo fermerà i tuoi caricamenti attuali.",
+ "Move or copy" : "Sposta o copia",
+ "You can upload into this folder" : "Puoi caricare in questa cartella",
+ "Show list view" : "Commuta la vista a lista",
+ "Show grid view" : "Commuta la vista a griglia",
+ "No compatible server found at {remote}" : "Nessun server compatibile trovato su {remote}",
+ "Invalid server URL" : "URL del server non valido",
+ "Failed to add the public link to your Nextcloud" : "Aggiunta del collegamento pubblico al tuo Nextcloud non riuscita",
+ "You are not allowed to edit link shares that you don't own" : "Non ti è consentito modificare le condivisioni di collegamenti che non ti appartengono",
+ "Download all files" : "Scarica tutti i file",
+ "Link copied to clipboard" : "Collegamento copiato negli appunti",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 indirizzo di posta già aggiunto","{count} indirizzi di posta già aggiunti","{count} indirizzi di posta già aggiunti"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 indirizzo di posta aggiunto","{count} indirizzi di posta aggiunti","{count} indirizzi di posta aggiunti"],
+ "Copy to clipboard" : "Copia negli appunti",
+ "Copy internal link to clipboard" : "Copia il collegamento interno negli appunti",
+ "Only works for people with access to this folder" : "Funziona solo per le persone con accesso a questa cartella",
+ "Only works for people with access to this file" : "Funziona solo per le persone con accesso a questo file",
+ "Copy public link of \"{title}\" to clipboard" : "Copia il collegamento pubblico di \"{title}\" negli appunti",
+ "Search globally" : "Cerca globalmente",
+ "Search for share recipients" : "Cerca i destinatari della condivisione",
+ "No recommendations. Start typing." : "Nessun consiglio. Inizia a digitare.",
+ "To upload files, you need to provide your name first." : "Per caricare file, devi prima fornire il tuo nome.",
+ "Enter your name" : "Digita il tuo nome",
+ "Submit name" : "Fornisci il nome",
+ "Share with {userName}" : "Condividi con {userName}",
+ "Show sharing options" : "Mostra le opzioni di condivisione",
"Share note" : "Condividi nota",
"Upload files to %s" : "Carica file su %s",
+ "%s shared a folder with you." : "%s ha condiviso una cartella con te.",
"Note" : "Nota",
"Select or drop files" : "Seleziona o deseleziona file",
"Uploading files" : "Caricamento file",
"Uploaded files:" : "File caricati:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Caricando i file, accetti i %1$stermini del servizio%2$s.",
- "Add to your Nextcloud" : "Aggiungi al tuo Nextcloud",
- "Files and folders others share with you will show up here" : "I file e le cartelle che altri condividono con te saranno mostrati qui",
- "Files and folders you share will show up here" : "I file e le cartelle che condividi saranno mostrati qui",
- "Files and folders you share by link will show up here" : "I file e le cartelle che condividi tramite collegamento saranno mostrati qui",
- "Shares you deleted will show up here" : "Qui saranno mostrate le condivisioni che hai eliminato",
- "Shares you have received but not confirmed will show up here" : "Le condivisioni che hai ricevuto, ma non confermato saranno mostrate qui",
- "Shares will show up here" : "Le condivisioni saranno mostrate qui",
- "Restore" : "Ripristina",
- "Something happened. Unable to restore the share." : "Qualcosa non ha funzionato. Impossibile ripristinare la condivisione.",
- "Something happened. Unable to accept the share." : "Qualcosa non ha funzionato. Impossibile accettare la condivisione.",
- "Something happened. Unable to reject the share." : "Qualcosa non ha funzionato. Impossibile rifiutare la condivisione.",
- "No expiration date set" : "Nessuna data di scadenza impostata",
- "Please specify a valid user" : "Specifica un utente valido",
- "Please specify a valid federated user ID" : "Specifica un ID di utente federato valido",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Questa applicazione consente agli utenti di condividere file all'interno di Nextcloud. Se abilitata, l'amministratore può scegliere quali gruppi possono condividere file. Gli utenti ai quali si applica possono quindi condividere file e cartelle con altri utenti e gruppi all'interno di Nextcloud. In aggiunta, se l'amministratore abilita la funzionalità dei collegamenti di condivisione, un collegamento esterno può essere utilizzato per condividere file con altri utenti all'esterno di Nextcloud. Gli amministratori possono inoltre forzare le password, le date di scadenza e abilitare la condivisione tra server tramite collegamenti di condivisione, così come la condivisione da dispositivi mobili.\nLa disattivazione della funzionalità rimuove i file e le cartelle condivisi sul server per tutti i destinatari della condivisione, e anche sui client di sincronizzazione e sulle applicazioni mobili. Altre informazioni sono disponibili nella documentazione di Nextcloud.",
- "Accept user and group shares by default" : "Accetta le condivisioni di utenti e gruppi in modo predefinito",
- "Read only" : "Sola lettura",
- "File drop (upload only)" : "Rilascia file (solo caricamento)",
- "Upload" : "Carica",
- "Bundled permissions" : "Permessi raggruppati",
- "Only works for users with access to this folder" : "Funziona solo per gli utenti con accesso a questa cartella",
- "Only works for users with access to this file" : "Funziona solo per gli utenti con accesso a questo file",
- "Circle" : "Cerchia",
- "Update" : "Aggiorna",
- "Share with " : "Condividi con",
- "No other users with access found" : "Nessun altro utente con accesso trovato",
- "No entries found in this folder" : "Nessuna voce trovata in questa cartella",
"Name" : "Nome",
- "Share time" : "Tempo di condivisione",
- "Sorry, this link does not seem to work anymore." : "Spiacenti, questo collegamento sembra non essere più attivo.",
- "Reasons might be:" : "I motivi potrebbero essere:",
- "the item was removed" : "l'elemento è stato rimosso",
- "the link expired" : "il collegamento è scaduto",
- "sharing is disabled" : "la condivisione è disabilitata",
- "For more info, please ask the person who sent this link." : "Per ulteriori informazioni, chiedi alla persona che ti ha inviato il collegamento.",
- "Share with" : "Condividi con"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utilizza questo metodo per condividere file con singoli o team all'interno della tua organizzazione. Se il destinatario ha già accesso alla condivisione ma non riesce a individuarla, puoi inviargli il link di condivisione interno per un facile accesso.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Utilizza questo metodo per condividere file con individui o organizzazioni esterne alla tua organizzazione. File e cartelle possono essere condivisi tramite link di condivisione pubblici e indirizzi e-mail. Puoi anche condividere con altri account Nextcloud ospitati su istanze diverse utilizzando il loro ID cloud federato.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Condivisioni che non fanno parte delle condivisioni interne o esterne. Possono essere condivisioni da app o altre fonti.",
+ "Share with accounts, teams, federated cloud id" : "Condividi con account, team, ID cloud federati",
+ "Share with accounts and teams" : "Condividi con account e team",
+ "Federated cloud ID" : "ID cloud federato",
+ "Email, federated cloud id" : "E-mail, ID cloud federato",
+ "Filename must not be empty." : "Il nome del file non può essere vuoto."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/it.json b/apps/files_sharing/l10n/it.json
index f9c703fe9f8..a4086431a3b 100644
--- a/apps/files_sharing/l10n/it.json
+++ b/apps/files_sharing/l10n/it.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Attendere...",
- "error" : "errore",
- "finished" : "terminato",
- "This will stop your current uploads." : "Questo fermerà i tuoi caricamenti attuali.",
- "Move or copy" : "Sposta o copia",
- "Download" : "Scarica",
- "Delete" : "Elimina",
- "You can upload into this folder" : "Puoi caricare in questa cartella",
- "Terms of service" : "Termini del servizio",
- "Show list view" : "Commuta la vista a lista",
- "Show grid view" : "Commuta la vista a griglia",
- "No compatible server found at {remote}" : "Nessun server compatibile trovato su {remote}",
- "Invalid server URL" : "URL del server non valido",
- "Failed to add the public link to your Nextcloud" : "Aggiunta del collegamento pubblico al tuo Nextcloud non riuscita",
"File shares" : "Condivisioni dei file",
"Downloaded via public link" : "Scaricata tramite collegamento pubblico",
"Downloaded by {email}" : "Scaricato da {email}",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "Condivisione per il file {file} con {user} scaduta",
"Share for file {file} expired" : "Condivisione per il file {file} scaduta",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un file o una cartella condiviso via posta elettronica o collegamento pubblico è stato <strong>scaricato</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "I file sono stati <strong>caricati</strong> in una cartella condivisa via email o da collegamento pubblico",
"A file or folder was shared from <strong>another server</strong>" : "Un file o una cartella è stato condiviso da <strong>un altro server</strong>",
- "Files" : "File",
+ "Sharing" : "Condivisione",
"A file or folder has been <strong>shared</strong>" : "Un file o una cartella è stato <strong>condiviso</strong>",
"Shared link" : "Collegamento condiviso",
"Wrong share ID, share does not exist" : "ID di condivisione errato, la condivisione non esiste",
@@ -76,32 +63,46 @@
"Please specify a file or folder path" : "Specifica un percorso di un file o di una cartella",
"Wrong path, file/folder does not exist" : "Percorso errato, file/cartella inesistente",
"Could not create share" : "Impossibile creare la condivisione",
- "Invalid permissions" : "Permessi non validi",
- "Invalid date, date format must be YYYY-MM-DD" : "Data non valida, il formato della data deve essere AAAA-MM-GG",
+ "Please specify a valid account to share with" : "Specifica un account valido con cui condividere",
"Group sharing is disabled by the administrator" : "La condivisione di gruppo è disabilitata dall'amministratore",
"Please specify a valid group" : "Specifica un gruppo valido",
"Public link sharing is disabled by the administrator" : "La condivisione pubblica di collegamenti è disabilitata dall'amministratore",
- "Public upload disabled by the administrator" : "Caricamento pubblico disabilitato dall'amministratore",
- "Public upload is only possible for publicly shared folders" : "Il caricamento pubblico è possibile solo per cartelle condivise pubblicamente",
+ "Please specify a valid email address" : "Specifica un indirizzo di posta valido",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "La condivisione di %s tramite invio della password da Nextcloud Talk non è riuscito poiché Nextcloud Talk non è abilitato",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Condivisione di %1$s non riuscita poiché il motore non consente condivisioni del tipo %2$s",
+ "Please specify a valid federated account ID" : "Specificare un ID account federato valido",
"Please specify a valid federated group ID" : "Specifica un ID di gruppo federato valido",
- "You cannot share to a Circle if the app is not enabled" : "Non puoi condividere con una cerchia se l'applicazione non è abilitata",
- "Please specify a valid circle" : "Specifica una cerchia valida",
+ "You cannot share to a Team if the app is not enabled" : "Non puoi condividere con una squadra se l'applicazione non è abilitata",
+ "Please specify a valid team" : "Specifica una squadra valida",
"Sharing %s failed because the back end does not support room shares" : "Condivisione di %s non riuscita poiché il motore non supporta condivisioni di stanza",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Condivisione di %s non riuscita poiché il motore non supporta condivisioni di ScienceMesh",
"Unknown share type" : "Tipo di condivisione sconosciuto",
"Not a directory" : "Non è una cartella",
"Could not lock node" : "Impossibile bloccare il nodo",
- "Could not lock path" : "Impossibile bloccare il percorso",
- "Wrong or no update parameter given" : "Parametro fornito non valido o non di aggiornamento",
+ "Public upload is only possible for publicly shared folders" : "Il caricamento pubblico è possibile solo per cartelle condivise pubblicamente",
"Share must at least have READ or CREATE permissions" : "La condivisione deve disporre almeno delle autorizzazioni READ o CREATE",
"Share must have READ permission if UPDATE or DELETE permission is set" : "La condivisione deve disporre dell'autorizzazione READ se l'autorizzazione è impostata su UPDATE o DELETE.",
+ "Public upload disabled by the administrator" : "Caricamento pubblico disabilitato dall'amministratore",
+ "Could not lock path" : "Impossibile bloccare il percorso",
+ "no sharing rights on this item" : "nessun diritto di condivisione per questo elemento",
+ "You are not allowed to edit incoming shares" : "Non ti è consentito modificare le condivisioni in ingresso",
+ "Wrong or no update parameter given" : "Parametro fornito non valido o non di aggiornamento",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Invio della password da Nextcloud Talk\" per condividere un file o una cartella non è riuscito poiché Nextcloud Talk non è attivato.",
+ "Custom share link tokens have been disabled by the administrator" : "I token di collegamento di condivisione personalizzati sono stati disabilitati dall'amministratore",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "I token devono contenere almeno 1 carattere e possono contenere solo lettere, numeri o un trattino",
+ "Invalid date. Format must be YYYY-MM-DD" : "Data non valida. Il formato deve essere AAAA-MM-GG",
+ "No sharing rights on this item" : "Nessun diritto di condivisione per questo elemento",
+ "Invalid share attributes provided: \"%s\"" : "Attributi di condivisione forniti non validi: \"%s\"",
+ "You are not allowed to send mail notifications" : "Non ti è consentito inviare notifiche via posta",
+ "No mail notification configured for this share type" : "Nessuna notifica via posta configurata per questo tipo di condivisione",
+ "Wrong password" : "Password errata",
+ "Error while sending mail notification" : "Errore durante l'invio della notifica via posta",
+ "Failed to generate a unique token" : "Impossibile generare un token univoco",
+ "This share does not exist or is no longer available" : "Questa condivisione non esiste o non è più disponibile",
"shared by %s" : "condiviso da %s",
- "Download all files" : "Scarica tutti i file",
- "Direct link" : "Collegamento diretto",
+ "Download" : "Scarica",
"Add to your %s" : "Aggiungi al tuo %s",
+ "Direct link" : "Collegamento diretto",
"Share API is disabled" : "API di condivisione disabilitate",
"File sharing" : "Condivisione di file",
"Share will expire tomorrow" : "La condivisione scadrà domani",
@@ -110,130 +111,234 @@
"You received {share} to group {group} as a share by {user}" : "Hai ricevuto {share} al gruppo {group} come condivisione da {user}",
"Accept" : "Accetta",
"Decline" : "Rifiuta",
- "Sharing" : "Condivisione",
+ "Remember to upload the files to %s" : "Ricorda di caricare i file in %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Vorremmo gentilmente ricordarti che non hai ancora caricato alcun file nella cartella condivisa.",
+ "Open \"%s\"" : "Apri \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Questa applicazione consente agli utenti di condividere file all'interno di Nextcloud. Se abilitata, l'amministratore può scegliere quali gruppi possono condividere file. Gli utenti ai quali si applica possono quindi condividere file e cartelle con altri utenti e gruppi all'interno di Nextcloud. In aggiunta, se l'amministratore abilita la funzionalità dei collegamenti di condivisione, un collegamento esterno può essere utilizzato per condividere file con altri utenti all'esterno di Nextcloud. Gli amministratori possono inoltre forzare le password, le date di scadenza e abilitare la condivisione tra server tramite collegamenti di condivisione, così come la condivisione da dispositivi mobili.\nLa disattivazione della funzionalità rimuove i file e le cartelle condivisi sul server per tutti i destinatari della condivisione, e anche sui client di sincronizzazione e sulle applicazioni mobili. Altre informazioni sono disponibili nella documentazione di Nextcloud.",
+ "People" : "Persone",
+ "Filter accounts" : "Filtra account",
+ "The request will expire on {date} at midnight and will be password protected." : "La richiesta scadrà il {date} a mezzanotte e sarà protetta da password.",
+ "The request will expire on {date} at midnight." : "La richiesta scadrà il {date} a mezzanotte.",
+ "The request will be password protected." : "La richiesta sarà protetta da password.",
+ "When should the request expire?" : "Quando deve scadere la richiesta?",
+ "Set a submission expiration date" : "Imposta data di scadenza dell'invio",
+ "Expiration date" : "Data di scadenza",
+ "Select a date" : "Seleziona una data",
+ "Your administrator has enforced a {count} days expiration policy." : "Il tuo amministratore ha imposto una regola di scadenza di {count} giorni.",
+ "What password should be used for the request?" : "Che password deve essere usata per la richiesta?",
+ "Set a password" : "Imposta una password",
+ "Password" : "Password",
+ "Enter a valid password" : "Inserisci una password valida",
+ "Generate a new password" : "Genera una password nuova",
+ "Your administrator has enforced a password protection." : "Il tuo amministratore ha imposto una protezione con password.",
+ "Automatically copying failed, please copy the share link manually" : "Copia automatica fallita, copia il collegamento di condivisione a mano",
+ "Link copied" : "Collegamento copiato",
+ "Email already added" : "Indirizzo di posta già aggiunto",
+ "Invalid email address" : "Indirizzo di posta non valido",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["L'indirizzo di posta seguente non è valido: {emails}","Gli indirizzi di posta seguenti non sono validi: {emails}","Gli indirizzi di posta seguenti non sono validi: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} indirizzo email già aggiunto","{count} indirizzi email già aggiunti","{count} indirizzi email già aggiunti"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} indirizzo email aggiunto","{count} indirizzi email già aggiunti","{count} indirizzi email già aggiunti"],
+ "You can now share the link below to allow people to upload files to your directory." : "Puoi ora condividere il collegamento sotto per consentire alle persone di caricare file nella tua cartella.",
+ "Share link" : "Condividi collegamento",
+ "Copy" : "Copia",
+ "Send link via email" : "Invia collegamento tramite email",
+ "Enter an email address or paste a list" : "Inserisci un indirizzo di posta o incolla una lista",
+ "Remove email" : "Rimuovi email",
+ "Select a destination" : "Seleziona una destinazione",
+ "Select" : "Seleziona",
+ "What are you requesting?" : "Cosa stai richiedendo?",
+ "Request subject" : "Oggetto della richiesta",
+ "Birthday party photos, History assignment…" : "Foto della festa di compleanno, compito di storia…",
+ "Where should these files go?" : "Dove devono finire questi file?",
+ "Upload destination" : "Destinazione di caricamento",
+ "Revert to default" : "Ripristina valore predefinito",
+ "The uploaded files are visible only to you unless you choose to share them." : "I file caricati sono visibili solo a te a meno che tu scelga di condividerli.",
+ "Add a note" : "Aggiungi una nota",
+ "Note for recipient" : "Nota per il destinatario",
+ "Add a note to help people understand what you are requesting." : "Aggiungi una nota per aiutare le persone a capire cosa stai richiedendo.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Puoi aggiungere collegamenti, date o qualsiasi altra informazione che aiuterà il destinatario a capire cosa stai richiedendo.",
+ "Close" : "Chiudi",
+ "_Send email and close_::_Send {count} emails and close_" : ["Invia un'email e chiudi","Invia {count} email e chiudi","Invia {count} email e chiudi"],
+ "Please select a folder, you cannot share the root directory." : "Seleziona una cartella, non puoi condividere la cartella radice.",
+ "File request created" : "Richiesta di file creata",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Richiesta di file creata e email inviata","Richiesta di file creata e {count} email inviate","Richiesta di file creata e {count} email inviate"],
+ "Error creating the share: {errorMessage}" : "Errore durante la creazione della condivisione: {errorMessage}",
+ "Error creating the share" : "Errore durante la creazione della condivisione",
+ "Error sending emails: {errorMessage}" : "Errore di invio delle email: {errorMessage}",
+ "Error sending emails" : "Errore di invio delle email",
+ "Create a file request" : "Crea una richiesta di file",
+ "Collect files from others even if they do not have an account." : "Ritira file dagli altri anche se non hanno un account.",
+ "To ensure you can receive files, verify you have enough storage available." : "Per assicurarti di potere ricevere file, verifica di avere abbastanza spazio disponibile.",
+ "File request" : "Richiesta file",
+ "Previous step" : "Passo precedente",
+ "Cancel" : "Annulla",
+ "Cancel the file request creation" : "Annulla la creazione della richiesta di file",
+ "Close without sending emails" : "Chiudi senza inviare email",
+ "Continue" : "Continua",
"Error while toggling options" : "Errore durante il cambio delle opzioni",
- "Set default folder for accepted shares" : "Imposta cartella predefinita per condivisioni accettate",
- "Reset" : "Ripristina",
- "Reset folder to system default" : "Ripristina la cartella alla predefinita di sistema",
+ "Accept shares from other accounts and groups by default" : "Accetta condivisioni da altri account e gruppi per impostazione predefinita",
"Choose a default folder for accepted shares" : "Scegli una cartella predefinita per le condivisioni accettate",
"Invalid path selected" : "Percorso selezionato non valido",
"Unknown error" : "Errore sconosciuto",
- "Open Sharing Details" : "Apri i dettagli di condivisione",
+ "Set default folder for accepted shares" : "Imposta cartella predefinita per condivisioni accettate",
+ "Reset" : "Ripristina",
+ "Reset folder to system default" : "Ripristina la cartella alla predefinita di sistema",
+ "Share expiration: {date}" : "Scadenza condivisione: {date}",
+ "Share Expiration" : "Scadenza Condivisione",
"group" : "gruppo",
"conversation" : "conversazione",
"remote" : "remota",
"remote group" : "gruppo remoto",
"guest" : "ospite",
+ "by {initiator}" : "da {initiator}",
"Shared with the group {user} by {owner}" : "Condiviso con il gruppo {user} da {owner}",
"Shared with the conversation {user} by {owner}" : "Condiviso con la conversazione {user} da {owner}",
"Shared with {user} by {owner}" : "Condiviso con {user} da {owner}",
+ "Open Sharing Details" : "Apri i dettagli di condivisione",
"Added by {initiator}" : "Aggiunto da {initiator}",
"Via “{folder}”" : "Tramite “{folder}”",
"Unshare" : "Rimuovi condivisione",
- "Internal link" : "Collegamento interno",
"Cannot copy, please copy the link manually" : "Impossibile copiare, copia il collegamento manualmente",
- "Copy internal link to clipboard" : "Copia il collegamento interno negli appunti",
- "Link copied" : "Collegamento copiato",
- "Please enter the following required information before creating the share" : "Digita le seguenti informazioni richieste prima di creare la condivisione",
- "Password protection (enforced)" : "Protezione con password (applicata)",
- "Password protection" : "Protezione con password",
- "Enter a password" : "Digita una password",
- "Expiration date (enforced)" : "Data di scadenza (applicata)",
- "Enter a date" : "Digita una data",
- "Create share" : "Crea condivisione",
- "Cancel" : "Annulla",
- "Customize link" : "Personalizza il collegamento",
- "Add another link" : "Aggiungi un altro collegamento",
- "Create a new share link" : "Crea un nuovo collegamento di condivisione",
+ "Copy internal link" : "Copia collegamento interno",
+ "For people who already have access" : "Per le persone che hanno già accesso",
+ "Internal link" : "Collegamento interno",
"{shareWith} by {initiator}" : "{shareWith} da {initiator}",
"Shared via link by {initiator}" : "Condiviso tramite collegamento da {initiator}",
+ "File request ({label})" : "Richiesta di file ({label})",
"Mail share ({label})" : "Condivisione email ({label})",
"Share link ({label})" : "Condividi collegamento ({label})",
+ "Mail share" : "Condivisione via posta",
"Share link ({index})" : "Condividi collegamento ({index})",
- "Share link" : "Condividi collegamento",
+ "Create public link" : "Crea collegamento pubblico",
"Actions for \"{title}\"" : "Azioni per \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Copia il collegamento pubblico di \"{title}\" negli appunti",
+ "Copy public link of \"{title}\"" : "Copia il link pubblico di \"{title}\"",
"Error, please enter proper password and/or expiration date" : "Errore, digita la password corretta e/o la data di scadenza",
"Link share created" : "Collegamento alla condivisione creato ",
"Error while creating the share" : "Errore durante la creazione della condivisione",
+ "Please enter the following required information before creating the share" : "Digita le seguenti informazioni richieste prima di creare la condivisione",
+ "Password protection (enforced)" : "Protezione con password (applicata)",
+ "Password protection" : "Protezione con password",
+ "Enter a password" : "Digita una password",
+ "Enable link expiration (enforced)" : "Abilita scadenza link (imposta)",
+ "Enable link expiration" : "Abilita scadenza link",
+ "Enter expiration date (enforced)" : "Inserisci la data di scadenza (imposta)",
+ "Enter expiration date" : "Inserisci la data di scadenza",
+ "Create share" : "Crea condivisione",
+ "Customize link" : "Personalizza il collegamento",
+ "Generate QR code" : "Genera codice QR",
+ "Add another link" : "Aggiungi un altro collegamento",
+ "Create a new share link" : "Crea un nuovo collegamento di condivisione",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Opzioni di condivisione rapida, l'attuale selezionata è \"{selectedOption}\"",
"View only" : "Sola lettura",
"Can edit" : "Può modificare",
- "File drop" : "Elimina file",
"Custom permissions" : "Autorizzazioni personalizzate",
- "Search for share recipients" : "Cerca i destinatari della condivisione",
- "No recommendations. Start typing." : "Nessun consiglio. Inizia a digitare.",
"Resharing is not allowed" : "La ri-condivisione non è consentita",
"Name or email …" : "Nome o email...",
"Name, email, or Federated Cloud ID …" : "Nome, email o ID di cloud federata...",
"Searching …" : "Ricerca in corso...",
"No elements found." : "Nessun elemento trovato.",
- "Search globally" : "Cerca globalmente",
+ "Search everywhere" : "Cerca ovunque",
"Guest" : "Ospite",
"Group" : "Gruppo",
"Email" : "Posta elettronica",
+ "Team" : "Team",
"Talk conversation" : "Conversazione di Talk",
"Deck board" : "Lavagna di Deck",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "su {server}",
+ "Enter external recipients" : "Inserisci i destinatari esterni",
+ "Search for internal recipients" : "Cerca destinatari interni",
+ "Note from" : "Nota da",
+ "Note:" : "Nota:",
+ "File drop" : "Deposita file",
+ "Upload files to {foldername}." : "Carica i file su{foldername}.",
+ "By uploading files, you agree to the terms of service." : "Caricando i file accetti i termini del servizio.",
+ "Successfully uploaded files" : "File caricati correttamente",
+ "View terms of service" : "Visualizza i termini del servizio",
+ "Terms of service" : "Termini del servizio",
+ "Share with {user}" : "Condividi con {user}",
+ "Share with email {email}" : "Condividi con l'email {email}",
+ "Share with group" : "Condividi con gruppo",
+ "Share in conversation" : "Condividi nella conversazione",
+ "Share with {user} on remote server {server}" : "Condividi con {user} sul server remoto {server}",
+ "Share with remote group" : "Condividi con gruppo remoto",
+ "Share with guest" : "Condividi con ospite",
+ "Update share" : "Aggiorna condivisione",
+ "Save share" : "Salva condivisione",
+ "Read" : "Lettura",
+ "Create" : "Crea",
+ "Edit" : "Modifica",
+ "Share" : "Condividi",
+ "Delete" : "Elimina",
+ "Password field cannot be empty" : "Il campo password non può essere vuoto",
+ "Replace current password" : "Sostituisci la password attuale",
+ "Failed to generate a new token" : "Impossibile generare un nuovo token",
"Allow upload and editing" : "Consenti caricamento e modifica",
"Allow editing" : "Consenti la modifica",
"Upload only" : "Solo caricamento",
"Advanced settings" : "Impostazioni avanzate",
"Share label" : "Condividi etichetta",
+ "Share link token" : "Condividi il link del token",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Imposta il token del link di condivisione pubblica su qualcosa di facile da ricordare o genera un nuovo token. Non è consigliabile usare un token indovinabile per le condivisioni che contengono informazioni sensibili.",
+ "Generating…" : "Generazione in corso…",
+ "Generate new token" : "Genera nuovo token",
"Set password" : "Imposta password",
- "Password" : "Password",
"Password expires {passwordExpirationTime}" : "Scadenza password {passwordExpirationTime}",
"Password expired" : "Password scaduta",
"Video verification" : "Verifica video",
+ "Expiration date (enforced)" : "Data di scadenza (applicata)",
"Set expiration date" : "Imposta data di scadenza",
- "Expiration date" : "Data di scadenza",
"Hide download" : "Nascondi scaricamento",
- "Allow download" : "Consenti scaricamento",
+ "Allow download and sync" : "Consenti scaricamento e sincr.",
"Note to recipient" : "Nota al destinatario",
"Enter a note for the share recipient" : "Digita una nota per il destinatario della condivisione",
- "Read" : "Lettura",
- "Create" : "Crea",
- "Edit" : "Modifica",
- "Share" : "Condividi",
+ "Show files in grid view" : "Mostra i file nella vista a griglia",
"Delete share" : "Elimina condivisione",
- "Share with {userName}" : "Condividi con {userName}",
- "Share with group" : "Condividi con gruppo",
- "Share in conversation" : "Condividi nella conversazione",
- "Share with guest" : "Condividi con ospite",
- "Update share" : "Aggiorna condivisione",
- "Save share" : "Salva condivisione",
"Others with access" : "Altri con accesso",
+ "No other accounts with access found" : "Nessun altro account trovato con accesso",
"Toggle list of others with access to this directory" : "Attiva l'elenco degli altri utenti con accesso a questa cartella ",
"Toggle list of others with access to this file" : "Attiva l'elenco degli altri utenti con accesso a questo file ",
"Unable to fetch inherited shares" : "Impossibile recuperare le condivisioni ereditate",
+ "Link shares" : "Condivisioni dei link",
+ "Shares" : "Condivisioni",
+ "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Condividi i file all'interno della tua organizzazione. Anche i destinatari che possono già visualizzare il file possono utilizzare questo link per accedervi facilmente.",
+ "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Condividi file con altri utenti esterni alla tua organizzazione tramite link pubblici e indirizzi email. Puoi anche condividere file con account Nextcloud su altre istanze utilizzando il loro ID cloud federato.",
+ "Shares from apps or other sources which are not included in internal or external shares." : "Condivisioni da app o altre fonti non incluse nelle condivisioni interne o esterne.",
+ "Type names, teams, federated cloud IDs" : "Digita nomi, team, ID cloud federati",
+ "Type names or teams" : "Digita nomi o team",
+ "Type a federated cloud ID" : "Digita un ID cloud federato",
+ "Type an email" : "Digita un'email",
+ "Type an email or federated cloud ID" : "Digita un indirizzo email o un ID cloud federato",
"Unable to load the shares list" : "Impossibile caricare l'elenco delle condivisioni",
"Expires {relativetime}" : "Scade il {relativetime}",
"this share just expired." : "questa condivisione è appena scaduta.",
"Shared with you by {owner}" : "Condiviso con te da {owner}",
+ "Internal shares" : "Condivisioni interne",
+ "Internal shares explanation" : "Spiegazione delle condivisioni interne",
+ "External shares" : "Condivisioni esterne",
+ "External shares explanation" : "Spiegazione delle condivisioni esterne",
+ "Additional shares" : "Azioni aggiuntive",
+ "Additional shares explanation" : "Spiegazione delle azioni aggiuntive",
+ "Link to a file" : "Collega a un file",
"_Accept share_::_Accept shares_" : ["Accetta condivisione","Accetta condivisioni","Accetta condivisioni"],
"Open in Files" : "Apri in File",
"_Reject share_::_Reject shares_" : ["Rifiuta condivisione","Rifiuta condivisioni","Rifiuta condivisioni"],
"_Restore share_::_Restore shares_" : ["Ripristina condivisione","Ripristina condivisioni","Ripristina condivisioni"],
"Shared" : "Condiviso",
"Shared by {ownerDisplayName}" : "Condiviso da {ownerDisplayName}",
- "Show sharing options" : "Mostra le opzioni di condivisione",
- "Link to a file" : "Collega a un file",
- "Error creating the share: {errorMessage}" : "Errore durante la creazione della condivisione: {errorMessage}",
- "Error creating the share" : "Errore durante la creazione della condivisione",
- "Error updating the share: {errorMessage}" : "Errore durante l'aggiornamento della condivisione: {errorMessage}",
- "Error updating the share" : "Errore durante l'aggiornamento della condivisione",
- "File \"{path}\" has been unshared" : "La condivisione del file \"{path}\" è stata rimossa",
- "Folder \"{path}\" has been unshared" : "La condivisione della cartella \"{path}\" è stata rimossa",
- "Share {propertyName} saved" : "Condivisione {propertyName} salvata",
- "Shared by" : "Condiviso da",
- "Shared with" : "Condiviso con",
- "Password created successfully" : "Password creata correttamente",
- "Error generating password from password policy" : "Errore: la password non rispetta i criteri stabiliti",
- "Shared with you and the group {group} by {owner}" : "Condiviso con te e con il gruppo {group} da {owner}",
- "Shared with you and {circle} by {owner}" : "Condiviso con te e {circle} da {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Condiviso con te e con la conversazione {conversation} da {owner}",
- "Shared with you in a conversation by {owner}" : "Condiviso con te in una conversazione da {owner}",
- "Shares" : "Condivisioni",
+ "Shared multiple times with different people" : "Condiviso più volte con diverse persone",
+ "Sharing options" : "Opzioni di condivisione",
+ "Shared with others" : "Condivisi con altri",
+ "Create file request" : "Crea richiesta di file",
+ "Upload files to {foldername}" : "Carica i file su {foldername}",
+ "Public file share" : "Condivisione di file pubblici",
+ "Publicly shared file." : "File condiviso pubblicamente.",
+ "No file" : "Nessun file",
+ "The file shared with you will show up here" : "Il file condiviso con te verrà visualizzato qui",
+ "Public share" : "Condivisione pubblica",
+ "Publicly shared files." : "File condivisi pubblicamente.",
+ "No files" : "Nessun file",
+ "Files and folders shared with you will show up here" : "I file e le cartelle condivisi con te verranno visualizzati qui",
"Overview of shared files." : "Panoramica dei file condivisi.",
"No shares" : "Nessuna condivisione",
"Files and folders you shared or have been shared with you will show up here" : "I file e le cartelle che hai condiviso o che sono stati condivisi con te con te saranno mostrati qui",
@@ -241,7 +346,6 @@
"List of files that are shared with you." : "Lista di file che sono condivisi con te.",
"Nothing shared with you yet" : "Non è stato condiviso ancora niente con te",
"Files and folders others shared with you will show up here" : "I file e le cartelle che altri hanno condiviso con te saranno mostrati qui",
- "Shared with others" : "Condivisi con altri",
"List of files that you shared with others." : "Lista di file che sono condivisi con altri.",
"Nothing shared yet" : "Ancora nessuna condivisione",
"Files and folders you shared will show up here" : "I file e le cartelle che hai condiviso saranno mostrati qui",
@@ -249,6 +353,10 @@
"List of files that are shared by link." : "Lista di file che sono condivisi via link.",
"No shared links" : "Nessun collegamento condiviso",
"Files and folders you shared by link will show up here" : "I file e le cartelle che hai condiviso tramite collegamento saranno mostrati qui",
+ "File requests" : "Richieste di file",
+ "List of file requests." : "Lista di richieste di file.",
+ "No file requests" : "Nessuna richiesta di file",
+ "File requests you have created will show up here" : "Le richieste di file che hai creato saranno mostrate qui",
"Deleted shares" : "Condivisioni eliminate",
"List of shares you left." : "Lista di condivisioni che hai abbandonato.",
"No deleted shares" : "Nessuna condivisione eliminata",
@@ -257,48 +365,87 @@
"List of unapproved shares." : "Lista di condivisioni non approvate.",
"No pending shares" : "Nessuna condivisione in corso",
"Shares you have received but not approved will show up here" : "Le condivisioni che hai ricevuto, ma non approvato saranno mostrate qui",
+ "Error deleting the share: {errorMessage}" : "Errore durante l'eliminazione della condivisione: {errorMessage}",
+ "Error deleting the share" : "Errore durante l'eliminazione della condivisione",
+ "Error updating the share: {errorMessage}" : "Errore durante l'aggiornamento della condivisione: {errorMessage}",
+ "Error updating the share" : "Errore durante l'aggiornamento della condivisione",
+ "File \"{path}\" has been unshared" : "La condivisione del file \"{path}\" è stata rimossa",
+ "Folder \"{path}\" has been unshared" : "La condivisione della cartella \"{path}\" è stata rimossa",
+ "Could not update share" : "Impossibile aggiornare la condivisione",
+ "Share saved" : "Condivisione salvata",
+ "Share expiry date saved" : "Data di scadenza della condivisione salvata",
+ "Share hide-download state saved" : "Stato nascondi-download della condivisione salvato",
+ "Share label saved" : "Condividi etichetta salvata",
+ "Share note for recipient saved" : "Condividi nota salvata per il destinatario",
+ "Share password saved" : "Condividi la password salvata",
+ "Share permissions saved" : "Condivisione dei permessi salvati",
+ "To upload files to {folder}, you need to provide your name first." : "Per caricare file su {folder}, devi prima fornire il tuo nome.",
+ "Upload files to {folder}" : "Carica file su {folder}",
+ "Please confirm your name to upload files to {folder}" : "Si prega di confermare il nome per caricare i file su {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha condiviso una cartella con te.",
+ "Names must not be empty." : "I nomi non devono essere vuoti.",
+ "Names must not start with a dot." : "I nomi non devono iniziare con un punto.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" non è consentito all'interno di un nome.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" è un nome riservato e non consentito.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" non è un nome consentito.",
+ "Names must not end with \"{extension}\"." : "I nomi non devono terminare con \"{extension}\".",
+ "Invalid name." : "Nome non valido.",
+ "Shared by" : "Condiviso da",
+ "Shared with" : "Condiviso con",
+ "Password created successfully" : "Password creata correttamente",
+ "Error generating password from password policy" : "Errore: la password non rispetta i criteri stabiliti",
+ "Shared with you and the group {group} by {owner}" : "Condiviso con te e con il gruppo {group} da {owner}",
+ "Shared with you and {circle} by {owner}" : "Condiviso con te e {circle} da {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Condiviso con te e con la conversazione {conversation} da {owner}",
+ "Shared with you in a conversation by {owner}" : "Condiviso con te in una conversazione da {owner}",
+ "Share not found" : "Condivisione non trovata",
+ "Back to %s" : "Torna a %s",
+ "Add to your Nextcloud" : "Aggiungi al tuo Nextcloud",
+ "Waiting…" : "Attendere...",
+ "error" : "errore",
+ "finished" : "terminato",
+ "This will stop your current uploads." : "Questo fermerà i tuoi caricamenti attuali.",
+ "Move or copy" : "Sposta o copia",
+ "You can upload into this folder" : "Puoi caricare in questa cartella",
+ "Show list view" : "Commuta la vista a lista",
+ "Show grid view" : "Commuta la vista a griglia",
+ "No compatible server found at {remote}" : "Nessun server compatibile trovato su {remote}",
+ "Invalid server URL" : "URL del server non valido",
+ "Failed to add the public link to your Nextcloud" : "Aggiunta del collegamento pubblico al tuo Nextcloud non riuscita",
+ "You are not allowed to edit link shares that you don't own" : "Non ti è consentito modificare le condivisioni di collegamenti che non ti appartengono",
+ "Download all files" : "Scarica tutti i file",
+ "Link copied to clipboard" : "Collegamento copiato negli appunti",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 indirizzo di posta già aggiunto","{count} indirizzi di posta già aggiunti","{count} indirizzi di posta già aggiunti"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 indirizzo di posta aggiunto","{count} indirizzi di posta aggiunti","{count} indirizzi di posta aggiunti"],
+ "Copy to clipboard" : "Copia negli appunti",
+ "Copy internal link to clipboard" : "Copia il collegamento interno negli appunti",
+ "Only works for people with access to this folder" : "Funziona solo per le persone con accesso a questa cartella",
+ "Only works for people with access to this file" : "Funziona solo per le persone con accesso a questo file",
+ "Copy public link of \"{title}\" to clipboard" : "Copia il collegamento pubblico di \"{title}\" negli appunti",
+ "Search globally" : "Cerca globalmente",
+ "Search for share recipients" : "Cerca i destinatari della condivisione",
+ "No recommendations. Start typing." : "Nessun consiglio. Inizia a digitare.",
+ "To upload files, you need to provide your name first." : "Per caricare file, devi prima fornire il tuo nome.",
+ "Enter your name" : "Digita il tuo nome",
+ "Submit name" : "Fornisci il nome",
+ "Share with {userName}" : "Condividi con {userName}",
+ "Show sharing options" : "Mostra le opzioni di condivisione",
"Share note" : "Condividi nota",
"Upload files to %s" : "Carica file su %s",
+ "%s shared a folder with you." : "%s ha condiviso una cartella con te.",
"Note" : "Nota",
"Select or drop files" : "Seleziona o deseleziona file",
"Uploading files" : "Caricamento file",
"Uploaded files:" : "File caricati:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Caricando i file, accetti i %1$stermini del servizio%2$s.",
- "Add to your Nextcloud" : "Aggiungi al tuo Nextcloud",
- "Files and folders others share with you will show up here" : "I file e le cartelle che altri condividono con te saranno mostrati qui",
- "Files and folders you share will show up here" : "I file e le cartelle che condividi saranno mostrati qui",
- "Files and folders you share by link will show up here" : "I file e le cartelle che condividi tramite collegamento saranno mostrati qui",
- "Shares you deleted will show up here" : "Qui saranno mostrate le condivisioni che hai eliminato",
- "Shares you have received but not confirmed will show up here" : "Le condivisioni che hai ricevuto, ma non confermato saranno mostrate qui",
- "Shares will show up here" : "Le condivisioni saranno mostrate qui",
- "Restore" : "Ripristina",
- "Something happened. Unable to restore the share." : "Qualcosa non ha funzionato. Impossibile ripristinare la condivisione.",
- "Something happened. Unable to accept the share." : "Qualcosa non ha funzionato. Impossibile accettare la condivisione.",
- "Something happened. Unable to reject the share." : "Qualcosa non ha funzionato. Impossibile rifiutare la condivisione.",
- "No expiration date set" : "Nessuna data di scadenza impostata",
- "Please specify a valid user" : "Specifica un utente valido",
- "Please specify a valid federated user ID" : "Specifica un ID di utente federato valido",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Questa applicazione consente agli utenti di condividere file all'interno di Nextcloud. Se abilitata, l'amministratore può scegliere quali gruppi possono condividere file. Gli utenti ai quali si applica possono quindi condividere file e cartelle con altri utenti e gruppi all'interno di Nextcloud. In aggiunta, se l'amministratore abilita la funzionalità dei collegamenti di condivisione, un collegamento esterno può essere utilizzato per condividere file con altri utenti all'esterno di Nextcloud. Gli amministratori possono inoltre forzare le password, le date di scadenza e abilitare la condivisione tra server tramite collegamenti di condivisione, così come la condivisione da dispositivi mobili.\nLa disattivazione della funzionalità rimuove i file e le cartelle condivisi sul server per tutti i destinatari della condivisione, e anche sui client di sincronizzazione e sulle applicazioni mobili. Altre informazioni sono disponibili nella documentazione di Nextcloud.",
- "Accept user and group shares by default" : "Accetta le condivisioni di utenti e gruppi in modo predefinito",
- "Read only" : "Sola lettura",
- "File drop (upload only)" : "Rilascia file (solo caricamento)",
- "Upload" : "Carica",
- "Bundled permissions" : "Permessi raggruppati",
- "Only works for users with access to this folder" : "Funziona solo per gli utenti con accesso a questa cartella",
- "Only works for users with access to this file" : "Funziona solo per gli utenti con accesso a questo file",
- "Circle" : "Cerchia",
- "Update" : "Aggiorna",
- "Share with " : "Condividi con",
- "No other users with access found" : "Nessun altro utente con accesso trovato",
- "No entries found in this folder" : "Nessuna voce trovata in questa cartella",
"Name" : "Nome",
- "Share time" : "Tempo di condivisione",
- "Sorry, this link does not seem to work anymore." : "Spiacenti, questo collegamento sembra non essere più attivo.",
- "Reasons might be:" : "I motivi potrebbero essere:",
- "the item was removed" : "l'elemento è stato rimosso",
- "the link expired" : "il collegamento è scaduto",
- "sharing is disabled" : "la condivisione è disabilitata",
- "For more info, please ask the person who sent this link." : "Per ulteriori informazioni, chiedi alla persona che ti ha inviato il collegamento.",
- "Share with" : "Condividi con"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utilizza questo metodo per condividere file con singoli o team all'interno della tua organizzazione. Se il destinatario ha già accesso alla condivisione ma non riesce a individuarla, puoi inviargli il link di condivisione interno per un facile accesso.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Utilizza questo metodo per condividere file con individui o organizzazioni esterne alla tua organizzazione. File e cartelle possono essere condivisi tramite link di condivisione pubblici e indirizzi e-mail. Puoi anche condividere con altri account Nextcloud ospitati su istanze diverse utilizzando il loro ID cloud federato.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Condivisioni che non fanno parte delle condivisioni interne o esterne. Possono essere condivisioni da app o altre fonti.",
+ "Share with accounts, teams, federated cloud id" : "Condividi con account, team, ID cloud federati",
+ "Share with accounts and teams" : "Condividi con account e team",
+ "Federated cloud ID" : "ID cloud federato",
+ "Email, federated cloud id" : "E-mail, ID cloud federato",
+ "Filename must not be empty." : "Il nome del file non può essere vuoto."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ja.js b/apps/files_sharing/l10n/ja.js
index ec2f4a4ae8c..43da421fc62 100644
--- a/apps/files_sharing/l10n/ja.js
+++ b/apps/files_sharing/l10n/ja.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "待機中…",
- "error" : "エラー",
- "finished" : "完了",
- "This will stop your current uploads." : "現在のアップロードが停止されます",
- "Move or copy" : "移動またはコピー",
- "Download" : "ダウンロード",
- "Delete" : "削除",
- "You can upload into this folder" : "このフォルダーにアップロードできます",
- "Terms of service" : "サービス利用規約",
- "Show list view" : "リストビューで表示",
- "Show grid view" : "グリッドビューで表示",
- "No compatible server found at {remote}" : "互換性のあるサーバーが {remote} にはありません。",
- "Invalid server URL" : "サーバーのURLが無効",
- "Failed to add the public link to your Nextcloud" : "このNextcloudに公開リンクを追加できませんでした",
"File shares" : "ファイル共有",
"Downloaded via public link" : "公開リンクからダウンロードしました",
"Downloaded by {email}" : "{email} がダウンロードしました",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "ユーザー{user}へのファイル:{file}の共有が解除されました",
"Share for file {file} expired" : "ファイル:{file}の共有が解除されました",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "メールまたは公開リンクにより共有されたファイルまたはフォルダーが<strong>ダウンロード</strong>されたとき",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "メールまたはパブリックリンクで共有されているフォルダにファイルが<strong>アップロード</strong>されたとき",
"A file or folder was shared from <strong>another server</strong>" : "ファイルまたはフォルダーが<strong>他のサーバー</strong>から共有されたとき",
- "Files" : "ファイル",
+ "Sharing" : "共有",
"A file or folder has been <strong>shared</strong>" : "ファイルまたはフォルダーが<strong>共有</strong>されたとき",
"Shared link" : "共有リンク",
"Wrong share ID, share does not exist" : "共有IDが間違っています。共有がありません",
@@ -78,34 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "ファイルかフォルダーのパスを指定してください",
"Wrong path, file/folder does not exist" : "パスが間違っています。ファイル/フォルダーがありません",
"Could not create share" : "共有を作成できませんでした",
- "Invalid permissions" : "無効な権限",
- "Invalid date, date format must be YYYY-MM-DD" : "無効な日付です。YYYY-MM-DDのフォーマットで日付を指定してください。",
"Please specify a valid account to share with" : "共有する有効なアカウントを指定してください",
"Group sharing is disabled by the administrator" : "グループ共有が管理者によって無効にされています。",
"Please specify a valid group" : "正しいグループを指定してください",
"Public link sharing is disabled by the administrator" : "URL共有が管理者によって無効されています。",
- "Public upload disabled by the administrator" : "URL共有へのアップロードが管理者によって無効されています。",
- "Public upload is only possible for publicly shared folders" : "公開共有されているフォルダーにしか公開アップロードはできません。",
+ "Please specify a valid email address" : "有効なメールアドレスを入力してください",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud Talkが有効になっていないため、Nextcloud Talkでパスワードを送信した %s を共有できませんでした",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "%1$s の共有に失敗しました。バックエンド側で %2$s タイプの共有が許可されていません。",
"Please specify a valid federated account ID" : "有効なフェデレーションアカウントIDを指定してください",
"Please specify a valid federated group ID" : "正しい連携グループIDを指定してください",
- "You cannot share to a Circle if the app is not enabled" : "アプリが無効の場合は、サークルには共有できません",
- "Please specify a valid circle" : "正しいサークルを指定してください",
+ "You cannot share to a Team if the app is not enabled" : "アプリが有効でない場合、チームに共有することはできません",
+ "Please specify a valid team" : "有効なチームを指定してください",
"Sharing %s failed because the back end does not support room shares" : "バックエンドがルーム共有をサポートしていないため、%s を共有できませんでした",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "バックエンドが ScienceMesh 共有をサポートしていないため %s の共有に失敗しました。",
"Unknown share type" : "不明な共有タイプ",
"Not a directory" : "ディレクトリではありません",
"Could not lock node" : "ノードをロックできませんでした",
- "Could not lock path" : "パスをロックできませんでした",
- "Wrong or no update parameter given" : "間違っているか、またはパラメータが更新されていません",
+ "Public upload is only possible for publicly shared folders" : "公開共有されているフォルダーにしか公開アップロードはできません。",
"Share must at least have READ or CREATE permissions" : "共有には少なくとも 読み込み または 作成の権限が必要です",
"Share must have READ permission if UPDATE or DELETE permission is set" : "更新 または 削除権限が設定されている場合、共有者は 読み込み権限を持っている必要があります。",
+ "Public upload disabled by the administrator" : "URL共有へのアップロードが管理者によって無効されています。",
+ "Could not lock path" : "パスをロックできませんでした",
+ "no sharing rights on this item" : "この項目には共有権限はありません",
+ "You are not allowed to edit incoming shares" : "受信した共有を編集は許可されていません",
+ "Wrong or no update parameter given" : "間違っているか、またはパラメータが更新されていません",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud Talkが有効になっていないため、ファイルまたはフォルダーを共有するための「NextcloudTalkによるパスワードの送信」ができませんでした。",
+ "Custom share link tokens have been disabled by the administrator" : "カスタム共有リンクのトークンが管理者によって無効化されました。",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "トークンは少なくとも1文字を含む必要があり、文字、数字、またはハイフンのみを含むことができます",
+ "Invalid date. Format must be YYYY-MM-DD" : "日付が無効です。日付形式はYYYY-MM-DDである必要があります",
+ "No sharing rights on this item" : "この項目には共有権限はありません",
+ "Invalid share attributes provided: \"%s\"" : "無効な共有属性が指定されました \"%s\"",
+ "You are not allowed to send mail notifications" : "メール通知を送信することは許可されていません",
+ "No mail notification configured for this share type" : "この共有タイプにはメール通知が設定されていません",
+ "Wrong password" : "パスワードが間違っています",
+ "Error while sending mail notification" : "メール通知送信中にエラーが発生",
+ "Failed to generate a unique token" : "一意なトークンの生成に失敗しました",
+ "This share does not exist or is no longer available" : "このシェアは存在していないか、または利用できなくなりました",
"shared by %s" : "%s が共有",
- "Download all files" : "すべてのファイルをダウンロード",
- "Direct link" : "リンク",
+ "Download" : "ダウンロード",
"Add to your %s" : "%sに追加",
+ "Direct link" : "リンク",
"Share API is disabled" : "共有APIが無効です。",
"File sharing" : "ファイル共有",
"Share will expire tomorrow" : "共有は明日期限切れになります",
@@ -114,139 +113,222 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "{user}からのグループ{group}への共有として{share}を受け取りました",
"Accept" : "承諾",
"Decline" : "拒否",
+ "Remember to upload the files to %s" : "%sにファイルをアップロードすることを忘れないでください。",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "まだ共有フォルダにファイルをアップロードしていないことをお知らせします。",
+ "Open \"%s\"" : "\"%s\" を開く",
"This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "このアプリケーションを使うと、Nextcloud 内でファイルを共有することができます。 有効にすると、管理者はファイルを共有できるグループを選択できます。 該当する人々は、Nextcloud 内の他のアカウントやグループとファイルやフォルダを共有できます。 さらに、管理者が共有リンク機能を有効にすると、外部リンクを使用してNextcloud 外の他の人々とファイルを共有することができます。 管理者は、パスワード、有効期限の日付を設定し、共有リンクを介したサーバ間の共有やモバイルデバイスからの共有を可能にすることもできます。\nこの機能をオフにすると、サーバ上のすべての共有受信者の共有ファイルとフォルダが削除され、 同期クライアントやモバイルアプリ上でも削除されます。詳細は Nextcloud ドキュメントをご覧ください。",
- "Sharing" : "共有",
- "Accept shares from other accounts and groups by default" : "他のアカウントやグループからの共有をデフォルトで受け入れる",
+ "People" : "人",
+ "Filter accounts" : "アカウントのフィルタリング",
+ "The request will expire on {date} at midnight and will be password protected." : "リクエストの有効期限は{date}の午前0時で、パスワードで保護されています。",
+ "The request will expire on {date} at midnight." : "リクエストの有効期限は{date}の午前0時です。",
+ "The request will be password protected." : "リクエストはパスワードで保護されます。",
+ "When should the request expire?" : "リクエストの有効期限はいつまでですか?",
+ "Set a submission expiration date" : "送信の有効期限を設定する",
+ "Expiration date" : "有効期限",
+ "Select a date" : "日付を選択",
+ "Your administrator has enforced a {count} days expiration policy." : "管理者が有効期限を{count}日に設定しています。",
+ "What password should be used for the request?" : "リクエストにはどのようなパスワードを使用しますか?",
+ "Set a password" : "パスワードを設定",
+ "Password" : "パスワード",
+ "Enter a valid password" : "有効なパスワードを入力",
+ "Generate a new password" : "新しいパスワードを生成",
+ "Your administrator has enforced a password protection." : "管理者はパスワードによる保護を行っています。",
+ "Automatically copying failed, please copy the share link manually" : "自動コピーに失敗しました。手動で共有リンクをコピーしてください",
+ "Link copied" : "リンクをコピーしました",
+ "Email already added" : "メールはすでに追加されています",
+ "Invalid email address" : "無効なメールアドレス",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["以下のメールアドレスは無効です: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} メールアドレスはすでに追加されています"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} メールアドレスが追加されました"],
+ "You can now share the link below to allow people to upload files to your directory." : "以下のリンクを共有することであなたのディレクトリにファイルをアップロードできるようになります。",
+ "Share link" : "URLで共有",
+ "Copy" : "コピー",
+ "Send link via email" : "メールでリンクを送信",
+ "Enter an email address or paste a list" : "メールアドレスを入力するか、リストを貼り付ける",
+ "Remove email" : "メールを削除",
+ "Select a destination" : "宛先を選択",
+ "Select" : "選択",
+ "What are you requesting?" : "何をリクエストしているのですか?",
+ "Request subject" : "件名をリクエスト",
+ "Birthday party photos, History assignment…" : "誕生日パーティーの写真、歴史の課題...",
+ "Where should these files go?" : "これらのファイルはどこに保存すればいいでしょうか?",
+ "Upload destination" : "アップロード先",
+ "Revert to default" : "初期値に戻す",
+ "The uploaded files are visible only to you unless you choose to share them." : "アップロードしたファイルは、あなたが共有することを選択しない限り、あなただけが見ることができます。",
+ "Add a note" : "メモを追加する",
+ "Note for recipient" : "受取人への注意",
+ "Add a note to help people understand what you are requesting." : "あなたが何を要求しているのかを理解してもらうために、メモを追加してください。",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "リンクや日付、その他の情報など受信者があなたの要求内容を理解するのに役立つ情報を追加することができます。",
+ "Close" : "閉じる",
+ "_Send email and close_::_Send {count} emails and close_" : ["{count}通のメールを送信して閉じる"],
+ "Please select a folder, you cannot share the root directory." : "フォルダーを選択してください。ルートディレクトリを共有することはできません。",
+ "File request created" : "ファイルリクエストが作成しました",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["ファイルリクエストの作成し{count}通のメールを送信しました"],
+ "Error creating the share: {errorMessage}" : "共有の作成中にエラーが発生しました: {errorMessage}",
+ "Error creating the share" : "共有の作成中にエラーが発生しました",
+ "Error sending emails: {errorMessage}" : "メール送信エラー: {errorMessage}",
+ "Error sending emails" : "メール送信エラー",
+ "Create a file request" : "ファイルリクエストを作成",
+ "Collect files from others even if they do not have an account." : "アカウントを持っていなくても、他の人からファイルを収集することができます。",
+ "To ensure you can receive files, verify you have enough storage available." : "ファイルを確実に受信するには、十分なストレージがあることを確認してください。",
+ "File request" : "ファイルリクエスト",
+ "Previous step" : "前のステップ",
+ "Cancel" : "キャンセル",
+ "Cancel the file request creation" : "ファイルリクエスト作成をキャンセルする",
+ "Close without sending emails" : "メールを送信せずに閉じる",
+ "Continue" : "続ける",
"Error while toggling options" : "オプションの切り替え中にエラーが発生しました",
- "Set default folder for accepted shares" : "共有を受け入れるためのデフォルトフォルダーを指定",
- "Reset" : "リセット",
- "Reset folder to system default" : "フォルダをシステムのデフォルトに戻す",
+ "Accept shares from other accounts and groups by default" : "他のアカウントやグループからの共有をデフォルトで受け入れる",
"Choose a default folder for accepted shares" : "共有を受け入れるためのデフォルトフォルダーを選択",
"Invalid path selected" : "無効なパスが選択されました",
"Unknown error" : "不明なエラー",
- "Open Sharing Details" : "共有の詳細を開く",
+ "Set default folder for accepted shares" : "共有を受け入れるためのデフォルトフォルダーを指定",
+ "Reset" : "リセット",
+ "Reset folder to system default" : "フォルダをシステムのデフォルトに戻す",
+ "Share expiration: {date}" : "共有期限: {date}",
+ "Share Expiration" : "共有期限",
"group" : "グループ",
"conversation" : "会話",
"remote" : "リモート",
"remote group" : "リモートグループ",
"guest" : "ゲスト",
+ "by {initiator}" : "{initiator}記載",
"Shared with the group {user} by {owner}" : "{owner}によってグループ{user}と共有されました",
"Shared with the conversation {user} by {owner}" : "{owner}が{user}との会話を共有しました",
"Shared with {user} by {owner}" : "{owner}が{user}と共有",
+ "Open Sharing Details" : "共有の詳細を開く",
"Added by {initiator}" : "{initiator}によって追加されました",
"Via “{folder}”" : "“{folder}” 経由",
"Unshare" : "共有を解除",
- "Internal link" : "内部リンク",
"Cannot copy, please copy the link manually" : "コピーできませんでした。手動でリンクをコピーしてください。",
- "Copy internal link to clipboard" : "内部リンクをクリップボードにコピー",
- "Only works for people with access to this folder" : "このフォルダにアクセスできる人にのみ機能します",
- "Only works for people with access to this file" : "このファイルへのアクセスできる人にのみ機能します",
- "Link copied" : "リンクをコピーしました",
- "Please enter the following required information before creating the share" : "共有を作成する前に、次の必要な情報を入力してください",
- "Password protection (enforced)" : "パスワード保護(強制)",
- "Password protection" : "パスワード保護",
- "Enter a password" : "パスワードを入力",
- "Expiration date (enforced)" : "有効期限(強制)",
- "Enter a date" : "日付を入力してください",
- "Create share" : "共有を作成",
- "Cancel" : "キャンセル",
- "Customize link" : "共有のカスタマイズ",
- "Generate QR code" : "QRコードを生成",
- "Add another link" : "別のリンクを追加",
- "Create a new share link" : "新しい共有リンクを作成する",
+ "Copy internal link" : "内部リンクをコピー",
+ "Internal link" : "内部リンク",
"{shareWith} by {initiator}" : "{initiator} により {shareWith}",
"Shared via link by {initiator}" : "{initiator}がリンクで共有",
+ "File request ({label})" : "ファイルリクエスト ({label})",
"Mail share ({label})" : "メール共有 ({label})",
"Share link ({label})" : "リンク共有 ({label})",
+ "Mail share" : "メール共有",
"Share link ({index})" : "リンク共有 ({index})",
- "Share link" : "URLで共有",
+ "Create public link" : "公開リンクを作成",
"Actions for \"{title}\"" : "\"{title}\"のアクション",
- "Copy public link of \"{title}\" to clipboard" : "\"{title}\" の公開リンクをクリップボードにコピー",
"Error, please enter proper password and/or expiration date" : "エラー、正しいパスワードおよび/または有効期限を入力してください",
"Link share created" : "リンク共有が作成されました",
"Error while creating the share" : "共有作成時にエラーが発生しました",
+ "Please enter the following required information before creating the share" : "共有を作成する前に、次の必要な情報を入力してください",
+ "Password protection (enforced)" : "パスワード保護(強制)",
+ "Password protection" : "パスワード保護",
+ "Enter a password" : "パスワードを入力",
+ "Enable link expiration (enforced)" : "リンクの期限切れを有効にする(強制)",
+ "Enable link expiration" : "リンクの期限切れを有効にする",
+ "Enter expiration date (enforced)" : "有効期限を入力してください(強制)",
+ "Enter expiration date" : "有効期限を入力してください",
+ "Create share" : "共有を作成",
+ "Customize link" : "共有のカスタマイズ",
+ "Generate QR code" : "QRコードを生成",
+ "Add another link" : "別のリンクを追加",
+ "Create a new share link" : "新しい共有リンクを作成する",
"Quick share options, the current selected is \"{selectedOption}\"" : "クイック共有オプション、現在の選択されているのは \"{selectedOption}\" です",
"View only" : "閲覧のみ",
"Can edit" : "編集可能",
- "File drop" : "ファイルを転送",
"Custom permissions" : "カスタム権限",
- "Search for share recipients" : "共有の受信者を検索",
- "No recommendations. Start typing." : "推奨事項はありません。 入力を開始します。",
"Resharing is not allowed" : "再共有は許可されていません",
"Name or email …" : "名前またはメールアドレス…",
"Name, email, or Federated Cloud ID …" : "名前、メールアドレス、またはクラウド連携ID…",
"Searching …" : "検索しています…",
"No elements found." : "要素が見つかりませんでした。",
- "Search globally" : "グローバルに検索",
+ "Search everywhere" : "あらゆる場所を検索",
"Guest" : "ゲスト",
"Group" : "グループ",
"Email" : "メール",
+ "Team" : "チーム",
"Talk conversation" : "会話",
"Deck board" : "Deckボード",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "{server} に",
+ "Enter external recipients" : "外部の受信者を入力してください",
+ "Search for internal recipients" : "内部受信者を検索",
+ "Note from" : "注釈",
+ "Note:" : "注意:",
+ "File drop" : "ファイルを転送",
+ "Upload files to {foldername}." : "{foldername}にファイルをアップロード",
+ "By uploading files, you agree to the terms of service." : "ファイルをアップロードすることで、利用規約に同意したことになります。",
+ "Successfully uploaded files" : "ファイルのアップロードに成功しました",
+ "View terms of service" : "利用規約を見る",
+ "Terms of service" : "サービス利用規約",
+ "Share with email {email}" : "{email} とメールで共有",
+ "Share with group" : "グループと共有する",
+ "Share in conversation" : "会話で共有する",
+ "Share with {user} on remote server {server}" : "リモートサーバー{server}上の{user}と共有する",
+ "Share with remote group" : "リモートグループと共有する",
+ "Share with guest" : "ゲストと共有する",
+ "Update share" : "共有設定の更新",
+ "Save share" : "共有を保存",
+ "Read" : "読み込み",
+ "Create" : "作成",
+ "Edit" : "編集",
+ "Share" : "共有",
+ "Delete" : "削除",
+ "Password field cannot be empty" : "パスワードフィールドは空にできません",
+ "Replace current password" : "現在のパスワードを置き換える",
+ "Failed to generate a new token" : "新しいトークンの生成に失敗しました",
"Allow upload and editing" : "アップロードと編集を許可",
"Allow editing" : "編集を許可",
"Upload only" : "アップロードのみ",
"Advanced settings" : "詳細設定",
"Share label" : "共有ラベル",
+ "Share link token" : "共有リンクのトークン",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "公開共有リンクのトークンを覚えやすいものに設定するか、新しいトークンを生成してください。機密情報を含む共有には、推測可能なトークンを使用することはおすすめしません。",
+ "Generating…" : "生成中…",
+ "Generate new token" : "新しいトークンの生成",
"Set password" : "パスワード設定",
- "Password" : "パスワード",
"Password expires {passwordExpirationTime}" : "パスワードの有効期限は、{passwordExpirationTime}",
"Password expired" : "パスワード期限切れ",
"Video verification" : "ビデオ通話によるパスワード通知",
+ "Expiration date (enforced)" : "有効期限(強制)",
"Set expiration date" : "有効期限を設定",
- "Expiration date" : "有効期限",
"Hide download" : "ダウンロードを隠す",
- "Allow download" : "ダウンロードを許可",
+ "Allow download and sync" : "ダウンロードと同期を許可",
"Note to recipient" : "受取人への注意",
"Enter a note for the share recipient" : "共有受信者へのメモを入力してください",
- "Read" : "読み込み",
- "Create" : "作成",
- "Edit" : "編集",
- "Share" : "共有",
+ "Show files in grid view" : "グリッドビューにファイルを表示",
"Delete share" : "共有を解除",
- "Share with {userName}" : "{userName} と共有",
- "Share with group" : "グループと共有する",
- "Share in conversation" : "会話で共有する",
- "Share with remote group" : "リモートグループと共有する",
- "Share with guest" : "ゲストと共有する",
- "Update share" : "共有設定の更新",
- "Save share" : "共有を保存",
"Others with access" : "アクセス権を持つ他のユーザー",
"No other accounts with access found" : "アクセス可能な他のアカウントは見つかりませんでした",
"Toggle list of others with access to this directory" : "このフォルダーへのアクセス権を持つ他のユーザーリストを切り替えます",
"Toggle list of others with access to this file" : "このファイルへのアクセス権を持つ他のユーザーのリストを切り替えます",
"Unable to fetch inherited shares" : "継承された共有を取得できません",
+ "Link shares" : "リンク共有",
+ "Shares" : "共有",
"Unable to load the shares list" : "共有リストを読み込めません",
"Expires {relativetime}" : "有効期限 {relativetime}",
"this share just expired." : "この共有は期限切れになりました。",
"Shared with you by {owner}" : "{owner} と共有中",
+ "Internal shares" : "内部共有",
+ "Internal shares explanation" : "内部共有の説明",
+ "External shares" : "外部共有",
+ "External shares explanation" : "外部共有の説明",
+ "Additional shares" : "追加の共有",
+ "Additional shares explanation" : "追加の共有の説明",
+ "Link to a file" : "ファイルへリンク",
"_Accept share_::_Accept shares_" : ["共有を受け入れる"],
"Open in Files" : "ファイルアプリで開く",
"_Reject share_::_Reject shares_" : ["共有の受け入れを拒否する"],
"_Restore share_::_Restore shares_" : ["共有を復元する"],
"Shared" : "共有中",
- "Shared multiple times with different people" : "異なる人と複数回共有",
"Shared by {ownerDisplayName}" : "{ownerDisplayName} が共有済み",
- "Show sharing options" : "共有オプションを表示",
- "Link to a file" : "ファイルへリンク",
- "Error creating the share: {errorMessage}" : "共有の作成中にエラーが発生しました: {errorMessage}",
- "Error creating the share" : "共有の作成中にエラーが発生しました",
- "Error updating the share: {errorMessage}" : "共有の更新中にエラーが発生しました: {errorMessage}",
- "Error updating the share" : "共有の更新中にエラー",
- "File \"{path}\" has been unshared" : "ファイルパス \"{path}\" が共有解除されました",
- "Folder \"{path}\" has been unshared" : "フォルダーパス \"{path}\" が共有解除されました",
- "Share {propertyName} saved" : "共有の {propertyName} が保存されました",
- "Shared by" : "共有者:",
- "Shared with" : "と共有",
- "Password created successfully" : "パスワードが正常に作成されました",
- "Error generating password from password policy" : "パスワード ポリシーからのパスワード生成エラー",
- "Shared with you and the group {group} by {owner}" : "あなたと {owner} のグループ {group} で共有中",
- "Shared with you and {circle} by {owner}" : "{owner} が{circle}で共有中",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner}のスレッド{conversation}であなたと共有しました",
- "Shared with you in a conversation by {owner}" : "{owner}のスレッドであなたと共有しました",
- "Shares" : "共有",
+ "Shared multiple times with different people" : "異なる人と複数回共有",
+ "Shared with others" : "他ユーザーと共有中",
+ "Create file request" : "ファイルリクエストを作成",
+ "Upload files to {foldername}" : "{foldername}にファイルをアップロード",
+ "Public file share" : "公開ファイル共有",
+ "Publicly shared file." : "公開共有ファイル。",
+ "No file" : "ファイルがありません",
+ "The file shared with you will show up here" : "あなたと共有されたファイルはここに表示されます",
+ "Public share" : "公開共有",
+ "Publicly shared files." : "公開共有ファイル。",
+ "No files" : "ファイルがありません",
+ "Files and folders shared with you will show up here" : "あなたと共有されたファイルやフォルダーはここに表示されます",
"Overview of shared files." : "共有済みファイルの概要",
"No shares" : "共有なし",
"Files and folders you shared or have been shared with you will show up here" : "共有済みまたは、共有されたファイルやフォルダはここに表示されます",
@@ -254,7 +336,6 @@ OC.L10N.register(
"List of files that are shared with you." : "あなたと共有しているファイルの一覧。",
"Nothing shared with you yet" : "あなたと共有しているファイルはありません。",
"Files and folders others shared with you will show up here" : "他の人から共有されたファイルやフォルダは、ここに表示されます。",
- "Shared with others" : "他ユーザーと共有中",
"List of files that you shared with others." : "他ユーザと共有したファイルの一覧。",
"Nothing shared yet" : "まだ何も共有されていません",
"Files and folders you shared will show up here" : "共有したファイルやフォルダは、ここに表示されます。",
@@ -262,6 +343,10 @@ OC.L10N.register(
"List of files that are shared by link." : "URL共有済みファイルの一覧。",
"No shared links" : "共有リンクはありません",
"Files and folders you shared by link will show up here" : "リンクで共有したファイルやフォルダは、ここに表示されます。",
+ "File requests" : "ファイルリクエスト",
+ "List of file requests." : "ファイル要求のリスト。",
+ "No file requests" : "ファイル要求がありません",
+ "File requests you have created will show up here" : "作成したファイルリクエストはここに表示されます",
"Deleted shares" : "削除した共有",
"List of shares you left." : "離脱した共有の一覧",
"No deleted shares" : "削除(離脱)した共有はありません",
@@ -270,49 +355,87 @@ OC.L10N.register(
"List of unapproved shares." : "未承認の共有の一覧",
"No pending shares" : "保留中の共有はありません",
"Shares you have received but not approved will show up here" : "あなたが受け取ったが承認されていない共有は、ここに表示されます",
+ "Error deleting the share: {errorMessage}" : "共有の削除中にエラーが発生しました: {errorMessage}",
+ "Error deleting the share" : "共有の削除中にエラー",
+ "Error updating the share: {errorMessage}" : "共有の更新中にエラーが発生しました: {errorMessage}",
+ "Error updating the share" : "共有の更新中にエラー",
+ "File \"{path}\" has been unshared" : "ファイルパス \"{path}\" が共有解除されました",
+ "Folder \"{path}\" has been unshared" : "フォルダーパス \"{path}\" が共有解除されました",
+ "Could not update share" : "共有を更新できませんでした",
+ "Share saved" : "共有を保存しました",
+ "Share expiry date saved" : "共有の有効期限が保存されました",
+ "Share hide-download state saved" : "ダウンロードを隠す状態の共有が保存されました",
+ "Share label saved" : "共有ラベルが保存されました",
+ "Share note for recipient saved" : "共有の受取人への注意が保存されました",
+ "Share password saved" : "共有パスワードが保存されました",
+ "Share permissions saved" : "共有権限が保存されました",
+ "To upload files to {folder}, you need to provide your name first." : "ファイルを{folder}にアップロードするには、最初に名前を入力する必要があります。",
+ "Upload files to {folder}" : "{folder}にファイルをアップロード",
+ "Please confirm your name to upload files to {folder}" : "{folder}にファイルをアップロードするには名前を確認してください",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName}はあなたとフォルダを共有しました。",
+ "Names must not be empty." : "名前は空白にできません。",
+ "Names must not start with a dot." : "ドットで始まる名前は使用できません。",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\"は名前の中で許可されていません。",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\"は予約名であり許可されていません。",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\"は使用できない名前です。",
+ "Names must not end with \"{extension}\"." : "名前の末尾に\"{extension}\"は使用できません。",
+ "Invalid name." : "無効な名前です。",
+ "Shared by" : "共有者:",
+ "Shared with" : "と共有",
+ "Password created successfully" : "パスワードが正常に作成されました",
+ "Error generating password from password policy" : "パスワード ポリシーからのパスワード生成エラー",
+ "Shared with you and the group {group} by {owner}" : "あなたと {owner} のグループ {group} で共有中",
+ "Shared with you and {circle} by {owner}" : "{owner} が{circle}で共有中",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner}のスレッド{conversation}であなたと共有しました",
+ "Shared with you in a conversation by {owner}" : "{owner}のスレッドであなたと共有しました",
+ "Share not found" : "共有が見つかりません",
+ "Back to %s" : "%s に戻る",
+ "Add to your Nextcloud" : "あなたのNextcloudに追加",
+ "Waiting…" : "待機中…",
+ "error" : "エラー",
+ "finished" : "完了",
+ "This will stop your current uploads." : "現在のアップロードが停止されます",
+ "Move or copy" : "移動またはコピー",
+ "You can upload into this folder" : "このフォルダーにアップロードできます",
+ "Show list view" : "リストビューで表示",
+ "Show grid view" : "グリッドビューで表示",
+ "No compatible server found at {remote}" : "互換性のあるサーバーが {remote} にはありません。",
+ "Invalid server URL" : "サーバーのURLが無効",
+ "Failed to add the public link to your Nextcloud" : "このNextcloudに公開リンクを追加できませんでした",
+ "You are not allowed to edit link shares that you don't own" : "あなたが所有していない共有リンクを編集することは許可されていません",
+ "Download all files" : "すべてのファイルをダウンロード",
+ "Link copied to clipboard" : "クリップボードにリンクをコピーしました",
+ "_1 email address already added_::_{count} email addresses already added_" : ["{count} メールアドレスはすでに追加されています"],
+ "_1 email address added_::_{count} email addresses added_" : ["{count} メールアドレスが追加されました"],
+ "Copy to clipboard" : "クリップボードにコピー",
+ "Copy internal link to clipboard" : "内部リンクをクリップボードにコピー",
+ "Only works for people with access to this folder" : "このフォルダにアクセスできる人にのみ機能します",
+ "Only works for people with access to this file" : "このファイルへのアクセスできる人にのみ機能します",
+ "Copy public link of \"{title}\" to clipboard" : "\"{title}\" の公開リンクをクリップボードにコピー",
+ "Search globally" : "グローバルに検索",
+ "Search for share recipients" : "共有の受信者を検索",
+ "No recommendations. Start typing." : "推奨事項はありません。 入力を開始します。",
+ "To upload files, you need to provide your name first." : "ファイルをアップロードするには、最初に名前を入力する必要があります。",
+ "Enter your name" : "あなたの名前を入力",
+ "Submit name" : "名前を送信",
+ "Share with {userName}" : "{userName} と共有",
+ "Show sharing options" : "共有オプションを表示",
"Share note" : "共有ノート",
"Upload files to %s" : "%s にファイルをアップロード",
+ "%s shared a folder with you." : "%sはあなたとフォルダーを共有しました。",
"Note" : "ノート",
"Select or drop files" : "ファイルを選択するか、ドラッグ&ドロップしてください",
"Uploading files" : "ファイルをアップロード中",
"Uploaded files:" : "アップロード済ファイル:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "ファイルをアップロードすると、%1$s のサービス条件 %2$s に同意したことになります。",
- "Add to your Nextcloud" : "あなたのNextcloudに追加",
- "Files and folders others share with you will show up here" : "他の人から共有されたファイルやフォルダーは、ここに表示されます。",
- "Files and folders you share will show up here" : "共有したファイルやフォルダーは、ここに表示されます。",
- "Files and folders you share by link will show up here" : "リンクで共有したファイルやフォルダーは、ここに表示されます。",
- "Shares you deleted will show up here" : "登録を解除(離脱)した共有がここに表示されます",
- "Shares you have received but not confirmed will show up here" : "受け取り確認をしていない共有がここに表示されます",
- "Shares will show up here" : "共有がここに表示されます",
- "Restore" : "復元",
- "Something happened. Unable to restore the share." : "何らかの原因で、 共有を復元できません。",
- "Something happened. Unable to accept the share." : "何かしらの問題があり、共有を受け入れることができません。",
- "Something happened. Unable to reject the share." : "何かしらの問題があり、共有を拒否できません。",
- "No expiration date set" : "有効期限が未設定",
- "Please specify a valid user" : "正しいユーザーを指定してください",
- "Please specify a valid federated user ID" : "正しい連携ユーザーIDを指定してください",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "このアプリケーションを使用すると、ユーザーはNextcloud内でファイルを共有できます。 有効にすると、管理者はファイルを共有できるグループを選択できます。 その後、該当するユーザーは、ファイルやフォルダーをNextcloud内の他のユーザーやグループと共有できます。 さらに、管理者が共有リンク機能を有効にすると、外部リンクを使用してNextcloud以外の他のユーザーとファイルを共有することができます。 管理者は、パスワード、有効期限の日付を設定し、共有リンクを介したサーバー間の共有やモバイルデバイスからの共有も可能にします。この機能をオフにすると、サーバー上のすべての共有受信者の共有ファイルとフォルダーが削除され、 クライアントアプリとモバイルアプリにも同期されます。 詳しくはNextcloudのドキュメントを参照してください。",
- "Accept user and group shares by default" : "デフォルトでユーザーとグループの共有を受け入れる",
- "Read only" : "読み込み専用",
- "File drop (upload only)" : "ファイルドロップ(アップロードのみ)",
- "Upload" : "アップロード",
- "Bundled permissions" : "バンドルされているパーミッション",
- "Only works for users with access to this folder" : "このフォルダーにアクセスできるユーザーにのみ機能します",
- "Only works for users with access to this file" : "このファイルへのアクセス権を持つユーザーに対してのみ機能します",
- "Circle" : "サークル",
- "Update" : "更新",
- "Share with " : "共有先",
- "No other users with access found" : "アクセス権を持つ他のユーザーは見つかりませんでした",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
"Name" : "名前",
- "Share time" : "共有した時刻",
- "Sorry, this link does not seem to work anymore." : "申し訳ありません、このリンクは利用できなくなっています。",
- "Reasons might be:" : "理由は以下の通りと考えられます:",
- "the item was removed" : "アイテムが削除されました",
- "the link expired" : "リンクの期限が切れています",
- "sharing is disabled" : "共有は無効になっています",
- "For more info, please ask the person who sent this link." : "不明な点は、こちらのリンクの提供者に確認をお願いします。",
- "Share with remote" : "リモートと共有する",
- "Share with" : "共有対象"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "組織内の個人またはチームとファイルを共有するには、この方法を使用します。受信者がすでに共有にアクセスできるが、その場所を見つけられない場合は、簡単にアクセスできるように内部共有リンクを送信できます。",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "組織外の個人や組織とファイルを共有するには、この方法を使用します。ファイルやフォルダは、パブリック共有リンクやメールアドレスで共有できます。また、連携クラウドIDを使用して、異なるインスタンスにホストされている他のNextcloudアカウントと共有することもできます。",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "内部または外部共有に含まれない共有。これはアプリや他のソースからの共有になります。",
+ "Share with accounts, teams, federated cloud id" : "アカウント、チーム、連携クラウドIDで共有",
+ "Share with accounts and teams" : "アカウントとチームで共有",
+ "Federated cloud ID" : "クラウド共有ID",
+ "Email, federated cloud id" : "電子メール、連携クラウドID",
+ "Filename must not be empty." : "ファイル名は空白にできません。"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/ja.json b/apps/files_sharing/l10n/ja.json
index cc75b20583b..56c4495cffe 100644
--- a/apps/files_sharing/l10n/ja.json
+++ b/apps/files_sharing/l10n/ja.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "待機中…",
- "error" : "エラー",
- "finished" : "完了",
- "This will stop your current uploads." : "現在のアップロードが停止されます",
- "Move or copy" : "移動またはコピー",
- "Download" : "ダウンロード",
- "Delete" : "削除",
- "You can upload into this folder" : "このフォルダーにアップロードできます",
- "Terms of service" : "サービス利用規約",
- "Show list view" : "リストビューで表示",
- "Show grid view" : "グリッドビューで表示",
- "No compatible server found at {remote}" : "互換性のあるサーバーが {remote} にはありません。",
- "Invalid server URL" : "サーバーのURLが無効",
- "Failed to add the public link to your Nextcloud" : "このNextcloudに公開リンクを追加できませんでした",
"File shares" : "ファイル共有",
"Downloaded via public link" : "公開リンクからダウンロードしました",
"Downloaded by {email}" : "{email} がダウンロードしました",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "ユーザー{user}へのファイル:{file}の共有が解除されました",
"Share for file {file} expired" : "ファイル:{file}の共有が解除されました",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "メールまたは公開リンクにより共有されたファイルまたはフォルダーが<strong>ダウンロード</strong>されたとき",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "メールまたはパブリックリンクで共有されているフォルダにファイルが<strong>アップロード</strong>されたとき",
"A file or folder was shared from <strong>another server</strong>" : "ファイルまたはフォルダーが<strong>他のサーバー</strong>から共有されたとき",
- "Files" : "ファイル",
+ "Sharing" : "共有",
"A file or folder has been <strong>shared</strong>" : "ファイルまたはフォルダーが<strong>共有</strong>されたとき",
"Shared link" : "共有リンク",
"Wrong share ID, share does not exist" : "共有IDが間違っています。共有がありません",
@@ -76,34 +63,46 @@
"Please specify a file or folder path" : "ファイルかフォルダーのパスを指定してください",
"Wrong path, file/folder does not exist" : "パスが間違っています。ファイル/フォルダーがありません",
"Could not create share" : "共有を作成できませんでした",
- "Invalid permissions" : "無効な権限",
- "Invalid date, date format must be YYYY-MM-DD" : "無効な日付です。YYYY-MM-DDのフォーマットで日付を指定してください。",
"Please specify a valid account to share with" : "共有する有効なアカウントを指定してください",
"Group sharing is disabled by the administrator" : "グループ共有が管理者によって無効にされています。",
"Please specify a valid group" : "正しいグループを指定してください",
"Public link sharing is disabled by the administrator" : "URL共有が管理者によって無効されています。",
- "Public upload disabled by the administrator" : "URL共有へのアップロードが管理者によって無効されています。",
- "Public upload is only possible for publicly shared folders" : "公開共有されているフォルダーにしか公開アップロードはできません。",
+ "Please specify a valid email address" : "有効なメールアドレスを入力してください",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud Talkが有効になっていないため、Nextcloud Talkでパスワードを送信した %s を共有できませんでした",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "%1$s の共有に失敗しました。バックエンド側で %2$s タイプの共有が許可されていません。",
"Please specify a valid federated account ID" : "有効なフェデレーションアカウントIDを指定してください",
"Please specify a valid federated group ID" : "正しい連携グループIDを指定してください",
- "You cannot share to a Circle if the app is not enabled" : "アプリが無効の場合は、サークルには共有できません",
- "Please specify a valid circle" : "正しいサークルを指定してください",
+ "You cannot share to a Team if the app is not enabled" : "アプリが有効でない場合、チームに共有することはできません",
+ "Please specify a valid team" : "有効なチームを指定してください",
"Sharing %s failed because the back end does not support room shares" : "バックエンドがルーム共有をサポートしていないため、%s を共有できませんでした",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "バックエンドが ScienceMesh 共有をサポートしていないため %s の共有に失敗しました。",
"Unknown share type" : "不明な共有タイプ",
"Not a directory" : "ディレクトリではありません",
"Could not lock node" : "ノードをロックできませんでした",
- "Could not lock path" : "パスをロックできませんでした",
- "Wrong or no update parameter given" : "間違っているか、またはパラメータが更新されていません",
+ "Public upload is only possible for publicly shared folders" : "公開共有されているフォルダーにしか公開アップロードはできません。",
"Share must at least have READ or CREATE permissions" : "共有には少なくとも 読み込み または 作成の権限が必要です",
"Share must have READ permission if UPDATE or DELETE permission is set" : "更新 または 削除権限が設定されている場合、共有者は 読み込み権限を持っている必要があります。",
+ "Public upload disabled by the administrator" : "URL共有へのアップロードが管理者によって無効されています。",
+ "Could not lock path" : "パスをロックできませんでした",
+ "no sharing rights on this item" : "この項目には共有権限はありません",
+ "You are not allowed to edit incoming shares" : "受信した共有を編集は許可されていません",
+ "Wrong or no update parameter given" : "間違っているか、またはパラメータが更新されていません",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud Talkが有効になっていないため、ファイルまたはフォルダーを共有するための「NextcloudTalkによるパスワードの送信」ができませんでした。",
+ "Custom share link tokens have been disabled by the administrator" : "カスタム共有リンクのトークンが管理者によって無効化されました。",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "トークンは少なくとも1文字を含む必要があり、文字、数字、またはハイフンのみを含むことができます",
+ "Invalid date. Format must be YYYY-MM-DD" : "日付が無効です。日付形式はYYYY-MM-DDである必要があります",
+ "No sharing rights on this item" : "この項目には共有権限はありません",
+ "Invalid share attributes provided: \"%s\"" : "無効な共有属性が指定されました \"%s\"",
+ "You are not allowed to send mail notifications" : "メール通知を送信することは許可されていません",
+ "No mail notification configured for this share type" : "この共有タイプにはメール通知が設定されていません",
+ "Wrong password" : "パスワードが間違っています",
+ "Error while sending mail notification" : "メール通知送信中にエラーが発生",
+ "Failed to generate a unique token" : "一意なトークンの生成に失敗しました",
+ "This share does not exist or is no longer available" : "このシェアは存在していないか、または利用できなくなりました",
"shared by %s" : "%s が共有",
- "Download all files" : "すべてのファイルをダウンロード",
- "Direct link" : "リンク",
+ "Download" : "ダウンロード",
"Add to your %s" : "%sに追加",
+ "Direct link" : "リンク",
"Share API is disabled" : "共有APIが無効です。",
"File sharing" : "ファイル共有",
"Share will expire tomorrow" : "共有は明日期限切れになります",
@@ -112,139 +111,222 @@
"You received {share} to group {group} as a share by {user}" : "{user}からのグループ{group}への共有として{share}を受け取りました",
"Accept" : "承諾",
"Decline" : "拒否",
+ "Remember to upload the files to %s" : "%sにファイルをアップロードすることを忘れないでください。",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "まだ共有フォルダにファイルをアップロードしていないことをお知らせします。",
+ "Open \"%s\"" : "\"%s\" を開く",
"This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "このアプリケーションを使うと、Nextcloud 内でファイルを共有することができます。 有効にすると、管理者はファイルを共有できるグループを選択できます。 該当する人々は、Nextcloud 内の他のアカウントやグループとファイルやフォルダを共有できます。 さらに、管理者が共有リンク機能を有効にすると、外部リンクを使用してNextcloud 外の他の人々とファイルを共有することができます。 管理者は、パスワード、有効期限の日付を設定し、共有リンクを介したサーバ間の共有やモバイルデバイスからの共有を可能にすることもできます。\nこの機能をオフにすると、サーバ上のすべての共有受信者の共有ファイルとフォルダが削除され、 同期クライアントやモバイルアプリ上でも削除されます。詳細は Nextcloud ドキュメントをご覧ください。",
- "Sharing" : "共有",
- "Accept shares from other accounts and groups by default" : "他のアカウントやグループからの共有をデフォルトで受け入れる",
+ "People" : "人",
+ "Filter accounts" : "アカウントのフィルタリング",
+ "The request will expire on {date} at midnight and will be password protected." : "リクエストの有効期限は{date}の午前0時で、パスワードで保護されています。",
+ "The request will expire on {date} at midnight." : "リクエストの有効期限は{date}の午前0時です。",
+ "The request will be password protected." : "リクエストはパスワードで保護されます。",
+ "When should the request expire?" : "リクエストの有効期限はいつまでですか?",
+ "Set a submission expiration date" : "送信の有効期限を設定する",
+ "Expiration date" : "有効期限",
+ "Select a date" : "日付を選択",
+ "Your administrator has enforced a {count} days expiration policy." : "管理者が有効期限を{count}日に設定しています。",
+ "What password should be used for the request?" : "リクエストにはどのようなパスワードを使用しますか?",
+ "Set a password" : "パスワードを設定",
+ "Password" : "パスワード",
+ "Enter a valid password" : "有効なパスワードを入力",
+ "Generate a new password" : "新しいパスワードを生成",
+ "Your administrator has enforced a password protection." : "管理者はパスワードによる保護を行っています。",
+ "Automatically copying failed, please copy the share link manually" : "自動コピーに失敗しました。手動で共有リンクをコピーしてください",
+ "Link copied" : "リンクをコピーしました",
+ "Email already added" : "メールはすでに追加されています",
+ "Invalid email address" : "無効なメールアドレス",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["以下のメールアドレスは無効です: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} メールアドレスはすでに追加されています"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} メールアドレスが追加されました"],
+ "You can now share the link below to allow people to upload files to your directory." : "以下のリンクを共有することであなたのディレクトリにファイルをアップロードできるようになります。",
+ "Share link" : "URLで共有",
+ "Copy" : "コピー",
+ "Send link via email" : "メールでリンクを送信",
+ "Enter an email address or paste a list" : "メールアドレスを入力するか、リストを貼り付ける",
+ "Remove email" : "メールを削除",
+ "Select a destination" : "宛先を選択",
+ "Select" : "選択",
+ "What are you requesting?" : "何をリクエストしているのですか?",
+ "Request subject" : "件名をリクエスト",
+ "Birthday party photos, History assignment…" : "誕生日パーティーの写真、歴史の課題...",
+ "Where should these files go?" : "これらのファイルはどこに保存すればいいでしょうか?",
+ "Upload destination" : "アップロード先",
+ "Revert to default" : "初期値に戻す",
+ "The uploaded files are visible only to you unless you choose to share them." : "アップロードしたファイルは、あなたが共有することを選択しない限り、あなただけが見ることができます。",
+ "Add a note" : "メモを追加する",
+ "Note for recipient" : "受取人への注意",
+ "Add a note to help people understand what you are requesting." : "あなたが何を要求しているのかを理解してもらうために、メモを追加してください。",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "リンクや日付、その他の情報など受信者があなたの要求内容を理解するのに役立つ情報を追加することができます。",
+ "Close" : "閉じる",
+ "_Send email and close_::_Send {count} emails and close_" : ["{count}通のメールを送信して閉じる"],
+ "Please select a folder, you cannot share the root directory." : "フォルダーを選択してください。ルートディレクトリを共有することはできません。",
+ "File request created" : "ファイルリクエストが作成しました",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["ファイルリクエストの作成し{count}通のメールを送信しました"],
+ "Error creating the share: {errorMessage}" : "共有の作成中にエラーが発生しました: {errorMessage}",
+ "Error creating the share" : "共有の作成中にエラーが発生しました",
+ "Error sending emails: {errorMessage}" : "メール送信エラー: {errorMessage}",
+ "Error sending emails" : "メール送信エラー",
+ "Create a file request" : "ファイルリクエストを作成",
+ "Collect files from others even if they do not have an account." : "アカウントを持っていなくても、他の人からファイルを収集することができます。",
+ "To ensure you can receive files, verify you have enough storage available." : "ファイルを確実に受信するには、十分なストレージがあることを確認してください。",
+ "File request" : "ファイルリクエスト",
+ "Previous step" : "前のステップ",
+ "Cancel" : "キャンセル",
+ "Cancel the file request creation" : "ファイルリクエスト作成をキャンセルする",
+ "Close without sending emails" : "メールを送信せずに閉じる",
+ "Continue" : "続ける",
"Error while toggling options" : "オプションの切り替え中にエラーが発生しました",
- "Set default folder for accepted shares" : "共有を受け入れるためのデフォルトフォルダーを指定",
- "Reset" : "リセット",
- "Reset folder to system default" : "フォルダをシステムのデフォルトに戻す",
+ "Accept shares from other accounts and groups by default" : "他のアカウントやグループからの共有をデフォルトで受け入れる",
"Choose a default folder for accepted shares" : "共有を受け入れるためのデフォルトフォルダーを選択",
"Invalid path selected" : "無効なパスが選択されました",
"Unknown error" : "不明なエラー",
- "Open Sharing Details" : "共有の詳細を開く",
+ "Set default folder for accepted shares" : "共有を受け入れるためのデフォルトフォルダーを指定",
+ "Reset" : "リセット",
+ "Reset folder to system default" : "フォルダをシステムのデフォルトに戻す",
+ "Share expiration: {date}" : "共有期限: {date}",
+ "Share Expiration" : "共有期限",
"group" : "グループ",
"conversation" : "会話",
"remote" : "リモート",
"remote group" : "リモートグループ",
"guest" : "ゲスト",
+ "by {initiator}" : "{initiator}記載",
"Shared with the group {user} by {owner}" : "{owner}によってグループ{user}と共有されました",
"Shared with the conversation {user} by {owner}" : "{owner}が{user}との会話を共有しました",
"Shared with {user} by {owner}" : "{owner}が{user}と共有",
+ "Open Sharing Details" : "共有の詳細を開く",
"Added by {initiator}" : "{initiator}によって追加されました",
"Via “{folder}”" : "“{folder}” 経由",
"Unshare" : "共有を解除",
- "Internal link" : "内部リンク",
"Cannot copy, please copy the link manually" : "コピーできませんでした。手動でリンクをコピーしてください。",
- "Copy internal link to clipboard" : "内部リンクをクリップボードにコピー",
- "Only works for people with access to this folder" : "このフォルダにアクセスできる人にのみ機能します",
- "Only works for people with access to this file" : "このファイルへのアクセスできる人にのみ機能します",
- "Link copied" : "リンクをコピーしました",
- "Please enter the following required information before creating the share" : "共有を作成する前に、次の必要な情報を入力してください",
- "Password protection (enforced)" : "パスワード保護(強制)",
- "Password protection" : "パスワード保護",
- "Enter a password" : "パスワードを入力",
- "Expiration date (enforced)" : "有効期限(強制)",
- "Enter a date" : "日付を入力してください",
- "Create share" : "共有を作成",
- "Cancel" : "キャンセル",
- "Customize link" : "共有のカスタマイズ",
- "Generate QR code" : "QRコードを生成",
- "Add another link" : "別のリンクを追加",
- "Create a new share link" : "新しい共有リンクを作成する",
+ "Copy internal link" : "内部リンクをコピー",
+ "Internal link" : "内部リンク",
"{shareWith} by {initiator}" : "{initiator} により {shareWith}",
"Shared via link by {initiator}" : "{initiator}がリンクで共有",
+ "File request ({label})" : "ファイルリクエスト ({label})",
"Mail share ({label})" : "メール共有 ({label})",
"Share link ({label})" : "リンク共有 ({label})",
+ "Mail share" : "メール共有",
"Share link ({index})" : "リンク共有 ({index})",
- "Share link" : "URLで共有",
+ "Create public link" : "公開リンクを作成",
"Actions for \"{title}\"" : "\"{title}\"のアクション",
- "Copy public link of \"{title}\" to clipboard" : "\"{title}\" の公開リンクをクリップボードにコピー",
"Error, please enter proper password and/or expiration date" : "エラー、正しいパスワードおよび/または有効期限を入力してください",
"Link share created" : "リンク共有が作成されました",
"Error while creating the share" : "共有作成時にエラーが発生しました",
+ "Please enter the following required information before creating the share" : "共有を作成する前に、次の必要な情報を入力してください",
+ "Password protection (enforced)" : "パスワード保護(強制)",
+ "Password protection" : "パスワード保護",
+ "Enter a password" : "パスワードを入力",
+ "Enable link expiration (enforced)" : "リンクの期限切れを有効にする(強制)",
+ "Enable link expiration" : "リンクの期限切れを有効にする",
+ "Enter expiration date (enforced)" : "有効期限を入力してください(強制)",
+ "Enter expiration date" : "有効期限を入力してください",
+ "Create share" : "共有を作成",
+ "Customize link" : "共有のカスタマイズ",
+ "Generate QR code" : "QRコードを生成",
+ "Add another link" : "別のリンクを追加",
+ "Create a new share link" : "新しい共有リンクを作成する",
"Quick share options, the current selected is \"{selectedOption}\"" : "クイック共有オプション、現在の選択されているのは \"{selectedOption}\" です",
"View only" : "閲覧のみ",
"Can edit" : "編集可能",
- "File drop" : "ファイルを転送",
"Custom permissions" : "カスタム権限",
- "Search for share recipients" : "共有の受信者を検索",
- "No recommendations. Start typing." : "推奨事項はありません。 入力を開始します。",
"Resharing is not allowed" : "再共有は許可されていません",
"Name or email …" : "名前またはメールアドレス…",
"Name, email, or Federated Cloud ID …" : "名前、メールアドレス、またはクラウド連携ID…",
"Searching …" : "検索しています…",
"No elements found." : "要素が見つかりませんでした。",
- "Search globally" : "グローバルに検索",
+ "Search everywhere" : "あらゆる場所を検索",
"Guest" : "ゲスト",
"Group" : "グループ",
"Email" : "メール",
+ "Team" : "チーム",
"Talk conversation" : "会話",
"Deck board" : "Deckボード",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "{server} に",
+ "Enter external recipients" : "外部の受信者を入力してください",
+ "Search for internal recipients" : "内部受信者を検索",
+ "Note from" : "注釈",
+ "Note:" : "注意:",
+ "File drop" : "ファイルを転送",
+ "Upload files to {foldername}." : "{foldername}にファイルをアップロード",
+ "By uploading files, you agree to the terms of service." : "ファイルをアップロードすることで、利用規約に同意したことになります。",
+ "Successfully uploaded files" : "ファイルのアップロードに成功しました",
+ "View terms of service" : "利用規約を見る",
+ "Terms of service" : "サービス利用規約",
+ "Share with email {email}" : "{email} とメールで共有",
+ "Share with group" : "グループと共有する",
+ "Share in conversation" : "会話で共有する",
+ "Share with {user} on remote server {server}" : "リモートサーバー{server}上の{user}と共有する",
+ "Share with remote group" : "リモートグループと共有する",
+ "Share with guest" : "ゲストと共有する",
+ "Update share" : "共有設定の更新",
+ "Save share" : "共有を保存",
+ "Read" : "読み込み",
+ "Create" : "作成",
+ "Edit" : "編集",
+ "Share" : "共有",
+ "Delete" : "削除",
+ "Password field cannot be empty" : "パスワードフィールドは空にできません",
+ "Replace current password" : "現在のパスワードを置き換える",
+ "Failed to generate a new token" : "新しいトークンの生成に失敗しました",
"Allow upload and editing" : "アップロードと編集を許可",
"Allow editing" : "編集を許可",
"Upload only" : "アップロードのみ",
"Advanced settings" : "詳細設定",
"Share label" : "共有ラベル",
+ "Share link token" : "共有リンクのトークン",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "公開共有リンクのトークンを覚えやすいものに設定するか、新しいトークンを生成してください。機密情報を含む共有には、推測可能なトークンを使用することはおすすめしません。",
+ "Generating…" : "生成中…",
+ "Generate new token" : "新しいトークンの生成",
"Set password" : "パスワード設定",
- "Password" : "パスワード",
"Password expires {passwordExpirationTime}" : "パスワードの有効期限は、{passwordExpirationTime}",
"Password expired" : "パスワード期限切れ",
"Video verification" : "ビデオ通話によるパスワード通知",
+ "Expiration date (enforced)" : "有効期限(強制)",
"Set expiration date" : "有効期限を設定",
- "Expiration date" : "有効期限",
"Hide download" : "ダウンロードを隠す",
- "Allow download" : "ダウンロードを許可",
+ "Allow download and sync" : "ダウンロードと同期を許可",
"Note to recipient" : "受取人への注意",
"Enter a note for the share recipient" : "共有受信者へのメモを入力してください",
- "Read" : "読み込み",
- "Create" : "作成",
- "Edit" : "編集",
- "Share" : "共有",
+ "Show files in grid view" : "グリッドビューにファイルを表示",
"Delete share" : "共有を解除",
- "Share with {userName}" : "{userName} と共有",
- "Share with group" : "グループと共有する",
- "Share in conversation" : "会話で共有する",
- "Share with remote group" : "リモートグループと共有する",
- "Share with guest" : "ゲストと共有する",
- "Update share" : "共有設定の更新",
- "Save share" : "共有を保存",
"Others with access" : "アクセス権を持つ他のユーザー",
"No other accounts with access found" : "アクセス可能な他のアカウントは見つかりませんでした",
"Toggle list of others with access to this directory" : "このフォルダーへのアクセス権を持つ他のユーザーリストを切り替えます",
"Toggle list of others with access to this file" : "このファイルへのアクセス権を持つ他のユーザーのリストを切り替えます",
"Unable to fetch inherited shares" : "継承された共有を取得できません",
+ "Link shares" : "リンク共有",
+ "Shares" : "共有",
"Unable to load the shares list" : "共有リストを読み込めません",
"Expires {relativetime}" : "有効期限 {relativetime}",
"this share just expired." : "この共有は期限切れになりました。",
"Shared with you by {owner}" : "{owner} と共有中",
+ "Internal shares" : "内部共有",
+ "Internal shares explanation" : "内部共有の説明",
+ "External shares" : "外部共有",
+ "External shares explanation" : "外部共有の説明",
+ "Additional shares" : "追加の共有",
+ "Additional shares explanation" : "追加の共有の説明",
+ "Link to a file" : "ファイルへリンク",
"_Accept share_::_Accept shares_" : ["共有を受け入れる"],
"Open in Files" : "ファイルアプリで開く",
"_Reject share_::_Reject shares_" : ["共有の受け入れを拒否する"],
"_Restore share_::_Restore shares_" : ["共有を復元する"],
"Shared" : "共有中",
- "Shared multiple times with different people" : "異なる人と複数回共有",
"Shared by {ownerDisplayName}" : "{ownerDisplayName} が共有済み",
- "Show sharing options" : "共有オプションを表示",
- "Link to a file" : "ファイルへリンク",
- "Error creating the share: {errorMessage}" : "共有の作成中にエラーが発生しました: {errorMessage}",
- "Error creating the share" : "共有の作成中にエラーが発生しました",
- "Error updating the share: {errorMessage}" : "共有の更新中にエラーが発生しました: {errorMessage}",
- "Error updating the share" : "共有の更新中にエラー",
- "File \"{path}\" has been unshared" : "ファイルパス \"{path}\" が共有解除されました",
- "Folder \"{path}\" has been unshared" : "フォルダーパス \"{path}\" が共有解除されました",
- "Share {propertyName} saved" : "共有の {propertyName} が保存されました",
- "Shared by" : "共有者:",
- "Shared with" : "と共有",
- "Password created successfully" : "パスワードが正常に作成されました",
- "Error generating password from password policy" : "パスワード ポリシーからのパスワード生成エラー",
- "Shared with you and the group {group} by {owner}" : "あなたと {owner} のグループ {group} で共有中",
- "Shared with you and {circle} by {owner}" : "{owner} が{circle}で共有中",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner}のスレッド{conversation}であなたと共有しました",
- "Shared with you in a conversation by {owner}" : "{owner}のスレッドであなたと共有しました",
- "Shares" : "共有",
+ "Shared multiple times with different people" : "異なる人と複数回共有",
+ "Shared with others" : "他ユーザーと共有中",
+ "Create file request" : "ファイルリクエストを作成",
+ "Upload files to {foldername}" : "{foldername}にファイルをアップロード",
+ "Public file share" : "公開ファイル共有",
+ "Publicly shared file." : "公開共有ファイル。",
+ "No file" : "ファイルがありません",
+ "The file shared with you will show up here" : "あなたと共有されたファイルはここに表示されます",
+ "Public share" : "公開共有",
+ "Publicly shared files." : "公開共有ファイル。",
+ "No files" : "ファイルがありません",
+ "Files and folders shared with you will show up here" : "あなたと共有されたファイルやフォルダーはここに表示されます",
"Overview of shared files." : "共有済みファイルの概要",
"No shares" : "共有なし",
"Files and folders you shared or have been shared with you will show up here" : "共有済みまたは、共有されたファイルやフォルダはここに表示されます",
@@ -252,7 +334,6 @@
"List of files that are shared with you." : "あなたと共有しているファイルの一覧。",
"Nothing shared with you yet" : "あなたと共有しているファイルはありません。",
"Files and folders others shared with you will show up here" : "他の人から共有されたファイルやフォルダは、ここに表示されます。",
- "Shared with others" : "他ユーザーと共有中",
"List of files that you shared with others." : "他ユーザと共有したファイルの一覧。",
"Nothing shared yet" : "まだ何も共有されていません",
"Files and folders you shared will show up here" : "共有したファイルやフォルダは、ここに表示されます。",
@@ -260,6 +341,10 @@
"List of files that are shared by link." : "URL共有済みファイルの一覧。",
"No shared links" : "共有リンクはありません",
"Files and folders you shared by link will show up here" : "リンクで共有したファイルやフォルダは、ここに表示されます。",
+ "File requests" : "ファイルリクエスト",
+ "List of file requests." : "ファイル要求のリスト。",
+ "No file requests" : "ファイル要求がありません",
+ "File requests you have created will show up here" : "作成したファイルリクエストはここに表示されます",
"Deleted shares" : "削除した共有",
"List of shares you left." : "離脱した共有の一覧",
"No deleted shares" : "削除(離脱)した共有はありません",
@@ -268,49 +353,87 @@
"List of unapproved shares." : "未承認の共有の一覧",
"No pending shares" : "保留中の共有はありません",
"Shares you have received but not approved will show up here" : "あなたが受け取ったが承認されていない共有は、ここに表示されます",
+ "Error deleting the share: {errorMessage}" : "共有の削除中にエラーが発生しました: {errorMessage}",
+ "Error deleting the share" : "共有の削除中にエラー",
+ "Error updating the share: {errorMessage}" : "共有の更新中にエラーが発生しました: {errorMessage}",
+ "Error updating the share" : "共有の更新中にエラー",
+ "File \"{path}\" has been unshared" : "ファイルパス \"{path}\" が共有解除されました",
+ "Folder \"{path}\" has been unshared" : "フォルダーパス \"{path}\" が共有解除されました",
+ "Could not update share" : "共有を更新できませんでした",
+ "Share saved" : "共有を保存しました",
+ "Share expiry date saved" : "共有の有効期限が保存されました",
+ "Share hide-download state saved" : "ダウンロードを隠す状態の共有が保存されました",
+ "Share label saved" : "共有ラベルが保存されました",
+ "Share note for recipient saved" : "共有の受取人への注意が保存されました",
+ "Share password saved" : "共有パスワードが保存されました",
+ "Share permissions saved" : "共有権限が保存されました",
+ "To upload files to {folder}, you need to provide your name first." : "ファイルを{folder}にアップロードするには、最初に名前を入力する必要があります。",
+ "Upload files to {folder}" : "{folder}にファイルをアップロード",
+ "Please confirm your name to upload files to {folder}" : "{folder}にファイルをアップロードするには名前を確認してください",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName}はあなたとフォルダを共有しました。",
+ "Names must not be empty." : "名前は空白にできません。",
+ "Names must not start with a dot." : "ドットで始まる名前は使用できません。",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\"は名前の中で許可されていません。",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\"は予約名であり許可されていません。",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\"は使用できない名前です。",
+ "Names must not end with \"{extension}\"." : "名前の末尾に\"{extension}\"は使用できません。",
+ "Invalid name." : "無効な名前です。",
+ "Shared by" : "共有者:",
+ "Shared with" : "と共有",
+ "Password created successfully" : "パスワードが正常に作成されました",
+ "Error generating password from password policy" : "パスワード ポリシーからのパスワード生成エラー",
+ "Shared with you and the group {group} by {owner}" : "あなたと {owner} のグループ {group} で共有中",
+ "Shared with you and {circle} by {owner}" : "{owner} が{circle}で共有中",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner}のスレッド{conversation}であなたと共有しました",
+ "Shared with you in a conversation by {owner}" : "{owner}のスレッドであなたと共有しました",
+ "Share not found" : "共有が見つかりません",
+ "Back to %s" : "%s に戻る",
+ "Add to your Nextcloud" : "あなたのNextcloudに追加",
+ "Waiting…" : "待機中…",
+ "error" : "エラー",
+ "finished" : "完了",
+ "This will stop your current uploads." : "現在のアップロードが停止されます",
+ "Move or copy" : "移動またはコピー",
+ "You can upload into this folder" : "このフォルダーにアップロードできます",
+ "Show list view" : "リストビューで表示",
+ "Show grid view" : "グリッドビューで表示",
+ "No compatible server found at {remote}" : "互換性のあるサーバーが {remote} にはありません。",
+ "Invalid server URL" : "サーバーのURLが無効",
+ "Failed to add the public link to your Nextcloud" : "このNextcloudに公開リンクを追加できませんでした",
+ "You are not allowed to edit link shares that you don't own" : "あなたが所有していない共有リンクを編集することは許可されていません",
+ "Download all files" : "すべてのファイルをダウンロード",
+ "Link copied to clipboard" : "クリップボードにリンクをコピーしました",
+ "_1 email address already added_::_{count} email addresses already added_" : ["{count} メールアドレスはすでに追加されています"],
+ "_1 email address added_::_{count} email addresses added_" : ["{count} メールアドレスが追加されました"],
+ "Copy to clipboard" : "クリップボードにコピー",
+ "Copy internal link to clipboard" : "内部リンクをクリップボードにコピー",
+ "Only works for people with access to this folder" : "このフォルダにアクセスできる人にのみ機能します",
+ "Only works for people with access to this file" : "このファイルへのアクセスできる人にのみ機能します",
+ "Copy public link of \"{title}\" to clipboard" : "\"{title}\" の公開リンクをクリップボードにコピー",
+ "Search globally" : "グローバルに検索",
+ "Search for share recipients" : "共有の受信者を検索",
+ "No recommendations. Start typing." : "推奨事項はありません。 入力を開始します。",
+ "To upload files, you need to provide your name first." : "ファイルをアップロードするには、最初に名前を入力する必要があります。",
+ "Enter your name" : "あなたの名前を入力",
+ "Submit name" : "名前を送信",
+ "Share with {userName}" : "{userName} と共有",
+ "Show sharing options" : "共有オプションを表示",
"Share note" : "共有ノート",
"Upload files to %s" : "%s にファイルをアップロード",
+ "%s shared a folder with you." : "%sはあなたとフォルダーを共有しました。",
"Note" : "ノート",
"Select or drop files" : "ファイルを選択するか、ドラッグ&ドロップしてください",
"Uploading files" : "ファイルをアップロード中",
"Uploaded files:" : "アップロード済ファイル:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "ファイルをアップロードすると、%1$s のサービス条件 %2$s に同意したことになります。",
- "Add to your Nextcloud" : "あなたのNextcloudに追加",
- "Files and folders others share with you will show up here" : "他の人から共有されたファイルやフォルダーは、ここに表示されます。",
- "Files and folders you share will show up here" : "共有したファイルやフォルダーは、ここに表示されます。",
- "Files and folders you share by link will show up here" : "リンクで共有したファイルやフォルダーは、ここに表示されます。",
- "Shares you deleted will show up here" : "登録を解除(離脱)した共有がここに表示されます",
- "Shares you have received but not confirmed will show up here" : "受け取り確認をしていない共有がここに表示されます",
- "Shares will show up here" : "共有がここに表示されます",
- "Restore" : "復元",
- "Something happened. Unable to restore the share." : "何らかの原因で、 共有を復元できません。",
- "Something happened. Unable to accept the share." : "何かしらの問題があり、共有を受け入れることができません。",
- "Something happened. Unable to reject the share." : "何かしらの問題があり、共有を拒否できません。",
- "No expiration date set" : "有効期限が未設定",
- "Please specify a valid user" : "正しいユーザーを指定してください",
- "Please specify a valid federated user ID" : "正しい連携ユーザーIDを指定してください",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "このアプリケーションを使用すると、ユーザーはNextcloud内でファイルを共有できます。 有効にすると、管理者はファイルを共有できるグループを選択できます。 その後、該当するユーザーは、ファイルやフォルダーをNextcloud内の他のユーザーやグループと共有できます。 さらに、管理者が共有リンク機能を有効にすると、外部リンクを使用してNextcloud以外の他のユーザーとファイルを共有することができます。 管理者は、パスワード、有効期限の日付を設定し、共有リンクを介したサーバー間の共有やモバイルデバイスからの共有も可能にします。この機能をオフにすると、サーバー上のすべての共有受信者の共有ファイルとフォルダーが削除され、 クライアントアプリとモバイルアプリにも同期されます。 詳しくはNextcloudのドキュメントを参照してください。",
- "Accept user and group shares by default" : "デフォルトでユーザーとグループの共有を受け入れる",
- "Read only" : "読み込み専用",
- "File drop (upload only)" : "ファイルドロップ(アップロードのみ)",
- "Upload" : "アップロード",
- "Bundled permissions" : "バンドルされているパーミッション",
- "Only works for users with access to this folder" : "このフォルダーにアクセスできるユーザーにのみ機能します",
- "Only works for users with access to this file" : "このファイルへのアクセス権を持つユーザーに対してのみ機能します",
- "Circle" : "サークル",
- "Update" : "更新",
- "Share with " : "共有先",
- "No other users with access found" : "アクセス権を持つ他のユーザーは見つかりませんでした",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
"Name" : "名前",
- "Share time" : "共有した時刻",
- "Sorry, this link does not seem to work anymore." : "申し訳ありません、このリンクは利用できなくなっています。",
- "Reasons might be:" : "理由は以下の通りと考えられます:",
- "the item was removed" : "アイテムが削除されました",
- "the link expired" : "リンクの期限が切れています",
- "sharing is disabled" : "共有は無効になっています",
- "For more info, please ask the person who sent this link." : "不明な点は、こちらのリンクの提供者に確認をお願いします。",
- "Share with remote" : "リモートと共有する",
- "Share with" : "共有対象"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "組織内の個人またはチームとファイルを共有するには、この方法を使用します。受信者がすでに共有にアクセスできるが、その場所を見つけられない場合は、簡単にアクセスできるように内部共有リンクを送信できます。",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "組織外の個人や組織とファイルを共有するには、この方法を使用します。ファイルやフォルダは、パブリック共有リンクやメールアドレスで共有できます。また、連携クラウドIDを使用して、異なるインスタンスにホストされている他のNextcloudアカウントと共有することもできます。",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "内部または外部共有に含まれない共有。これはアプリや他のソースからの共有になります。",
+ "Share with accounts, teams, federated cloud id" : "アカウント、チーム、連携クラウドIDで共有",
+ "Share with accounts and teams" : "アカウントとチームで共有",
+ "Federated cloud ID" : "クラウド共有ID",
+ "Email, federated cloud id" : "電子メール、連携クラウドID",
+ "Filename must not be empty." : "ファイル名は空白にできません。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ka.js b/apps/files_sharing/l10n/ka.js
index 4c982470cb9..6fbe4a77076 100644
--- a/apps/files_sharing/l10n/ka.js
+++ b/apps/files_sharing/l10n/ka.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Waiting…",
- "error" : "error",
- "finished" : "finished",
- "This will stop your current uploads." : "This will stop your current uploads.",
- "Move or copy" : "Move or copy",
- "Download" : "Download",
- "Delete" : "Delete",
- "You can upload into this folder" : "You can upload into this folder",
- "Terms of service" : "Terms of service",
- "Show list view" : "Show list view",
- "Show grid view" : "Show grid view",
- "No compatible server found at {remote}" : "No compatible server found at {remote}",
- "Invalid server URL" : "Invalid server URL",
- "Failed to add the public link to your Nextcloud" : "Failed to add the public link to your Nextcloud",
"File shares" : "File shares",
"Downloaded via public link" : "Downloaded via public link",
"Downloaded by {email}" : "Downloaded by {email}",
@@ -70,7 +56,7 @@ OC.L10N.register(
"Share for file {file} expired" : "Share for file {file} expired",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "A file or folder shared by mail or by public link was <strong>downloaded</strong>",
"A file or folder was shared from <strong>another server</strong>" : "A file or folder was shared from <strong>another server</strong>",
- "Files" : "ფაილები",
+ "Sharing" : "Sharing",
"A file or folder has been <strong>shared</strong>" : "A file or folder has been <strong>shared</strong>",
"Shared link" : "Shared link",
"Wrong share ID, share does not exist" : "Wrong share ID, share does not exist",
@@ -78,32 +64,29 @@ OC.L10N.register(
"Please specify a file or folder path" : "Please specify a file or folder path",
"Wrong path, file/folder does not exist" : "Wrong path, file/folder does not exist",
"Could not create share" : "Could not create share",
- "Invalid permissions" : "Invalid permissions",
- "Invalid date, date format must be YYYY-MM-DD" : "Invalid date, date format must be YYYY-MM-DD",
"Group sharing is disabled by the administrator" : "Group sharing is disabled by the administrator",
"Please specify a valid group" : "Please specify a valid group",
"Public link sharing is disabled by the administrator" : "Public link sharing is disabled by the administrator",
- "Public upload disabled by the administrator" : "Public upload disabled by the administrator",
- "Public upload is only possible for publicly shared folders" : "Public upload is only possible for publicly shared folders",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Sharing %1$s failed because the back end does not allow shares from type %2$s",
"Please specify a valid federated group ID" : "Please specify a valid federated group ID",
- "You cannot share to a Circle if the app is not enabled" : "You cannot share to a Circle if the app is not enabled",
- "Please specify a valid circle" : "Please specify a valid circle",
"Sharing %s failed because the back end does not support room shares" : "Sharing %s failed because the back end does not support room shares",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Sharing %s failed because the back end does not support ScienceMesh shares",
"Unknown share type" : "Unknown share type",
"Not a directory" : "Not a directory",
"Could not lock node" : "Could not lock node",
- "Could not lock path" : "Could not lock path",
- "Wrong or no update parameter given" : "Wrong or no update parameter given",
+ "Public upload is only possible for publicly shared folders" : "Public upload is only possible for publicly shared folders",
"Share must at least have READ or CREATE permissions" : "Share must at least have READ or CREATE permissions",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Share must have READ permission if UPDATE or DELETE permission is set",
+ "Public upload disabled by the administrator" : "Public upload disabled by the administrator",
+ "Could not lock path" : "Could not lock path",
+ "Wrong or no update parameter given" : "Wrong or no update parameter given",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled.",
+ "Wrong password" : "Wrong password",
"shared by %s" : "shared by %s",
- "Download all files" : "Download all files",
- "Direct link" : "Direct link",
+ "Download" : "Download",
"Add to your %s" : "Add to your %s",
+ "Direct link" : "Direct link",
"Share API is disabled" : "Share API is disabled",
"File sharing" : "File sharing",
"Share will expire tomorrow" : "Share will expire tomorrow",
@@ -112,15 +95,25 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "You received {share} to group {group} as a share by {user}",
"Accept" : "Accept",
"Decline" : "Decline",
- "Sharing" : "Sharing",
+ "People" : "People",
+ "Expiration date" : "Expiration date",
+ "Password" : "Password",
+ "Link copied" : "Link copied",
+ "Share link" : "Share link",
+ "Copy" : "Copy",
+ "Select" : "Select",
+ "Close" : "Close",
+ "Error creating the share: {errorMessage}" : "Error creating the share: {errorMessage}",
+ "Error creating the share" : "Error creating the share",
+ "Cancel" : "Cancel",
+ "Continue" : "Continue",
"Error while toggling options" : "Error while toggling options",
- "Set default folder for accepted shares" : "Set default folder for accepted shares",
- "Reset" : "Reset",
- "Reset folder to system default" : "Reset folder to system default",
"Choose a default folder for accepted shares" : "Choose a default folder for accepted shares",
"Invalid path selected" : "Invalid path selected",
"Unknown error" : "Unknown error",
- "Open Sharing Details" : "Open Sharing Details",
+ "Set default folder for accepted shares" : "Set default folder for accepted shares",
+ "Reset" : "Reset",
+ "Reset folder to system default" : "Reset folder to system default",
"group" : "group",
"conversation" : "conversation",
"remote" : "remote",
@@ -129,47 +122,39 @@ OC.L10N.register(
"Shared with the group {user} by {owner}" : "Shared with the group {user} by {owner}",
"Shared with the conversation {user} by {owner}" : "Shared with the conversation {user} by {owner}",
"Shared with {user} by {owner}" : "Shared with {user} by {owner}",
+ "Open Sharing Details" : "Open Sharing Details",
"Added by {initiator}" : "Added by {initiator}",
"Via “{folder}”" : "Via “{folder}”",
"Unshare" : "Unshare",
- "Internal link" : "Internal link",
"Cannot copy, please copy the link manually" : "Cannot copy, please copy the link manually",
- "Copy internal link to clipboard" : "Copy internal link to clipboard",
- "Link copied" : "Link copied",
- "Please enter the following required information before creating the share" : "Please enter the following required information before creating the share",
- "Password protection (enforced)" : "Password protection (enforced)",
- "Password protection" : "Password protection",
- "Enter a password" : "Enter a password",
- "Expiration date (enforced)" : "Expiration date (enforced)",
- "Enter a date" : "Enter a date",
- "Create share" : "Create share",
- "Cancel" : "Cancel",
- "Customize link" : "Customize link",
- "Add another link" : "Add another link",
- "Create a new share link" : "Create a new share link",
+ "Copy internal link" : "Copy internal link",
+ "Internal link" : "Internal link",
"{shareWith} by {initiator}" : "{shareWith} by {initiator}",
"Shared via link by {initiator}" : "Shared via link by {initiator}",
"Mail share ({label})" : "Mail share ({label})",
"Share link ({label})" : "Share link ({label})",
"Share link ({index})" : "Share link ({index})",
- "Share link" : "Share link",
"Actions for \"{title}\"" : "Actions for \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Copy public link of \"{title}\" to clipboard",
"Error, please enter proper password and/or expiration date" : "Error, please enter proper password and/or expiration date",
"Link share created" : "Link share created",
"Error while creating the share" : "Error while creating the share",
+ "Please enter the following required information before creating the share" : "Please enter the following required information before creating the share",
+ "Password protection (enforced)" : "Password protection (enforced)",
+ "Password protection" : "Password protection",
+ "Enter a password" : "Enter a password",
+ "Create share" : "Create share",
+ "Customize link" : "Customize link",
+ "Add another link" : "Add another link",
+ "Create a new share link" : "Create a new share link",
"View only" : "View only",
"Can edit" : "Can edit",
- "File drop" : "File drop",
"Custom permissions" : "Custom permissions",
- "Search for share recipients" : "Search for share recipients",
- "No recommendations. Start typing." : "No recommendations. Start typing.",
"Resharing is not allowed" : "Resharing is not allowed",
"Name or email …" : "Name or email …",
"Name, email, or Federated Cloud ID …" : "Name, email, or Federated Cloud ID …",
"Searching …" : "Searching …",
"No elements found." : "No elements found.",
- "Search globally" : "Search globally",
+ "Search everywhere" : "მოძებნე ყველგან",
"Guest" : "Guest",
"Group" : "Group",
"Email" : "Email",
@@ -177,66 +162,51 @@ OC.L10N.register(
"Deck board" : "Deck board",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "on {server}",
+ "File drop" : "File drop",
+ "Terms of service" : "Terms of service",
+ "Share with group" : "Share with group",
+ "Share in conversation" : "Share in conversation",
+ "Share with remote group" : "Share with remote group",
+ "Share with guest" : "Share with guest",
+ "Update share" : "Update share",
+ "Save share" : "Save share",
+ "Read" : "Read",
+ "Create" : "Create",
+ "Edit" : "Edit",
+ "Share" : "Share",
+ "Delete" : "Delete",
"Allow upload and editing" : "Allow upload and editing",
"Allow editing" : "Allow editing",
"Upload only" : "Upload only",
"Advanced settings" : "Advanced settings",
"Share label" : "Share label",
"Set password" : "Set password",
- "Password" : "Password",
"Password expires {passwordExpirationTime}" : "Password expires {passwordExpirationTime}",
"Password expired" : "Password expired",
"Video verification" : "Video verification",
+ "Expiration date (enforced)" : "Expiration date (enforced)",
"Set expiration date" : "Set expiration date",
- "Expiration date" : "Expiration date",
"Hide download" : "Hide download",
- "Allow download" : "Allow download",
"Note to recipient" : "Note to recipient",
"Enter a note for the share recipient" : "Enter a note for the share recipient",
- "Read" : "Read",
- "Create" : "Create",
- "Edit" : "Edit",
- "Share" : "Share",
"Delete share" : "Delete share",
- "Share with {userName}" : "Share with {userName}",
- "Share with group" : "Share with group",
- "Share in conversation" : "Share in conversation",
- "Share with remote group" : "Share with remote group",
- "Share with guest" : "Share with guest",
- "Update share" : "Update share",
- "Save share" : "Save share",
"Others with access" : "Others with access",
"Toggle list of others with access to this directory" : "Toggle list of others with access to this directory",
"Toggle list of others with access to this file" : "Toggle list of others with access to this file",
"Unable to fetch inherited shares" : "Unable to fetch inherited shares",
+ "Shares" : "Shares",
"Unable to load the shares list" : "Unable to load the shares list",
"Expires {relativetime}" : "Expires {relativetime}",
"this share just expired." : "this share just expired.",
"Shared with you by {owner}" : "Shared with you by {owner}",
+ "Link to a file" : "Link to a file",
"_Accept share_::_Accept shares_" : ["Accept share","Accept shares"],
"Open in Files" : "Open in Files",
"_Reject share_::_Reject shares_" : ["Reject share","Reject shares"],
"_Restore share_::_Restore shares_" : ["Restore share","Restore shares"],
"Shared" : "Shared",
"Shared by {ownerDisplayName}" : "Shared by {ownerDisplayName}",
- "Show sharing options" : "Show sharing options",
- "Link to a file" : "Link to a file",
- "Error creating the share: {errorMessage}" : "Error creating the share: {errorMessage}",
- "Error creating the share" : "Error creating the share",
- "Error updating the share: {errorMessage}" : "Error updating the share: {errorMessage}",
- "Error updating the share" : "Error updating the share",
- "File \"{path}\" has been unshared" : "File \"{path}\" has been unshared",
- "Folder \"{path}\" has been unshared" : "Folder \"{path}\" has been unshared",
- "Share {propertyName} saved" : "Share {propertyName} saved",
- "Shared by" : "Shared by",
- "Shared with" : "Shared with",
- "Password created successfully" : "Password created successfully",
- "Error generating password from password policy" : "Error generating password from password policy",
- "Shared with you and the group {group} by {owner}" : "Shared with you and the group {group} by {owner}",
- "Shared with you and {circle} by {owner}" : "Shared with you and {circle} by {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Shared with you and the conversation {conversation} by {owner}",
- "Shared with you in a conversation by {owner}" : "Shared with you in a conversation by {owner}",
- "Shares" : "Shares",
+ "Shared with others" : "Shared with others",
"Overview of shared files." : "Overview of shared files.",
"No shares" : "No shares",
"Files and folders you shared or have been shared with you will show up here" : "Files and folders you shared or have been shared with you will show up here",
@@ -244,7 +214,6 @@ OC.L10N.register(
"List of files that are shared with you." : "List of files that are shared with you.",
"Nothing shared with you yet" : "Nothing shared with you yet",
"Files and folders others shared with you will show up here" : "Files and folders others shared with you will show up here",
- "Shared with others" : "Shared with others",
"List of files that you shared with others." : "List of files that you shared with others.",
"Nothing shared yet" : "Nothing shared yet",
"Files and folders you shared will show up here" : "Files and folders you shared will show up here",
@@ -260,6 +229,42 @@ OC.L10N.register(
"List of unapproved shares." : "List of unapproved shares.",
"No pending shares" : "No pending shares",
"Shares you have received but not approved will show up here" : "Shares you have received but not approved will show up here",
+ "Error updating the share: {errorMessage}" : "Error updating the share: {errorMessage}",
+ "Error updating the share" : "Error updating the share",
+ "File \"{path}\" has been unshared" : "File \"{path}\" has been unshared",
+ "Folder \"{path}\" has been unshared" : "Folder \"{path}\" has been unshared",
+ "Shared by" : "Shared by",
+ "Shared with" : "Shared with",
+ "Password created successfully" : "Password created successfully",
+ "Error generating password from password policy" : "Error generating password from password policy",
+ "Shared with you and the group {group} by {owner}" : "Shared with you and the group {group} by {owner}",
+ "Shared with you and {circle} by {owner}" : "Shared with you and {circle} by {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Shared with you and the conversation {conversation} by {owner}",
+ "Shared with you in a conversation by {owner}" : "Shared with you in a conversation by {owner}",
+ "Share not found" : "Share not found",
+ "Back to %s" : "Back to %s",
+ "Add to your Nextcloud" : "Add to your Nextcloud",
+ "Waiting…" : "Waiting…",
+ "error" : "error",
+ "finished" : "finished",
+ "This will stop your current uploads." : "This will stop your current uploads.",
+ "Move or copy" : "Move or copy",
+ "You can upload into this folder" : "You can upload into this folder",
+ "Show list view" : "Show list view",
+ "Show grid view" : "Show grid view",
+ "No compatible server found at {remote}" : "No compatible server found at {remote}",
+ "Invalid server URL" : "Invalid server URL",
+ "Failed to add the public link to your Nextcloud" : "Failed to add the public link to your Nextcloud",
+ "Download all files" : "Download all files",
+ "Copy to clipboard" : "Copy to clipboard",
+ "Copy internal link to clipboard" : "Copy internal link to clipboard",
+ "Copy public link of \"{title}\" to clipboard" : "Copy public link of \"{title}\" to clipboard",
+ "Search globally" : "Search globally",
+ "Search for share recipients" : "Search for share recipients",
+ "No recommendations. Start typing." : "No recommendations. Start typing.",
+ "Enter your name" : "Enter your name",
+ "Share with {userName}" : "Share with {userName}",
+ "Show sharing options" : "Show sharing options",
"Share note" : "Share note",
"Upload files to %s" : "Upload files to %s",
"Note" : "Note",
@@ -267,42 +272,6 @@ OC.L10N.register(
"Uploading files" : "Uploading files",
"Uploaded files:" : "Uploaded files:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "By uploading files, you agree to the %1$sterms of service%2$s.",
- "Add to your Nextcloud" : "Add to your Nextcloud",
- "Files and folders others share with you will show up here" : "Files and folders others share with you will show up here",
- "Files and folders you share will show up here" : "Files and folders you share will show up here",
- "Files and folders you share by link will show up here" : "Files and folders you share by link will show up here",
- "Shares you deleted will show up here" : "Shares you deleted will show up here",
- "Shares you have received but not confirmed will show up here" : "Shares you have received but not confirmed will show up here",
- "Shares will show up here" : "Shares will show up here",
- "Restore" : "Restore",
- "Something happened. Unable to restore the share." : "Something happened. Unable to restore the share.",
- "Something happened. Unable to accept the share." : "Something happened. Unable to accept the share.",
- "Something happened. Unable to reject the share." : "Something happened. Unable to reject the share.",
- "No expiration date set" : "No expiration date set",
- "Please specify a valid user" : "Please specify a valid user",
- "Please specify a valid federated user ID" : "Please specify a valid federated user ID",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation.",
- "Accept user and group shares by default" : "Accept user and group shares by default",
- "Read only" : "Read only",
- "File drop (upload only)" : "File drop (upload only)",
- "Upload" : "Upload",
- "Bundled permissions" : "Bundled permissions",
- "Only works for users with access to this folder" : "Only works for users with access to this folder",
- "Only works for users with access to this file" : "Only works for users with access to this file",
- "Circle" : "Circle",
- "Update" : "Update",
- "Share with " : "Share with ",
- "No other users with access found" : "No other users with access found",
- "No entries found in this folder" : "No entries found in this folder",
- "Name" : "Name",
- "Share time" : "Share time",
- "Sorry, this link does not seem to work anymore." : "Sorry, this link does not seem to work anymore.",
- "Reasons might be:" : "Reasons might be:",
- "the item was removed" : "the item was removed",
- "the link expired" : "the link expired",
- "sharing is disabled" : "sharing is disabled",
- "For more info, please ask the person who sent this link." : "For more info, please ask the person who sent this link.",
- "Share with remote" : "Share with remote",
- "Share with" : "Share with"
+ "Name" : "სახელი"
},
"nplurals=2; plural=(n!=1);");
diff --git a/apps/files_sharing/l10n/ka.json b/apps/files_sharing/l10n/ka.json
index cee126069eb..5a58bece091 100644
--- a/apps/files_sharing/l10n/ka.json
+++ b/apps/files_sharing/l10n/ka.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Waiting…",
- "error" : "error",
- "finished" : "finished",
- "This will stop your current uploads." : "This will stop your current uploads.",
- "Move or copy" : "Move or copy",
- "Download" : "Download",
- "Delete" : "Delete",
- "You can upload into this folder" : "You can upload into this folder",
- "Terms of service" : "Terms of service",
- "Show list view" : "Show list view",
- "Show grid view" : "Show grid view",
- "No compatible server found at {remote}" : "No compatible server found at {remote}",
- "Invalid server URL" : "Invalid server URL",
- "Failed to add the public link to your Nextcloud" : "Failed to add the public link to your Nextcloud",
"File shares" : "File shares",
"Downloaded via public link" : "Downloaded via public link",
"Downloaded by {email}" : "Downloaded by {email}",
@@ -68,7 +54,7 @@
"Share for file {file} expired" : "Share for file {file} expired",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "A file or folder shared by mail or by public link was <strong>downloaded</strong>",
"A file or folder was shared from <strong>another server</strong>" : "A file or folder was shared from <strong>another server</strong>",
- "Files" : "ფაილები",
+ "Sharing" : "Sharing",
"A file or folder has been <strong>shared</strong>" : "A file or folder has been <strong>shared</strong>",
"Shared link" : "Shared link",
"Wrong share ID, share does not exist" : "Wrong share ID, share does not exist",
@@ -76,32 +62,29 @@
"Please specify a file or folder path" : "Please specify a file or folder path",
"Wrong path, file/folder does not exist" : "Wrong path, file/folder does not exist",
"Could not create share" : "Could not create share",
- "Invalid permissions" : "Invalid permissions",
- "Invalid date, date format must be YYYY-MM-DD" : "Invalid date, date format must be YYYY-MM-DD",
"Group sharing is disabled by the administrator" : "Group sharing is disabled by the administrator",
"Please specify a valid group" : "Please specify a valid group",
"Public link sharing is disabled by the administrator" : "Public link sharing is disabled by the administrator",
- "Public upload disabled by the administrator" : "Public upload disabled by the administrator",
- "Public upload is only possible for publicly shared folders" : "Public upload is only possible for publicly shared folders",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Sharing %1$s failed because the back end does not allow shares from type %2$s",
"Please specify a valid federated group ID" : "Please specify a valid federated group ID",
- "You cannot share to a Circle if the app is not enabled" : "You cannot share to a Circle if the app is not enabled",
- "Please specify a valid circle" : "Please specify a valid circle",
"Sharing %s failed because the back end does not support room shares" : "Sharing %s failed because the back end does not support room shares",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Sharing %s failed because the back end does not support ScienceMesh shares",
"Unknown share type" : "Unknown share type",
"Not a directory" : "Not a directory",
"Could not lock node" : "Could not lock node",
- "Could not lock path" : "Could not lock path",
- "Wrong or no update parameter given" : "Wrong or no update parameter given",
+ "Public upload is only possible for publicly shared folders" : "Public upload is only possible for publicly shared folders",
"Share must at least have READ or CREATE permissions" : "Share must at least have READ or CREATE permissions",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Share must have READ permission if UPDATE or DELETE permission is set",
+ "Public upload disabled by the administrator" : "Public upload disabled by the administrator",
+ "Could not lock path" : "Could not lock path",
+ "Wrong or no update parameter given" : "Wrong or no update parameter given",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled.",
+ "Wrong password" : "Wrong password",
"shared by %s" : "shared by %s",
- "Download all files" : "Download all files",
- "Direct link" : "Direct link",
+ "Download" : "Download",
"Add to your %s" : "Add to your %s",
+ "Direct link" : "Direct link",
"Share API is disabled" : "Share API is disabled",
"File sharing" : "File sharing",
"Share will expire tomorrow" : "Share will expire tomorrow",
@@ -110,15 +93,25 @@
"You received {share} to group {group} as a share by {user}" : "You received {share} to group {group} as a share by {user}",
"Accept" : "Accept",
"Decline" : "Decline",
- "Sharing" : "Sharing",
+ "People" : "People",
+ "Expiration date" : "Expiration date",
+ "Password" : "Password",
+ "Link copied" : "Link copied",
+ "Share link" : "Share link",
+ "Copy" : "Copy",
+ "Select" : "Select",
+ "Close" : "Close",
+ "Error creating the share: {errorMessage}" : "Error creating the share: {errorMessage}",
+ "Error creating the share" : "Error creating the share",
+ "Cancel" : "Cancel",
+ "Continue" : "Continue",
"Error while toggling options" : "Error while toggling options",
- "Set default folder for accepted shares" : "Set default folder for accepted shares",
- "Reset" : "Reset",
- "Reset folder to system default" : "Reset folder to system default",
"Choose a default folder for accepted shares" : "Choose a default folder for accepted shares",
"Invalid path selected" : "Invalid path selected",
"Unknown error" : "Unknown error",
- "Open Sharing Details" : "Open Sharing Details",
+ "Set default folder for accepted shares" : "Set default folder for accepted shares",
+ "Reset" : "Reset",
+ "Reset folder to system default" : "Reset folder to system default",
"group" : "group",
"conversation" : "conversation",
"remote" : "remote",
@@ -127,47 +120,39 @@
"Shared with the group {user} by {owner}" : "Shared with the group {user} by {owner}",
"Shared with the conversation {user} by {owner}" : "Shared with the conversation {user} by {owner}",
"Shared with {user} by {owner}" : "Shared with {user} by {owner}",
+ "Open Sharing Details" : "Open Sharing Details",
"Added by {initiator}" : "Added by {initiator}",
"Via “{folder}”" : "Via “{folder}”",
"Unshare" : "Unshare",
- "Internal link" : "Internal link",
"Cannot copy, please copy the link manually" : "Cannot copy, please copy the link manually",
- "Copy internal link to clipboard" : "Copy internal link to clipboard",
- "Link copied" : "Link copied",
- "Please enter the following required information before creating the share" : "Please enter the following required information before creating the share",
- "Password protection (enforced)" : "Password protection (enforced)",
- "Password protection" : "Password protection",
- "Enter a password" : "Enter a password",
- "Expiration date (enforced)" : "Expiration date (enforced)",
- "Enter a date" : "Enter a date",
- "Create share" : "Create share",
- "Cancel" : "Cancel",
- "Customize link" : "Customize link",
- "Add another link" : "Add another link",
- "Create a new share link" : "Create a new share link",
+ "Copy internal link" : "Copy internal link",
+ "Internal link" : "Internal link",
"{shareWith} by {initiator}" : "{shareWith} by {initiator}",
"Shared via link by {initiator}" : "Shared via link by {initiator}",
"Mail share ({label})" : "Mail share ({label})",
"Share link ({label})" : "Share link ({label})",
"Share link ({index})" : "Share link ({index})",
- "Share link" : "Share link",
"Actions for \"{title}\"" : "Actions for \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Copy public link of \"{title}\" to clipboard",
"Error, please enter proper password and/or expiration date" : "Error, please enter proper password and/or expiration date",
"Link share created" : "Link share created",
"Error while creating the share" : "Error while creating the share",
+ "Please enter the following required information before creating the share" : "Please enter the following required information before creating the share",
+ "Password protection (enforced)" : "Password protection (enforced)",
+ "Password protection" : "Password protection",
+ "Enter a password" : "Enter a password",
+ "Create share" : "Create share",
+ "Customize link" : "Customize link",
+ "Add another link" : "Add another link",
+ "Create a new share link" : "Create a new share link",
"View only" : "View only",
"Can edit" : "Can edit",
- "File drop" : "File drop",
"Custom permissions" : "Custom permissions",
- "Search for share recipients" : "Search for share recipients",
- "No recommendations. Start typing." : "No recommendations. Start typing.",
"Resharing is not allowed" : "Resharing is not allowed",
"Name or email …" : "Name or email …",
"Name, email, or Federated Cloud ID …" : "Name, email, or Federated Cloud ID …",
"Searching …" : "Searching …",
"No elements found." : "No elements found.",
- "Search globally" : "Search globally",
+ "Search everywhere" : "მოძებნე ყველგან",
"Guest" : "Guest",
"Group" : "Group",
"Email" : "Email",
@@ -175,66 +160,51 @@
"Deck board" : "Deck board",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "on {server}",
+ "File drop" : "File drop",
+ "Terms of service" : "Terms of service",
+ "Share with group" : "Share with group",
+ "Share in conversation" : "Share in conversation",
+ "Share with remote group" : "Share with remote group",
+ "Share with guest" : "Share with guest",
+ "Update share" : "Update share",
+ "Save share" : "Save share",
+ "Read" : "Read",
+ "Create" : "Create",
+ "Edit" : "Edit",
+ "Share" : "Share",
+ "Delete" : "Delete",
"Allow upload and editing" : "Allow upload and editing",
"Allow editing" : "Allow editing",
"Upload only" : "Upload only",
"Advanced settings" : "Advanced settings",
"Share label" : "Share label",
"Set password" : "Set password",
- "Password" : "Password",
"Password expires {passwordExpirationTime}" : "Password expires {passwordExpirationTime}",
"Password expired" : "Password expired",
"Video verification" : "Video verification",
+ "Expiration date (enforced)" : "Expiration date (enforced)",
"Set expiration date" : "Set expiration date",
- "Expiration date" : "Expiration date",
"Hide download" : "Hide download",
- "Allow download" : "Allow download",
"Note to recipient" : "Note to recipient",
"Enter a note for the share recipient" : "Enter a note for the share recipient",
- "Read" : "Read",
- "Create" : "Create",
- "Edit" : "Edit",
- "Share" : "Share",
"Delete share" : "Delete share",
- "Share with {userName}" : "Share with {userName}",
- "Share with group" : "Share with group",
- "Share in conversation" : "Share in conversation",
- "Share with remote group" : "Share with remote group",
- "Share with guest" : "Share with guest",
- "Update share" : "Update share",
- "Save share" : "Save share",
"Others with access" : "Others with access",
"Toggle list of others with access to this directory" : "Toggle list of others with access to this directory",
"Toggle list of others with access to this file" : "Toggle list of others with access to this file",
"Unable to fetch inherited shares" : "Unable to fetch inherited shares",
+ "Shares" : "Shares",
"Unable to load the shares list" : "Unable to load the shares list",
"Expires {relativetime}" : "Expires {relativetime}",
"this share just expired." : "this share just expired.",
"Shared with you by {owner}" : "Shared with you by {owner}",
+ "Link to a file" : "Link to a file",
"_Accept share_::_Accept shares_" : ["Accept share","Accept shares"],
"Open in Files" : "Open in Files",
"_Reject share_::_Reject shares_" : ["Reject share","Reject shares"],
"_Restore share_::_Restore shares_" : ["Restore share","Restore shares"],
"Shared" : "Shared",
"Shared by {ownerDisplayName}" : "Shared by {ownerDisplayName}",
- "Show sharing options" : "Show sharing options",
- "Link to a file" : "Link to a file",
- "Error creating the share: {errorMessage}" : "Error creating the share: {errorMessage}",
- "Error creating the share" : "Error creating the share",
- "Error updating the share: {errorMessage}" : "Error updating the share: {errorMessage}",
- "Error updating the share" : "Error updating the share",
- "File \"{path}\" has been unshared" : "File \"{path}\" has been unshared",
- "Folder \"{path}\" has been unshared" : "Folder \"{path}\" has been unshared",
- "Share {propertyName} saved" : "Share {propertyName} saved",
- "Shared by" : "Shared by",
- "Shared with" : "Shared with",
- "Password created successfully" : "Password created successfully",
- "Error generating password from password policy" : "Error generating password from password policy",
- "Shared with you and the group {group} by {owner}" : "Shared with you and the group {group} by {owner}",
- "Shared with you and {circle} by {owner}" : "Shared with you and {circle} by {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Shared with you and the conversation {conversation} by {owner}",
- "Shared with you in a conversation by {owner}" : "Shared with you in a conversation by {owner}",
- "Shares" : "Shares",
+ "Shared with others" : "Shared with others",
"Overview of shared files." : "Overview of shared files.",
"No shares" : "No shares",
"Files and folders you shared or have been shared with you will show up here" : "Files and folders you shared or have been shared with you will show up here",
@@ -242,7 +212,6 @@
"List of files that are shared with you." : "List of files that are shared with you.",
"Nothing shared with you yet" : "Nothing shared with you yet",
"Files and folders others shared with you will show up here" : "Files and folders others shared with you will show up here",
- "Shared with others" : "Shared with others",
"List of files that you shared with others." : "List of files that you shared with others.",
"Nothing shared yet" : "Nothing shared yet",
"Files and folders you shared will show up here" : "Files and folders you shared will show up here",
@@ -258,6 +227,42 @@
"List of unapproved shares." : "List of unapproved shares.",
"No pending shares" : "No pending shares",
"Shares you have received but not approved will show up here" : "Shares you have received but not approved will show up here",
+ "Error updating the share: {errorMessage}" : "Error updating the share: {errorMessage}",
+ "Error updating the share" : "Error updating the share",
+ "File \"{path}\" has been unshared" : "File \"{path}\" has been unshared",
+ "Folder \"{path}\" has been unshared" : "Folder \"{path}\" has been unshared",
+ "Shared by" : "Shared by",
+ "Shared with" : "Shared with",
+ "Password created successfully" : "Password created successfully",
+ "Error generating password from password policy" : "Error generating password from password policy",
+ "Shared with you and the group {group} by {owner}" : "Shared with you and the group {group} by {owner}",
+ "Shared with you and {circle} by {owner}" : "Shared with you and {circle} by {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Shared with you and the conversation {conversation} by {owner}",
+ "Shared with you in a conversation by {owner}" : "Shared with you in a conversation by {owner}",
+ "Share not found" : "Share not found",
+ "Back to %s" : "Back to %s",
+ "Add to your Nextcloud" : "Add to your Nextcloud",
+ "Waiting…" : "Waiting…",
+ "error" : "error",
+ "finished" : "finished",
+ "This will stop your current uploads." : "This will stop your current uploads.",
+ "Move or copy" : "Move or copy",
+ "You can upload into this folder" : "You can upload into this folder",
+ "Show list view" : "Show list view",
+ "Show grid view" : "Show grid view",
+ "No compatible server found at {remote}" : "No compatible server found at {remote}",
+ "Invalid server URL" : "Invalid server URL",
+ "Failed to add the public link to your Nextcloud" : "Failed to add the public link to your Nextcloud",
+ "Download all files" : "Download all files",
+ "Copy to clipboard" : "Copy to clipboard",
+ "Copy internal link to clipboard" : "Copy internal link to clipboard",
+ "Copy public link of \"{title}\" to clipboard" : "Copy public link of \"{title}\" to clipboard",
+ "Search globally" : "Search globally",
+ "Search for share recipients" : "Search for share recipients",
+ "No recommendations. Start typing." : "No recommendations. Start typing.",
+ "Enter your name" : "Enter your name",
+ "Share with {userName}" : "Share with {userName}",
+ "Show sharing options" : "Show sharing options",
"Share note" : "Share note",
"Upload files to %s" : "Upload files to %s",
"Note" : "Note",
@@ -265,42 +270,6 @@
"Uploading files" : "Uploading files",
"Uploaded files:" : "Uploaded files:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "By uploading files, you agree to the %1$sterms of service%2$s.",
- "Add to your Nextcloud" : "Add to your Nextcloud",
- "Files and folders others share with you will show up here" : "Files and folders others share with you will show up here",
- "Files and folders you share will show up here" : "Files and folders you share will show up here",
- "Files and folders you share by link will show up here" : "Files and folders you share by link will show up here",
- "Shares you deleted will show up here" : "Shares you deleted will show up here",
- "Shares you have received but not confirmed will show up here" : "Shares you have received but not confirmed will show up here",
- "Shares will show up here" : "Shares will show up here",
- "Restore" : "Restore",
- "Something happened. Unable to restore the share." : "Something happened. Unable to restore the share.",
- "Something happened. Unable to accept the share." : "Something happened. Unable to accept the share.",
- "Something happened. Unable to reject the share." : "Something happened. Unable to reject the share.",
- "No expiration date set" : "No expiration date set",
- "Please specify a valid user" : "Please specify a valid user",
- "Please specify a valid federated user ID" : "Please specify a valid federated user ID",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation.",
- "Accept user and group shares by default" : "Accept user and group shares by default",
- "Read only" : "Read only",
- "File drop (upload only)" : "File drop (upload only)",
- "Upload" : "Upload",
- "Bundled permissions" : "Bundled permissions",
- "Only works for users with access to this folder" : "Only works for users with access to this folder",
- "Only works for users with access to this file" : "Only works for users with access to this file",
- "Circle" : "Circle",
- "Update" : "Update",
- "Share with " : "Share with ",
- "No other users with access found" : "No other users with access found",
- "No entries found in this folder" : "No entries found in this folder",
- "Name" : "Name",
- "Share time" : "Share time",
- "Sorry, this link does not seem to work anymore." : "Sorry, this link does not seem to work anymore.",
- "Reasons might be:" : "Reasons might be:",
- "the item was removed" : "the item was removed",
- "the link expired" : "the link expired",
- "sharing is disabled" : "sharing is disabled",
- "For more info, please ask the person who sent this link." : "For more info, please ask the person who sent this link.",
- "Share with remote" : "Share with remote",
- "Share with" : "Share with"
+ "Name" : "სახელი"
},"pluralForm" :"nplurals=2; plural=(n!=1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ka_GE.js b/apps/files_sharing/l10n/ka_GE.js
deleted file mode 100644
index f07d567fb75..00000000000
--- a/apps/files_sharing/l10n/ka_GE.js
+++ /dev/null
@@ -1,135 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "თქვენთან გაზიარებული",
- "Nothing shared with you yet" : "თქვენთან ჯერ არაფერია გაზიარებული",
- "Files and folders others share with you will show up here" : "აქ გამოჩნდება ფაილები და დირექტორიები, რომლებსაც სხვები თქვენთან აზიარებენ",
- "Shared with others" : "სხვასთან გაზიარებული",
- "Nothing shared yet" : "ჯერ არაფერი გაზიარებულა",
- "Files and folders you share will show up here" : "აქ გამოჩნდება ფაილები და დირექტორიები რომლებსაც აზიარებთ თქვენ",
- "Shared by link" : "ბმულით გაზიარებული",
- "No shared links" : "გაზიარებული ბმულები არაა",
- "Files and folders you share by link will show up here" : "აქ გამოჩნდება ფაილები და დირექტორიები რომლებსაც ბმულით აზიარებთ თქვენ",
- "Shares" : "გაზიარებები",
- "Restore" : "აღდგენა",
- "Move or copy" : "გადაიტანეთ ან დააკოპირეთ",
- "Download" : "ჩამოტვირთვა",
- "Delete" : "წაშლა",
- "You can upload into this folder" : "შეგიძლიათ ატვირთოთ ამ დირექტორიაში",
- "No compatible server found at {remote}" : "თავსებადი სერვერი {remote}-ზე ვერ იქნა ნაპოვნი",
- "Invalid server URL" : "არასწორი სერვერის URL",
- "Failed to add the public link to your Nextcloud" : "საზოგადო ბმულის დამატება თქვენს Nextcloud-ზე ვერ მოხერხდა",
- "No expiration date set" : "გაუქმების თარიღი არაა დაყენებული",
- "Shared by" : "აზიარებს",
- "File shares" : "ფაილის გაზიარებები",
- "Downloaded via public link" : "გადმოწერილია საზოგადო ბმულით",
- "Downloaded by {email}" : "გადმოწერა {email}-მ",
- "{file} downloaded via public link" : "{file} გადმოწერილია საზოგადო ბმულით",
- "{email} downloaded {file}" : "{email}-მ გადმოწერა {file}",
- "Shared with group {group}" : "გაზიარებულია ჯგუფთან {group}",
- "Removed share for group {group}" : "გაზიარება {group} ჯგუფთან შეწყდა",
- "{actor} shared with group {group}" : "{actor} მომხმარებელმა გააზიარა ჯგუფთან {group}",
- "{actor} removed share for group {group}" : "{actor} მომხმარებელმა შეწყვიტა გაზიარება ჯგუფთან {group}",
- "You shared {file} with group {group}" : "თქვენ გააზიარეთ {file} ჯგუფთან {group}",
- "You removed group {group} from {file}" : "თქვენ მოაშორეთ ჯგუფი {group} ფაილს {file}",
- "{actor} shared {file} with group {group}" : "{actor} მომხმარებელმა გააზიარა ფაილი {file} ჯგუფთან {group}",
- "{actor} removed group {group} from {file}" : "{actor} მომხმარებელმა მოაშორა ჯგუფი {group} ფაილს {file}",
- "Shared as public link" : "გააზიარა როგორც საზოგადო ბმული",
- "Removed public link" : "გააუქმა საზოგადო ბმული",
- "Public link expired" : "საზოგადო ბმულს გაუვიდა ვადა",
- "{actor} shared as public link" : "{actor} მომხმარებელმა გააზიარა საზოგადო ბმულად",
- "{actor} removed public link" : "{actor} მომხმარებელმა გააუქმა საზოგადო ბმული",
- "Public link of {actor} expired" : "{actor} მომხმარებლის საზოგადო ბმულს გაუვიდა ვადა",
- "You shared {file} as public link" : "თქვენ საზოგადო ბმულის სახით გააზიარეთ {file}",
- "You removed public link for {file}" : "თქვენ გააუქმეთ საზოგადო ბმული ფაილისთვის {file}",
- "Public link expired for {file}" : "საზოგადო ბმულს ფაილისთვის {file} გაუვიდა ვადა",
- "{actor} shared {file} as public link" : "{actor} მომხმარებელმა საზოგადო ბმულის სახით გააზიარა {file}",
- "{actor} removed public link for {file}" : "{actor} მომხმარებელმა გააუქმა საზოგადო ბმული ფაილისთვის {file}",
- "Public link of {actor} for {file} expired" : "{actor} მომხმარებლის საზოგადო ბმულს ფაილზე {file} გაუვიდა ვადა",
- "{user} accepted the remote share" : "{user} მომხმარებელმა მიიღო დისტანციური გაზიარება",
- "{user} declined the remote share" : "{user} მომხმარებელმა უარყო დისტანციური გაზიარება",
- "You received a new remote share {file} from {user}" : "თქვენ მიიღეთ ახალი დისტანციური გაზიარება {file} მომხმარებლისგან {user}",
- "{user} accepted the remote share of {file}" : "{user} მომხმარებელმა მიიღო დისტანციური გაზიარება ფაილზე {file}",
- "{user} declined the remote share of {file}" : "{user} მომხმარებელმა უარყო დისტანციური გაზიარება ფალზე {file}",
- "{user} unshared {file} from you" : "{user} მომხმარებელმა შეწყვიტა ფაილის {file} გაზიარება თქვენთან",
- "Shared with {user}" : "გაზიარებული მომხმარებელთან {user}",
- "Removed share for {user}" : "შეწყდა გაზიარება მომხმარებელთან {user}",
- "{actor} shared with {user}" : "{actor} მომხმარებელმა გააზიარა მომხმარებელთან {user}",
- "{actor} removed share for {user}" : "{actor} მომხმარებელმა შეწყვიტა გაზიარება მომხმარებელთან {user}",
- "Shared by {actor}" : "გააზიარა მომხმარებელმა {actor}",
- "{actor} removed share" : "{actor} მომხმარებელმა შეწყვიტა გაზიარება",
- "You shared {file} with {user}" : "თქვენ გააზიარეთ ფაილი {file} მომხმარებელთან {user}",
- "You removed {user} from {file}" : "თქვენ ჩამოაშორეთ მომხმარებელი {user} ფაილს {file}",
- "{actor} shared {file} with {user}" : "{actor} მომხმარებელმა გააზიარა ფაილი {file} მომხმარებელთან {user}",
- "{actor} removed {user} from {file}" : "{actor} მომხმარებელმა ჩამოაშორა მომხმარებელი {user} ფაილს {file}",
- "{actor} shared {file} with you" : "{actor} მომხმარებელმა თქვენთან გააზიარა {file}",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "ელ-ფოსტით ან საზოგადო ბმულით გაზიარბული ფაილი ან დირექტორია <strong>გადმოწერილ იქნა</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "ფაილი ან დირექტორია გაზიარდა <strong>სხვა სერვერიდან</strong>",
- "Files" : "ფაილები",
- "A file or folder has been <strong>shared</strong>" : "ფაილი ან დირექტორია <strong>გაზიარებულ იქნა</strong>",
- "Could not delete share" : "გაზიარების გაუქმება ვერ მოხერხდა",
- "Please specify a file or folder path" : "გთხოვთ მიუთითოთ ფაილის ან დირექტორიის მისამართი",
- "Could not create share" : "გაზიარება ვერ შეიქმნა",
- "Please specify a valid user" : "გთხოვთ მიუთითოთ სწორი მომხმარებელი",
- "Group sharing is disabled by the administrator" : "ჯგუფური გაზიარება ადმინისტრატორის მიერ არაა ამოქმედებული",
- "Please specify a valid group" : "გთხოვთ მიუთითოთ სწორი ჯგუფი",
- "Public link sharing is disabled by the administrator" : "საზოგადო ბმულად გაზიარება ადმინისტრატორის მიერ არაა ამოქმდებეული",
- "Public upload disabled by the administrator" : "საზოგადო ატვირთვა ადმინისტრატორის მიერ არაა ამოქმედებული",
- "Public upload is only possible for publicly shared folders" : "საზოგადო ატვირთვა შესაძლებელია მხოლოდ საზოგადოდ გაზიარებულ დირექტორიებზე",
- "Invalid date, date format must be YYYY-MM-DD" : "არასწორი თარიღი, თარიღის ფორმატი უნდა იყოს წწწწ-თთ-დდ",
- "You cannot share to a Circle if the app is not enabled" : "წრეს ვერ გაუზიარებთ თუ აპლიკაცია არაა მოქმედი",
- "Please specify a valid circle" : "გთხოვთ მიუთითოთ სწორი წრე",
- "Unknown share type" : "ამოუცნობი გაზიარების სახეობა",
- "Not a directory" : "არაა დირექტორია",
- "Could not lock path" : "მისამართი ვერ ჩაიკეტა",
- "Wrong or no update parameter given" : "არასწორი ან განახლების პარამეტრის არარსებობა",
- "shared by %s" : "გააზიარა მომხმარებელმა %s",
- "Direct link" : "პირდაპირი ბმული",
- "Share API is disabled" : "გაზიარების API არაა მოქმედი",
- "File sharing" : "ფაილების გაზიარება",
- "Accept" : "მიღება",
- "Sharing" : "გაზიარება",
- "Reset" : "საწყის მდოგმარეობაში დაბრუნება",
- "Unknown error" : "უცნობი შეცდომა",
- "Allow editing" : "შეცვლის ნების დართვა",
- "Read only" : "მხოლოდ-კითხვადი",
- "Allow upload and editing" : "ატვირთვისა და ცვლილების უფლებების მინიჭება",
- "File drop (upload only)" : "ფაილის ჩაგდება (მხოლოდ ატვირთვა)",
- "Read" : "წაკითხვა",
- "Upload" : "ატვირთვა",
- "Edit" : "შეცვლა",
- "Allow resharing" : "ხელახალი გაზიარების დაშვება",
- "Set expiration date" : "მიუთითეთ ვადის გასვლის დრო",
- "Unshare" : "გაზიარების შეწყვეტა",
- "group" : "ჯგუფი",
- "remote" : "დისტანციური",
- "Copy to clipboard" : "კოპირება ბუფერში",
- "Password protection" : "პაროლით თავდაცვა",
- "Enter a password" : "შეიყვანეთ პაროლი",
- "Cancel" : "უარყოფა",
- "Password protect" : "პაროლით დაცვა",
- "Share link" : "ბმულის გაზიარება",
- "Resharing is not allowed" : "ხელახალი გაზიარება არაა დაშვებული",
- "Shared with you by {owner}" : "გაზიარდა თქვენთვის {owner} მომხმარებლის მიერ",
- "Shared" : "გაზიარებული",
- "Share" : "გაზიარება",
- "Shared with" : "გაზიარებულია",
- "Shared with you and the group {group} by {owner}" : "გაზიარდა თქვენთვის და ჯგუფისთვის {group}, {owner} მომხმარებლის მიერ",
- "No entries found in this folder" : "ამ დირექტორიაში შენატანები ვერ მოიძებნა",
- "Name" : "სახელი",
- "Share time" : "გაზიარების დრო",
- "Expiration date" : "გაუქმების თარიღი",
- "Reasons might be:" : "შესაძლო მიზეზებია:",
- "the item was removed" : "ობიექტი გაუქმდა",
- "the link expired" : "ბმულს ვადა გაუვიდა",
- "sharing is disabled" : "გაზიარება არაა მოქმედი",
- "For more info, please ask the person who sent this link." : "მეტი ინფრმაციისთვის, გთხოვთ ჰკითხოთ ადამიანს ვინც გამოგიგზავნათ ეს ბმული.",
- "Upload files to %s" : "ფაილების ატვირთვა %s-ში",
- "Select or drop files" : "აირჩიეთ ან გადმოიტანეთ ფაილები",
- "Uploaded files:" : "ფაილების ატვირთვა:",
- "Add to your Nextcloud" : "თქვენს Nextcloud-ში დამატება",
- "Wrong share ID, share doesn't exist" : "არასწორი გაზიარების ID, გაზიარება არ არსებობს",
- "Wrong path, file/folder doesn't exist" : "არასწორი მისამართი, ფაილი/დირქტორია არ არსებობს",
- "Sorry, this link doesn’t seem to work anymore." : "ბოდიში, ეს ბმული აღარ მოქმედებს."
-},
-"nplurals=2; plural=(n!=1);");
diff --git a/apps/files_sharing/l10n/ka_GE.json b/apps/files_sharing/l10n/ka_GE.json
deleted file mode 100644
index 66f5aa88375..00000000000
--- a/apps/files_sharing/l10n/ka_GE.json
+++ /dev/null
@@ -1,133 +0,0 @@
-{ "translations": {
- "Shared with you" : "თქვენთან გაზიარებული",
- "Nothing shared with you yet" : "თქვენთან ჯერ არაფერია გაზიარებული",
- "Files and folders others share with you will show up here" : "აქ გამოჩნდება ფაილები და დირექტორიები, რომლებსაც სხვები თქვენთან აზიარებენ",
- "Shared with others" : "სხვასთან გაზიარებული",
- "Nothing shared yet" : "ჯერ არაფერი გაზიარებულა",
- "Files and folders you share will show up here" : "აქ გამოჩნდება ფაილები და დირექტორიები რომლებსაც აზიარებთ თქვენ",
- "Shared by link" : "ბმულით გაზიარებული",
- "No shared links" : "გაზიარებული ბმულები არაა",
- "Files and folders you share by link will show up here" : "აქ გამოჩნდება ფაილები და დირექტორიები რომლებსაც ბმულით აზიარებთ თქვენ",
- "Shares" : "გაზიარებები",
- "Restore" : "აღდგენა",
- "Move or copy" : "გადაიტანეთ ან დააკოპირეთ",
- "Download" : "ჩამოტვირთვა",
- "Delete" : "წაშლა",
- "You can upload into this folder" : "შეგიძლიათ ატვირთოთ ამ დირექტორიაში",
- "No compatible server found at {remote}" : "თავსებადი სერვერი {remote}-ზე ვერ იქნა ნაპოვნი",
- "Invalid server URL" : "არასწორი სერვერის URL",
- "Failed to add the public link to your Nextcloud" : "საზოგადო ბმულის დამატება თქვენს Nextcloud-ზე ვერ მოხერხდა",
- "No expiration date set" : "გაუქმების თარიღი არაა დაყენებული",
- "Shared by" : "აზიარებს",
- "File shares" : "ფაილის გაზიარებები",
- "Downloaded via public link" : "გადმოწერილია საზოგადო ბმულით",
- "Downloaded by {email}" : "გადმოწერა {email}-მ",
- "{file} downloaded via public link" : "{file} გადმოწერილია საზოგადო ბმულით",
- "{email} downloaded {file}" : "{email}-მ გადმოწერა {file}",
- "Shared with group {group}" : "გაზიარებულია ჯგუფთან {group}",
- "Removed share for group {group}" : "გაზიარება {group} ჯგუფთან შეწყდა",
- "{actor} shared with group {group}" : "{actor} მომხმარებელმა გააზიარა ჯგუფთან {group}",
- "{actor} removed share for group {group}" : "{actor} მომხმარებელმა შეწყვიტა გაზიარება ჯგუფთან {group}",
- "You shared {file} with group {group}" : "თქვენ გააზიარეთ {file} ჯგუფთან {group}",
- "You removed group {group} from {file}" : "თქვენ მოაშორეთ ჯგუფი {group} ფაილს {file}",
- "{actor} shared {file} with group {group}" : "{actor} მომხმარებელმა გააზიარა ფაილი {file} ჯგუფთან {group}",
- "{actor} removed group {group} from {file}" : "{actor} მომხმარებელმა მოაშორა ჯგუფი {group} ფაილს {file}",
- "Shared as public link" : "გააზიარა როგორც საზოგადო ბმული",
- "Removed public link" : "გააუქმა საზოგადო ბმული",
- "Public link expired" : "საზოგადო ბმულს გაუვიდა ვადა",
- "{actor} shared as public link" : "{actor} მომხმარებელმა გააზიარა საზოგადო ბმულად",
- "{actor} removed public link" : "{actor} მომხმარებელმა გააუქმა საზოგადო ბმული",
- "Public link of {actor} expired" : "{actor} მომხმარებლის საზოგადო ბმულს გაუვიდა ვადა",
- "You shared {file} as public link" : "თქვენ საზოგადო ბმულის სახით გააზიარეთ {file}",
- "You removed public link for {file}" : "თქვენ გააუქმეთ საზოგადო ბმული ფაილისთვის {file}",
- "Public link expired for {file}" : "საზოგადო ბმულს ფაილისთვის {file} გაუვიდა ვადა",
- "{actor} shared {file} as public link" : "{actor} მომხმარებელმა საზოგადო ბმულის სახით გააზიარა {file}",
- "{actor} removed public link for {file}" : "{actor} მომხმარებელმა გააუქმა საზოგადო ბმული ფაილისთვის {file}",
- "Public link of {actor} for {file} expired" : "{actor} მომხმარებლის საზოგადო ბმულს ფაილზე {file} გაუვიდა ვადა",
- "{user} accepted the remote share" : "{user} მომხმარებელმა მიიღო დისტანციური გაზიარება",
- "{user} declined the remote share" : "{user} მომხმარებელმა უარყო დისტანციური გაზიარება",
- "You received a new remote share {file} from {user}" : "თქვენ მიიღეთ ახალი დისტანციური გაზიარება {file} მომხმარებლისგან {user}",
- "{user} accepted the remote share of {file}" : "{user} მომხმარებელმა მიიღო დისტანციური გაზიარება ფაილზე {file}",
- "{user} declined the remote share of {file}" : "{user} მომხმარებელმა უარყო დისტანციური გაზიარება ფალზე {file}",
- "{user} unshared {file} from you" : "{user} მომხმარებელმა შეწყვიტა ფაილის {file} გაზიარება თქვენთან",
- "Shared with {user}" : "გაზიარებული მომხმარებელთან {user}",
- "Removed share for {user}" : "შეწყდა გაზიარება მომხმარებელთან {user}",
- "{actor} shared with {user}" : "{actor} მომხმარებელმა გააზიარა მომხმარებელთან {user}",
- "{actor} removed share for {user}" : "{actor} მომხმარებელმა შეწყვიტა გაზიარება მომხმარებელთან {user}",
- "Shared by {actor}" : "გააზიარა მომხმარებელმა {actor}",
- "{actor} removed share" : "{actor} მომხმარებელმა შეწყვიტა გაზიარება",
- "You shared {file} with {user}" : "თქვენ გააზიარეთ ფაილი {file} მომხმარებელთან {user}",
- "You removed {user} from {file}" : "თქვენ ჩამოაშორეთ მომხმარებელი {user} ფაილს {file}",
- "{actor} shared {file} with {user}" : "{actor} მომხმარებელმა გააზიარა ფაილი {file} მომხმარებელთან {user}",
- "{actor} removed {user} from {file}" : "{actor} მომხმარებელმა ჩამოაშორა მომხმარებელი {user} ფაილს {file}",
- "{actor} shared {file} with you" : "{actor} მომხმარებელმა თქვენთან გააზიარა {file}",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "ელ-ფოსტით ან საზოგადო ბმულით გაზიარბული ფაილი ან დირექტორია <strong>გადმოწერილ იქნა</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "ფაილი ან დირექტორია გაზიარდა <strong>სხვა სერვერიდან</strong>",
- "Files" : "ფაილები",
- "A file or folder has been <strong>shared</strong>" : "ფაილი ან დირექტორია <strong>გაზიარებულ იქნა</strong>",
- "Could not delete share" : "გაზიარების გაუქმება ვერ მოხერხდა",
- "Please specify a file or folder path" : "გთხოვთ მიუთითოთ ფაილის ან დირექტორიის მისამართი",
- "Could not create share" : "გაზიარება ვერ შეიქმნა",
- "Please specify a valid user" : "გთხოვთ მიუთითოთ სწორი მომხმარებელი",
- "Group sharing is disabled by the administrator" : "ჯგუფური გაზიარება ადმინისტრატორის მიერ არაა ამოქმედებული",
- "Please specify a valid group" : "გთხოვთ მიუთითოთ სწორი ჯგუფი",
- "Public link sharing is disabled by the administrator" : "საზოგადო ბმულად გაზიარება ადმინისტრატორის მიერ არაა ამოქმდებეული",
- "Public upload disabled by the administrator" : "საზოგადო ატვირთვა ადმინისტრატორის მიერ არაა ამოქმედებული",
- "Public upload is only possible for publicly shared folders" : "საზოგადო ატვირთვა შესაძლებელია მხოლოდ საზოგადოდ გაზიარებულ დირექტორიებზე",
- "Invalid date, date format must be YYYY-MM-DD" : "არასწორი თარიღი, თარიღის ფორმატი უნდა იყოს წწწწ-თთ-დდ",
- "You cannot share to a Circle if the app is not enabled" : "წრეს ვერ გაუზიარებთ თუ აპლიკაცია არაა მოქმედი",
- "Please specify a valid circle" : "გთხოვთ მიუთითოთ სწორი წრე",
- "Unknown share type" : "ამოუცნობი გაზიარების სახეობა",
- "Not a directory" : "არაა დირექტორია",
- "Could not lock path" : "მისამართი ვერ ჩაიკეტა",
- "Wrong or no update parameter given" : "არასწორი ან განახლების პარამეტრის არარსებობა",
- "shared by %s" : "გააზიარა მომხმარებელმა %s",
- "Direct link" : "პირდაპირი ბმული",
- "Share API is disabled" : "გაზიარების API არაა მოქმედი",
- "File sharing" : "ფაილების გაზიარება",
- "Accept" : "მიღება",
- "Sharing" : "გაზიარება",
- "Reset" : "საწყის მდოგმარეობაში დაბრუნება",
- "Unknown error" : "უცნობი შეცდომა",
- "Allow editing" : "შეცვლის ნების დართვა",
- "Read only" : "მხოლოდ-კითხვადი",
- "Allow upload and editing" : "ატვირთვისა და ცვლილების უფლებების მინიჭება",
- "File drop (upload only)" : "ფაილის ჩაგდება (მხოლოდ ატვირთვა)",
- "Read" : "წაკითხვა",
- "Upload" : "ატვირთვა",
- "Edit" : "შეცვლა",
- "Allow resharing" : "ხელახალი გაზიარების დაშვება",
- "Set expiration date" : "მიუთითეთ ვადის გასვლის დრო",
- "Unshare" : "გაზიარების შეწყვეტა",
- "group" : "ჯგუფი",
- "remote" : "დისტანციური",
- "Copy to clipboard" : "კოპირება ბუფერში",
- "Password protection" : "პაროლით თავდაცვა",
- "Enter a password" : "შეიყვანეთ პაროლი",
- "Cancel" : "უარყოფა",
- "Password protect" : "პაროლით დაცვა",
- "Share link" : "ბმულის გაზიარება",
- "Resharing is not allowed" : "ხელახალი გაზიარება არაა დაშვებული",
- "Shared with you by {owner}" : "გაზიარდა თქვენთვის {owner} მომხმარებლის მიერ",
- "Shared" : "გაზიარებული",
- "Share" : "გაზიარება",
- "Shared with" : "გაზიარებულია",
- "Shared with you and the group {group} by {owner}" : "გაზიარდა თქვენთვის და ჯგუფისთვის {group}, {owner} მომხმარებლის მიერ",
- "No entries found in this folder" : "ამ დირექტორიაში შენატანები ვერ მოიძებნა",
- "Name" : "სახელი",
- "Share time" : "გაზიარების დრო",
- "Expiration date" : "გაუქმების თარიღი",
- "Reasons might be:" : "შესაძლო მიზეზებია:",
- "the item was removed" : "ობიექტი გაუქმდა",
- "the link expired" : "ბმულს ვადა გაუვიდა",
- "sharing is disabled" : "გაზიარება არაა მოქმედი",
- "For more info, please ask the person who sent this link." : "მეტი ინფრმაციისთვის, გთხოვთ ჰკითხოთ ადამიანს ვინც გამოგიგზავნათ ეს ბმული.",
- "Upload files to %s" : "ფაილების ატვირთვა %s-ში",
- "Select or drop files" : "აირჩიეთ ან გადმოიტანეთ ფაილები",
- "Uploaded files:" : "ფაილების ატვირთვა:",
- "Add to your Nextcloud" : "თქვენს Nextcloud-ში დამატება",
- "Wrong share ID, share doesn't exist" : "არასწორი გაზიარების ID, გაზიარება არ არსებობს",
- "Wrong path, file/folder doesn't exist" : "არასწორი მისამართი, ფაილი/დირქტორია არ არსებობს",
- "Sorry, this link doesn’t seem to work anymore." : "ბოდიში, ეს ბმული აღარ მოქმედებს."
-},"pluralForm" :"nplurals=2; plural=(n!=1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/km.js b/apps/files_sharing/l10n/km.js
deleted file mode 100644
index d9bcc23c21d..00000000000
--- a/apps/files_sharing/l10n/km.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Cancel" : "បោះបង់",
- "Shared by" : "បាន​ចែក​រំលែក​ដោយ",
- "Sharing" : "ការ​ចែក​រំលែក",
- "A file or folder has been <strong>shared</strong>" : "<strong>បាន​ចែករំលែក</strong> ឯកសារ​ឬ​ថត",
- "You shared %1$s with %2$s" : "អ្នក​បាន​ចែករំលែក %1$s ជាមួយ %2$s",
- "You shared %1$s with group %2$s" : "អ្នក​បាន​ចែករំលែក %1$s ជាមួយ​ក្រុម %2$s",
- "You shared %1$s via link" : "អ្នក​បាន​ចែក​រំលែក %1$s តាម​រយៈ​តំណរភ្ជាប់",
- "%2$s shared %1$s with you" : "%2$s បាន​ចែករំលែក %1$s ជាមួយ​អ្នក",
- "Shares" : "ចែក​រំលែក",
- "This share is password-protected" : "ការ​ចែករំលែក​នេះ​ត្រូវ​បាន​ការពារ​ដោយ​ពាក្យ​សម្ងាត់",
- "The password is wrong. Try again." : "ពាក្យ​សម្ងាត់​ខុស​ហើយ។ ព្យាយាម​ម្ដង​ទៀត។",
- "Password" : "ពាក្យសម្ងាត់",
- "Name" : "ឈ្មោះ",
- "Sorry, this link doesn’t seem to work anymore." : "សូម​ទោស តំណ​នេះ​ហាក់​ដូច​ជា​លែង​ដើរ​ហើយ។",
- "Reasons might be:" : "មូលហេតុ​អាច​ជា៖",
- "the item was removed" : "របស់​ត្រូវ​បាន​ដក​ចេញ",
- "the link expired" : "តំណ​ផុត​ពេល​កំណត់",
- "sharing is disabled" : "មិន​អនុញ្ញាត​ការ​ចែករំលែក",
- "For more info, please ask the person who sent this link." : "សម្រាប់​ព័ត៌មាន​បន្ថែម សូម​សួរ​អ្នក​ដែល​ផ្ញើ​តំណ​នេះ។",
- "Download" : "ទាញយក",
- "Download %s" : "ទាញយក %s",
- "Direct link" : "តំណ​ផ្ទាល់"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/km.json b/apps/files_sharing/l10n/km.json
deleted file mode 100644
index 319203ef946..00000000000
--- a/apps/files_sharing/l10n/km.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "Cancel" : "បោះបង់",
- "Shared by" : "បាន​ចែក​រំលែក​ដោយ",
- "Sharing" : "ការ​ចែក​រំលែក",
- "A file or folder has been <strong>shared</strong>" : "<strong>បាន​ចែករំលែក</strong> ឯកសារ​ឬ​ថត",
- "You shared %1$s with %2$s" : "អ្នក​បាន​ចែករំលែក %1$s ជាមួយ %2$s",
- "You shared %1$s with group %2$s" : "អ្នក​បាន​ចែករំលែក %1$s ជាមួយ​ក្រុម %2$s",
- "You shared %1$s via link" : "អ្នក​បាន​ចែក​រំលែក %1$s តាម​រយៈ​តំណរភ្ជាប់",
- "%2$s shared %1$s with you" : "%2$s បាន​ចែករំលែក %1$s ជាមួយ​អ្នក",
- "Shares" : "ចែក​រំលែក",
- "This share is password-protected" : "ការ​ចែករំលែក​នេះ​ត្រូវ​បាន​ការពារ​ដោយ​ពាក្យ​សម្ងាត់",
- "The password is wrong. Try again." : "ពាក្យ​សម្ងាត់​ខុស​ហើយ។ ព្យាយាម​ម្ដង​ទៀត។",
- "Password" : "ពាក្យសម្ងាត់",
- "Name" : "ឈ្មោះ",
- "Sorry, this link doesn’t seem to work anymore." : "សូម​ទោស តំណ​នេះ​ហាក់​ដូច​ជា​លែង​ដើរ​ហើយ។",
- "Reasons might be:" : "មូលហេតុ​អាច​ជា៖",
- "the item was removed" : "របស់​ត្រូវ​បាន​ដក​ចេញ",
- "the link expired" : "តំណ​ផុត​ពេល​កំណត់",
- "sharing is disabled" : "មិន​អនុញ្ញាត​ការ​ចែករំលែក",
- "For more info, please ask the person who sent this link." : "សម្រាប់​ព័ត៌មាន​បន្ថែម សូម​សួរ​អ្នក​ដែល​ផ្ញើ​តំណ​នេះ។",
- "Download" : "ទាញយក",
- "Download %s" : "ទាញយក %s",
- "Direct link" : "តំណ​ផ្ទាល់"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/kn.js b/apps/files_sharing/l10n/kn.js
deleted file mode 100644
index 69d899ad0a6..00000000000
--- a/apps/files_sharing/l10n/kn.js
+++ /dev/null
@@ -1,10 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Cancel" : "ರದ್ದು",
- "Sharing" : "ಹಂಚಿಕೆ",
- "Password" : "ಗುಪ್ತ ಪದ",
- "Name" : "ಹೆಸರು",
- "Download" : "ಪ್ರತಿಯನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಉಳಿಸಿಕೊಳ್ಳಿ"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/kn.json b/apps/files_sharing/l10n/kn.json
deleted file mode 100644
index 7553a7d1c9a..00000000000
--- a/apps/files_sharing/l10n/kn.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "translations": {
- "Cancel" : "ರದ್ದು",
- "Sharing" : "ಹಂಚಿಕೆ",
- "Password" : "ಗುಪ್ತ ಪದ",
- "Name" : "ಹೆಸರು",
- "Download" : "ಪ್ರತಿಯನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಉಳಿಸಿಕೊಳ್ಳಿ"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ko.js b/apps/files_sharing/l10n/ko.js
index 001502b6e6e..e69d407476c 100644
--- a/apps/files_sharing/l10n/ko.js
+++ b/apps/files_sharing/l10n/ko.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "대기중...",
- "error" : "오류",
- "finished" : "완료됨",
- "This will stop your current uploads." : "이것은 현재 업로드를 중단시킬 것입니다.",
- "Move or copy" : "이동이나 복사",
- "Download" : "다운로드",
- "Delete" : "삭제",
- "You can upload into this folder" : "이 폴더에 업로드할 수 있습니다",
- "Terms of service" : "이용 약관",
- "Show list view" : "목록 보기",
- "Show grid view" : "바둑판식 보기",
- "No compatible server found at {remote}" : "{remote}에서 호환 서버를 찾을 수 없음",
- "Invalid server URL" : "잘못된 서버 URL",
- "Failed to add the public link to your Nextcloud" : "Nextcloud에 공개 링크를 추가할 수 없음",
"File shares" : "파일 공유",
"Downloaded via public link" : "공개 링크로 다운로드",
"Downloaded by {email}" : "{email} 님이 다운로드함",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "{user}(과)와의 {file} 파일의 공유가 만료됨",
"Share for file {file} expired" : "{file} 파일의 공유가 만료됨",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "이메일이나 공개 공유로 공유한 파일이 <strong>다운로드됨</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "메일이나 공개 링크로 공유된 폴더에 파일이 <strong>업로드</strong>되었습니다.",
"A file or folder was shared from <strong>another server</strong>" : "<strong>다른 서버</strong>에서 파일이나 폴더를 공유함",
- "Files" : "파일",
+ "Sharing" : "공유",
"A file or folder has been <strong>shared</strong>" : "파일이나 폴더가 <strong>공유됨</strong>",
"Shared link" : "공유 링크",
"Wrong share ID, share does not exist" : "공유 ID가 잘못되었습니다, 공유가 존재하지 않습니다.",
@@ -78,34 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "파일이나 폴더 경로를 지정하십시오",
"Wrong path, file/folder does not exist" : "경로가 잘못됨, 파일 또는 폴더가 존재하지 않음",
"Could not create share" : "공유를 만들 수 없음",
- "Invalid permissions" : "권한이 유효하지 않음",
- "Invalid date, date format must be YYYY-MM-DD" : "잘못된 날짜, YYYY-MM-DD 형식이어야 합니다.",
"Please specify a valid account to share with" : "올바른 공유 대상 계정을 입력하십시오",
"Group sharing is disabled by the administrator" : "관리자가 그룹 공유를 비활성화함",
"Please specify a valid group" : "올바른 그룹을 지정하십시오",
"Public link sharing is disabled by the administrator" : "관리자가 공개 링크 공유를 비활성화함",
- "Public upload disabled by the administrator" : "공개 업로드는 관리자에 의해 비활성화되어 있음",
- "Public upload is only possible for publicly shared folders" : "공개 공유 폴더에만 공개 업로드를 사용할 수 있음",
+ "Please specify a valid email address" : "올바른 이메일 주소를 지정하세요.",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud 토크가 활성화되어 있지 않기 때문에 Nextcloud 토크에 암호를 보내서 %s(을)를 공유 할 수 없음",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "%1$s을(를) 공유할 수 없습니다. 백엔드에서 %2$s 형식의 공유를 지원하지 않습니다",
"Please specify a valid federated account ID" : "올바른 연합 계정 ID를 입력하십시오",
"Please specify a valid federated group ID" : "유효한 연합 그룹 ID를 지정하세요.",
- "You cannot share to a Circle if the app is not enabled" : "서클 앱이 활성화되어 있지 않으면 서클로 공유할 수 없음",
- "Please specify a valid circle" : "올바른 서클을 지정하십시오",
+ "You cannot share to a Team if the app is not enabled" : "팀 앱이 설치되지 않으면 팀에게 공유할 수 없습니다.",
+ "Please specify a valid team" : "올바른 팀을 지정하세요.",
"Sharing %s failed because the back end does not support room shares" : "%s 공유 실패. 백엔드에서 대화방 공유를 지원하지 않습니다",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "백엔드가 ScienceMesh 공유를 지원하지 않기 때문에 %s의 공유가 실패했습니다.",
"Unknown share type" : "알 수 없는 공유 형식",
"Not a directory" : "디렉터리가 아님",
"Could not lock node" : "노드를 잠글 수 없음",
- "Could not lock path" : "경로를 잠글 수 없음",
- "Wrong or no update parameter given" : "업데이트 인자가 잘못되었거나 지정되지 않았음",
+ "Public upload is only possible for publicly shared folders" : "공개 공유 폴더에만 공개 업로드를 사용할 수 있음",
"Share must at least have READ or CREATE permissions" : "공유에는 읽기와 생성 권한이 꼭 필요합니다.",
"Share must have READ permission if UPDATE or DELETE permission is set" : "공유에 업데이트와 삭제 권한이 설정되어 있다면 읽기 권한이 꼭 필요합니다.",
+ "Public upload disabled by the administrator" : "공개 업로드는 관리자에 의해 비활성화되어 있음",
+ "Could not lock path" : "경로를 잠글 수 없음",
+ "no sharing rights on this item" : "이 항목에 공유 권한 없음",
+ "You are not allowed to edit incoming shares" : "들어오는 공유를 수정할 권한이 없습니다.",
+ "Wrong or no update parameter given" : "업데이트 인자가 잘못되었거나 지정되지 않았음",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud 토크가 활성화되어 있지 않기 때문에, 파일 및 폴더 공유를 위한 \"Nextcloud 토크에 암호 보내기\"가 실패했습니다.",
+ "Custom share link tokens have been disabled by the administrator" : "맞춤 공유 링크 토큰이 관리자에 의해 비활성화 되었습니다.",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "토큰은 1 자 이상이어야 하며 문자, 숫자, 하이픈만 포함할 수 있습니다.",
+ "Invalid date. Format must be YYYY-MM-DD" : "잘못된 날짜입니다. 형식은 YYYY-MM-DD이어야 합니다.",
+ "No sharing rights on this item" : "이 항목에 공유 권한 없음",
+ "Invalid share attributes provided: \"%s\"" : "잘못된 공유 속성이 지정됨: \"%s\"",
+ "You are not allowed to send mail notifications" : "메일 알림을 보낼 권한이 없습니다.",
+ "No mail notification configured for this share type" : "이 공유 형식에 설정된 메일 알림 없음",
+ "Wrong password" : "잘못된 암호",
+ "Error while sending mail notification" : "메일 알림을 보내는 중 오류 발생",
+ "Failed to generate a unique token" : "고유 토큰 생성 실패",
+ "This share does not exist or is no longer available" : "이 공유는 존재하지 않거나 더이상 사용할 수 없습니다.",
"shared by %s" : "%s에 의해 공유됨",
- "Download all files" : "모든 파일 다운로드",
- "Direct link" : "직접 링크",
+ "Download" : "다운로드",
"Add to your %s" : "%s에 추가",
+ "Direct link" : "직접 링크",
"Share API is disabled" : "공유 API가 비활성화됨",
"File sharing" : "파일 공유",
"Share will expire tomorrow" : "내일 공유가 만료됩니다.",
@@ -114,133 +113,220 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "{user}님의 공유로 {group}그룹에서 {share}(을)를 받았습니다.",
"Accept" : "수락",
"Decline" : "거절",
- "Sharing" : "공유",
- "Accept shares from other accounts and groups by default" : "다른 계정 및 그룹으로부터의 공유를 기본적으로 허용",
+ "Remember to upload the files to %s" : "%s에 파일을 업로드하는 것을 기억하세요.",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "이 공유 폴더에 아직 어떤 파일도 업로드하지 않았음을 알려드립니다.",
+ "Open \"%s\"" : "\"%s\" 열기",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "이 앱을 사용하여 Nextcloud 내에서 사용자간 파일을 공유할 수 있습니다. 앱을 활성화하면 관리자가 파일 공유를 허용할 그룹을 지정할 수 있습니다. 공유가 허용된 사용자는 Nextcloud 내의 다른 계정이나 그룹과 파일이나 폴더를 공유할 수 있습니다. 추가로 관리자가 링크 공유 기능을 활성화하면 Nextcloud 외부 사용자와 파일을 공유할 수 있는 외부 링크가 생성됩니다. 관리자는 암호나 만료 날짜 사용을 강제할 수 있으며, 공유 링크로 서버간 공유 기능이나 모바일 장치에서 공유를 활성화할 수 있습니다.\n공유 기능을 비활성화하면 서버에 있는 모든 공유된 파일이나 폴더를 삭제하며, 동기화 클라이언트나 모바일 앱에도 적용됩니다. 자세한 정보를 보려면 Nextcloud 문서를 참조하십시오.",
+ "People" : "사람",
+ "Filter accounts" : "계정 필터",
+ "The request will expire on {date} at midnight and will be password protected." : "요청이 {date}일 새벽에 만료되고 암호로 보호됩니다.",
+ "The request will expire on {date} at midnight." : "요청이 {date}일 새벽에 만료됩니다.",
+ "The request will be password protected." : "요청이 암호로 보호됩니다.",
+ "When should the request expire?" : "요청이 언제 만료되어야 하나요?",
+ "Set a submission expiration date" : "제출 만료일 설정",
+ "Expiration date" : "만료 날짜",
+ "Select a date" : "날짜 선택",
+ "Your administrator has enforced a {count} days expiration policy." : "관리자가 {count}일 후 만료되도록 정책을 시행했습니다.",
+ "What password should be used for the request?" : "요청을 위해 어떤 암호를 사용할까요?",
+ "Set a password" : "암호 설정",
+ "Password" : "암호",
+ "Enter a valid password" : "올바른 암호를 입력하세요.",
+ "Generate a new password" : "새 암호 생성",
+ "Your administrator has enforced a password protection." : "관리자가 암호 보호 정책을 시행했습니다.",
+ "Automatically copying failed, please copy the share link manually" : "자동 복사에 실패했습니다. 공유 링크를 수동으로 복사해 주세요.",
+ "Link copied" : "링크 복사됨",
+ "Email already added" : "이메일이 이미 추가됨",
+ "Invalid email address" : "이메일이 잘못됨",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["다음 이메일 주소가 잘못되었습니다: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count}개 이메일 주소가 이미 추가되었습니다."],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count}개 이메일 주소를 추가했습니다."],
+ "You can now share the link below to allow people to upload files to your directory." : "아래 링크를 공유하여 사람들에게 당신의 경로에 파일을 업로드하도록 허용할 수 있습니다.",
+ "Share link" : "링크 공유",
+ "Copy" : "복사",
+ "Send link via email" : "이메일로 링크 보내기",
+ "Enter an email address or paste a list" : "이메일 주소를 입력하거나 목록을 붙여넣으세요.",
+ "Remove email" : "이메일 제거",
+ "Select a destination" : "목적지 선택",
+ "Select" : "선택",
+ "What are you requesting?" : "무엇을 요청합니까?",
+ "Request subject" : "요청 제목",
+ "Birthday party photos, History assignment…" : "생일 파티 사진, 역사 과제...",
+ "Where should these files go?" : "이 파일들이 어디로 가야 하나요?",
+ "Upload destination" : "업로드 목적지",
+ "Revert to default" : "기본값으로 되돌리기",
+ "The uploaded files are visible only to you unless you choose to share them." : "업로드된 파일은 당신이 공유하지 않는 한 당신만 볼 수 있습니다.",
+ "Add a note" : "메모 추가",
+ "Note for recipient" : "받는이에게 메모",
+ "Add a note to help people understand what you are requesting." : "당신이 무엇을 요청하는지 알 수 있도록 메모를 추가하세요.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "받는이가 당신이 무엇을 요청하는지 알 수 있게 해주는 링크, 날짜 및 다른 정보를 추가할 수 있습니다.",
+ "Close" : "닫기",
+ "_Send email and close_::_Send {count} emails and close_" : ["{count}개 이메일을 보내고 닫기"],
+ "Please select a folder, you cannot share the root directory." : "폴더를 선택하세요, 최상위 경로는 공유할 수 없습니다.",
+ "File request created" : "파일 요청 생성됨",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["파일 요청이 생성되고 {count}개 이메일 보냄"],
+ "Error creating the share: {errorMessage}" : "공유를 만드는 중 오류 발생: {errorMessage}",
+ "Error creating the share" : "공유를 만드는 중 오류 발생",
+ "Error sending emails: {errorMessage}" : "이메일을 보내는 중 오류 발생: {errorMessage}",
+ "Error sending emails" : "이메일을 보내는 중 오류 발생",
+ "Create a file request" : "파일 요청 생성",
+ "Collect files from others even if they do not have an account." : "계정이 없는 사람들에게서도 파일을 수집합니다.",
+ "To ensure you can receive files, verify you have enough storage available." : "파일을 받을 수 있는지 확인하려면 충분한 저장 공간이 있는지 확인하세요.",
+ "File request" : "파일 요청",
+ "Previous step" : "이전 단계",
+ "Cancel" : "취소",
+ "Cancel the file request creation" : "파일 요청 생성 취소",
+ "Close without sending emails" : "이메일을 보내지 않고 닫기",
+ "Continue" : "계속",
"Error while toggling options" : "옵션을 켜는 중 오류 발생",
- "Set default folder for accepted shares" : "허용한 공유의 기본 경로 설정",
- "Reset" : "초기화",
- "Reset folder to system default" : "폴더를 시스템 기본값으로 재설정",
+ "Accept shares from other accounts and groups by default" : "다른 계정 및 그룹으로부터의 공유를 기본적으로 허용",
"Choose a default folder for accepted shares" : "수락한 공유의 기본 폴더를 지정하세요.",
"Invalid path selected" : "잘못된 경로가 선택됨",
"Unknown error" : "알 수 없는 오류",
- "Open Sharing Details" : "공유 세부 사항 열기",
+ "Set default folder for accepted shares" : "허용한 공유의 기본 경로 설정",
+ "Reset" : "초기화",
+ "Reset folder to system default" : "폴더를 시스템 기본값으로 재설정",
+ "Share Expiration" : "공유 만료",
"group" : "그룹",
"conversation" : "대화",
"remote" : "원격",
"remote group" : "원격 그룹",
"guest" : "손님",
+ "by {initiator}" : "{initiator}님에 의함",
"Shared with the group {user} by {owner}" : "{owner}님이 {user} 그룹에게 공유함",
"Shared with the conversation {user} by {owner}" : "{owner}님이 {user} 대화방과 함께 공유함",
"Shared with {user} by {owner}" : "{owner}님이 {user}님에게 공유함",
+ "Open Sharing Details" : "공유 세부 사항 열기",
"Added by {initiator}" : "{initiator}님에 의해 추가됨",
"Via “{folder}”" : "“{folder}”(을)를 통하여",
"Unshare" : "공유 해제",
- "Internal link" : "내부 링크",
"Cannot copy, please copy the link manually" : "복사할 수 없습니다, 링크를 수동으로 복사하세요.",
- "Copy internal link to clipboard" : "내부 링크를 클립보드에 복사",
- "Link copied" : "링크 복사됨",
+ "Copy internal link" : "내부 링크 복사",
+ "Internal link" : "내부 링크",
+ "{shareWith} by {initiator}" : "{initiator}님에 의해 {shareWith}님에게",
+ "Shared via link by {initiator}" : "{initiator}님이 링크를 통해 공유함",
+ "File request ({label})" : "파일 요청 ({label})",
+ "Mail share ({label})" : "메일 공유 ({label})",
+ "Share link ({label})" : "링크 공유 ({label})",
+ "Mail share" : "메일 공유",
+ "Share link ({index})" : "링크 공유 ({index})",
+ "Create public link" : "공개 링크 만들기",
+ "Actions for \"{title}\"" : "\"{title}\"에 대한 작업",
+ "Error, please enter proper password and/or expiration date" : "오류, 적절한 암호와 만료일을 입력하세요.",
+ "Link share created" : "링크 공유가 만들어짐",
+ "Error while creating the share" : "공유를 만드는 중 오류 발생",
"Please enter the following required information before creating the share" : "공유를 하기 전에 다음 필수 정보를 입력하세요.",
"Password protection (enforced)" : "암호 보호 (강제됨)",
"Password protection" : "암호 보호",
"Enter a password" : "Enter a password",
- "Expiration date (enforced)" : "만료일 (강제됨)",
- "Enter a date" : "날짜 입력",
+ "Enable link expiration (enforced)" : "링크 만료일 사용 (강제됨)",
+ "Enable link expiration" : "링크 만료일 사용",
+ "Enter expiration date (enforced)" : "만료일 입력 (강제됨)",
+ "Enter expiration date" : "만료일 입력",
"Create share" : "공유 만들기",
- "Cancel" : "취소",
"Customize link" : "링크 맞춤설정",
"Generate QR code" : "QR코드 생성",
"Add another link" : "다른 링크 추가",
"Create a new share link" : "새로운 공유 링크 생성",
- "Shared via link by {initiator}" : "{initiator}님이 링크를 통해 공유함",
- "Mail share ({label})" : "메일 공유 ({label})",
- "Share link ({label})" : "링크 공유 ({label})",
- "Share link ({index})" : "링크 공유 ({index})",
- "Share link" : "링크 공유",
- "Actions for \"{title}\"" : "\"{title}\"에 대한 작업",
- "Copy public link of \"{title}\" to clipboard" : "\"{title}\"의 공개 링크를 클립보드에 복사",
- "Error, please enter proper password and/or expiration date" : "오류, 적절한 암호와 만료일을 입력하세요.",
- "Link share created" : "링크 공유가 만들어짐",
- "Error while creating the share" : "공유를 만드는 중 오류 발생",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "빠른 공유 옵션, 현재 \"{selectedOption}\" 선택됨",
"View only" : "읽기 전용",
- "Can edit" : "수정할 수 있음",
- "File drop" : "업로드만 허용",
+ "Can edit" : "편집 허용",
"Custom permissions" : "사용자 지정 권한",
- "Search for share recipients" : "공유 받는이 검색",
- "No recommendations. Start typing." : "추천 없음. 타이핑을 시작하십시오",
"Resharing is not allowed" : "다시 공유할 수 없음",
"Name or email …" : "이름 또는 이메일 …",
"Name, email, or Federated Cloud ID …" : "이름, 이메일, 또는 연합 클라우드 ID …",
"Searching …" : "검색 ...",
"No elements found." : "요소를 찾을 수 없습니다.",
- "Search globally" : "전역 검색",
+ "Search everywhere" : "모든 곳에서 찾기",
"Guest" : "손님",
"Group" : "그룹",
"Email" : "이메일",
+ "Team" : "팀",
"Talk conversation" : "토크 대화",
"Deck board" : "Deck 보드",
+ "ScienceMesh" : "ScienceMesh",
"on {server}" : "{server}에서",
+ "Enter external recipients" : "외부 수신자 입력",
+ "Search for internal recipients" : "내부 수신자 검색",
+ "Note from" : "다음 사용자가 메모함:",
+ "Note:" : "메모:",
+ "File drop" : "파일 업로드 전용",
+ "Upload files to {foldername}." : "{foldername}에 파일을 업로드하세요.",
+ "By uploading files, you agree to the terms of service." : "파일을 업로드하면 이용 약관에 동의하는 것을 의미합니다.",
+ "View terms of service" : "이용 약관 보기",
+ "Terms of service" : "이용 약관",
+ "Share with email {email}" : "{email} 이메일에 공유",
+ "Share with group" : "그룹과 공유",
+ "Share in conversation" : "대화방과 공유",
+ "Share with {user} on remote server {server}" : "원격 서버 {server}의 {user}님에게 공유",
+ "Share with remote group" : "원격 그룹과 공유",
+ "Share with guest" : "손님과 공유",
+ "Update share" : "공유 업데이트",
+ "Save share" : "공유 저장",
+ "Read" : "읽기",
+ "Create" : "생성",
+ "Edit" : "편집",
+ "Share" : "공유",
+ "Delete" : "삭제",
+ "Password field cannot be empty" : "암호 필드는 비워둘 수 없습니다.",
+ "Replace current password" : "현재 암호 변경",
+ "Failed to generate a new token" : "새 토큰 생성 실패",
"Allow upload and editing" : "업로드와 수정 허용",
"Allow editing" : "수정 허용",
"Upload only" : "업로드만",
"Advanced settings" : "고급 설정",
"Share label" : "공유 이름",
+ "Share link token" : "공유 링크 토큰",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "공개 공유 링크 토큰을 기억하기 쉬운 것으로 설정하거나 새 토큰을 생성하세요. 민감한 정보가 포함된 공유에는 추측 가능한 토큰을 사용하지 않는 것이 좋습니다.",
+ "Generating…" : "생성 중…",
+ "Generate new token" : "새 토큰 생성",
"Set password" : "비밀번호 설정",
- "Password" : "암호",
"Password expires {passwordExpirationTime}" : "암호가 {passwordExpirationTime}에 만료됨",
"Password expired" : "암호 만료됨",
"Video verification" : "화상 인증",
+ "Expiration date (enforced)" : "만료일 (강제됨)",
"Set expiration date" : "만료기한 설정",
- "Expiration date" : "만료 날짜",
"Hide download" : "다운로드 숨기기",
- "Allow download" : "다운로드 허용",
+ "Allow download and sync" : "다운로드와 동기화 허용",
"Note to recipient" : "받는이에게 메모",
"Enter a note for the share recipient" : "받는이를 위한 메모 입력",
- "Read" : "읽기",
- "Create" : "생성",
- "Edit" : "편집",
- "Share" : "공유",
+ "Show files in grid view" : "파일을 바둑판식 보기로 표시",
"Delete share" : "공유 삭제",
- "Share with {userName}" : "{userName}와(과) 공유",
- "Share with group" : "그룹과 공유",
- "Share in conversation" : "대화방과 공유",
- "Share with remote group" : "원격 그룹과 공유",
- "Share with guest" : "손님과 공유",
- "Update share" : "공유 업데이트",
- "Save share" : "공유 저장",
- "Others with access" : "접근할 수 있는 다른 사용자",
+ "Others with access" : "액세스 권한이 있는 사용자",
"No other accounts with access found" : "접근할 수 있는 다른 계정이 없음",
"Toggle list of others with access to this directory" : "이 경로에 접근할 수 있는 사용자들의 목록 전환",
"Toggle list of others with access to this file" : "이 파일에 접근할 수 있는 사용자들의 목록 전환",
"Unable to fetch inherited shares" : "상속된 공유를 가져올 수 없음",
+ "Link shares" : "링크 공유",
+ "Shares" : "공유",
"Unable to load the shares list" : "공유 목록을 불러올 수 없음",
"Expires {relativetime}" : "{relativetime}에 만료",
"this share just expired." : "이 공유는 방금 만료되었습니다.",
"Shared with you by {owner}" : "{owner}님이 당신에게 공유함",
+ "Internal shares" : "내부 공유",
+ "Internal shares explanation" : "내부 공유 설명",
+ "External shares" : "외부 공유",
+ "External shares explanation" : "외부 공유 설명",
+ "Additional shares" : "부가적 공유",
+ "Additional shares explanation" : "부가적 공유 설명",
+ "Link to a file" : "파일로 향한 링크",
"_Accept share_::_Accept shares_" : ["공유 수락"],
"Open in Files" : "파일에서 열기",
"_Reject share_::_Reject shares_" : ["공유 거절"],
"_Restore share_::_Restore shares_" : ["공유 복원"],
"Shared" : "공유됨",
+ "Shared by {ownerDisplayName}" : "{ownerDisplayName}님이 공유함",
"Shared multiple times with different people" : "여러 사용자와 공유됨",
- "Shared by {ownerDisplayName}" : "{ownerDisplayName}이 변경함",
- "Show sharing options" : "공유 옵션 표시",
- "Link to a file" : "파일로 향한 링크",
- "Error creating the share: {errorMessage}" : "공유를 만드는 중 오류 발생: {errorMessage}",
- "Error creating the share" : "공유를 만드는 중 오류 발생",
- "Error updating the share: {errorMessage}" : "공유를 업데이트 하는 중 오류 발생: {errorMessage}",
- "Error updating the share" : "공유를 업데이트 하는 중 오류 발생",
- "File \"{path}\" has been unshared" : "\"{path}\" 파일의 공유가 취소됨",
- "Folder \"{path}\" has been unshared" : "\"{path}\" 폴더의 공유가 취소됨",
- "Share {propertyName} saved" : "{propertyName} 공유 저장됨",
- "Shared by" : "공유한 사용자:",
- "Shared with" : "다음 사용자와 공유함",
- "Password created successfully" : "암호가 성공적으로 생성됨",
- "Error generating password from password policy" : "암호 정책에서 암호 생성 중에 오류 발생",
- "Shared with you and the group {group} by {owner}" : "{owner}님이 당신 및 {group} 그룹에게 공유함",
- "Shared with you and {circle} by {owner}" : "{owner}님이 여러분과 {circle}에게 공유함",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner}님이 여러분과 대화 {conversation}와(과) 공유함",
- "Shared with you in a conversation by {owner}" : "{owner}님이 대화에서 당신에게 공유함",
- "Shares" : "공유",
+ "Shared with others" : "다른 사람과 공유됨",
+ "Create file request" : "파일 요청 생성",
+ "Upload files to {foldername}" : "{foldername}에 파일 업로드",
+ "Public file share" : "공개 파일 공유",
+ "Publicly shared file." : "공개적으로 파일을 공유함.",
+ "No file" : "파일 없음",
+ "The file shared with you will show up here" : "당신과 공유된 파일이 이곳에 나타납니다.",
+ "Public share" : "공개 공유",
+ "Publicly shared files." : "공개적으로 파일을 공유함.",
+ "No files" : "파일 없음",
+ "Files and folders shared with you will show up here" : "당신과 공유된 파일 및 폴더가 이곳에 나타납니다.",
"Overview of shared files." : "공유된 파일들의 개요",
"No shares" : "공유 없음",
"Files and folders you shared or have been shared with you will show up here" : "당신이 공유하거나 당신에게 공유된 파일과 폴더가 이곳에 나타납니다.",
@@ -248,7 +334,6 @@ OC.L10N.register(
"List of files that are shared with you." : "당신에게 공유된 파일들의 목록",
"Nothing shared with you yet" : "나와 공유된 항목 없음",
"Files and folders others shared with you will show up here" : "다른 사람이 당신에게 공유한 파일과 폴더가 이곳에 나타납니다.",
- "Shared with others" : "다른 사람과 공유됨",
"List of files that you shared with others." : "당신이 다른 사람에게 공유한 파일들의 목록",
"Nothing shared yet" : "공유된 항목 없음",
"Files and folders you shared will show up here" : "당신이 공유한 파일과 폴더가 이곳에 나타납니다.",
@@ -256,6 +341,10 @@ OC.L10N.register(
"List of files that are shared by link." : "링크를 통해 공유된 파일들의 목록",
"No shared links" : "공유된 링크 없음",
"Files and folders you shared by link will show up here" : "링크를 통해 공유된 파일과 폴더들이 여기에 표시됩니다.",
+ "File requests" : "파일 요청",
+ "List of file requests." : "파일 요청 목록",
+ "No file requests" : "파일 요청 없음",
+ "File requests you have created will show up here" : "당신이 생성한 파일 요청이 이곳에 나타납니다.",
"Deleted shares" : "삭제된 공유",
"List of shares you left." : "당신이 떠난 공유들의 목록",
"No deleted shares" : "삭제된 공유 없음",
@@ -264,49 +353,75 @@ OC.L10N.register(
"List of unapproved shares." : "수락하지 않은 공유들의 목록",
"No pending shares" : "보류 중인 공유 없음",
"Shares you have received but not approved will show up here" : "받았지만 수락하지 않은 공유들이 이곳에 나타납니다.",
+ "Error updating the share: {errorMessage}" : "공유를 업데이트 하는 중 오류 발생: {errorMessage}",
+ "Error updating the share" : "공유를 업데이트 하는 중 오류 발생",
+ "File \"{path}\" has been unshared" : "\"{path}\" 파일의 공유가 취소됨",
+ "Folder \"{path}\" has been unshared" : "\"{path}\" 폴더의 공유가 취소됨",
+ "Could not update share" : "공유를 갱신할 수 없음",
+ "Share saved" : "공유 저장됨",
+ "Share expiry date saved" : "공유 만료일 저장됨",
+ "Share hide-download state saved" : "공유 다운로드 숨기기 상태 저장됨",
+ "Share label saved" : "공유 이름 저장됨",
+ "Share note for recipient saved" : "받는이를 위한 공유 메모 저장됨",
+ "Share password saved" : "공유 암호 저장됨",
+ "Share permissions saved" : "공유 권한 저장됨",
+ "Upload files to {folder}" : "{folder}에 파일 업로드",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName}님이 당신에게 폴더를 공유했습니다.",
+ "Shared by" : "공유한 사용자:",
+ "Shared with" : "다음 사용자와 공유함",
+ "Password created successfully" : "암호가 성공적으로 생성됨",
+ "Error generating password from password policy" : "암호 정책에서 암호 생성 중에 오류 발생",
+ "Shared with you and the group {group} by {owner}" : "{owner}님이 당신 및 {group} 그룹에게 공유함",
+ "Shared with you and {circle} by {owner}" : "{owner}님이 여러분과 {circle}에게 공유함",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner}님이 여러분과 대화 {conversation}와(과) 공유함",
+ "Shared with you in a conversation by {owner}" : "{owner}님이 대화에서 당신에게 공유함",
+ "Share not found" : "공유를 찾을 수 없음",
+ "Back to %s" : "%s(으)로 돌아가기",
+ "Add to your Nextcloud" : "내 Nextcloud에 추가",
+ "Waiting…" : "대기중...",
+ "error" : "오류",
+ "finished" : "완료됨",
+ "This will stop your current uploads." : "이것은 현재 업로드를 중단시킬 것입니다.",
+ "Move or copy" : "이동이나 복사",
+ "You can upload into this folder" : "이 폴더에 업로드할 수 있습니다",
+ "Show list view" : "목록 보기",
+ "Show grid view" : "바둑판식 보기",
+ "No compatible server found at {remote}" : "{remote}에서 호환 서버를 찾을 수 없음",
+ "Invalid server URL" : "잘못된 서버 URL",
+ "Failed to add the public link to your Nextcloud" : "Nextcloud에 공개 링크를 추가할 수 없음",
+ "You are not allowed to edit link shares that you don't own" : "당신이 것이 아닌 링크 공유를 편집할 권한이 없습니다.",
+ "Download all files" : "모든 파일 다운로드",
+ "Link copied to clipboard" : "링크가 클립보드로 복사됨",
+ "_1 email address already added_::_{count} email addresses already added_" : ["{count}개 이메일 주소가 이미 추가됨"],
+ "_1 email address added_::_{count} email addresses added_" : ["{count}개 이메일 주소 추가함"],
+ "Copy to clipboard" : "클립보드로 복사",
+ "Copy internal link to clipboard" : "내부 링크를 클립보드에 복사",
+ "Only works for people with access to this folder" : "액세스 권한이 있는 사용자에게만 가능합니다",
+ "Only works for people with access to this file" : "이 파일에 접근할 수 있는 사용자에게만 작동",
+ "Copy public link of \"{title}\" to clipboard" : "\"{title}\"의 공개 링크를 클립보드에 복사",
+ "Search globally" : "전역 검색",
+ "Search for share recipients" : "공유 대상 검색",
+ "No recommendations. Start typing." : "추천 없음. 타이핑을 시작하십시오",
+ "To upload files, you need to provide your name first." : "파일을 업로드하려면 먼저 당신의 이름을 알려주세요.",
+ "Enter your name" : "이름을 입력하세요",
+ "Submit name" : "이름 제출",
+ "Share with {userName}" : "{userName}와(과) 공유",
+ "Show sharing options" : "공유 옵션 표시",
"Share note" : "공유 노트",
"Upload files to %s" : "%s에 파일 업로드",
+ "%s shared a folder with you." : "%s님이 당신과 폴더를 공유했습니다",
"Note" : "노트",
"Select or drop files" : "파일을 선택하거나 끌어다 놓기",
"Uploading files" : "파일 업로드 중",
"Uploaded files:" : "업로드한 파일:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "파일을 업로드하면 %1$s이용 약관%2$s에 동의하는 것을 의미합니다.",
- "Add to your Nextcloud" : "내 Nextcloud에 추가",
- "Files and folders others share with you will show up here" : "다른 사람이 공유한 파일과 폴더가 여기에 나타납니다",
- "Files and folders you share will show up here" : "내가 공유하는 파일과 폴더가 여기에 나타납니다",
- "Files and folders you share by link will show up here" : "내가 링크로 공유하는 파일과 폴더가 여기에 나타납니다",
- "Shares you deleted will show up here" : "삭제한 공유 목록이 여기에 표시됩니다.",
- "Shares you have received but not confirmed will show up here" : "공유를 받았지만 확인하지 않은 경우 이곳에 표시됩니다.",
- "Shares will show up here" : "공유 목록이 여기에 표시됩니다.",
- "Restore" : "Restore",
- "Something happened. Unable to restore the share." : "무언가 잘못되었습니다. 공유를 복원할 수 없습니다.",
- "Something happened. Unable to accept the share." : "공유를 수락할 수 없습니다.",
- "Something happened. Unable to reject the share." : "공유를 거절할 수 없습니다.",
- "No expiration date set" : "만료 날짜가 설정되지 않았음",
- "Please specify a valid user" : "올바른 사용자를 지정하십시오",
- "Please specify a valid federated user ID" : "유효한 연합 사용자 ID를 지정하세요.",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "이 앱을 사용하여 Nextcloud 내에서 사용자간 파일을 공유할 수 있습니다. 앱을 활성화하면 관리자가 파일 공유를 허용할 그룹을 지정할 수 있습니다. 공유가 허용된 사용자는 Nextcloud 내의 다른 사용자나 그룹과 파일이나 폴더를 공유할 수 있습니다. 추가로 관리자가 링크 공유 기능을 활성화하면 Nextcloud 외부 사용자와 파일을 공유할 수 있는 외부 링크가 생성됩니다. 관리자는 암호나 만료 날짜 사용을 강제할 수 있으며, 공유 링크로 서버간 공유 기능이나 모바일 장치에서 공유를 활성화할 수 있습니다.\n공유 기능을 비활성화하면 서버에 있는 모든 공유된 파일이나 폴더를 삭제하며, 동기화 클라이언트나 모바일 앱에도 적용됩니다. 자세한 정보를 보려면 Nextcloud 문서를 참조하십시오.",
- "Accept user and group shares by default" : "사용자 공유나 그룹 공유를 기본으로 허용함",
- "Read only" : "Read only",
- "File drop (upload only)" : "업로드만 허용",
- "Upload" : "업로드",
- "Bundled permissions" : "번들 권한",
- "Only works for users with access to this folder" : "이 폴더의 접근 권한이 있는 사용자만 사용 가능",
- "Only works for users with access to this file" : "이 파일에 접근할 수 있는 사용자에게만 작동",
- "Circle" : "서클",
- "Update" : "업데이트",
- "Share with " : "공유 받는이:",
- "No other users with access found" : "접근할 수 있는 다른 사용자가 없음",
- "No entries found in this folder" : "이 폴더에 항목 없음",
"Name" : "이름",
- "Share time" : "공유 시간",
- "Sorry, this link does not seem to work anymore." : "죄송합니다, 이 링크는 더 이상 작동하지 않습니다.",
- "Reasons might be:" : "이유는 다음과 같을 수 있습니다:",
- "the item was removed" : "항목이 삭제됨",
- "the link expired" : "링크가 만료됨",
- "sharing is disabled" : "공유가 비활성화됨",
- "For more info, please ask the person who sent this link." : "자세한 정보는 링크를 보낸 사람에게 문의하십시오.",
- "Share with remote" : "원격지에 공유",
- "Share with" : "다음과 공유"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "이 방법을 사용하여 조직 내 개인 또는 팀과 파일을 공유하세요. 수신자가 이미 공유 폴더에 접근할 수 있지만 위치를 찾을 수 없는 경우, 쉽게 접근할 수 있도록 내부 공유 링크를 보낼 수 있습니다.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "이 방법을 사용하여 이 조직 외부의 개인이나 조직과 파일을 공유하세요. 파일과 폴더는 공개 공유 링크와 이메일 주소를 통해 공유할 수 있습니다. 다른 인스턴스에 소속된 다른 Nextcloud 계정과도 연합 클라우드 ID를 사용하여 공유할 수 있습니다.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "내부 또는 외부 공유에 포함되지 않은 공유입니다. 앱이나 다른 소스에서 공유된 내용이 여기에 해당할 수 있습니다.",
+ "Share with accounts, teams, federated cloud id" : "계정, 팀 및 연합 클라우드 ID와 공유",
+ "Share with accounts and teams" : "계정 및 팀과 공유",
+ "Email, federated cloud id" : "이메일, 연합 클라우드 ID",
+ "Filename must not be empty." : "파일 이름을 비울 수 없습니다."
},
"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/ko.json b/apps/files_sharing/l10n/ko.json
index 64081313942..826f79becb1 100644
--- a/apps/files_sharing/l10n/ko.json
+++ b/apps/files_sharing/l10n/ko.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "대기중...",
- "error" : "오류",
- "finished" : "완료됨",
- "This will stop your current uploads." : "이것은 현재 업로드를 중단시킬 것입니다.",
- "Move or copy" : "이동이나 복사",
- "Download" : "다운로드",
- "Delete" : "삭제",
- "You can upload into this folder" : "이 폴더에 업로드할 수 있습니다",
- "Terms of service" : "이용 약관",
- "Show list view" : "목록 보기",
- "Show grid view" : "바둑판식 보기",
- "No compatible server found at {remote}" : "{remote}에서 호환 서버를 찾을 수 없음",
- "Invalid server URL" : "잘못된 서버 URL",
- "Failed to add the public link to your Nextcloud" : "Nextcloud에 공개 링크를 추가할 수 없음",
"File shares" : "파일 공유",
"Downloaded via public link" : "공개 링크로 다운로드",
"Downloaded by {email}" : "{email} 님이 다운로드함",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "{user}(과)와의 {file} 파일의 공유가 만료됨",
"Share for file {file} expired" : "{file} 파일의 공유가 만료됨",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "이메일이나 공개 공유로 공유한 파일이 <strong>다운로드됨</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "메일이나 공개 링크로 공유된 폴더에 파일이 <strong>업로드</strong>되었습니다.",
"A file or folder was shared from <strong>another server</strong>" : "<strong>다른 서버</strong>에서 파일이나 폴더를 공유함",
- "Files" : "파일",
+ "Sharing" : "공유",
"A file or folder has been <strong>shared</strong>" : "파일이나 폴더가 <strong>공유됨</strong>",
"Shared link" : "공유 링크",
"Wrong share ID, share does not exist" : "공유 ID가 잘못되었습니다, 공유가 존재하지 않습니다.",
@@ -76,34 +63,46 @@
"Please specify a file or folder path" : "파일이나 폴더 경로를 지정하십시오",
"Wrong path, file/folder does not exist" : "경로가 잘못됨, 파일 또는 폴더가 존재하지 않음",
"Could not create share" : "공유를 만들 수 없음",
- "Invalid permissions" : "권한이 유효하지 않음",
- "Invalid date, date format must be YYYY-MM-DD" : "잘못된 날짜, YYYY-MM-DD 형식이어야 합니다.",
"Please specify a valid account to share with" : "올바른 공유 대상 계정을 입력하십시오",
"Group sharing is disabled by the administrator" : "관리자가 그룹 공유를 비활성화함",
"Please specify a valid group" : "올바른 그룹을 지정하십시오",
"Public link sharing is disabled by the administrator" : "관리자가 공개 링크 공유를 비활성화함",
- "Public upload disabled by the administrator" : "공개 업로드는 관리자에 의해 비활성화되어 있음",
- "Public upload is only possible for publicly shared folders" : "공개 공유 폴더에만 공개 업로드를 사용할 수 있음",
+ "Please specify a valid email address" : "올바른 이메일 주소를 지정하세요.",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud 토크가 활성화되어 있지 않기 때문에 Nextcloud 토크에 암호를 보내서 %s(을)를 공유 할 수 없음",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "%1$s을(를) 공유할 수 없습니다. 백엔드에서 %2$s 형식의 공유를 지원하지 않습니다",
"Please specify a valid federated account ID" : "올바른 연합 계정 ID를 입력하십시오",
"Please specify a valid federated group ID" : "유효한 연합 그룹 ID를 지정하세요.",
- "You cannot share to a Circle if the app is not enabled" : "서클 앱이 활성화되어 있지 않으면 서클로 공유할 수 없음",
- "Please specify a valid circle" : "올바른 서클을 지정하십시오",
+ "You cannot share to a Team if the app is not enabled" : "팀 앱이 설치되지 않으면 팀에게 공유할 수 없습니다.",
+ "Please specify a valid team" : "올바른 팀을 지정하세요.",
"Sharing %s failed because the back end does not support room shares" : "%s 공유 실패. 백엔드에서 대화방 공유를 지원하지 않습니다",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "백엔드가 ScienceMesh 공유를 지원하지 않기 때문에 %s의 공유가 실패했습니다.",
"Unknown share type" : "알 수 없는 공유 형식",
"Not a directory" : "디렉터리가 아님",
"Could not lock node" : "노드를 잠글 수 없음",
- "Could not lock path" : "경로를 잠글 수 없음",
- "Wrong or no update parameter given" : "업데이트 인자가 잘못되었거나 지정되지 않았음",
+ "Public upload is only possible for publicly shared folders" : "공개 공유 폴더에만 공개 업로드를 사용할 수 있음",
"Share must at least have READ or CREATE permissions" : "공유에는 읽기와 생성 권한이 꼭 필요합니다.",
"Share must have READ permission if UPDATE or DELETE permission is set" : "공유에 업데이트와 삭제 권한이 설정되어 있다면 읽기 권한이 꼭 필요합니다.",
+ "Public upload disabled by the administrator" : "공개 업로드는 관리자에 의해 비활성화되어 있음",
+ "Could not lock path" : "경로를 잠글 수 없음",
+ "no sharing rights on this item" : "이 항목에 공유 권한 없음",
+ "You are not allowed to edit incoming shares" : "들어오는 공유를 수정할 권한이 없습니다.",
+ "Wrong or no update parameter given" : "업데이트 인자가 잘못되었거나 지정되지 않았음",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud 토크가 활성화되어 있지 않기 때문에, 파일 및 폴더 공유를 위한 \"Nextcloud 토크에 암호 보내기\"가 실패했습니다.",
+ "Custom share link tokens have been disabled by the administrator" : "맞춤 공유 링크 토큰이 관리자에 의해 비활성화 되었습니다.",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "토큰은 1 자 이상이어야 하며 문자, 숫자, 하이픈만 포함할 수 있습니다.",
+ "Invalid date. Format must be YYYY-MM-DD" : "잘못된 날짜입니다. 형식은 YYYY-MM-DD이어야 합니다.",
+ "No sharing rights on this item" : "이 항목에 공유 권한 없음",
+ "Invalid share attributes provided: \"%s\"" : "잘못된 공유 속성이 지정됨: \"%s\"",
+ "You are not allowed to send mail notifications" : "메일 알림을 보낼 권한이 없습니다.",
+ "No mail notification configured for this share type" : "이 공유 형식에 설정된 메일 알림 없음",
+ "Wrong password" : "잘못된 암호",
+ "Error while sending mail notification" : "메일 알림을 보내는 중 오류 발생",
+ "Failed to generate a unique token" : "고유 토큰 생성 실패",
+ "This share does not exist or is no longer available" : "이 공유는 존재하지 않거나 더이상 사용할 수 없습니다.",
"shared by %s" : "%s에 의해 공유됨",
- "Download all files" : "모든 파일 다운로드",
- "Direct link" : "직접 링크",
+ "Download" : "다운로드",
"Add to your %s" : "%s에 추가",
+ "Direct link" : "직접 링크",
"Share API is disabled" : "공유 API가 비활성화됨",
"File sharing" : "파일 공유",
"Share will expire tomorrow" : "내일 공유가 만료됩니다.",
@@ -112,133 +111,220 @@
"You received {share} to group {group} as a share by {user}" : "{user}님의 공유로 {group}그룹에서 {share}(을)를 받았습니다.",
"Accept" : "수락",
"Decline" : "거절",
- "Sharing" : "공유",
- "Accept shares from other accounts and groups by default" : "다른 계정 및 그룹으로부터의 공유를 기본적으로 허용",
+ "Remember to upload the files to %s" : "%s에 파일을 업로드하는 것을 기억하세요.",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "이 공유 폴더에 아직 어떤 파일도 업로드하지 않았음을 알려드립니다.",
+ "Open \"%s\"" : "\"%s\" 열기",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "이 앱을 사용하여 Nextcloud 내에서 사용자간 파일을 공유할 수 있습니다. 앱을 활성화하면 관리자가 파일 공유를 허용할 그룹을 지정할 수 있습니다. 공유가 허용된 사용자는 Nextcloud 내의 다른 계정이나 그룹과 파일이나 폴더를 공유할 수 있습니다. 추가로 관리자가 링크 공유 기능을 활성화하면 Nextcloud 외부 사용자와 파일을 공유할 수 있는 외부 링크가 생성됩니다. 관리자는 암호나 만료 날짜 사용을 강제할 수 있으며, 공유 링크로 서버간 공유 기능이나 모바일 장치에서 공유를 활성화할 수 있습니다.\n공유 기능을 비활성화하면 서버에 있는 모든 공유된 파일이나 폴더를 삭제하며, 동기화 클라이언트나 모바일 앱에도 적용됩니다. 자세한 정보를 보려면 Nextcloud 문서를 참조하십시오.",
+ "People" : "사람",
+ "Filter accounts" : "계정 필터",
+ "The request will expire on {date} at midnight and will be password protected." : "요청이 {date}일 새벽에 만료되고 암호로 보호됩니다.",
+ "The request will expire on {date} at midnight." : "요청이 {date}일 새벽에 만료됩니다.",
+ "The request will be password protected." : "요청이 암호로 보호됩니다.",
+ "When should the request expire?" : "요청이 언제 만료되어야 하나요?",
+ "Set a submission expiration date" : "제출 만료일 설정",
+ "Expiration date" : "만료 날짜",
+ "Select a date" : "날짜 선택",
+ "Your administrator has enforced a {count} days expiration policy." : "관리자가 {count}일 후 만료되도록 정책을 시행했습니다.",
+ "What password should be used for the request?" : "요청을 위해 어떤 암호를 사용할까요?",
+ "Set a password" : "암호 설정",
+ "Password" : "암호",
+ "Enter a valid password" : "올바른 암호를 입력하세요.",
+ "Generate a new password" : "새 암호 생성",
+ "Your administrator has enforced a password protection." : "관리자가 암호 보호 정책을 시행했습니다.",
+ "Automatically copying failed, please copy the share link manually" : "자동 복사에 실패했습니다. 공유 링크를 수동으로 복사해 주세요.",
+ "Link copied" : "링크 복사됨",
+ "Email already added" : "이메일이 이미 추가됨",
+ "Invalid email address" : "이메일이 잘못됨",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["다음 이메일 주소가 잘못되었습니다: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count}개 이메일 주소가 이미 추가되었습니다."],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count}개 이메일 주소를 추가했습니다."],
+ "You can now share the link below to allow people to upload files to your directory." : "아래 링크를 공유하여 사람들에게 당신의 경로에 파일을 업로드하도록 허용할 수 있습니다.",
+ "Share link" : "링크 공유",
+ "Copy" : "복사",
+ "Send link via email" : "이메일로 링크 보내기",
+ "Enter an email address or paste a list" : "이메일 주소를 입력하거나 목록을 붙여넣으세요.",
+ "Remove email" : "이메일 제거",
+ "Select a destination" : "목적지 선택",
+ "Select" : "선택",
+ "What are you requesting?" : "무엇을 요청합니까?",
+ "Request subject" : "요청 제목",
+ "Birthday party photos, History assignment…" : "생일 파티 사진, 역사 과제...",
+ "Where should these files go?" : "이 파일들이 어디로 가야 하나요?",
+ "Upload destination" : "업로드 목적지",
+ "Revert to default" : "기본값으로 되돌리기",
+ "The uploaded files are visible only to you unless you choose to share them." : "업로드된 파일은 당신이 공유하지 않는 한 당신만 볼 수 있습니다.",
+ "Add a note" : "메모 추가",
+ "Note for recipient" : "받는이에게 메모",
+ "Add a note to help people understand what you are requesting." : "당신이 무엇을 요청하는지 알 수 있도록 메모를 추가하세요.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "받는이가 당신이 무엇을 요청하는지 알 수 있게 해주는 링크, 날짜 및 다른 정보를 추가할 수 있습니다.",
+ "Close" : "닫기",
+ "_Send email and close_::_Send {count} emails and close_" : ["{count}개 이메일을 보내고 닫기"],
+ "Please select a folder, you cannot share the root directory." : "폴더를 선택하세요, 최상위 경로는 공유할 수 없습니다.",
+ "File request created" : "파일 요청 생성됨",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["파일 요청이 생성되고 {count}개 이메일 보냄"],
+ "Error creating the share: {errorMessage}" : "공유를 만드는 중 오류 발생: {errorMessage}",
+ "Error creating the share" : "공유를 만드는 중 오류 발생",
+ "Error sending emails: {errorMessage}" : "이메일을 보내는 중 오류 발생: {errorMessage}",
+ "Error sending emails" : "이메일을 보내는 중 오류 발생",
+ "Create a file request" : "파일 요청 생성",
+ "Collect files from others even if they do not have an account." : "계정이 없는 사람들에게서도 파일을 수집합니다.",
+ "To ensure you can receive files, verify you have enough storage available." : "파일을 받을 수 있는지 확인하려면 충분한 저장 공간이 있는지 확인하세요.",
+ "File request" : "파일 요청",
+ "Previous step" : "이전 단계",
+ "Cancel" : "취소",
+ "Cancel the file request creation" : "파일 요청 생성 취소",
+ "Close without sending emails" : "이메일을 보내지 않고 닫기",
+ "Continue" : "계속",
"Error while toggling options" : "옵션을 켜는 중 오류 발생",
- "Set default folder for accepted shares" : "허용한 공유의 기본 경로 설정",
- "Reset" : "초기화",
- "Reset folder to system default" : "폴더를 시스템 기본값으로 재설정",
+ "Accept shares from other accounts and groups by default" : "다른 계정 및 그룹으로부터의 공유를 기본적으로 허용",
"Choose a default folder for accepted shares" : "수락한 공유의 기본 폴더를 지정하세요.",
"Invalid path selected" : "잘못된 경로가 선택됨",
"Unknown error" : "알 수 없는 오류",
- "Open Sharing Details" : "공유 세부 사항 열기",
+ "Set default folder for accepted shares" : "허용한 공유의 기본 경로 설정",
+ "Reset" : "초기화",
+ "Reset folder to system default" : "폴더를 시스템 기본값으로 재설정",
+ "Share Expiration" : "공유 만료",
"group" : "그룹",
"conversation" : "대화",
"remote" : "원격",
"remote group" : "원격 그룹",
"guest" : "손님",
+ "by {initiator}" : "{initiator}님에 의함",
"Shared with the group {user} by {owner}" : "{owner}님이 {user} 그룹에게 공유함",
"Shared with the conversation {user} by {owner}" : "{owner}님이 {user} 대화방과 함께 공유함",
"Shared with {user} by {owner}" : "{owner}님이 {user}님에게 공유함",
+ "Open Sharing Details" : "공유 세부 사항 열기",
"Added by {initiator}" : "{initiator}님에 의해 추가됨",
"Via “{folder}”" : "“{folder}”(을)를 통하여",
"Unshare" : "공유 해제",
- "Internal link" : "내부 링크",
"Cannot copy, please copy the link manually" : "복사할 수 없습니다, 링크를 수동으로 복사하세요.",
- "Copy internal link to clipboard" : "내부 링크를 클립보드에 복사",
- "Link copied" : "링크 복사됨",
+ "Copy internal link" : "내부 링크 복사",
+ "Internal link" : "내부 링크",
+ "{shareWith} by {initiator}" : "{initiator}님에 의해 {shareWith}님에게",
+ "Shared via link by {initiator}" : "{initiator}님이 링크를 통해 공유함",
+ "File request ({label})" : "파일 요청 ({label})",
+ "Mail share ({label})" : "메일 공유 ({label})",
+ "Share link ({label})" : "링크 공유 ({label})",
+ "Mail share" : "메일 공유",
+ "Share link ({index})" : "링크 공유 ({index})",
+ "Create public link" : "공개 링크 만들기",
+ "Actions for \"{title}\"" : "\"{title}\"에 대한 작업",
+ "Error, please enter proper password and/or expiration date" : "오류, 적절한 암호와 만료일을 입력하세요.",
+ "Link share created" : "링크 공유가 만들어짐",
+ "Error while creating the share" : "공유를 만드는 중 오류 발생",
"Please enter the following required information before creating the share" : "공유를 하기 전에 다음 필수 정보를 입력하세요.",
"Password protection (enforced)" : "암호 보호 (강제됨)",
"Password protection" : "암호 보호",
"Enter a password" : "Enter a password",
- "Expiration date (enforced)" : "만료일 (강제됨)",
- "Enter a date" : "날짜 입력",
+ "Enable link expiration (enforced)" : "링크 만료일 사용 (강제됨)",
+ "Enable link expiration" : "링크 만료일 사용",
+ "Enter expiration date (enforced)" : "만료일 입력 (강제됨)",
+ "Enter expiration date" : "만료일 입력",
"Create share" : "공유 만들기",
- "Cancel" : "취소",
"Customize link" : "링크 맞춤설정",
"Generate QR code" : "QR코드 생성",
"Add another link" : "다른 링크 추가",
"Create a new share link" : "새로운 공유 링크 생성",
- "Shared via link by {initiator}" : "{initiator}님이 링크를 통해 공유함",
- "Mail share ({label})" : "메일 공유 ({label})",
- "Share link ({label})" : "링크 공유 ({label})",
- "Share link ({index})" : "링크 공유 ({index})",
- "Share link" : "링크 공유",
- "Actions for \"{title}\"" : "\"{title}\"에 대한 작업",
- "Copy public link of \"{title}\" to clipboard" : "\"{title}\"의 공개 링크를 클립보드에 복사",
- "Error, please enter proper password and/or expiration date" : "오류, 적절한 암호와 만료일을 입력하세요.",
- "Link share created" : "링크 공유가 만들어짐",
- "Error while creating the share" : "공유를 만드는 중 오류 발생",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "빠른 공유 옵션, 현재 \"{selectedOption}\" 선택됨",
"View only" : "읽기 전용",
- "Can edit" : "수정할 수 있음",
- "File drop" : "업로드만 허용",
+ "Can edit" : "편집 허용",
"Custom permissions" : "사용자 지정 권한",
- "Search for share recipients" : "공유 받는이 검색",
- "No recommendations. Start typing." : "추천 없음. 타이핑을 시작하십시오",
"Resharing is not allowed" : "다시 공유할 수 없음",
"Name or email …" : "이름 또는 이메일 …",
"Name, email, or Federated Cloud ID …" : "이름, 이메일, 또는 연합 클라우드 ID …",
"Searching …" : "검색 ...",
"No elements found." : "요소를 찾을 수 없습니다.",
- "Search globally" : "전역 검색",
+ "Search everywhere" : "모든 곳에서 찾기",
"Guest" : "손님",
"Group" : "그룹",
"Email" : "이메일",
+ "Team" : "팀",
"Talk conversation" : "토크 대화",
"Deck board" : "Deck 보드",
+ "ScienceMesh" : "ScienceMesh",
"on {server}" : "{server}에서",
+ "Enter external recipients" : "외부 수신자 입력",
+ "Search for internal recipients" : "내부 수신자 검색",
+ "Note from" : "다음 사용자가 메모함:",
+ "Note:" : "메모:",
+ "File drop" : "파일 업로드 전용",
+ "Upload files to {foldername}." : "{foldername}에 파일을 업로드하세요.",
+ "By uploading files, you agree to the terms of service." : "파일을 업로드하면 이용 약관에 동의하는 것을 의미합니다.",
+ "View terms of service" : "이용 약관 보기",
+ "Terms of service" : "이용 약관",
+ "Share with email {email}" : "{email} 이메일에 공유",
+ "Share with group" : "그룹과 공유",
+ "Share in conversation" : "대화방과 공유",
+ "Share with {user} on remote server {server}" : "원격 서버 {server}의 {user}님에게 공유",
+ "Share with remote group" : "원격 그룹과 공유",
+ "Share with guest" : "손님과 공유",
+ "Update share" : "공유 업데이트",
+ "Save share" : "공유 저장",
+ "Read" : "읽기",
+ "Create" : "생성",
+ "Edit" : "편집",
+ "Share" : "공유",
+ "Delete" : "삭제",
+ "Password field cannot be empty" : "암호 필드는 비워둘 수 없습니다.",
+ "Replace current password" : "현재 암호 변경",
+ "Failed to generate a new token" : "새 토큰 생성 실패",
"Allow upload and editing" : "업로드와 수정 허용",
"Allow editing" : "수정 허용",
"Upload only" : "업로드만",
"Advanced settings" : "고급 설정",
"Share label" : "공유 이름",
+ "Share link token" : "공유 링크 토큰",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "공개 공유 링크 토큰을 기억하기 쉬운 것으로 설정하거나 새 토큰을 생성하세요. 민감한 정보가 포함된 공유에는 추측 가능한 토큰을 사용하지 않는 것이 좋습니다.",
+ "Generating…" : "생성 중…",
+ "Generate new token" : "새 토큰 생성",
"Set password" : "비밀번호 설정",
- "Password" : "암호",
"Password expires {passwordExpirationTime}" : "암호가 {passwordExpirationTime}에 만료됨",
"Password expired" : "암호 만료됨",
"Video verification" : "화상 인증",
+ "Expiration date (enforced)" : "만료일 (강제됨)",
"Set expiration date" : "만료기한 설정",
- "Expiration date" : "만료 날짜",
"Hide download" : "다운로드 숨기기",
- "Allow download" : "다운로드 허용",
+ "Allow download and sync" : "다운로드와 동기화 허용",
"Note to recipient" : "받는이에게 메모",
"Enter a note for the share recipient" : "받는이를 위한 메모 입력",
- "Read" : "읽기",
- "Create" : "생성",
- "Edit" : "편집",
- "Share" : "공유",
+ "Show files in grid view" : "파일을 바둑판식 보기로 표시",
"Delete share" : "공유 삭제",
- "Share with {userName}" : "{userName}와(과) 공유",
- "Share with group" : "그룹과 공유",
- "Share in conversation" : "대화방과 공유",
- "Share with remote group" : "원격 그룹과 공유",
- "Share with guest" : "손님과 공유",
- "Update share" : "공유 업데이트",
- "Save share" : "공유 저장",
- "Others with access" : "접근할 수 있는 다른 사용자",
+ "Others with access" : "액세스 권한이 있는 사용자",
"No other accounts with access found" : "접근할 수 있는 다른 계정이 없음",
"Toggle list of others with access to this directory" : "이 경로에 접근할 수 있는 사용자들의 목록 전환",
"Toggle list of others with access to this file" : "이 파일에 접근할 수 있는 사용자들의 목록 전환",
"Unable to fetch inherited shares" : "상속된 공유를 가져올 수 없음",
+ "Link shares" : "링크 공유",
+ "Shares" : "공유",
"Unable to load the shares list" : "공유 목록을 불러올 수 없음",
"Expires {relativetime}" : "{relativetime}에 만료",
"this share just expired." : "이 공유는 방금 만료되었습니다.",
"Shared with you by {owner}" : "{owner}님이 당신에게 공유함",
+ "Internal shares" : "내부 공유",
+ "Internal shares explanation" : "내부 공유 설명",
+ "External shares" : "외부 공유",
+ "External shares explanation" : "외부 공유 설명",
+ "Additional shares" : "부가적 공유",
+ "Additional shares explanation" : "부가적 공유 설명",
+ "Link to a file" : "파일로 향한 링크",
"_Accept share_::_Accept shares_" : ["공유 수락"],
"Open in Files" : "파일에서 열기",
"_Reject share_::_Reject shares_" : ["공유 거절"],
"_Restore share_::_Restore shares_" : ["공유 복원"],
"Shared" : "공유됨",
+ "Shared by {ownerDisplayName}" : "{ownerDisplayName}님이 공유함",
"Shared multiple times with different people" : "여러 사용자와 공유됨",
- "Shared by {ownerDisplayName}" : "{ownerDisplayName}이 변경함",
- "Show sharing options" : "공유 옵션 표시",
- "Link to a file" : "파일로 향한 링크",
- "Error creating the share: {errorMessage}" : "공유를 만드는 중 오류 발생: {errorMessage}",
- "Error creating the share" : "공유를 만드는 중 오류 발생",
- "Error updating the share: {errorMessage}" : "공유를 업데이트 하는 중 오류 발생: {errorMessage}",
- "Error updating the share" : "공유를 업데이트 하는 중 오류 발생",
- "File \"{path}\" has been unshared" : "\"{path}\" 파일의 공유가 취소됨",
- "Folder \"{path}\" has been unshared" : "\"{path}\" 폴더의 공유가 취소됨",
- "Share {propertyName} saved" : "{propertyName} 공유 저장됨",
- "Shared by" : "공유한 사용자:",
- "Shared with" : "다음 사용자와 공유함",
- "Password created successfully" : "암호가 성공적으로 생성됨",
- "Error generating password from password policy" : "암호 정책에서 암호 생성 중에 오류 발생",
- "Shared with you and the group {group} by {owner}" : "{owner}님이 당신 및 {group} 그룹에게 공유함",
- "Shared with you and {circle} by {owner}" : "{owner}님이 여러분과 {circle}에게 공유함",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner}님이 여러분과 대화 {conversation}와(과) 공유함",
- "Shared with you in a conversation by {owner}" : "{owner}님이 대화에서 당신에게 공유함",
- "Shares" : "공유",
+ "Shared with others" : "다른 사람과 공유됨",
+ "Create file request" : "파일 요청 생성",
+ "Upload files to {foldername}" : "{foldername}에 파일 업로드",
+ "Public file share" : "공개 파일 공유",
+ "Publicly shared file." : "공개적으로 파일을 공유함.",
+ "No file" : "파일 없음",
+ "The file shared with you will show up here" : "당신과 공유된 파일이 이곳에 나타납니다.",
+ "Public share" : "공개 공유",
+ "Publicly shared files." : "공개적으로 파일을 공유함.",
+ "No files" : "파일 없음",
+ "Files and folders shared with you will show up here" : "당신과 공유된 파일 및 폴더가 이곳에 나타납니다.",
"Overview of shared files." : "공유된 파일들의 개요",
"No shares" : "공유 없음",
"Files and folders you shared or have been shared with you will show up here" : "당신이 공유하거나 당신에게 공유된 파일과 폴더가 이곳에 나타납니다.",
@@ -246,7 +332,6 @@
"List of files that are shared with you." : "당신에게 공유된 파일들의 목록",
"Nothing shared with you yet" : "나와 공유된 항목 없음",
"Files and folders others shared with you will show up here" : "다른 사람이 당신에게 공유한 파일과 폴더가 이곳에 나타납니다.",
- "Shared with others" : "다른 사람과 공유됨",
"List of files that you shared with others." : "당신이 다른 사람에게 공유한 파일들의 목록",
"Nothing shared yet" : "공유된 항목 없음",
"Files and folders you shared will show up here" : "당신이 공유한 파일과 폴더가 이곳에 나타납니다.",
@@ -254,6 +339,10 @@
"List of files that are shared by link." : "링크를 통해 공유된 파일들의 목록",
"No shared links" : "공유된 링크 없음",
"Files and folders you shared by link will show up here" : "링크를 통해 공유된 파일과 폴더들이 여기에 표시됩니다.",
+ "File requests" : "파일 요청",
+ "List of file requests." : "파일 요청 목록",
+ "No file requests" : "파일 요청 없음",
+ "File requests you have created will show up here" : "당신이 생성한 파일 요청이 이곳에 나타납니다.",
"Deleted shares" : "삭제된 공유",
"List of shares you left." : "당신이 떠난 공유들의 목록",
"No deleted shares" : "삭제된 공유 없음",
@@ -262,49 +351,75 @@
"List of unapproved shares." : "수락하지 않은 공유들의 목록",
"No pending shares" : "보류 중인 공유 없음",
"Shares you have received but not approved will show up here" : "받았지만 수락하지 않은 공유들이 이곳에 나타납니다.",
+ "Error updating the share: {errorMessage}" : "공유를 업데이트 하는 중 오류 발생: {errorMessage}",
+ "Error updating the share" : "공유를 업데이트 하는 중 오류 발생",
+ "File \"{path}\" has been unshared" : "\"{path}\" 파일의 공유가 취소됨",
+ "Folder \"{path}\" has been unshared" : "\"{path}\" 폴더의 공유가 취소됨",
+ "Could not update share" : "공유를 갱신할 수 없음",
+ "Share saved" : "공유 저장됨",
+ "Share expiry date saved" : "공유 만료일 저장됨",
+ "Share hide-download state saved" : "공유 다운로드 숨기기 상태 저장됨",
+ "Share label saved" : "공유 이름 저장됨",
+ "Share note for recipient saved" : "받는이를 위한 공유 메모 저장됨",
+ "Share password saved" : "공유 암호 저장됨",
+ "Share permissions saved" : "공유 권한 저장됨",
+ "Upload files to {folder}" : "{folder}에 파일 업로드",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName}님이 당신에게 폴더를 공유했습니다.",
+ "Shared by" : "공유한 사용자:",
+ "Shared with" : "다음 사용자와 공유함",
+ "Password created successfully" : "암호가 성공적으로 생성됨",
+ "Error generating password from password policy" : "암호 정책에서 암호 생성 중에 오류 발생",
+ "Shared with you and the group {group} by {owner}" : "{owner}님이 당신 및 {group} 그룹에게 공유함",
+ "Shared with you and {circle} by {owner}" : "{owner}님이 여러분과 {circle}에게 공유함",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner}님이 여러분과 대화 {conversation}와(과) 공유함",
+ "Shared with you in a conversation by {owner}" : "{owner}님이 대화에서 당신에게 공유함",
+ "Share not found" : "공유를 찾을 수 없음",
+ "Back to %s" : "%s(으)로 돌아가기",
+ "Add to your Nextcloud" : "내 Nextcloud에 추가",
+ "Waiting…" : "대기중...",
+ "error" : "오류",
+ "finished" : "완료됨",
+ "This will stop your current uploads." : "이것은 현재 업로드를 중단시킬 것입니다.",
+ "Move or copy" : "이동이나 복사",
+ "You can upload into this folder" : "이 폴더에 업로드할 수 있습니다",
+ "Show list view" : "목록 보기",
+ "Show grid view" : "바둑판식 보기",
+ "No compatible server found at {remote}" : "{remote}에서 호환 서버를 찾을 수 없음",
+ "Invalid server URL" : "잘못된 서버 URL",
+ "Failed to add the public link to your Nextcloud" : "Nextcloud에 공개 링크를 추가할 수 없음",
+ "You are not allowed to edit link shares that you don't own" : "당신이 것이 아닌 링크 공유를 편집할 권한이 없습니다.",
+ "Download all files" : "모든 파일 다운로드",
+ "Link copied to clipboard" : "링크가 클립보드로 복사됨",
+ "_1 email address already added_::_{count} email addresses already added_" : ["{count}개 이메일 주소가 이미 추가됨"],
+ "_1 email address added_::_{count} email addresses added_" : ["{count}개 이메일 주소 추가함"],
+ "Copy to clipboard" : "클립보드로 복사",
+ "Copy internal link to clipboard" : "내부 링크를 클립보드에 복사",
+ "Only works for people with access to this folder" : "액세스 권한이 있는 사용자에게만 가능합니다",
+ "Only works for people with access to this file" : "이 파일에 접근할 수 있는 사용자에게만 작동",
+ "Copy public link of \"{title}\" to clipboard" : "\"{title}\"의 공개 링크를 클립보드에 복사",
+ "Search globally" : "전역 검색",
+ "Search for share recipients" : "공유 대상 검색",
+ "No recommendations. Start typing." : "추천 없음. 타이핑을 시작하십시오",
+ "To upload files, you need to provide your name first." : "파일을 업로드하려면 먼저 당신의 이름을 알려주세요.",
+ "Enter your name" : "이름을 입력하세요",
+ "Submit name" : "이름 제출",
+ "Share with {userName}" : "{userName}와(과) 공유",
+ "Show sharing options" : "공유 옵션 표시",
"Share note" : "공유 노트",
"Upload files to %s" : "%s에 파일 업로드",
+ "%s shared a folder with you." : "%s님이 당신과 폴더를 공유했습니다",
"Note" : "노트",
"Select or drop files" : "파일을 선택하거나 끌어다 놓기",
"Uploading files" : "파일 업로드 중",
"Uploaded files:" : "업로드한 파일:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "파일을 업로드하면 %1$s이용 약관%2$s에 동의하는 것을 의미합니다.",
- "Add to your Nextcloud" : "내 Nextcloud에 추가",
- "Files and folders others share with you will show up here" : "다른 사람이 공유한 파일과 폴더가 여기에 나타납니다",
- "Files and folders you share will show up here" : "내가 공유하는 파일과 폴더가 여기에 나타납니다",
- "Files and folders you share by link will show up here" : "내가 링크로 공유하는 파일과 폴더가 여기에 나타납니다",
- "Shares you deleted will show up here" : "삭제한 공유 목록이 여기에 표시됩니다.",
- "Shares you have received but not confirmed will show up here" : "공유를 받았지만 확인하지 않은 경우 이곳에 표시됩니다.",
- "Shares will show up here" : "공유 목록이 여기에 표시됩니다.",
- "Restore" : "Restore",
- "Something happened. Unable to restore the share." : "무언가 잘못되었습니다. 공유를 복원할 수 없습니다.",
- "Something happened. Unable to accept the share." : "공유를 수락할 수 없습니다.",
- "Something happened. Unable to reject the share." : "공유를 거절할 수 없습니다.",
- "No expiration date set" : "만료 날짜가 설정되지 않았음",
- "Please specify a valid user" : "올바른 사용자를 지정하십시오",
- "Please specify a valid federated user ID" : "유효한 연합 사용자 ID를 지정하세요.",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "이 앱을 사용하여 Nextcloud 내에서 사용자간 파일을 공유할 수 있습니다. 앱을 활성화하면 관리자가 파일 공유를 허용할 그룹을 지정할 수 있습니다. 공유가 허용된 사용자는 Nextcloud 내의 다른 사용자나 그룹과 파일이나 폴더를 공유할 수 있습니다. 추가로 관리자가 링크 공유 기능을 활성화하면 Nextcloud 외부 사용자와 파일을 공유할 수 있는 외부 링크가 생성됩니다. 관리자는 암호나 만료 날짜 사용을 강제할 수 있으며, 공유 링크로 서버간 공유 기능이나 모바일 장치에서 공유를 활성화할 수 있습니다.\n공유 기능을 비활성화하면 서버에 있는 모든 공유된 파일이나 폴더를 삭제하며, 동기화 클라이언트나 모바일 앱에도 적용됩니다. 자세한 정보를 보려면 Nextcloud 문서를 참조하십시오.",
- "Accept user and group shares by default" : "사용자 공유나 그룹 공유를 기본으로 허용함",
- "Read only" : "Read only",
- "File drop (upload only)" : "업로드만 허용",
- "Upload" : "업로드",
- "Bundled permissions" : "번들 권한",
- "Only works for users with access to this folder" : "이 폴더의 접근 권한이 있는 사용자만 사용 가능",
- "Only works for users with access to this file" : "이 파일에 접근할 수 있는 사용자에게만 작동",
- "Circle" : "서클",
- "Update" : "업데이트",
- "Share with " : "공유 받는이:",
- "No other users with access found" : "접근할 수 있는 다른 사용자가 없음",
- "No entries found in this folder" : "이 폴더에 항목 없음",
"Name" : "이름",
- "Share time" : "공유 시간",
- "Sorry, this link does not seem to work anymore." : "죄송합니다, 이 링크는 더 이상 작동하지 않습니다.",
- "Reasons might be:" : "이유는 다음과 같을 수 있습니다:",
- "the item was removed" : "항목이 삭제됨",
- "the link expired" : "링크가 만료됨",
- "sharing is disabled" : "공유가 비활성화됨",
- "For more info, please ask the person who sent this link." : "자세한 정보는 링크를 보낸 사람에게 문의하십시오.",
- "Share with remote" : "원격지에 공유",
- "Share with" : "다음과 공유"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "이 방법을 사용하여 조직 내 개인 또는 팀과 파일을 공유하세요. 수신자가 이미 공유 폴더에 접근할 수 있지만 위치를 찾을 수 없는 경우, 쉽게 접근할 수 있도록 내부 공유 링크를 보낼 수 있습니다.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "이 방법을 사용하여 이 조직 외부의 개인이나 조직과 파일을 공유하세요. 파일과 폴더는 공개 공유 링크와 이메일 주소를 통해 공유할 수 있습니다. 다른 인스턴스에 소속된 다른 Nextcloud 계정과도 연합 클라우드 ID를 사용하여 공유할 수 있습니다.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "내부 또는 외부 공유에 포함되지 않은 공유입니다. 앱이나 다른 소스에서 공유된 내용이 여기에 해당할 수 있습니다.",
+ "Share with accounts, teams, federated cloud id" : "계정, 팀 및 연합 클라우드 ID와 공유",
+ "Share with accounts and teams" : "계정 및 팀과 공유",
+ "Email, federated cloud id" : "이메일, 연합 클라우드 ID",
+ "Filename must not be empty." : "파일 이름을 비울 수 없습니다."
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/lb.js b/apps/files_sharing/l10n/lb.js
deleted file mode 100644
index 0679858d818..00000000000
--- a/apps/files_sharing/l10n/lb.js
+++ /dev/null
@@ -1,16 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Nothing shared yet" : "Nach näischt gedeelt",
- "No shared links" : "Keng gedeelte Linken",
- "Cancel" : "Ofbriechen",
- "Shared by" : "Gedeelt vun",
- "Sharing" : "Gedeelt",
- "The password is wrong. Try again." : "Den Passwuert ass incorrect. Probeier ed nach eng keier.",
- "Password" : "Passwuert",
- "No entries found in this folder" : "Keng Elementer an dësem Dossier fonnt",
- "Name" : "Numm",
- "Download" : "Download",
- "Direct link" : "Direkte Link"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/lb.json b/apps/files_sharing/l10n/lb.json
deleted file mode 100644
index 9355d70a6fb..00000000000
--- a/apps/files_sharing/l10n/lb.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{ "translations": {
- "Nothing shared yet" : "Nach näischt gedeelt",
- "No shared links" : "Keng gedeelte Linken",
- "Cancel" : "Ofbriechen",
- "Shared by" : "Gedeelt vun",
- "Sharing" : "Gedeelt",
- "The password is wrong. Try again." : "Den Passwuert ass incorrect. Probeier ed nach eng keier.",
- "Password" : "Passwuert",
- "No entries found in this folder" : "Keng Elementer an dësem Dossier fonnt",
- "Name" : "Numm",
- "Download" : "Download",
- "Direct link" : "Direkte Link"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/lo.js b/apps/files_sharing/l10n/lo.js
deleted file mode 100644
index c2ef0b8138f..00000000000
--- a/apps/files_sharing/l10n/lo.js
+++ /dev/null
@@ -1,6 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Sharing" : "ການແບ່ງປັນ"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/lo.json b/apps/files_sharing/l10n/lo.json
deleted file mode 100644
index e6d885c8e7f..00000000000
--- a/apps/files_sharing/l10n/lo.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{ "translations": {
- "Sharing" : "ການແບ່ງປັນ"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/lt_LT.js b/apps/files_sharing/l10n/lt_LT.js
index affda9640e0..1ebf8d8c787 100644
--- a/apps/files_sharing/l10n/lt_LT.js
+++ b/apps/files_sharing/l10n/lt_LT.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Laukiama…",
- "error" : "klaida",
- "finished" : "pabaigta",
- "This will stop your current uploads." : "Tai sustabdys dabartinius įkėlimus.",
- "Move or copy" : "Perkelti ar kopijuoti",
- "Download" : "Atsisiųsti",
- "Delete" : "Ištrinti",
- "You can upload into this folder" : "Galite įkelti į šį aplanką",
- "Terms of service" : "Naudojimosi sąlygos",
- "Show list view" : "Rodyti sąrašo rodinį",
- "Show grid view" : "Rodyti tinklelio rodinį",
- "No compatible server found at {remote}" : "Nerasta jokio suderinamo serverio ties {remote}",
- "Invalid server URL" : "Neteisingas serverio URL adresas",
- "Failed to add the public link to your Nextcloud" : "Nepavyko pridėti viešosios nuorodos į jūsų Nextcloud",
"File shares" : "Bendrinami failai",
"Downloaded via public link" : "Atsisiųstas per viešąją nuorodą",
"Downloaded by {email}" : "Atsisiuntė {email}",
@@ -70,35 +56,37 @@ OC.L10N.register(
"Share for file {file} expired" : "Failo {file} viešinys nebegalioja",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Buvo <strong>atsisiųstas</strong> el. paštu ar viešąja nuoroda bendrinamas failas ar aplankas",
"A file or folder was shared from <strong>another server</strong>" : "Failas ar aplankas buvo pradėtas bendrinti iš <strong>kito serverio</strong>",
- "Files" : "Failai",
+ "Sharing" : "Bendrinimas",
"A file or folder has been <strong>shared</strong>" : "Failas ar aplankas <strong>pradėtas bendrinti</strong>",
- "Shared link" : "Bendrinimo nuoroda",
+ "Shared link" : "Bendrinama nuoroda",
"Wrong share ID, share does not exist" : "Neteisingas viešinio ID, viešinio nėra",
"Could not delete share" : "Nepavyko ištrinti viešinio",
"Please specify a file or folder path" : "Nurodykite kelią iki duomenų",
"Wrong path, file/folder does not exist" : "Neteisingas kelias, failo/aplanko nėra",
"Could not create share" : "Nepavyko sukurti viešinio",
- "Invalid permissions" : "Neteisingi leidimai",
- "Invalid date, date format must be YYYY-MM-DD" : "Netinkamas datos formavimas. Privaloma: YYYY-MM-DD",
+ "Please specify a valid account to share with" : "Nurodykite tinkamą paskyrą, su kuria bendrinti",
"Group sharing is disabled by the administrator" : "Administratorius išjungė bendrinimą su grupėmis",
"Please specify a valid group" : "Nurodykite teisingą grupę",
"Public link sharing is disabled by the administrator" : "Administratorius išjungė bendrinimą per viešąsias nuorodas",
- "Public upload disabled by the administrator" : "Įkėlimas viešam naudojimui yra išjungtas",
- "Public upload is only possible for publicly shared folders" : "Duomenų įkėlimas viešam naudojimui galimas tik į viešai dalinamus aplankus",
+ "Please specify a valid email address" : "Nurodykite tinkamą el. pašto adresą",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nepavyko išsiųsti slaptažodžio bendrinimui %s panaudojant Nextcloud Talk, kadangi Nextcloud Talk neįjungtas ",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Bendrinimas %1$s nepavyko, kadangi sistema nepalaiko bendrinimų šio tipo %2$s",
- "You cannot share to a Circle if the app is not enabled" : "Negalite bendrinti su ratu, jeigu programėlė nėra įjungta",
- "Please specify a valid circle" : "Pasirinkite naudotojų ratą",
+ "Please specify a valid team" : "Nurodykite tinkamą komandą",
"Sharing %s failed because the back end does not support room shares" : "Bendrinimas %s nepavyko, kadangi sistema nepalaiko kambario bendrinimo",
"Unknown share type" : "Nežinomas viešinio tipas",
"Not a directory" : "Nėra katalogas",
"Could not lock node" : "Nepavyko užrakinti mazgo",
+ "Public upload is only possible for publicly shared folders" : "Duomenų įkėlimas viešam naudojimui galimas tik į viešai dalinamus aplankus",
+ "Public upload disabled by the administrator" : "Įkėlimas viešam naudojimui yra išjungtas",
"Could not lock path" : "Nepavyko užrakinti kelio",
"Wrong or no update parameter given" : "Neperduoti atnaujinimo parametrai",
+ "Wrong password" : "Neteisingas slaptažodis",
+ "Failed to generate a unique token" : "Nepavyko sugeneruoti išskirtinio prieigos rakto",
+ "This share does not exist or is no longer available" : "Šio viešinio nebėra arba jis daugiau nebeprieinamas",
"shared by %s" : "bendrina %s",
- "Download all files" : "Atsisiųsti visus failus ",
- "Direct link" : "Tiesioginė nuoroda",
+ "Download" : "Atsisiųsti",
"Add to your %s" : "Pridėti į jūsų %s",
+ "Direct link" : "Tiesioginė nuoroda",
"Share API is disabled" : "Bendrinimo API yra išjungtas",
"File sharing" : "Failų pasidalinimas",
"Share will expire tomorrow" : "Bendrinimo laikas baigiasi rytoj.",
@@ -107,14 +95,44 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Jūs gavote bendrinimą {share} prie grupės {group}, kuriuo pasidalino {user}",
"Accept" : "Priimti",
"Decline" : "Atmesti",
- "Sharing" : "Bendrinimas",
+ "Open \"%s\"" : "Atverti „%s“",
+ "People" : "Žmonės",
+ "Filter accounts" : "Filtruoti paskyras",
+ "Expiration date" : "Pabaigos data",
+ "Select a date" : "Pasirinkti datą",
+ "Set a password" : "Nustatyti slaptažodį",
+ "Password" : "Slaptažodis",
+ "Generate a new password" : "Generuoti naują slaptažodį",
+ "Automatically copying failed, please copy the share link manually" : "Nepavyko automatiškai nukopijuoti, nukopijuokite nuorodą rankiniu būdu",
+ "Link copied" : "Nuoroda nukopijuota",
+ "Email already added" : "El. paštas jau pridėtas",
+ "Invalid email address" : "Neteisingas el. pašto adresas",
+ "_{count} email address already added_::_{count} email addresses already added_" : ["Jau pridėtas {count} el. pašto adresas","Jau pridėti {count} el. pašto adresai","Jau pridėta {count} el. pašto adresų","Jau pridėtas {count} el. pašto adresas"],
+ "_{count} email address added_::_{count} email addresses added_" : ["Pridėtas {count} el. pašto adresas","Pridėti {count} el. pašto adresai","Pridėta {count} el. pašto adresų","Pridėtas {count} el. pašto adresas"],
+ "Share link" : "Viešinio nuoroda",
+ "Copy" : "Kopijuoti",
+ "Send link via email" : "Siųsti nuorodą el. paštu",
+ "Enter an email address or paste a list" : "Įveskite el. pašto adresą arba įdėkite sąrašą",
+ "Remove email" : "Šalinti el. paštą",
+ "Select" : "Žymėti",
+ "Birthday party photos, History assignment…" : "Gimtadienio nuotraukos, istorijos užduotis…",
+ "Revert to default" : "Sugrąžinti į numatytąjį",
+ "Close" : "Užverti",
+ "_Send email and close_::_Send {count} emails and close_" : ["Išsiųsti el. laišką ir užverti","Išsiųsti {count} el. laiškus ir užverti","Išsiųsti {count} el. laiškų ir užverti","Išsiųsti {count} el. laišką ir užverti"],
+ "Error creating the share: {errorMessage}" : "Klaida kuriant viešinį: {errorMessage}",
+ "Error creating the share" : "Klaida kuriant viešinį",
+ "Error sending emails: {errorMessage}" : "Klaida siunčiant el. laiškus: {errorMessage}",
+ "Error sending emails" : "Klaida siunčiant el. laiškus",
+ "Previous step" : "Ankstesnis žingsnis",
+ "Cancel" : "Atsisakyti",
+ "Continue" : "Tęsti",
"Error while toggling options" : "Klaida perjungiant parinktis",
- "Set default folder for accepted shares" : "Nustatykite numatytąjį priimtų viešinių aplanką",
- "Reset" : "Atstatyti",
- "Reset folder to system default" : "Atstatyti aplanką į sistemos numatytąjį",
"Choose a default folder for accepted shares" : "Pasirinkite numatytąjį aplanką priimtiems viešiniams",
"Invalid path selected" : "Pasirinktas neteisingas kelias",
"Unknown error" : "Nežinoma klaida",
+ "Set default folder for accepted shares" : "Nustatykite numatytąjį priimtų viešinių aplanką",
+ "Reset" : "Atstatyti",
+ "Reset folder to system default" : "Atstatyti aplanką į sistemos numatytąjį",
"group" : "grupė",
"conversation" : "pokalbis",
"remote" : "nuotolinis",
@@ -125,128 +143,148 @@ OC.L10N.register(
"Added by {initiator}" : "Pridėjo {initiator}",
"Via “{folder}”" : "Per \"{folder}\"",
"Unshare" : "Nustoti bendrinti",
- "Internal link" : "Vidinė nuoroda",
"Cannot copy, please copy the link manually" : "Nepavyksta nukopijuoti, nukopijuokite nuorodą rankiniu būdu",
- "Copy internal link to clipboard" : "Kopijuoti vidinę nuorodą į iškarpinę",
- "Link copied" : "Nuoroda nukopijuota",
+ "Copy internal link" : "Kopijuoti vidinę nuorodą",
+ "Internal link" : "Vidinė nuoroda",
+ "Shared via link by {initiator}" : "{initiator} bendrina per nuorodą",
+ "Share link ({label})" : "Viešinio nuoroda ({label})",
+ "Create public link" : "Sukurti viešąją nuorodą",
+ "Error, please enter proper password and/or expiration date" : "Įvyko klaida, įveskite teisingą slaptažodį ir/ar galiojimo datą",
+ "Error while creating the share" : "Klaida kuriant viešinį",
"Please enter the following required information before creating the share" : "Prieš sukurdami viešinį, įveskite šią reikiamą informaciją",
"Password protection (enforced)" : "Apsauga slaptažodžiu (priverstinė)",
"Password protection" : "Apsauga slaptažodžiu",
"Enter a password" : "Enter a password",
- "Expiration date (enforced)" : "Galiojimo pabaigos data (nustatyta)",
- "Enter a date" : "Įveskite datą",
"Create share" : "Sukurti viešinį",
- "Cancel" : "Atsisakyti",
+ "Customize link" : "Tinkinti nuorodą",
+ "Generate QR code" : "Generuoti QR kodą",
"Add another link" : "Pridėti kitą nuorodą",
- "Create a new share link" : "Sukurti naują bendrinimo nuorodą",
- "Shared via link by {initiator}" : "{initiator} bendrina per nuorodą",
- "Share link ({label})" : "Bendrinimo nuoroda ({label})",
- "Share link" : "Bendrinimo nuoroda",
- "Error, please enter proper password and/or expiration date" : "Įvyko klaida, įveskite teisingą slaptažodį ir/ar galiojimo datą",
+ "Create a new share link" : "Sukurti naują viešinio nuorodą",
"View only" : "Tik peržiūrėti",
"Can edit" : "Gali taisyti",
- "No recommendations. Start typing." : "Rekomendacijų nėra. Pradėkite rašyti.",
+ "Custom permissions" : "Tinkinti leidimai",
"Resharing is not allowed" : "Bendrinimas iš naujo yra neleidžiamas",
"Name or email …" : "Vardas ar el. paštas…",
"Name, email, or Federated Cloud ID …" : "Vardas, el. paštas ar federacinės debesijos ID…",
"Searching …" : "Ieškoma…",
"No elements found." : "Nerasta jokių elementų.",
- "Search globally" : "Ieškoti visur",
"Guest" : "Svečias",
"Group" : "Grupė",
"Email" : "El. paštas",
+ "Team" : "Komanda",
"on {server}" : "serveryje {server}",
+ "Note:" : "Pastaba:",
+ "File drop" : "Failų įkėlimas",
+ "Terms of service" : "Naudojimosi sąlygos",
+ "Share with email {email}" : "Bendrinti su el. pašto adresu {email}",
+ "Share with group" : "Bendrinti su grupe",
+ "Share in conversation" : "Bendrinti pokalbyje",
+ "Share with {user} on remote server {server}" : "Bendrinti su {user} nuotoliniame serveryje {server}",
+ "Share with remote group" : "Bendrinti su nuotoline grupe",
+ "Share with guest" : "Bendrinti su svečiu",
+ "Update share" : "Atnaujinti viešinį",
+ "Save share" : "Įrašyti viešinį",
+ "Read" : "Skaityti",
+ "Create" : "Sukurti",
+ "Edit" : "Taisyti",
+ "Share" : "Bendrinti",
+ "Delete" : "Ištrinti",
"Allow upload and editing" : "Leisti įkelti ir redaguoti",
"Allow editing" : "Leisti redaguoti",
"Advanced settings" : "Išplėstiniai nustatymai",
"Share label" : "Viešinio etiketė",
- "Password" : "Slaptažodis",
+ "Generating…" : "Generuojama…",
+ "Generate new token" : "Generuoti naują prieigos raktą",
+ "Set password" : "Nustatyti slaptažodį",
"Password expires {passwordExpirationTime}" : "Slaptažodis galioja iki {passwordExpirationTime}",
"Password expired" : "Slaptažodis nebegalioja",
"Video verification" : "Video patikrinimas",
+ "Expiration date (enforced)" : "Galiojimo pabaigos data (nustatyta)",
"Set expiration date" : "Nustatyti galiojimo pabaigos datą",
- "Expiration date" : "Pabaigos data",
"Hide download" : "Slėpti atsisiuntimą",
- "Allow download" : "Leisti atsisiųsti",
"Note to recipient" : "Pastaba gavėjui",
"Enter a note for the share recipient" : "Įrašykite pranešimą bendrinimo gavėjui",
- "Read" : "Skaityti",
- "Create" : "Sukurti",
- "Edit" : "Taisyti",
- "Share" : "Bendrinti",
"Delete share" : "Ištrinti viešinį",
"Others with access" : "Kiti asmenys, turintys prieigą",
+ "No other accounts with access found" : "Nerasta jokių kitų paskyrų, turinčių prieigą",
"Toggle list of others with access to this directory" : "Perjungti sąrašą kitų asmenų, turinčių prieigą prie šio katalogo",
"Toggle list of others with access to this file" : "Perjungti sąrašą kitų asmenų, turinčių prieigą prie šio failo",
"Unable to fetch inherited shares" : "Nepavyko gauti paveldėtų viešinių",
+ "Shares" : "Viešiniai",
"Unable to load the shares list" : "Nepavyko įkelti viešinių sąrašo",
"Expires {relativetime}" : "Galioja iki {relativetime}",
"this share just expired." : "šis viešinys ką tik nustojo galioti.",
"Shared with you by {owner}" : "{owner} pasidalino su jumis",
- "Shared" : "Bendrinama",
"Link to a file" : "Nuoroda į failą",
- "Error creating the share: {errorMessage}" : "Klaida kuriant viešinį: {errorMessage}",
- "Error creating the share" : "Klaida kuriant viešinį",
- "Error updating the share: {errorMessage}" : "Klaida atnaujinant viešinį: {errorMessage}",
- "Error updating the share" : "Klaida atnaujinant viešinį",
- "Shared by" : "Bendrina",
- "Shared with" : "Bendrinama su",
- "Password created successfully" : "Slaptažodis sėkmingai sukurtas",
- "Shared with you and the group {group} by {owner}" : "{owner} pradėjo bendrinti su jumis ir grupe {group}",
- "Shared with you and {circle} by {owner}" : "{owner} pradėjo bendrinti su jumis ir {circle}",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} pasidalino su jumis ir pokalbiu {conversation}",
- "Shared with you in a conversation by {owner}" : "{owner} pasidalino su jumis pokalbyje",
- "Shares" : "Viešiniai",
+ "Shared" : "Bendrinama",
+ "Shared by {ownerDisplayName}" : "Bendrina {ownerDisplayName}",
+ "Shared with others" : "Bendrinama su kitais",
+ "Public share" : "Viešasis viešinys",
+ "Overview of shared files." : "Bendrinamų failų apžvalga.",
"No shares" : "Nėra jokių viešinių",
"Shared with you" : "Bendrinama su jumis",
+ "List of files that are shared with you." : "Failų, kurie yra bendrinami su jumis, sąrašas.",
"Nothing shared with you yet" : "Kol kas su jumis nieko nėra bendrinama",
- "Shared with others" : "Bendrinama su kitais",
"Nothing shared yet" : "Kol kas nieko nebendrinama",
"Shared by link" : "Bendrinama pagal nuorodą",
- "No shared links" : "Nėra bendrinimo nuorodų",
+ "No shared links" : "Nėra bendrinamų nuorodų",
+ "Files and folders you shared by link will show up here" : "Čia bus rodomi failai ir aplankai, kuriuos bendrinate per nuorodą",
"Deleted shares" : "Ištrinti viešiniai",
"No deleted shares" : "Ištrintų viešinių nėra",
"Pending shares" : "Laukiantys viešiniai",
"No pending shares" : "Nėra jokių laukiančių viešinių",
+ "Error deleting the share" : "Klaida ištrinant bendrinimą",
+ "Error updating the share: {errorMessage}" : "Klaida atnaujinant viešinį: {errorMessage}",
+ "Error updating the share" : "Klaida atnaujinant viešinį",
+ "File \"{path}\" has been unshared" : "Failas „{path}“ nustotas bendrinti",
+ "Folder \"{path}\" has been unshared" : "Aplankas „{path}“ nustotas bendrinti",
+ "Could not update share" : "Nepavyko atnaujinti viešinio",
+ "Share saved" : "Viešinys įrašytas",
+ "Share label saved" : "Viešinio etiketė įrašyta",
+ "Share password saved" : "Viešinio slaptažodis įrašytas",
+ "Share permissions saved" : "Viešinio leidimai įrašyti",
+ "Shared by" : "Bendrina",
+ "Shared with" : "Bendrinama su",
+ "Password created successfully" : "Slaptažodis sėkmingai sukurtas",
+ "Shared with you and the group {group} by {owner}" : "{owner} pradėjo bendrinti su jumis ir grupe {group}",
+ "Shared with you and {circle} by {owner}" : "{owner} pradėjo bendrinti su jumis ir {circle}",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} pasidalino su jumis ir pokalbiu {conversation}",
+ "Shared with you in a conversation by {owner}" : "{owner} pasidalino su jumis pokalbyje",
+ "Share not found" : "Viešinys nerastas",
+ "Back to %s" : "Atgal į %s",
+ "Add to your Nextcloud" : "Pridėti į savo Nextcloud",
+ "Waiting…" : "Laukiama…",
+ "error" : "klaida",
+ "finished" : "pabaigta",
+ "This will stop your current uploads." : "Tai sustabdys dabartinius įkėlimus.",
+ "Move or copy" : "Perkelti ar kopijuoti",
+ "You can upload into this folder" : "Galite įkelti į šį aplanką",
+ "Show list view" : "Rodyti sąrašo rodinį",
+ "Show grid view" : "Rodyti tinklelio rodinį",
+ "No compatible server found at {remote}" : "Nerasta jokio suderinamo serverio ties {remote}",
+ "Invalid server URL" : "Neteisingas serverio URL adresas",
+ "Failed to add the public link to your Nextcloud" : "Nepavyko pridėti viešosios nuorodos į jūsų Nextcloud",
+ "Download all files" : "Atsisiųsti visus failus ",
+ "Link copied to clipboard" : "Nuoroda nukopijuota į iškarpinę",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Jau pridėtas 1 el. pašto adresas","Jau pridėti {count} el. pašto adresai","Jau pridėta {count} el. pašto adresų","Jau pridėtas {count} el. pašto adresas"],
+ "_1 email address added_::_{count} email addresses added_" : ["Pridėtas 1 el. pašto adresas","Pridėti {count} el. pašto adresai","Pridėta {count} el. pašto adresų","Pridėtas {count} el. pašto adresas"],
+ "Copy to clipboard" : "Kopijuoti į iškarpinę",
+ "Copy internal link to clipboard" : "Kopijuoti vidinę nuorodą į iškarpinę",
+ "Search globally" : "Ieškoti visuotiniu mastu",
+ "Search for share recipients" : "Ieškoti viešinio gavėjų",
+ "No recommendations. Start typing." : "Rekomendacijų nėra. Pradėkite rašyti.",
+ "Enter your name" : "Įveskite savo vardą",
+ "Share with {userName}" : "Bendrinti su {userName}",
+ "Show sharing options" : "Rodyti bendrinimo parinktis",
"Share note" : "Pasidalinimo pastaba",
"Upload files to %s" : "Įkelkite failus į %s",
+ "%s shared a folder with you." : "%s pradėjo bendrinti su jumis aplanką.",
"Note" : "Pastaba",
"Select or drop files" : "Pasirinkite arba vilkite failus",
"Uploading files" : "Įkeliami failai",
"Uploaded files:" : "Įkelti failai:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Įkeldami failus, sutinkate su %1$snaudojimosi sąlygomis%2$s.",
- "Add to your Nextcloud" : "Pridėti į savo Nextcloud",
- "Files and folders others share with you will show up here" : "Čia bus rodomi failai ir aplankai, kuriuos su jumis bendrina kiti asmenys",
- "Files and folders you share will show up here" : "Čia bus rodomi jūsų bendrinami failai ir aplankai",
- "Files and folders you share by link will show up here" : "Čia bus rodomi failai ir aplankai, kuriuos bendrinate pagal nuorodą",
- "Shares you deleted will show up here" : "Čia bus rodomi jūsų ištrinti viešiniai",
- "Shares you have received but not confirmed will show up here" : "Čia bus rodomi gauti, tačiau nepatvirtinti viešiniai",
- "Shares will show up here" : "Čia bus rodomi viešiniai",
- "Restore" : "Atkurti",
- "Something happened. Unable to restore the share." : "Kažkas nutiko. Nepavyko atkurti viešinio.",
- "Something happened. Unable to accept the share." : "Kažkas nutiko. Nepavyko priimti viešinio.",
- "Something happened. Unable to reject the share." : "Kažkas nutiko. Nepavyko atmesti viešinį.",
- "No expiration date set" : "Dalinimosi pabaigos data yra nenustatyta",
- "Please specify a valid user" : "Nurodykite naudotoją",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Ši programa leidžia naudotojams bendrinti failus „Nextcloud“ platformoje. Jei įjungta, administratorius gali pasirinkti, kurios naudotojų grupės galės bendrinti failus. Tuomet atitinkami naudotojai galės bendrinti failus ir aplankus su kitais „Nextcloud“ naudotojais ir jų grupėmis. Be to, jei administratorius įjungia bendrinimo nuorodos ypatybę, išorinė nuoroda galės būti naudojama bendrinant failus su išoriniais naudotojais už „Nextcloud“ ribų. Administratoriai taip pat gali nustatyti slaptažodžius, viešinio galiojimo datas ir įjungti per bendrinimo nuorodas bendrinimą nuo serverio serveriui, o taip pat bendrinimą iš mobiliųjų įrenginių.\nIšjungus šią ypatybę, serveryje esantys bendrinami failai ir aplankai taps nebeprieinami visiems viešinio gavėjams, o taip pat sinchronizavimo klientams ir mobiliosioms programėlėms. Daugiau informacijos rasite „Nextcloud“ dokumentacijoje. ",
- "Accept user and group shares by default" : "Pagal numatymą, priimti naudotojo ir grupių viešinius",
- "Read only" : "Tik skaitymui",
- "File drop (upload only)" : "Failų įmetimas (tik įkėlimas)",
- "Upload" : "Įkelti",
- "Only works for users with access to this folder" : "Veikia tik naudotojams, turintiems prieigą prie šio aplanko",
- "Only works for users with access to this file" : "Veikia tik naudotojams, turintiems prieigą prie šio failo",
- "Circle" : "Ratas",
- "Update" : "Atnaujinti",
- "No other users with access found" : "Nerasta kitų naudotojų, turinčių prieigą",
- "No entries found in this folder" : "Šiame aplanke įrašų nerasta",
"Name" : "Pavadinimas",
- "Share time" : "Bendrinimo laikas",
- "Sorry, this link does not seem to work anymore." : "Atleiskite, atrodo, kad ši nuoroda nebeveikia.",
- "Reasons might be:" : "Galimos priežastys:",
- "the item was removed" : "elementas buvo pašalintas",
- "the link expired" : "baigėsi nuorodos galiojimo laikas",
- "sharing is disabled" : "dalinimasis yra išjungtas",
- "For more info, please ask the person who sent this link." : "Dėl tikslesnės informacijos susisiekite su asmeniu atsiuntusiu nuorodą.",
- "Share with" : "Bendrinti su"
+ "Filename must not be empty." : "Failo pavadinimas negali būti tuščias."
},
"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);");
diff --git a/apps/files_sharing/l10n/lt_LT.json b/apps/files_sharing/l10n/lt_LT.json
index 94bfadb94ce..6ff0a26de22 100644
--- a/apps/files_sharing/l10n/lt_LT.json
+++ b/apps/files_sharing/l10n/lt_LT.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Laukiama…",
- "error" : "klaida",
- "finished" : "pabaigta",
- "This will stop your current uploads." : "Tai sustabdys dabartinius įkėlimus.",
- "Move or copy" : "Perkelti ar kopijuoti",
- "Download" : "Atsisiųsti",
- "Delete" : "Ištrinti",
- "You can upload into this folder" : "Galite įkelti į šį aplanką",
- "Terms of service" : "Naudojimosi sąlygos",
- "Show list view" : "Rodyti sąrašo rodinį",
- "Show grid view" : "Rodyti tinklelio rodinį",
- "No compatible server found at {remote}" : "Nerasta jokio suderinamo serverio ties {remote}",
- "Invalid server URL" : "Neteisingas serverio URL adresas",
- "Failed to add the public link to your Nextcloud" : "Nepavyko pridėti viešosios nuorodos į jūsų Nextcloud",
"File shares" : "Bendrinami failai",
"Downloaded via public link" : "Atsisiųstas per viešąją nuorodą",
"Downloaded by {email}" : "Atsisiuntė {email}",
@@ -68,35 +54,37 @@
"Share for file {file} expired" : "Failo {file} viešinys nebegalioja",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Buvo <strong>atsisiųstas</strong> el. paštu ar viešąja nuoroda bendrinamas failas ar aplankas",
"A file or folder was shared from <strong>another server</strong>" : "Failas ar aplankas buvo pradėtas bendrinti iš <strong>kito serverio</strong>",
- "Files" : "Failai",
+ "Sharing" : "Bendrinimas",
"A file or folder has been <strong>shared</strong>" : "Failas ar aplankas <strong>pradėtas bendrinti</strong>",
- "Shared link" : "Bendrinimo nuoroda",
+ "Shared link" : "Bendrinama nuoroda",
"Wrong share ID, share does not exist" : "Neteisingas viešinio ID, viešinio nėra",
"Could not delete share" : "Nepavyko ištrinti viešinio",
"Please specify a file or folder path" : "Nurodykite kelią iki duomenų",
"Wrong path, file/folder does not exist" : "Neteisingas kelias, failo/aplanko nėra",
"Could not create share" : "Nepavyko sukurti viešinio",
- "Invalid permissions" : "Neteisingi leidimai",
- "Invalid date, date format must be YYYY-MM-DD" : "Netinkamas datos formavimas. Privaloma: YYYY-MM-DD",
+ "Please specify a valid account to share with" : "Nurodykite tinkamą paskyrą, su kuria bendrinti",
"Group sharing is disabled by the administrator" : "Administratorius išjungė bendrinimą su grupėmis",
"Please specify a valid group" : "Nurodykite teisingą grupę",
"Public link sharing is disabled by the administrator" : "Administratorius išjungė bendrinimą per viešąsias nuorodas",
- "Public upload disabled by the administrator" : "Įkėlimas viešam naudojimui yra išjungtas",
- "Public upload is only possible for publicly shared folders" : "Duomenų įkėlimas viešam naudojimui galimas tik į viešai dalinamus aplankus",
+ "Please specify a valid email address" : "Nurodykite tinkamą el. pašto adresą",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nepavyko išsiųsti slaptažodžio bendrinimui %s panaudojant Nextcloud Talk, kadangi Nextcloud Talk neįjungtas ",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Bendrinimas %1$s nepavyko, kadangi sistema nepalaiko bendrinimų šio tipo %2$s",
- "You cannot share to a Circle if the app is not enabled" : "Negalite bendrinti su ratu, jeigu programėlė nėra įjungta",
- "Please specify a valid circle" : "Pasirinkite naudotojų ratą",
+ "Please specify a valid team" : "Nurodykite tinkamą komandą",
"Sharing %s failed because the back end does not support room shares" : "Bendrinimas %s nepavyko, kadangi sistema nepalaiko kambario bendrinimo",
"Unknown share type" : "Nežinomas viešinio tipas",
"Not a directory" : "Nėra katalogas",
"Could not lock node" : "Nepavyko užrakinti mazgo",
+ "Public upload is only possible for publicly shared folders" : "Duomenų įkėlimas viešam naudojimui galimas tik į viešai dalinamus aplankus",
+ "Public upload disabled by the administrator" : "Įkėlimas viešam naudojimui yra išjungtas",
"Could not lock path" : "Nepavyko užrakinti kelio",
"Wrong or no update parameter given" : "Neperduoti atnaujinimo parametrai",
+ "Wrong password" : "Neteisingas slaptažodis",
+ "Failed to generate a unique token" : "Nepavyko sugeneruoti išskirtinio prieigos rakto",
+ "This share does not exist or is no longer available" : "Šio viešinio nebėra arba jis daugiau nebeprieinamas",
"shared by %s" : "bendrina %s",
- "Download all files" : "Atsisiųsti visus failus ",
- "Direct link" : "Tiesioginė nuoroda",
+ "Download" : "Atsisiųsti",
"Add to your %s" : "Pridėti į jūsų %s",
+ "Direct link" : "Tiesioginė nuoroda",
"Share API is disabled" : "Bendrinimo API yra išjungtas",
"File sharing" : "Failų pasidalinimas",
"Share will expire tomorrow" : "Bendrinimo laikas baigiasi rytoj.",
@@ -105,14 +93,44 @@
"You received {share} to group {group} as a share by {user}" : "Jūs gavote bendrinimą {share} prie grupės {group}, kuriuo pasidalino {user}",
"Accept" : "Priimti",
"Decline" : "Atmesti",
- "Sharing" : "Bendrinimas",
+ "Open \"%s\"" : "Atverti „%s“",
+ "People" : "Žmonės",
+ "Filter accounts" : "Filtruoti paskyras",
+ "Expiration date" : "Pabaigos data",
+ "Select a date" : "Pasirinkti datą",
+ "Set a password" : "Nustatyti slaptažodį",
+ "Password" : "Slaptažodis",
+ "Generate a new password" : "Generuoti naują slaptažodį",
+ "Automatically copying failed, please copy the share link manually" : "Nepavyko automatiškai nukopijuoti, nukopijuokite nuorodą rankiniu būdu",
+ "Link copied" : "Nuoroda nukopijuota",
+ "Email already added" : "El. paštas jau pridėtas",
+ "Invalid email address" : "Neteisingas el. pašto adresas",
+ "_{count} email address already added_::_{count} email addresses already added_" : ["Jau pridėtas {count} el. pašto adresas","Jau pridėti {count} el. pašto adresai","Jau pridėta {count} el. pašto adresų","Jau pridėtas {count} el. pašto adresas"],
+ "_{count} email address added_::_{count} email addresses added_" : ["Pridėtas {count} el. pašto adresas","Pridėti {count} el. pašto adresai","Pridėta {count} el. pašto adresų","Pridėtas {count} el. pašto adresas"],
+ "Share link" : "Viešinio nuoroda",
+ "Copy" : "Kopijuoti",
+ "Send link via email" : "Siųsti nuorodą el. paštu",
+ "Enter an email address or paste a list" : "Įveskite el. pašto adresą arba įdėkite sąrašą",
+ "Remove email" : "Šalinti el. paštą",
+ "Select" : "Žymėti",
+ "Birthday party photos, History assignment…" : "Gimtadienio nuotraukos, istorijos užduotis…",
+ "Revert to default" : "Sugrąžinti į numatytąjį",
+ "Close" : "Užverti",
+ "_Send email and close_::_Send {count} emails and close_" : ["Išsiųsti el. laišką ir užverti","Išsiųsti {count} el. laiškus ir užverti","Išsiųsti {count} el. laiškų ir užverti","Išsiųsti {count} el. laišką ir užverti"],
+ "Error creating the share: {errorMessage}" : "Klaida kuriant viešinį: {errorMessage}",
+ "Error creating the share" : "Klaida kuriant viešinį",
+ "Error sending emails: {errorMessage}" : "Klaida siunčiant el. laiškus: {errorMessage}",
+ "Error sending emails" : "Klaida siunčiant el. laiškus",
+ "Previous step" : "Ankstesnis žingsnis",
+ "Cancel" : "Atsisakyti",
+ "Continue" : "Tęsti",
"Error while toggling options" : "Klaida perjungiant parinktis",
- "Set default folder for accepted shares" : "Nustatykite numatytąjį priimtų viešinių aplanką",
- "Reset" : "Atstatyti",
- "Reset folder to system default" : "Atstatyti aplanką į sistemos numatytąjį",
"Choose a default folder for accepted shares" : "Pasirinkite numatytąjį aplanką priimtiems viešiniams",
"Invalid path selected" : "Pasirinktas neteisingas kelias",
"Unknown error" : "Nežinoma klaida",
+ "Set default folder for accepted shares" : "Nustatykite numatytąjį priimtų viešinių aplanką",
+ "Reset" : "Atstatyti",
+ "Reset folder to system default" : "Atstatyti aplanką į sistemos numatytąjį",
"group" : "grupė",
"conversation" : "pokalbis",
"remote" : "nuotolinis",
@@ -123,128 +141,148 @@
"Added by {initiator}" : "Pridėjo {initiator}",
"Via “{folder}”" : "Per \"{folder}\"",
"Unshare" : "Nustoti bendrinti",
- "Internal link" : "Vidinė nuoroda",
"Cannot copy, please copy the link manually" : "Nepavyksta nukopijuoti, nukopijuokite nuorodą rankiniu būdu",
- "Copy internal link to clipboard" : "Kopijuoti vidinę nuorodą į iškarpinę",
- "Link copied" : "Nuoroda nukopijuota",
+ "Copy internal link" : "Kopijuoti vidinę nuorodą",
+ "Internal link" : "Vidinė nuoroda",
+ "Shared via link by {initiator}" : "{initiator} bendrina per nuorodą",
+ "Share link ({label})" : "Viešinio nuoroda ({label})",
+ "Create public link" : "Sukurti viešąją nuorodą",
+ "Error, please enter proper password and/or expiration date" : "Įvyko klaida, įveskite teisingą slaptažodį ir/ar galiojimo datą",
+ "Error while creating the share" : "Klaida kuriant viešinį",
"Please enter the following required information before creating the share" : "Prieš sukurdami viešinį, įveskite šią reikiamą informaciją",
"Password protection (enforced)" : "Apsauga slaptažodžiu (priverstinė)",
"Password protection" : "Apsauga slaptažodžiu",
"Enter a password" : "Enter a password",
- "Expiration date (enforced)" : "Galiojimo pabaigos data (nustatyta)",
- "Enter a date" : "Įveskite datą",
"Create share" : "Sukurti viešinį",
- "Cancel" : "Atsisakyti",
+ "Customize link" : "Tinkinti nuorodą",
+ "Generate QR code" : "Generuoti QR kodą",
"Add another link" : "Pridėti kitą nuorodą",
- "Create a new share link" : "Sukurti naują bendrinimo nuorodą",
- "Shared via link by {initiator}" : "{initiator} bendrina per nuorodą",
- "Share link ({label})" : "Bendrinimo nuoroda ({label})",
- "Share link" : "Bendrinimo nuoroda",
- "Error, please enter proper password and/or expiration date" : "Įvyko klaida, įveskite teisingą slaptažodį ir/ar galiojimo datą",
+ "Create a new share link" : "Sukurti naują viešinio nuorodą",
"View only" : "Tik peržiūrėti",
"Can edit" : "Gali taisyti",
- "No recommendations. Start typing." : "Rekomendacijų nėra. Pradėkite rašyti.",
+ "Custom permissions" : "Tinkinti leidimai",
"Resharing is not allowed" : "Bendrinimas iš naujo yra neleidžiamas",
"Name or email …" : "Vardas ar el. paštas…",
"Name, email, or Federated Cloud ID …" : "Vardas, el. paštas ar federacinės debesijos ID…",
"Searching …" : "Ieškoma…",
"No elements found." : "Nerasta jokių elementų.",
- "Search globally" : "Ieškoti visur",
"Guest" : "Svečias",
"Group" : "Grupė",
"Email" : "El. paštas",
+ "Team" : "Komanda",
"on {server}" : "serveryje {server}",
+ "Note:" : "Pastaba:",
+ "File drop" : "Failų įkėlimas",
+ "Terms of service" : "Naudojimosi sąlygos",
+ "Share with email {email}" : "Bendrinti su el. pašto adresu {email}",
+ "Share with group" : "Bendrinti su grupe",
+ "Share in conversation" : "Bendrinti pokalbyje",
+ "Share with {user} on remote server {server}" : "Bendrinti su {user} nuotoliniame serveryje {server}",
+ "Share with remote group" : "Bendrinti su nuotoline grupe",
+ "Share with guest" : "Bendrinti su svečiu",
+ "Update share" : "Atnaujinti viešinį",
+ "Save share" : "Įrašyti viešinį",
+ "Read" : "Skaityti",
+ "Create" : "Sukurti",
+ "Edit" : "Taisyti",
+ "Share" : "Bendrinti",
+ "Delete" : "Ištrinti",
"Allow upload and editing" : "Leisti įkelti ir redaguoti",
"Allow editing" : "Leisti redaguoti",
"Advanced settings" : "Išplėstiniai nustatymai",
"Share label" : "Viešinio etiketė",
- "Password" : "Slaptažodis",
+ "Generating…" : "Generuojama…",
+ "Generate new token" : "Generuoti naują prieigos raktą",
+ "Set password" : "Nustatyti slaptažodį",
"Password expires {passwordExpirationTime}" : "Slaptažodis galioja iki {passwordExpirationTime}",
"Password expired" : "Slaptažodis nebegalioja",
"Video verification" : "Video patikrinimas",
+ "Expiration date (enforced)" : "Galiojimo pabaigos data (nustatyta)",
"Set expiration date" : "Nustatyti galiojimo pabaigos datą",
- "Expiration date" : "Pabaigos data",
"Hide download" : "Slėpti atsisiuntimą",
- "Allow download" : "Leisti atsisiųsti",
"Note to recipient" : "Pastaba gavėjui",
"Enter a note for the share recipient" : "Įrašykite pranešimą bendrinimo gavėjui",
- "Read" : "Skaityti",
- "Create" : "Sukurti",
- "Edit" : "Taisyti",
- "Share" : "Bendrinti",
"Delete share" : "Ištrinti viešinį",
"Others with access" : "Kiti asmenys, turintys prieigą",
+ "No other accounts with access found" : "Nerasta jokių kitų paskyrų, turinčių prieigą",
"Toggle list of others with access to this directory" : "Perjungti sąrašą kitų asmenų, turinčių prieigą prie šio katalogo",
"Toggle list of others with access to this file" : "Perjungti sąrašą kitų asmenų, turinčių prieigą prie šio failo",
"Unable to fetch inherited shares" : "Nepavyko gauti paveldėtų viešinių",
+ "Shares" : "Viešiniai",
"Unable to load the shares list" : "Nepavyko įkelti viešinių sąrašo",
"Expires {relativetime}" : "Galioja iki {relativetime}",
"this share just expired." : "šis viešinys ką tik nustojo galioti.",
"Shared with you by {owner}" : "{owner} pasidalino su jumis",
- "Shared" : "Bendrinama",
"Link to a file" : "Nuoroda į failą",
- "Error creating the share: {errorMessage}" : "Klaida kuriant viešinį: {errorMessage}",
- "Error creating the share" : "Klaida kuriant viešinį",
- "Error updating the share: {errorMessage}" : "Klaida atnaujinant viešinį: {errorMessage}",
- "Error updating the share" : "Klaida atnaujinant viešinį",
- "Shared by" : "Bendrina",
- "Shared with" : "Bendrinama su",
- "Password created successfully" : "Slaptažodis sėkmingai sukurtas",
- "Shared with you and the group {group} by {owner}" : "{owner} pradėjo bendrinti su jumis ir grupe {group}",
- "Shared with you and {circle} by {owner}" : "{owner} pradėjo bendrinti su jumis ir {circle}",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} pasidalino su jumis ir pokalbiu {conversation}",
- "Shared with you in a conversation by {owner}" : "{owner} pasidalino su jumis pokalbyje",
- "Shares" : "Viešiniai",
+ "Shared" : "Bendrinama",
+ "Shared by {ownerDisplayName}" : "Bendrina {ownerDisplayName}",
+ "Shared with others" : "Bendrinama su kitais",
+ "Public share" : "Viešasis viešinys",
+ "Overview of shared files." : "Bendrinamų failų apžvalga.",
"No shares" : "Nėra jokių viešinių",
"Shared with you" : "Bendrinama su jumis",
+ "List of files that are shared with you." : "Failų, kurie yra bendrinami su jumis, sąrašas.",
"Nothing shared with you yet" : "Kol kas su jumis nieko nėra bendrinama",
- "Shared with others" : "Bendrinama su kitais",
"Nothing shared yet" : "Kol kas nieko nebendrinama",
"Shared by link" : "Bendrinama pagal nuorodą",
- "No shared links" : "Nėra bendrinimo nuorodų",
+ "No shared links" : "Nėra bendrinamų nuorodų",
+ "Files and folders you shared by link will show up here" : "Čia bus rodomi failai ir aplankai, kuriuos bendrinate per nuorodą",
"Deleted shares" : "Ištrinti viešiniai",
"No deleted shares" : "Ištrintų viešinių nėra",
"Pending shares" : "Laukiantys viešiniai",
"No pending shares" : "Nėra jokių laukiančių viešinių",
+ "Error deleting the share" : "Klaida ištrinant bendrinimą",
+ "Error updating the share: {errorMessage}" : "Klaida atnaujinant viešinį: {errorMessage}",
+ "Error updating the share" : "Klaida atnaujinant viešinį",
+ "File \"{path}\" has been unshared" : "Failas „{path}“ nustotas bendrinti",
+ "Folder \"{path}\" has been unshared" : "Aplankas „{path}“ nustotas bendrinti",
+ "Could not update share" : "Nepavyko atnaujinti viešinio",
+ "Share saved" : "Viešinys įrašytas",
+ "Share label saved" : "Viešinio etiketė įrašyta",
+ "Share password saved" : "Viešinio slaptažodis įrašytas",
+ "Share permissions saved" : "Viešinio leidimai įrašyti",
+ "Shared by" : "Bendrina",
+ "Shared with" : "Bendrinama su",
+ "Password created successfully" : "Slaptažodis sėkmingai sukurtas",
+ "Shared with you and the group {group} by {owner}" : "{owner} pradėjo bendrinti su jumis ir grupe {group}",
+ "Shared with you and {circle} by {owner}" : "{owner} pradėjo bendrinti su jumis ir {circle}",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} pasidalino su jumis ir pokalbiu {conversation}",
+ "Shared with you in a conversation by {owner}" : "{owner} pasidalino su jumis pokalbyje",
+ "Share not found" : "Viešinys nerastas",
+ "Back to %s" : "Atgal į %s",
+ "Add to your Nextcloud" : "Pridėti į savo Nextcloud",
+ "Waiting…" : "Laukiama…",
+ "error" : "klaida",
+ "finished" : "pabaigta",
+ "This will stop your current uploads." : "Tai sustabdys dabartinius įkėlimus.",
+ "Move or copy" : "Perkelti ar kopijuoti",
+ "You can upload into this folder" : "Galite įkelti į šį aplanką",
+ "Show list view" : "Rodyti sąrašo rodinį",
+ "Show grid view" : "Rodyti tinklelio rodinį",
+ "No compatible server found at {remote}" : "Nerasta jokio suderinamo serverio ties {remote}",
+ "Invalid server URL" : "Neteisingas serverio URL adresas",
+ "Failed to add the public link to your Nextcloud" : "Nepavyko pridėti viešosios nuorodos į jūsų Nextcloud",
+ "Download all files" : "Atsisiųsti visus failus ",
+ "Link copied to clipboard" : "Nuoroda nukopijuota į iškarpinę",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Jau pridėtas 1 el. pašto adresas","Jau pridėti {count} el. pašto adresai","Jau pridėta {count} el. pašto adresų","Jau pridėtas {count} el. pašto adresas"],
+ "_1 email address added_::_{count} email addresses added_" : ["Pridėtas 1 el. pašto adresas","Pridėti {count} el. pašto adresai","Pridėta {count} el. pašto adresų","Pridėtas {count} el. pašto adresas"],
+ "Copy to clipboard" : "Kopijuoti į iškarpinę",
+ "Copy internal link to clipboard" : "Kopijuoti vidinę nuorodą į iškarpinę",
+ "Search globally" : "Ieškoti visuotiniu mastu",
+ "Search for share recipients" : "Ieškoti viešinio gavėjų",
+ "No recommendations. Start typing." : "Rekomendacijų nėra. Pradėkite rašyti.",
+ "Enter your name" : "Įveskite savo vardą",
+ "Share with {userName}" : "Bendrinti su {userName}",
+ "Show sharing options" : "Rodyti bendrinimo parinktis",
"Share note" : "Pasidalinimo pastaba",
"Upload files to %s" : "Įkelkite failus į %s",
+ "%s shared a folder with you." : "%s pradėjo bendrinti su jumis aplanką.",
"Note" : "Pastaba",
"Select or drop files" : "Pasirinkite arba vilkite failus",
"Uploading files" : "Įkeliami failai",
"Uploaded files:" : "Įkelti failai:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Įkeldami failus, sutinkate su %1$snaudojimosi sąlygomis%2$s.",
- "Add to your Nextcloud" : "Pridėti į savo Nextcloud",
- "Files and folders others share with you will show up here" : "Čia bus rodomi failai ir aplankai, kuriuos su jumis bendrina kiti asmenys",
- "Files and folders you share will show up here" : "Čia bus rodomi jūsų bendrinami failai ir aplankai",
- "Files and folders you share by link will show up here" : "Čia bus rodomi failai ir aplankai, kuriuos bendrinate pagal nuorodą",
- "Shares you deleted will show up here" : "Čia bus rodomi jūsų ištrinti viešiniai",
- "Shares you have received but not confirmed will show up here" : "Čia bus rodomi gauti, tačiau nepatvirtinti viešiniai",
- "Shares will show up here" : "Čia bus rodomi viešiniai",
- "Restore" : "Atkurti",
- "Something happened. Unable to restore the share." : "Kažkas nutiko. Nepavyko atkurti viešinio.",
- "Something happened. Unable to accept the share." : "Kažkas nutiko. Nepavyko priimti viešinio.",
- "Something happened. Unable to reject the share." : "Kažkas nutiko. Nepavyko atmesti viešinį.",
- "No expiration date set" : "Dalinimosi pabaigos data yra nenustatyta",
- "Please specify a valid user" : "Nurodykite naudotoją",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Ši programa leidžia naudotojams bendrinti failus „Nextcloud“ platformoje. Jei įjungta, administratorius gali pasirinkti, kurios naudotojų grupės galės bendrinti failus. Tuomet atitinkami naudotojai galės bendrinti failus ir aplankus su kitais „Nextcloud“ naudotojais ir jų grupėmis. Be to, jei administratorius įjungia bendrinimo nuorodos ypatybę, išorinė nuoroda galės būti naudojama bendrinant failus su išoriniais naudotojais už „Nextcloud“ ribų. Administratoriai taip pat gali nustatyti slaptažodžius, viešinio galiojimo datas ir įjungti per bendrinimo nuorodas bendrinimą nuo serverio serveriui, o taip pat bendrinimą iš mobiliųjų įrenginių.\nIšjungus šią ypatybę, serveryje esantys bendrinami failai ir aplankai taps nebeprieinami visiems viešinio gavėjams, o taip pat sinchronizavimo klientams ir mobiliosioms programėlėms. Daugiau informacijos rasite „Nextcloud“ dokumentacijoje. ",
- "Accept user and group shares by default" : "Pagal numatymą, priimti naudotojo ir grupių viešinius",
- "Read only" : "Tik skaitymui",
- "File drop (upload only)" : "Failų įmetimas (tik įkėlimas)",
- "Upload" : "Įkelti",
- "Only works for users with access to this folder" : "Veikia tik naudotojams, turintiems prieigą prie šio aplanko",
- "Only works for users with access to this file" : "Veikia tik naudotojams, turintiems prieigą prie šio failo",
- "Circle" : "Ratas",
- "Update" : "Atnaujinti",
- "No other users with access found" : "Nerasta kitų naudotojų, turinčių prieigą",
- "No entries found in this folder" : "Šiame aplanke įrašų nerasta",
"Name" : "Pavadinimas",
- "Share time" : "Bendrinimo laikas",
- "Sorry, this link does not seem to work anymore." : "Atleiskite, atrodo, kad ši nuoroda nebeveikia.",
- "Reasons might be:" : "Galimos priežastys:",
- "the item was removed" : "elementas buvo pašalintas",
- "the link expired" : "baigėsi nuorodos galiojimo laikas",
- "sharing is disabled" : "dalinimasis yra išjungtas",
- "For more info, please ask the person who sent this link." : "Dėl tikslesnės informacijos susisiekite su asmeniu atsiuntusiu nuorodą.",
- "Share with" : "Bendrinti su"
+ "Filename must not be empty." : "Failo pavadinimas negali būti tuščias."
},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/lv.js b/apps/files_sharing/l10n/lv.js
deleted file mode 100644
index 0257c641a93..00000000000
--- a/apps/files_sharing/l10n/lv.js
+++ /dev/null
@@ -1,206 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Waiting…" : "Gaida...",
- "error" : "kļūda",
- "finished" : "pabeigts",
- "This will stop your current uploads." : "Tādējādi tiks pārtraukta jūsu pašreizējā augšupielāde.",
- "Move or copy" : "Pārvietot vai kopēt",
- "Download" : "Lejupielādēt",
- "Delete" : "Dzēst",
- "You can upload into this folder" : "Jūs variet augšuplādēt šajā mapē",
- "Terms of service" : "Pakalpojuma noteikumi",
- "Show list view" : "Rādīt saraksta skatu",
- "Show grid view" : "Rādīt režģa skatu",
- "No compatible server found at {remote}" : "Nav atrasts neviens saderīgs serveris {remote}",
- "Invalid server URL" : "Nederīgs servera url",
- "Failed to add the public link to your Nextcloud" : "Neizdevās pievienot publisku saiti jūsu Nextcloud",
- "File shares" : "Datņu koplietojumi",
- "Downloaded via public link" : "Lejupielādēt izmantojot publisku saiti",
- "Downloaded by {email}" : "Lejupielādēts {email}",
- "{file} downloaded via public link" : "{file} lejupielādēts izmantojot publisku saiti",
- "{email} downloaded {file}" : "{email} lejupielādēts {file}",
- "Shared with group {group}" : "Koplietots ar grupu {group}",
- "Removed share for group {group}" : "Noņēma koplietošanu grupai {group}",
- "{actor} shared with group {group}" : "{actor} koplietoja ar grupu {group}",
- "{actor} removed share for group {group}" : "{actor} noņēma koplietošanu grupai {group}",
- "Share for group {group} expired" : "Kopīgošana grupai {group} ir beigusies",
- "You shared {file} with group {group}" : "Jūs koplietojāt {file} ar grupu {group}",
- "You removed group {group} from {file}" : "Jūs noņēmāt grupu {group} no {file}",
- "{actor} shared {file} with group {group}" : "{actor} koplietoja {file} ar grupu {group}",
- "{actor} removed group {group} from {file}" : "{actor} noņēma grupu {group} no {file}",
- "Share for file {file} with group {group} expired" : "Datnes {file} kopīgošana ar grupu {group} ir beigusies",
- "Shared as public link" : "Koplietots kā publiska saite",
- "Removed public link" : "Noņemta publiska saite",
- "Public link expired" : "Publiskā saite ir beigusies",
- "{actor} shared as public link" : "{actor} koplietoja kā publisku saiti",
- "{actor} removed public link" : "{actor} noņēma publisko saiti",
- "Public link of {actor} expired" : "{actor} publiskā saite beidzās",
- "You shared {file} as public link" : "Jūs koplietojāt {file} kā publisku saiti",
- "You removed public link for {file}" : "Jūs noņēmāt {file} publisko saiti",
- "Public link expired for {file}" : "{file} publiskā saite beidzās",
- "{actor} shared {file} as public link" : "{actor} koplietoja {file} kā publisko saiti",
- "{actor} removed public link for {file}" : "{actor} noņēma {file} publisko saiti",
- "Public link of {actor} for {file} expired" : "{actor} publiskā saite {file} beidzās",
- "{user} accepted the remote share" : "{user} apstiprināja attālo koplietošanu",
- "{user} declined the remote share" : "{user} noraidīja attālo koplietošanu",
- "You received a new remote share {file} from {user}" : "Jūs saņēmāt attālo {file} koplietošanu no {user}",
- "{user} accepted the remote share of {file}" : "{user} apstiprināja {file} attālo koplietošanu",
- "{user} declined the remote share of {file}" : "{user} noraidīja {file} attālo koplietošanu",
- "{user} unshared {file} from you" : "{user} noņēma {file} koplietošanu ar jums",
- "Shared with {user}" : "Koplietoja ar {user}",
- "Removed share for {user}" : "Noņēma koplietošanu ar {user}",
- "You removed yourself" : "Jūs noņēmāt sevi",
- "{actor} removed themselves" : "{actor} noņēma sevi",
- "{actor} shared with {user}" : "{actor} koplietoja ar {user}",
- "{actor} removed share for {user}" : "{actor} noņēma koplietošanu {user}",
- "Shared by {actor}" : "Koplietoja {actor}",
- "{actor} removed share" : "{actor} noņēma koplietošanu",
- "Share for {user} expired" : "Koplietošana {user} beidzās",
- "Share expired" : "Koplietošana beidzās",
- "You shared {file} with {user}" : "Jūs koplietojāt {file} ar {user}",
- "You removed {user} from {file}" : "Jūs noņēmāt koplietošanu {user} no {file}",
- "You removed yourself from {file}" : "Jūs noņēmāt sevi no {file}",
- "{actor} removed themselves from {file}" : "{actor} noņēma sevi no {file}",
- "{actor} shared {file} with {user}" : "{actor} koplietoja {file} ar {user}",
- "{actor} removed {user} from {file}" : "{actor} noņemts {user} no {file}",
- "{actor} shared {file} with you" : "{actor} koplietoja {file} ar jums",
- "{actor} removed you from the share named {file}" : "{actor} noņēma jūs ko koplietošanas ar nosaukumu {file}",
- "Share for file {file} with {user} expired" : "Koplietošana datnei {file} ar {user} beidzās",
- "Share for file {file} expired" : "Koplietošana datnei {file} beidzās",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "E-pastā vai saitē koplietotā datne vai mape tika <strong>lejupielādēta</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Datne vai mape tika koplietota no <strong>cita servera</strong>",
- "Files" : "Datnes",
- "A file or folder has been <strong>shared</strong>" : "<strong>Koplietota</strong> datne vai mape",
- "Shared link" : "Koplietota saite",
- "Wrong share ID, share does not exist" : "Nepareizs koplietošanas ID, koplietojums neeksistē",
- "Could not delete share" : "Neizdevās dzēst koplietotni",
- "Please specify a file or folder path" : "Lūdzu norādiet datnes vai mapes ceļu",
- "Wrong path, file/folder does not exist" : "Nepareizs ceļš, fails/mape neeksistē",
- "Could not create share" : "Nevar izveidot koplietošanu",
- "Invalid permissions" : "Nederīgas atļaujas",
- "Invalid date, date format must be YYYY-MM-DD" : "Nepareizs datums, datumam jābūt YYYY-MM-DD formātā",
- "Group sharing is disabled by the administrator" : "Administrators grupas koplietošanu ir atslēdzis",
- "Please specify a valid group" : "Lūdzu norādiet derīgu grupu",
- "Public link sharing is disabled by the administrator" : "Administrators publisku saites koplietošanu ir atslēdzis",
- "Public upload disabled by the administrator" : "Administrators publisku augšupielādi ir atslēdzis",
- "Public upload is only possible for publicly shared folders" : "Publiska augšupielāde iespējama tikai publiski koplietotām mapēm",
- "Unknown share type" : "Nezināms koplietošanas tips",
- "Not a directory" : "Nav direktorijs",
- "Could not lock node" : "Nevarēja bloķēt",
- "Could not lock path" : "Nevarēja bloķēt ceļu",
- "Wrong or no update parameter given" : "Nepareizs atjaunināšanas parametrs vai tas nav norādīts",
- "shared by %s" : "Koplietoja %s",
- "Download all files" : "Lejupielādēt visas datnes",
- "Direct link" : "Tiešā saite",
- "Share API is disabled" : "Koplietošanas API ir atslēgta",
- "File sharing" : "Datņu koplietošana",
- "Share will expire tomorrow" : "Koplietošana rīt beigsies",
- "Your share of {node} will expire tomorrow" : "Jūsu koplietotajam {node} rīt beigsies termiņš",
- "You received {share} as a share by {user}" : "Jūs saņēmāt koplietotu {share} no {user}",
- "You received {share} to group {group} as a share by {user}" : "Jūs saņēmāt koplietotu {share} grupai {group} no {user}",
- "Accept" : "Pieņemt",
- "Decline" : "Noraidīt",
- "Sharing" : "Koplietošana",
- "Reset" : "Atiestatīt",
- "Unknown error" : "Nezināma kļūda",
- "group" : "grupa",
- "conversation" : "saruna",
- "remote" : "attālināti",
- "remote group" : "attālinātā grupa",
- "guest" : "viesis",
- "Unshare" : "Pārtraukt koplietošanu",
- "Internal link" : "Iekšējā saite",
- "Link copied" : "Saite nokopēta",
- "Password protection" : "Password protection",
- "Enter a password" : "Enter a password",
- "Enter a date" : "Ievadiet datumu",
- "Cancel" : "Atcelt",
- "Add another link" : "Pievienot citu saiti",
- "Create a new share link" : "Izveidojiet jaunu kopīgošanas saiti",
- "Share link ({label})" : "Kopīgot saiti ({label})",
- "Share link" : "Koplietot saiti",
- "Resharing is not allowed" : "Atkārtota koplietošana nav atļauta",
- "Name or email …" : "Vārds vai e-pasts ...",
- "Name, email, or Federated Cloud ID …" : "Vārds, e-pasts vai federatīvā mākoņa ID ...",
- "Searching …" : "Meklē...",
- "No elements found." : "Elementi netika atrasti.",
- "Search globally" : "Meklēt globāli",
- "Guest" : "Viesis",
- "Group" : "Grupa",
- "Email" : "E-pasts",
- "on {server}" : "uz {server}",
- "Allow upload and editing" : "Atļaut augšupielādi un rediģēšanu",
- "Allow editing" : "Atļaut rediģēšanu",
- "Advanced settings" : "Paplašināti iestatījumi",
- "Set password" : "Uzstādīt paroli",
- "Video verification" : "Video verifikācija",
- "Set expiration date" : "Uzstādīt beigu termiņu",
- "Expiration date" : "Termiņa datums",
- "Hide download" : "Slēpt lejupielādi",
- "Note to recipient" : "Piezīme saņēmējam",
- "Read" : "Lasīt",
- "Edit" : "Rediģēt",
- "Share" : "Koplietot",
- "Others with access" : "Citi ar pieeju",
- "Expires {relativetime}" : "Termiņš beidzas {relativetime}",
- "this share just expired." : "šai koplietošanai tikko beidzās termiņš.",
- "Shared with you by {owner}" : "{owner} koplietoja ar jums",
- "Shared" : "Koplietots",
- "Link to a file" : "Datnes saite",
- "Shared by" : "Koplietoja",
- "Shared with" : "Koplietots ar",
- "Shared with you and the group {group} by {owner}" : "{owner} koplietoja ar jums un grupu {group}",
- "Shared with you and {circle} by {owner}" : "{owner} koplietoja ar jums un {circle}",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} koplietoja ar jums un sarunu {conversation}",
- "Shared with you in a conversation by {owner}" : " {owner} koplietoja ar jums sarunā",
- "Shares" : "Koplietots",
- "No shares" : "Nav koplietojumu",
- "Shared with you" : "Koplietots ar jums",
- "Nothing shared with you yet" : "Nekas vēl nav koplietots",
- "Shared with others" : "Koplietots ar citiem",
- "Nothing shared yet" : "Nekas vēl nav koplietots",
- "Shared by link" : "Koplietots ar saiti",
- "No shared links" : "Nav koplietotu saišu",
- "Deleted shares" : "Dzēstie koplietojumi",
- "No deleted shares" : "Nav dzēstu koplietojumu",
- "Pending shares" : "Gaidošie koplietojumi",
- "No pending shares" : "Nav gaidošie koplietojumi",
- "Share note" : "Koplietot piezīmi",
- "Upload files to %s" : "Augšupielādēt datnes uz %s",
- "Note" : "Piezīme",
- "Select or drop files" : "Izvēlies vai ievelc datnes",
- "Uploading files" : "Augšupielādē datnes",
- "Uploaded files:" : "Augšupielādētas datnes:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "Veicot datņu augšupielādi, jūs piekrītat %1$spakalpojuma noteikumiem%2$s.",
- "Add to your Nextcloud" : "Pievienot savam Nextcloud",
- "Files and folders others share with you will show up here" : "Šeit būs redzamas koplietotās datnes un mapes, ko citi koplietos ar jums",
- "Files and folders you share will show up here" : "Šeit būs redzamas jūsu koplietotās datnes un mapes",
- "Files and folders you share by link will show up here" : "Šeit būs redzamas ar saiti koplietotās datnes un mapes",
- "Shares you deleted will show up here" : "Šeit būs redzami jūsu dzēstie koplietojumi",
- "Shares you have received but not confirmed will show up here" : "Šeit tiks rādīti jūsu saņemtie, bet neapstiprinātie koplietojumi",
- "Shares will show up here" : "Šeit tiks rādīti koplietojumi",
- "Restore" : "Atjaunot",
- "Something happened. Unable to restore the share." : "Kaut kas atgadījās. Nevar atjaunot kopīgošanu.",
- "Something happened. Unable to accept the share." : "Kaut kas atgadījās. Nevar apstiprināt koplietošanu.",
- "Something happened. Unable to reject the share." : "Kaut kas atgadījās. Nevar noraidīt koplietojumu.",
- "No expiration date set" : "Nav noteikts derīguma termiņa beigu datums",
- "Please specify a valid user" : "Lūdzu norādiet derīgu lietotāju",
- "Accept user and group shares by default" : "Pēc noklusējuma pieņemt koplietošanu no lietotājiem un grupām",
- "Read only" : "Tikai lasāms",
- "File drop (upload only)" : "Datņu mešana (tikai augšupielādei)",
- "Upload" : "Augšupielādēt",
- "Only works for users with access to this file" : "Darbojas tikai lietotājiem, kuriem ir piekļuve šai datnei",
- "Circle" : "Loks",
- "Update" : "Atjaunināt",
- "No other users with access found" : "Nav atrasti citi lietotāji ar pieeju",
- "No entries found in this folder" : "Šajā mapē nekas nav atrasts",
- "Name" : "Nosaukums",
- "Share time" : "Koplietošanas laiks",
- "Reasons might be:" : "Iespējamie iemesli:",
- "the item was removed" : "vienums tika dzēsts",
- "the link expired" : "saitei beidzies termiņš",
- "sharing is disabled" : "koplietošana nav ieslēgta",
- "For more info, please ask the person who sent this link." : "Vairāk informācijas vaicā personai, kas nosūtīja šo saiti."
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/files_sharing/l10n/lv.json b/apps/files_sharing/l10n/lv.json
deleted file mode 100644
index 55bf578471d..00000000000
--- a/apps/files_sharing/l10n/lv.json
+++ /dev/null
@@ -1,204 +0,0 @@
-{ "translations": {
- "Waiting…" : "Gaida...",
- "error" : "kļūda",
- "finished" : "pabeigts",
- "This will stop your current uploads." : "Tādējādi tiks pārtraukta jūsu pašreizējā augšupielāde.",
- "Move or copy" : "Pārvietot vai kopēt",
- "Download" : "Lejupielādēt",
- "Delete" : "Dzēst",
- "You can upload into this folder" : "Jūs variet augšuplādēt šajā mapē",
- "Terms of service" : "Pakalpojuma noteikumi",
- "Show list view" : "Rādīt saraksta skatu",
- "Show grid view" : "Rādīt režģa skatu",
- "No compatible server found at {remote}" : "Nav atrasts neviens saderīgs serveris {remote}",
- "Invalid server URL" : "Nederīgs servera url",
- "Failed to add the public link to your Nextcloud" : "Neizdevās pievienot publisku saiti jūsu Nextcloud",
- "File shares" : "Datņu koplietojumi",
- "Downloaded via public link" : "Lejupielādēt izmantojot publisku saiti",
- "Downloaded by {email}" : "Lejupielādēts {email}",
- "{file} downloaded via public link" : "{file} lejupielādēts izmantojot publisku saiti",
- "{email} downloaded {file}" : "{email} lejupielādēts {file}",
- "Shared with group {group}" : "Koplietots ar grupu {group}",
- "Removed share for group {group}" : "Noņēma koplietošanu grupai {group}",
- "{actor} shared with group {group}" : "{actor} koplietoja ar grupu {group}",
- "{actor} removed share for group {group}" : "{actor} noņēma koplietošanu grupai {group}",
- "Share for group {group} expired" : "Kopīgošana grupai {group} ir beigusies",
- "You shared {file} with group {group}" : "Jūs koplietojāt {file} ar grupu {group}",
- "You removed group {group} from {file}" : "Jūs noņēmāt grupu {group} no {file}",
- "{actor} shared {file} with group {group}" : "{actor} koplietoja {file} ar grupu {group}",
- "{actor} removed group {group} from {file}" : "{actor} noņēma grupu {group} no {file}",
- "Share for file {file} with group {group} expired" : "Datnes {file} kopīgošana ar grupu {group} ir beigusies",
- "Shared as public link" : "Koplietots kā publiska saite",
- "Removed public link" : "Noņemta publiska saite",
- "Public link expired" : "Publiskā saite ir beigusies",
- "{actor} shared as public link" : "{actor} koplietoja kā publisku saiti",
- "{actor} removed public link" : "{actor} noņēma publisko saiti",
- "Public link of {actor} expired" : "{actor} publiskā saite beidzās",
- "You shared {file} as public link" : "Jūs koplietojāt {file} kā publisku saiti",
- "You removed public link for {file}" : "Jūs noņēmāt {file} publisko saiti",
- "Public link expired for {file}" : "{file} publiskā saite beidzās",
- "{actor} shared {file} as public link" : "{actor} koplietoja {file} kā publisko saiti",
- "{actor} removed public link for {file}" : "{actor} noņēma {file} publisko saiti",
- "Public link of {actor} for {file} expired" : "{actor} publiskā saite {file} beidzās",
- "{user} accepted the remote share" : "{user} apstiprināja attālo koplietošanu",
- "{user} declined the remote share" : "{user} noraidīja attālo koplietošanu",
- "You received a new remote share {file} from {user}" : "Jūs saņēmāt attālo {file} koplietošanu no {user}",
- "{user} accepted the remote share of {file}" : "{user} apstiprināja {file} attālo koplietošanu",
- "{user} declined the remote share of {file}" : "{user} noraidīja {file} attālo koplietošanu",
- "{user} unshared {file} from you" : "{user} noņēma {file} koplietošanu ar jums",
- "Shared with {user}" : "Koplietoja ar {user}",
- "Removed share for {user}" : "Noņēma koplietošanu ar {user}",
- "You removed yourself" : "Jūs noņēmāt sevi",
- "{actor} removed themselves" : "{actor} noņēma sevi",
- "{actor} shared with {user}" : "{actor} koplietoja ar {user}",
- "{actor} removed share for {user}" : "{actor} noņēma koplietošanu {user}",
- "Shared by {actor}" : "Koplietoja {actor}",
- "{actor} removed share" : "{actor} noņēma koplietošanu",
- "Share for {user} expired" : "Koplietošana {user} beidzās",
- "Share expired" : "Koplietošana beidzās",
- "You shared {file} with {user}" : "Jūs koplietojāt {file} ar {user}",
- "You removed {user} from {file}" : "Jūs noņēmāt koplietošanu {user} no {file}",
- "You removed yourself from {file}" : "Jūs noņēmāt sevi no {file}",
- "{actor} removed themselves from {file}" : "{actor} noņēma sevi no {file}",
- "{actor} shared {file} with {user}" : "{actor} koplietoja {file} ar {user}",
- "{actor} removed {user} from {file}" : "{actor} noņemts {user} no {file}",
- "{actor} shared {file} with you" : "{actor} koplietoja {file} ar jums",
- "{actor} removed you from the share named {file}" : "{actor} noņēma jūs ko koplietošanas ar nosaukumu {file}",
- "Share for file {file} with {user} expired" : "Koplietošana datnei {file} ar {user} beidzās",
- "Share for file {file} expired" : "Koplietošana datnei {file} beidzās",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "E-pastā vai saitē koplietotā datne vai mape tika <strong>lejupielādēta</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Datne vai mape tika koplietota no <strong>cita servera</strong>",
- "Files" : "Datnes",
- "A file or folder has been <strong>shared</strong>" : "<strong>Koplietota</strong> datne vai mape",
- "Shared link" : "Koplietota saite",
- "Wrong share ID, share does not exist" : "Nepareizs koplietošanas ID, koplietojums neeksistē",
- "Could not delete share" : "Neizdevās dzēst koplietotni",
- "Please specify a file or folder path" : "Lūdzu norādiet datnes vai mapes ceļu",
- "Wrong path, file/folder does not exist" : "Nepareizs ceļš, fails/mape neeksistē",
- "Could not create share" : "Nevar izveidot koplietošanu",
- "Invalid permissions" : "Nederīgas atļaujas",
- "Invalid date, date format must be YYYY-MM-DD" : "Nepareizs datums, datumam jābūt YYYY-MM-DD formātā",
- "Group sharing is disabled by the administrator" : "Administrators grupas koplietošanu ir atslēdzis",
- "Please specify a valid group" : "Lūdzu norādiet derīgu grupu",
- "Public link sharing is disabled by the administrator" : "Administrators publisku saites koplietošanu ir atslēdzis",
- "Public upload disabled by the administrator" : "Administrators publisku augšupielādi ir atslēdzis",
- "Public upload is only possible for publicly shared folders" : "Publiska augšupielāde iespējama tikai publiski koplietotām mapēm",
- "Unknown share type" : "Nezināms koplietošanas tips",
- "Not a directory" : "Nav direktorijs",
- "Could not lock node" : "Nevarēja bloķēt",
- "Could not lock path" : "Nevarēja bloķēt ceļu",
- "Wrong or no update parameter given" : "Nepareizs atjaunināšanas parametrs vai tas nav norādīts",
- "shared by %s" : "Koplietoja %s",
- "Download all files" : "Lejupielādēt visas datnes",
- "Direct link" : "Tiešā saite",
- "Share API is disabled" : "Koplietošanas API ir atslēgta",
- "File sharing" : "Datņu koplietošana",
- "Share will expire tomorrow" : "Koplietošana rīt beigsies",
- "Your share of {node} will expire tomorrow" : "Jūsu koplietotajam {node} rīt beigsies termiņš",
- "You received {share} as a share by {user}" : "Jūs saņēmāt koplietotu {share} no {user}",
- "You received {share} to group {group} as a share by {user}" : "Jūs saņēmāt koplietotu {share} grupai {group} no {user}",
- "Accept" : "Pieņemt",
- "Decline" : "Noraidīt",
- "Sharing" : "Koplietošana",
- "Reset" : "Atiestatīt",
- "Unknown error" : "Nezināma kļūda",
- "group" : "grupa",
- "conversation" : "saruna",
- "remote" : "attālināti",
- "remote group" : "attālinātā grupa",
- "guest" : "viesis",
- "Unshare" : "Pārtraukt koplietošanu",
- "Internal link" : "Iekšējā saite",
- "Link copied" : "Saite nokopēta",
- "Password protection" : "Password protection",
- "Enter a password" : "Enter a password",
- "Enter a date" : "Ievadiet datumu",
- "Cancel" : "Atcelt",
- "Add another link" : "Pievienot citu saiti",
- "Create a new share link" : "Izveidojiet jaunu kopīgošanas saiti",
- "Share link ({label})" : "Kopīgot saiti ({label})",
- "Share link" : "Koplietot saiti",
- "Resharing is not allowed" : "Atkārtota koplietošana nav atļauta",
- "Name or email …" : "Vārds vai e-pasts ...",
- "Name, email, or Federated Cloud ID …" : "Vārds, e-pasts vai federatīvā mākoņa ID ...",
- "Searching …" : "Meklē...",
- "No elements found." : "Elementi netika atrasti.",
- "Search globally" : "Meklēt globāli",
- "Guest" : "Viesis",
- "Group" : "Grupa",
- "Email" : "E-pasts",
- "on {server}" : "uz {server}",
- "Allow upload and editing" : "Atļaut augšupielādi un rediģēšanu",
- "Allow editing" : "Atļaut rediģēšanu",
- "Advanced settings" : "Paplašināti iestatījumi",
- "Set password" : "Uzstādīt paroli",
- "Video verification" : "Video verifikācija",
- "Set expiration date" : "Uzstādīt beigu termiņu",
- "Expiration date" : "Termiņa datums",
- "Hide download" : "Slēpt lejupielādi",
- "Note to recipient" : "Piezīme saņēmējam",
- "Read" : "Lasīt",
- "Edit" : "Rediģēt",
- "Share" : "Koplietot",
- "Others with access" : "Citi ar pieeju",
- "Expires {relativetime}" : "Termiņš beidzas {relativetime}",
- "this share just expired." : "šai koplietošanai tikko beidzās termiņš.",
- "Shared with you by {owner}" : "{owner} koplietoja ar jums",
- "Shared" : "Koplietots",
- "Link to a file" : "Datnes saite",
- "Shared by" : "Koplietoja",
- "Shared with" : "Koplietots ar",
- "Shared with you and the group {group} by {owner}" : "{owner} koplietoja ar jums un grupu {group}",
- "Shared with you and {circle} by {owner}" : "{owner} koplietoja ar jums un {circle}",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} koplietoja ar jums un sarunu {conversation}",
- "Shared with you in a conversation by {owner}" : " {owner} koplietoja ar jums sarunā",
- "Shares" : "Koplietots",
- "No shares" : "Nav koplietojumu",
- "Shared with you" : "Koplietots ar jums",
- "Nothing shared with you yet" : "Nekas vēl nav koplietots",
- "Shared with others" : "Koplietots ar citiem",
- "Nothing shared yet" : "Nekas vēl nav koplietots",
- "Shared by link" : "Koplietots ar saiti",
- "No shared links" : "Nav koplietotu saišu",
- "Deleted shares" : "Dzēstie koplietojumi",
- "No deleted shares" : "Nav dzēstu koplietojumu",
- "Pending shares" : "Gaidošie koplietojumi",
- "No pending shares" : "Nav gaidošie koplietojumi",
- "Share note" : "Koplietot piezīmi",
- "Upload files to %s" : "Augšupielādēt datnes uz %s",
- "Note" : "Piezīme",
- "Select or drop files" : "Izvēlies vai ievelc datnes",
- "Uploading files" : "Augšupielādē datnes",
- "Uploaded files:" : "Augšupielādētas datnes:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "Veicot datņu augšupielādi, jūs piekrītat %1$spakalpojuma noteikumiem%2$s.",
- "Add to your Nextcloud" : "Pievienot savam Nextcloud",
- "Files and folders others share with you will show up here" : "Šeit būs redzamas koplietotās datnes un mapes, ko citi koplietos ar jums",
- "Files and folders you share will show up here" : "Šeit būs redzamas jūsu koplietotās datnes un mapes",
- "Files and folders you share by link will show up here" : "Šeit būs redzamas ar saiti koplietotās datnes un mapes",
- "Shares you deleted will show up here" : "Šeit būs redzami jūsu dzēstie koplietojumi",
- "Shares you have received but not confirmed will show up here" : "Šeit tiks rādīti jūsu saņemtie, bet neapstiprinātie koplietojumi",
- "Shares will show up here" : "Šeit tiks rādīti koplietojumi",
- "Restore" : "Atjaunot",
- "Something happened. Unable to restore the share." : "Kaut kas atgadījās. Nevar atjaunot kopīgošanu.",
- "Something happened. Unable to accept the share." : "Kaut kas atgadījās. Nevar apstiprināt koplietošanu.",
- "Something happened. Unable to reject the share." : "Kaut kas atgadījās. Nevar noraidīt koplietojumu.",
- "No expiration date set" : "Nav noteikts derīguma termiņa beigu datums",
- "Please specify a valid user" : "Lūdzu norādiet derīgu lietotāju",
- "Accept user and group shares by default" : "Pēc noklusējuma pieņemt koplietošanu no lietotājiem un grupām",
- "Read only" : "Tikai lasāms",
- "File drop (upload only)" : "Datņu mešana (tikai augšupielādei)",
- "Upload" : "Augšupielādēt",
- "Only works for users with access to this file" : "Darbojas tikai lietotājiem, kuriem ir piekļuve šai datnei",
- "Circle" : "Loks",
- "Update" : "Atjaunināt",
- "No other users with access found" : "Nav atrasti citi lietotāji ar pieeju",
- "No entries found in this folder" : "Šajā mapē nekas nav atrasts",
- "Name" : "Nosaukums",
- "Share time" : "Koplietošanas laiks",
- "Reasons might be:" : "Iespējamie iemesli:",
- "the item was removed" : "vienums tika dzēsts",
- "the link expired" : "saitei beidzies termiņš",
- "sharing is disabled" : "koplietošana nav ieslēgta",
- "For more info, please ask the person who sent this link." : "Vairāk informācijas vaicā personai, kas nosūtīja šo saiti."
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/mk.js b/apps/files_sharing/l10n/mk.js
index 762efeb9ac8..0dceb8e92b8 100644
--- a/apps/files_sharing/l10n/mk.js
+++ b/apps/files_sharing/l10n/mk.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Почекајте...",
- "error" : "грешка",
- "finished" : "завршено",
- "This will stop your current uploads." : "Ова ќе го прекине вашето моментално прикачување.",
- "Move or copy" : "Премести или копирај",
- "Download" : "Преземи",
- "Delete" : "Избриши",
- "You can upload into this folder" : "Можете да прикачувате во оваа папка",
- "Terms of service" : "Услови за користење",
- "Show list view" : "Прикажи поглед во листа",
- "Show grid view" : "Прикажи поглед во мрежа",
- "No compatible server found at {remote}" : "{remote} не е компатибилен сервер",
- "Invalid server URL" : "Неправилна URL на сервер",
- "Failed to add the public link to your Nextcloud" : "Неуспешно додавање на јавниот линк",
"File shares" : "Споделување на датотеки",
"Downloaded via public link" : "Превемено преку јавен линк",
"Downloaded by {email}" : "Преземено од {email}",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "Споделувањето на {file} со {user} истече",
"Share for file {file} expired" : "Споделувањето на {file} истече",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Датотека или папка споделена преку е-пошта или преку јавен линк е <strong>преземена</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "<strong>Прикачени се датотеки</strong> во папка која ја споделивте преку е-пошта или јавен линк",
"A file or folder was shared from <strong>another server</strong>" : "Датотека или папка е споделена од <strong>друг сервер</strong>",
- "Files" : "Датотеки",
+ "Sharing" : "Споделување",
"A file or folder has been <strong>shared</strong>" : "Датотека или папка беше <strong>споделена</strong>",
"Shared link" : "Споделен линк",
"Wrong share ID, share does not exist" : "Погрешно ID на споделување, споделувањето не постои",
@@ -78,31 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "Изберете датотека или патека до папка",
"Wrong path, file/folder does not exist" : "Погрешна патека, датотеката/папката не постои",
"Could not create share" : "Неможе да се креира споделување",
- "Invalid permissions" : "Неважечки дозволи",
- "Invalid date, date format must be YYYY-MM-DD" : "Невалиден датум, форматот мора да биде ГГГГ-ММ-ДД",
+ "Please specify a valid account to share with" : "Ве молиме наведете валидна сметка за споделување",
"Group sharing is disabled by the administrator" : "Споделување во групата е оневозможено од страна на администраторот",
"Please specify a valid group" : "Изберете група",
"Public link sharing is disabled by the administrator" : "Споделување со јавен линк е оневозможено од страна на администраторот",
- "Public upload disabled by the administrator" : "Јавно прикачување е оневозможено од страна на администраторот",
- "Public upload is only possible for publicly shared folders" : "Јавно прикачување е возможно само на јавно споделени папки",
+ "Please specify a valid email address" : "Наведете важечка адреса за е-пошта",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Неуспешно испраќање на лозинка за споделувањето %s преку разговор бидејќи разговорот не е овозможен",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Споделувањето на %1$s е неуспешно бидејќи позадината не дозволува споделувања од видот %2$s",
+ "Please specify a valid federated account ID" : "Ве молиме наведете важечки ID на федерирана сметка",
"Please specify a valid federated group ID" : "Внесете валидно федерално групно ИД",
- "You cannot share to a Circle if the app is not enabled" : "Неможете да споделите во круг ако апликацијата не е овозможена",
- "Please specify a valid circle" : "Изберете круг",
+ "You cannot share to a Team if the app is not enabled" : "Не можете да споделувате со тим ако апликацијата не е овозможена",
+ "Please specify a valid team" : "Ве молиме наведете валиден тим",
"Sharing %s failed because the back end does not support room shares" : "Споделувањето на %s е неуспешно бидејќи позадината не дозволува споделувања во соби со разговори",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Споделувањето на %s е неуспешно бидејќи серверот не дозволува ScienceMesh споделувања",
"Unknown share type" : "Непознат вид на споделување",
"Not a directory" : "Не е директориум",
"Could not lock node" : "Не можам да го заклучам јазолот",
- "Could not lock path" : "Неможе да се заклучи патеката",
- "Wrong or no update parameter given" : "Погрешни или нема зададено параметри за ажурирање",
+ "Public upload is only possible for publicly shared folders" : "Јавно прикачување е возможно само на јавно споделени папки",
"Share must at least have READ or CREATE permissions" : "Споделувањето мора барем да има дозволи за ЧИТАЊЕ или СОДАВАЊЕ",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Споделувањето мора да има дозвола за ЧИТАЊЕ ако е поставена дозвола за АЖУРИРАЊЕ или БРИШЕЊЕ",
+ "Public upload disabled by the administrator" : "Јавно прикачување е оневозможено од страна на администраторот",
+ "Could not lock path" : "Неможе да се заклучи патеката",
+ "no sharing rights on this item" : "немате право за споделување на оваа ставка",
+ "You are not allowed to edit incoming shares" : "Не ви е дозволено да ги уредувате дојдовните споделувања",
+ "Wrong or no update parameter given" : "Погрешни или нема зададено параметри за ажурирање",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "„Испраќањето на лозинката преку Talk“ за споделување датотека или папка не успеа бидејќи Talk не е овозможен.",
+ "Custom share link tokens have been disabled by the administrator" : "Администраторот ги оневозможи приспособените токени за линкови за споделување",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Токените мора да содржат најмалку 1 знак и може да содржат само букви, бројки или цртичка",
+ "Invalid date. Format must be YYYY-MM-DD" : "Невалиден датум. Форматот мора да биде ГГГГ-ММ-ДД",
+ "No sharing rights on this item" : "Немате право за споделување на оваа ставка",
+ "Invalid share attributes provided: \"%s\"" : "Обезбедени неважечки атрибути за споделување: \"%s\"",
+ "You are not allowed to send mail notifications" : "Не сте овластени да испраќате известувања на е-пошта",
+ "No mail notification configured for this share type" : "Нема конфигурирано известување по е-пошта за овој тип на споделување",
+ "Wrong password" : "Погрешна лозинка",
+ "Error while sending mail notification" : "Грешка при испраќање на известување на е-пошта",
+ "Failed to generate a unique token" : "Неуспешно генерирање на уникатен токен",
+ "This share does not exist or is no longer available" : "Споделувањето не постои или не е повеќе достапно",
"shared by %s" : "споделено од %s",
- "Download all files" : "Преземи ги сите датотеки",
- "Direct link" : "Директен линк",
+ "Download" : "Преземи",
"Add to your %s" : "Додади на твојот %s",
+ "Direct link" : "Директен линк",
"Share API is disabled" : "API-то за споделување е оневозможено",
"File sharing" : "Споделување на датотеки",
"Share will expire tomorrow" : "Споделувањето ќе истече утре",
@@ -111,124 +113,221 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Примивте {share} во групата {group} како споделување од {user}",
"Accept" : "Прифати",
"Decline" : "Одбиј",
- "Sharing" : "Споделување",
+ "Remember to upload the files to %s" : "Не заборавајте да ги прикачите датотеките на %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Сакаме да ве потсетиме дека сè уште не сте поставиле ниедна датотека во споделената папка.",
+ "Open \"%s\"" : "Отвори \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Оваа апликација им овозможува на корисниците да споделуваат датотеки во рамките на Nextcloud. Доколку е овозможено, администраторот може да избере кои групи можат да споделуваат датотеки. Применливите корисници потоа можат да споделуваат датотеки и папки со други корисници и групи во рамките на Nextcloud. Покрај тоа, ако администраторот ја овозможи функцијата за далечно споделување, може да се користи надворешна врска за споделување датотеки со други корисници надвор од Nextcloud. Администраторот исто така може да овозможи поставување на лозинки, датуми на истекувања и да овозможи споделување од сервер на сервер преку линкови за споделување, како и споделување од мобилни уреди.\nИсклучувањето на функцијата ги отстранува споделените датотеки и папките на серверот за сите приматели на споделување, а исто така и на клиентите за синхронизација и апликациите за мобилни. Повеќе информации се достапни во Документацијата на Nextcloud.",
+ "People" : "Луѓе",
+ "Filter accounts" : "Филтрирај сметки",
+ "The request will expire on {date} at midnight and will be password protected." : "Барањето ќе истече на {date} на полноќ и ќе биде заштитено со лозинка.",
+ "The request will expire on {date} at midnight." : "Барањето ќе истече на {date} на полноќ.",
+ "The request will be password protected." : "Барањето ќе биде заштитено со лозинка.",
+ "When should the request expire?" : "Кога треба да истече барањето?",
+ "Set a submission expiration date" : "Поставете датум на истекување на поднесувањето",
+ "Expiration date" : "Рок на траење",
+ "Select a date" : "Избери датум",
+ "Your administrator has enforced a {count} days expiration policy." : "Вашиот администратор спроведе политика за истекување на рокот на траење на минимум {count}дена.",
+ "What password should be used for the request?" : "Која лозинка треба да се користи за барањето?",
+ "Set a password" : "Постави лозинка",
+ "Password" : "Лозинка",
+ "Enter a valid password" : "Внесете валидна лозинка",
+ "Generate a new password" : "Генерирај нова лозинка",
+ "Your administrator has enforced a password protection." : "Вашиот администратор спроведе политика за заштита со лозинка на споделувањата.",
+ "Automatically copying failed, please copy the share link manually" : "Неможе да се копира, копирајте го линкот рачно",
+ "Link copied" : "Линкот е копиран",
+ "Email already added" : "Е-поштата е веќе додадена",
+ "Invalid email address" : "Неправилна е-пошта адреса",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Адресата на е-пошта не е валидна: {emails}","Следниве адреси на е-пошта не се валидни: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} е-пошта адреса е веќе додадена","{count} е-пошта адреси се веќе додадени"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} е-пошта адреса е додадена","{count} е-пошта адреси се додадени"],
+ "You can now share the link below to allow people to upload files to your directory." : "Испратете го линкот за да им дозволите на луѓето да прикачат датотеки.",
+ "Share link" : "Сподели линк",
+ "Send link via email" : "Испрати линк преку е-пошта",
+ "Enter an email address or paste a list" : "Внеси е-пошта адреса или цела листа",
+ "Remove email" : "Отстрани е-пошта",
+ "Select a destination" : "Изберете дестинација",
+ "Select" : "Избери",
+ "What are you requesting?" : "Што барате?",
+ "Request subject" : "Предмет на барање",
+ "Birthday party photos, History assignment…" : "Фотографии, документи ...",
+ "Where should these files go?" : "Каде да се зачуваат датотеките?",
+ "Upload destination" : "Дестинација на прикачување",
+ "Revert to default" : "Врати се на стандардно",
+ "The uploaded files are visible only to you unless you choose to share them." : "Прикачените датотеки се видливи само за вас, освен ако не изберете да ги споделите.",
+ "Add a note" : "Додади белешка",
+ "Note for recipient" : "Белешка до примачот",
+ "Add a note to help people understand what you are requesting." : "Додајте белешка за да им помогнете на луѓето да разберат што барате.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Можете да додадете линкови, датум или која било друга информација што ќе му помогне на примачот да разбере што барате.",
+ "Close" : "Затвори",
+ "_Send email and close_::_Send {count} emails and close_" : ["Испрати порака на е-пошта и затвори","Испрати {count} пораки на е-пошта и затвори"],
+ "Please select a folder, you cannot share the root directory." : "Изберете папка, Неможете да ја споделите главната папка.",
+ "File request created" : "Барање за датотека е креирано",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Барање за датотека е креирано и испратена е порака на е-пошта","Барање за датотека е креирано и {count} пораки на е-пошта се испратени"],
+ "Error creating the share: {errorMessage}" : "Грешка при креирање на споделување: {errorMessage}",
+ "Error creating the share" : "Грешка при креирање на споделување",
+ "Error sending emails: {errorMessage}" : "Грешка при испраќање {errorMessage} пораки на е-пошта",
+ "Error sending emails" : "Грешка при испраќање на е-пошта порака",
+ "Create a file request" : "Креирај барање за датотека",
+ "Collect files from others even if they do not have an account." : "Прибавете датотеки од други дури и ако немаат сметка.",
+ "To ensure you can receive files, verify you have enough storage available." : "За да се осигурате дека можете да примате датотеки, проверете дали имате доволно простор на располагање.",
+ "File request" : "Барање за датотека",
+ "Previous step" : "Предходен чекор",
+ "Cancel" : "Откажи",
+ "Cancel the file request creation" : "Откажи барање за датотека",
+ "Close without sending emails" : "Затвори без испраќање е-пошта",
+ "Continue" : "Продолжи",
"Error while toggling options" : "Грешка при префрлање опции",
- "Set default folder for accepted shares" : "Постави стандардна папка за прифатените споделувања",
- "Reset" : "Ресетирање",
- "Reset folder to system default" : "Ресетирајте ја папката на стандардниот систем",
+ "Accept shares from other accounts and groups by default" : "Стандардно прифаќај акции од други корисници и групи",
"Choose a default folder for accepted shares" : "Избери стандардна папка за прифатените споделувања",
"Invalid path selected" : "Избрана невалидна патека",
"Unknown error" : "Непозната грешка",
- "Open Sharing Details" : "Отвори детали за споделувањето",
+ "Set default folder for accepted shares" : "Постави стандардна папка за прифатените споделувања",
+ "Reset" : "Ресетирање",
+ "Reset folder to system default" : "Ресетирајте ја папката на стандардниот систем",
+ "Share expiration: {date}" : "Рок на траење на споделувањето: {date}",
+ "Share Expiration" : "Рок на траење на споделувањето",
"group" : "група",
"conversation" : "разговор",
"remote" : "далечински",
"remote group" : "оддалечена група",
"guest" : "гостин",
+ "by {initiator}" : "од {initiator}",
"Shared with the group {user} by {owner}" : "Споделено со група на {user} од {owner}",
"Shared with the conversation {user} by {owner}" : "Споделено со разговор на {user} од {owner}",
"Shared with {user} by {owner}" : "Споделено со {user} од {owner}",
+ "Open Sharing Details" : "Отвори детали за споделувањето",
"Added by {initiator}" : "Додадено од {initiator}",
"Via “{folder}”" : "Преку “{folder}”",
"Unshare" : "Отстрани споделување",
- "Internal link" : "Внатрешен линк",
"Cannot copy, please copy the link manually" : "Неможе да се копира, копирајте го линкот рачно",
- "Copy internal link to clipboard" : "Копирај внатрешен линк во клипборд",
- "Link copied" : "Линкот е копиран",
- "Please enter the following required information before creating the share" : "Внесете ги следниве потребни податоци пред да го креирате споделувањето",
- "Password protection (enforced)" : "Заштитено со лозинка (enforced)",
- "Password protection" : "Заштитено со лозинка",
- "Enter a password" : "Внесете лозинка",
- "Expiration date (enforced)" : "Рок на траење (enforced)",
- "Enter a date" : "Внесете датум",
- "Create share" : "Ново споделување",
- "Cancel" : "Откажи",
- "Customize link" : "Прилагоди линк",
- "Add another link" : "Додади линк",
- "Create a new share link" : "Креирајте нов линк за споделување",
+ "Copy internal link" : "Копирај внатрешен линк",
+ "Internal link" : "Внатрешен линк",
"{shareWith} by {initiator}" : "{shareWith} од {initiator}",
"Shared via link by {initiator}" : "Споделено со линк од {initiator}",
+ "File request ({label})" : "Барање за датотека ({label})",
"Mail share ({label})" : "Споделено преку е-пошта ({label})",
"Share link ({label})" : "Сподели линк ({label})",
+ "Mail share" : "Споделување со е-пошта",
"Share link ({index})" : "Сподели линк ({index})",
- "Share link" : "Сподели линк",
+ "Create public link" : "Креирај јавен линк",
"Actions for \"{title}\"" : "Акции за \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Копирај јавен линк во клипборд за \"{title}\"",
"Error, please enter proper password and/or expiration date" : "Грешка, внесете лозинка и/или рок на траење",
"Link share created" : "Креиран линк за споделување",
"Error while creating the share" : "Грешка при креирање на споделување",
+ "Please enter the following required information before creating the share" : "Внесете ги следниве потребни податоци пред да го креирате споделувањето",
+ "Password protection (enforced)" : "Заштитено со лозинка (enforced)",
+ "Password protection" : "Заштитено со лозинка",
+ "Enter a password" : "Внесете лозинка",
+ "Enable link expiration (enforced)" : "Овозможи истекување на линк (задолжително)",
+ "Enable link expiration" : "Овозможи истекување на линк",
+ "Enter expiration date (enforced)" : "Внесете датум на истекување (задолжително)",
+ "Enter expiration date" : "Внесете датум на истекување",
+ "Create share" : "Ново споделување",
+ "Customize link" : "Прилагоди линк",
+ "Generate QR code" : "Генерирај QR код",
+ "Add another link" : "Додади линк",
+ "Create a new share link" : "Креирајте нов линк за споделување",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Опции за брзо споделување за , тековната избрана е \"{selectedOption}\"",
"View only" : "Само за гледање",
"Can edit" : "Може да се уредува",
- "File drop" : "Повлечи и прикачи",
"Custom permissions" : "Прилагодени дозволи",
- "Search for share recipients" : "Пребарај за примачи на споделувањето",
- "No recommendations. Start typing." : "Нема препораки. Започнете со пишување.",
"Resharing is not allowed" : "Повторно споделување не е дозволено",
"Name or email …" : "Име или е-пошта ...",
"Name, email, or Federated Cloud ID …" : "Име, е-пошта или федерален ИД ...",
"Searching …" : "Пребарување ...",
"No elements found." : "Нема пронајдено елементи.",
- "Search globally" : "Пребарај глобално",
+ "Search everywhere" : "Барај насекаде",
"Guest" : "Гостин",
"Group" : "Група",
"Email" : "Е-пошта",
+ "Team" : "Тим",
"Talk conversation" : "Talk раговор",
+ "ScienceMesh" : "ScienceMesh",
"on {server}" : "на {server}",
+ "Enter external recipients" : "Внесете надворешни примачи",
+ "Search for internal recipients" : "Пребарај внатрешни примачи",
+ "Note from" : "Белешка од",
+ "Note:" : "Белешка:",
+ "File drop" : "Повлечи и прикачи",
+ "Upload files to {foldername}." : "Прикачи датотеки во {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Со прикачување на датотеки, се согласувате со условите за користење.",
+ "Successfully uploaded files" : "Успешно прикачени датотеки",
+ "View terms of service" : "Прочитај ги условите за користење",
+ "Terms of service" : "Услови за користење",
+ "Share with {user}" : "Сподели со {user}",
+ "Share with email {email}" : "Сподели со е-пошта {email}",
+ "Share with group" : "Сподели со група",
+ "Share in conversation" : "Сподели во разговор",
+ "Share with {user} on remote server {server}" : "Споделено со {user} на далечен сервер {server}",
+ "Share with remote group" : "Сподели со оддалечена група",
+ "Share with guest" : "Сподели со гости",
+ "Update share" : "Ажурирај споделување",
+ "Save share" : "Зачувај споделување",
+ "Read" : "Читај",
+ "Create" : "Креирај",
+ "Edit" : "Уреди",
+ "Share" : "Сподели",
+ "Delete" : "Избриши",
+ "Password field cannot be empty" : "Полето за лозинка неможе да биде празно",
+ "Replace current password" : "Заменете ја тековната лозинка",
+ "Failed to generate a new token" : "Неуспешно генерирање нов токен",
"Allow upload and editing" : "Дозволи прикачување и уредување",
"Allow editing" : "Овозможи уредување",
"Upload only" : "Само прикачување",
"Advanced settings" : "Напредни параметри",
"Share label" : "Ознака на споделувањето",
+ "Share link token" : "Сподели токен за линк",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Поставете го токенот за јавен линкза споделување на нешто лесно за паметење или генерирајте нов токен. Не се препорачува да се користи токен што може да се погоди за акции што содржат чувствителни информации.",
+ "Generating…" : "Се генерира…",
+ "Generate new token" : "Генерирај нов токен",
"Set password" : "Постави лозинка",
- "Password" : "Лозинка",
"Password expires {passwordExpirationTime}" : "Лозинката истекува на {passwordExpirationTime}",
"Password expired" : "Лозинката е истечена",
"Video verification" : "Верификација со видео",
+ "Expiration date (enforced)" : "Рок на траење (enforced)",
"Set expiration date" : "Постави рок на траење",
- "Expiration date" : "Рок на траење",
"Hide download" : "Сокриј преземање",
- "Allow download" : "Дозволи преземање",
+ "Allow download and sync" : "Дозволете преземање и синхронизирање",
"Note to recipient" : "Белешка до примачот",
"Enter a note for the share recipient" : "Внесете белешка до примачот на споделуваето",
- "Read" : "Читај",
- "Create" : "Креирај",
- "Edit" : "Уреди",
- "Share" : "Сподели",
+ "Show files in grid view" : "Прикажи ги датотеките во поглед во мрежа",
"Delete share" : "Избриши споделување",
- "Update share" : "Ажурирај споделување",
- "Save share" : "Зачувај споделување",
"Others with access" : "Други со пристап",
+ "No other accounts with access found" : "Не се најдени други сметки со пристап",
"Toggle list of others with access to this directory" : "Изберете листата со други корисници со пристап до овој директориум",
"Toggle list of others with access to this file" : "Изберете листата со други корисници со пристап до оваа датотека",
"Unable to fetch inherited shares" : "Не можам да ги преземам наследените споделувања",
+ "Link shares" : "Споделувања со линк",
+ "Shares" : "Споделувања",
"Unable to load the shares list" : "Неможе да се вчита листата на споделувања",
"Expires {relativetime}" : "Истекува {relativetime}",
"this share just expired." : "ова споделување штотуку истече.",
"Shared with you by {owner}" : "Споделено со Вас од {owner}",
+ "Internal shares" : "Внатрешни споделувања",
+ "Internal shares explanation" : "Објаснување за внатрешни споделувања",
+ "External shares" : "Надворешни споделувања",
+ "External shares explanation" : "Објаснување за надворешни споделувања",
+ "Additional shares" : "Дополнителни споделувања",
+ "Additional shares explanation" : "Објаснување за додатни споделувања",
+ "Link to a file" : "Линк до датотеката",
"_Accept share_::_Accept shares_" : ["Прифати го споделувањето","Прифати ги споделувањата"],
"Open in Files" : "Отвори во датотеките",
"_Reject share_::_Reject shares_" : ["Одбиј го споделувањето","Одбиј ги споделувањата"],
"_Restore share_::_Restore shares_" : ["Врати споделување","Врати споделувања"],
"Shared" : "Споделен",
"Shared by {ownerDisplayName}" : "Споделено од {ownerDisplayName}",
- "Show sharing options" : "Прикажи параметри за споделување",
- "Link to a file" : "Линк до датотеката",
- "Error creating the share: {errorMessage}" : "Грешка при креирање на споделување: {errorMessage}",
- "Error creating the share" : "Грешка при креирање на споделување",
- "Error updating the share: {errorMessage}" : "Грешка при ажурирање на споделувањето: {errorMessage}",
- "Error updating the share" : "Грешка при ажурирање на споделувањето",
- "File \"{path}\" has been unshared" : "Датотеката \"{path}\" повеќе не се споделува",
- "Folder \"{path}\" has been unshared" : "Папката \"{path}\" повеќе не се споделува",
- "Share {propertyName} saved" : "Зачувано е споделувањето {propertyName}",
- "Shared by" : "Споделено од",
- "Shared with" : "Споделено со",
- "Password created successfully" : "Успрешно е креирана лозинка",
- "Error generating password from password policy" : "Грешка при генерирање на лозинка од политиката на лозинки",
- "Shared with you and the group {group} by {owner}" : "Споделено со Вас и групата {group} од {owner}",
- "Shared with you and {circle} by {owner}" : "Споделено со тебе и {circle} од {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Споделено со тебе и во разговорот {conversation} од {owner}",
- "Shared with you in a conversation by {owner}" : "Споделено со тебе и во разговорот од {owner}",
- "Shares" : "Споделувања",
+ "Shared multiple times with different people" : "Споделено повеќе пати со различни луѓе",
+ "Shared with others" : "Споделно со други",
+ "Create file request" : "Барање за датотека",
+ "Upload files to {foldername}" : "Прикачи датотеки во {foldername}",
+ "Public file share" : "Јавно споделување датотека",
+ "Publicly shared file." : "Јавно споделена датотека.",
+ "No file" : "Нема датотека",
+ "The file shared with you will show up here" : "Датотеките што другите ги споделуваат со вас ќе се прикажат овде",
+ "Public share" : "Јавно споделување",
+ "Publicly shared files." : "Јавно споделени датотеки.",
+ "No files" : "Нема датотеки",
+ "Files and folders shared with you will show up here" : "Датотеките и папките што другите ги споделуваат со вас ќе се прикажат овде",
"Overview of shared files." : "Преглед на споделени датотеки.",
"No shares" : "Нема споделувања",
"Files and folders you shared or have been shared with you will show up here" : "Датотеките и папките што ги споделувате или друг ги споделува со вас ќе се прикажат овде",
@@ -236,7 +335,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Листа на датотеки што се споделени со вас.",
"Nothing shared with you yet" : "Ништо не е споделено со вас",
"Files and folders others shared with you will show up here" : "Датотеките и папките што другите ги споделуваат со вас ќе се прикажат овде",
- "Shared with others" : "Споделно со други",
"List of files that you shared with others." : "Листа на датотеки што ги имате споделено со други.",
"Nothing shared yet" : "Ништо не е споделено",
"Files and folders you shared will show up here" : "Датотеките и папките кои ги споделувате ќе се појават тука",
@@ -244,6 +342,10 @@ OC.L10N.register(
"List of files that are shared by link." : "Листа на датотеки што ги имате споделено со линк.",
"No shared links" : "Нема споделени врски/линкови",
"Files and folders you shared by link will show up here" : "Датотеките и папките кои ги споделувате со линк ќе се појават тука",
+ "File requests" : "Барања за датотеки",
+ "List of file requests." : "Листа на барања за датотеки.",
+ "No file requests" : "Нема барања за датотеки",
+ "File requests you have created will show up here" : "Барањата за датотеки што ги имате креирано ќе се појават овде",
"Deleted shares" : "Избришани споделувања",
"List of shares you left." : "Листа на споделувања што ги имате напуштено.",
"No deleted shares" : "Нема избришани споделувања",
@@ -252,47 +354,87 @@ OC.L10N.register(
"List of unapproved shares." : "Листа на неодобрени споделувања.",
"No pending shares" : "Нема споделувања на чекање",
"Shares you have received but not approved will show up here" : "Листа на споделувањата кој сте ги добиле но не се адобрени ќе се појават овде",
+ "Error deleting the share: {errorMessage}" : "Грешка при бришење на споделувањето: {errorMessage}",
+ "Error deleting the share" : "Грешка при отстранување на споделувањето",
+ "Error updating the share: {errorMessage}" : "Грешка при ажурирање на споделувањето: {errorMessage}",
+ "Error updating the share" : "Грешка при ажурирање на споделувањето",
+ "File \"{path}\" has been unshared" : "Датотеката \"{path}\" повеќе не се споделува",
+ "Folder \"{path}\" has been unshared" : "Папката \"{path}\" повеќе не се споделува",
+ "Could not update share" : "Неможе да се ажурира споделувањето",
+ "Share saved" : "Споделувањето е зачувано",
+ "Share expiry date saved" : "Зачуван е рок на траење на споделувањето",
+ "Share hide-download state saved" : "Зачуван е параметарот на споделувањето",
+ "Share label saved" : "Ознаката е зачувана",
+ "Share note for recipient saved" : "Белешката на споделувањето до примачот е зачувана",
+ "Share password saved" : "Лозинката е зачувана",
+ "Share permissions saved" : "Дозволите за споделување се зачувани",
+ "To upload files to {folder}, you need to provide your name first." : "За да прикачите датотеки во {folder}, мора да го наведете вашето име.",
+ "Upload files to {folder}" : "Прикачи датотеки во {folder}",
+ "Please confirm your name to upload files to {folder}" : "Потврдете го вашето име за да прикачите датотеки во {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} сподели папка со вас.",
+ "Names must not be empty." : "Имињата не можат да бидат празни.",
+ "Names must not start with a dot." : "Името неможе да започнува со точка.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" не е дозволено да содржи во името.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" е резервирано име и не е дозволено.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" не е дозволено име.",
+ "Names must not end with \"{extension}\"." : "Името неможе да завршува со \"{extension}\".",
+ "Invalid name." : "Невалидно име.",
+ "Shared by" : "Споделено од",
+ "Shared with" : "Споделено со",
+ "Password created successfully" : "Успрешно е креирана лозинка",
+ "Error generating password from password policy" : "Грешка при генерирање на лозинка од политиката на лозинки",
+ "Shared with you and the group {group} by {owner}" : "Споделено со Вас и групата {group} од {owner}",
+ "Shared with you and {circle} by {owner}" : "Споделено со тебе и {circle} од {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Споделено со тебе и во разговорот {conversation} од {owner}",
+ "Shared with you in a conversation by {owner}" : "Споделено со тебе и во разговорот од {owner}",
+ "Share not found" : "Споделувањето не е пронајдено",
+ "Back to %s" : "Врати се на %s",
+ "Add to your Nextcloud" : "Додадете во вашиот Cloud",
+ "Waiting…" : "Почекајте...",
+ "error" : "грешка",
+ "finished" : "завршено",
+ "This will stop your current uploads." : "Ова ќе го прекине вашето моментално прикачување.",
+ "Move or copy" : "Премести или копирај",
+ "You can upload into this folder" : "Можете да прикачувате во оваа папка",
+ "Show list view" : "Прикажи поглед во листа",
+ "Show grid view" : "Прикажи поглед во мрежа",
+ "No compatible server found at {remote}" : "{remote} не е компатибилен сервер",
+ "Invalid server URL" : "Неправилна URL на сервер",
+ "Failed to add the public link to your Nextcloud" : "Неуспешно додавање на јавниот линк",
+ "You are not allowed to edit link shares that you don't own" : "Не ви е дозволено да ги уредувате споделувањата кој не се ваши",
+ "Download all files" : "Преземи ги сите датотеки",
+ "Link copied to clipboard" : "Линкот е копиран во клипборд",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 е-пошта адреса е веќе додадена","{count} е-пошта адреси се веќе додадени"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 е-пошта адреса е додадена","{count} е-пошта адреси се додадени"],
+ "Copy to clipboard" : "Копирај во клипборд",
+ "Copy internal link to clipboard" : "Копирај внатрешен линк во клипборд",
+ "Only works for people with access to this folder" : "Работи само за луѓе со пристап до оваа папка",
+ "Only works for people with access to this file" : "Работи само за луѓе со пристап до оваа датотека",
+ "Copy public link of \"{title}\" to clipboard" : "Копирај јавен линк во клипборд за \"{title}\"",
+ "Search globally" : "Пребарај глобално",
+ "Search for share recipients" : "Пребарај за примачи на споделувањето",
+ "No recommendations. Start typing." : "Нема препораки. Започнете со пишување.",
+ "To upload files, you need to provide your name first." : "За да прикачите датотеки, мора да го наведете вашето име.",
+ "Enter your name" : "Внесете го вашето име",
+ "Submit name" : "Испрати име",
+ "Share with {userName}" : "Сподели со {userName}",
+ "Show sharing options" : "Прикажи параметри за споделување",
"Share note" : "Споделување со забелешка ",
"Upload files to %s" : "Прикачи датотеки во %s",
+ "%s shared a folder with you." : "%s сподели папка со вас.",
"Note" : "Белешка",
"Select or drop files" : "Изберете или испуштете датотеки",
"Uploading files" : "Прикачување на датотеки",
"Uploaded files:" : "Прикачени датотеки:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Со прикачување на датотеките, се согласувате со %1$sусловите за користење%2$s.",
- "Add to your Nextcloud" : "Додадете во вашиот Cloud",
- "Files and folders others share with you will show up here" : "Датотеките и папките што другите ги споделуваат со вас ќе се прикажат овде",
- "Files and folders you share will show up here" : "Датотеките и папките кои ги споделувате ќе се појават тука",
- "Files and folders you share by link will show up here" : "Датотеките и папките кои ги споделувате со линк ќе се појават тука",
- "Shares you deleted will show up here" : "Споделувањата што сте ги избришале ќе се појават овде",
- "Shares you have received but not confirmed will show up here" : "Споделувањата кој сте ги добиле но не сте ги потврдиле ќе се појават овде.",
- "Shares will show up here" : "Споделувањата ќе се појават овде",
- "Restore" : "Врати",
- "Something happened. Unable to restore the share." : "Нешто се случило. Неможе да се врати споделувањето.",
- "Something happened. Unable to accept the share." : "Нешто се случи. Неможам да го прифатам споделувањето.",
- "Something happened. Unable to reject the share." : "Нешто се случи. Неможам да го одбијам споделувањето.",
- "No expiration date set" : "Не е поставен рок на траење",
- "Please specify a valid user" : "Изберете корисник",
- "Please specify a valid federated user ID" : "Внесете валидно федерално корисничко ИД",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Оваа апликација им овозможува на корисниците да споделуваат датотеки во рамките на Nextcloud. Доколку е овозможено, администраторот може да избере кои групи можат да споделуваат датотеки. Применливите корисници потоа можат да споделуваат датотеки и папки со други корисници и групи во рамките на Nextcloud. Покрај тоа, ако администраторот ја овозможи функцијата за далечно споделување, може да се користи надворешна врска за споделување датотеки со други корисници надвор од Nextcloud. Администраторот исто така може да овозможи поставување на лозинки, датуми на истекувања и да овозможи споделување од сервер на сервер преку линкови за споделување, како и споделување од мобилни уреди.\nИсклучувањето на функцијата ги отстранува споделените датотеки и папките на серверот за сите приматели на споделување, а исто така и на клиентите за синхронизација и апликациите за мобилни. Повеќе информации се достапни во Документацијата на Nextcloud.",
- "Accept user and group shares by default" : "Стандардно прифаќај споделувања од корисници и групи",
- "Read only" : "Само читај",
- "File drop (upload only)" : "Испуши датотека (само за прикачување)",
- "Upload" : "Прикачи",
- "Bundled permissions" : "Пакет дозволи",
- "Only works for users with access to this folder" : "Функционира само за корисници со пристап до оваа папка",
- "Only works for users with access to this file" : "Функционира само за корисници со пристап до оваа датотека",
- "Circle" : "Круг",
- "Update" : "Ажурирај",
- "Share with " : "Сподели со",
- "No other users with access found" : "Не се пројандени други корисници со простап",
- "No entries found in this folder" : "Нема ништо во оваа папка",
"Name" : "Име",
- "Share time" : "Време на споделување",
- "Sorry, this link does not seem to work anymore." : "Извенете, но овој линк повеќе не функционира.",
- "Reasons might be:" : "Причината може да е:",
- "the item was removed" : "предметот беше отстранет",
- "the link expired" : "рокот на линкот е истечен",
- "sharing is disabled" : "споделувањето не е дозволено",
- "For more info, please ask the person who sent this link." : "За повеќе информации, прашајте го лицето кое ви го испратил линкот."
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Користете го овој метод за споделување датотеки со поединци или тимови во вашата организација. Ако примачот веќе има пристап до споделувањето, но не може да го лоцира, можете да му ја испратите внатрешната врска за споделување за лесен пристап.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Користете го овој метод за споделување датотеки со поединци или организации надвор од вашата организација. Датотеките и папките може да се споделуваат преку јавни линкови и адреси на е-пошта. Можете исто така да споделувате со други сметки на Nextcloud хостирани на различни истанци користејќи го нивниот федеративен ID.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Споделувања кои не се дел од внатрешни или надворешни споделувања. Ова може да биде споделување од апликации или други извори.",
+ "Share with accounts, teams, federated cloud id" : "Сподели со корисници, тимови, федерални корисници",
+ "Share with accounts and teams" : "Сподели со корисници и тимови",
+ "Federated cloud ID" : "Федерален корисник",
+ "Email, federated cloud id" : "Е-пошта, федерален ИД",
+ "Filename must not be empty." : "Името на датотеката не може да биде празно."
},
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
diff --git a/apps/files_sharing/l10n/mk.json b/apps/files_sharing/l10n/mk.json
index 0eeab092d26..9534dcfca47 100644
--- a/apps/files_sharing/l10n/mk.json
+++ b/apps/files_sharing/l10n/mk.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Почекајте...",
- "error" : "грешка",
- "finished" : "завршено",
- "This will stop your current uploads." : "Ова ќе го прекине вашето моментално прикачување.",
- "Move or copy" : "Премести или копирај",
- "Download" : "Преземи",
- "Delete" : "Избриши",
- "You can upload into this folder" : "Можете да прикачувате во оваа папка",
- "Terms of service" : "Услови за користење",
- "Show list view" : "Прикажи поглед во листа",
- "Show grid view" : "Прикажи поглед во мрежа",
- "No compatible server found at {remote}" : "{remote} не е компатибилен сервер",
- "Invalid server URL" : "Неправилна URL на сервер",
- "Failed to add the public link to your Nextcloud" : "Неуспешно додавање на јавниот линк",
"File shares" : "Споделување на датотеки",
"Downloaded via public link" : "Превемено преку јавен линк",
"Downloaded by {email}" : "Преземено од {email}",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "Споделувањето на {file} со {user} истече",
"Share for file {file} expired" : "Споделувањето на {file} истече",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Датотека или папка споделена преку е-пошта или преку јавен линк е <strong>преземена</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "<strong>Прикачени се датотеки</strong> во папка која ја споделивте преку е-пошта или јавен линк",
"A file or folder was shared from <strong>another server</strong>" : "Датотека или папка е споделена од <strong>друг сервер</strong>",
- "Files" : "Датотеки",
+ "Sharing" : "Споделување",
"A file or folder has been <strong>shared</strong>" : "Датотека или папка беше <strong>споделена</strong>",
"Shared link" : "Споделен линк",
"Wrong share ID, share does not exist" : "Погрешно ID на споделување, споделувањето не постои",
@@ -76,31 +63,46 @@
"Please specify a file or folder path" : "Изберете датотека или патека до папка",
"Wrong path, file/folder does not exist" : "Погрешна патека, датотеката/папката не постои",
"Could not create share" : "Неможе да се креира споделување",
- "Invalid permissions" : "Неважечки дозволи",
- "Invalid date, date format must be YYYY-MM-DD" : "Невалиден датум, форматот мора да биде ГГГГ-ММ-ДД",
+ "Please specify a valid account to share with" : "Ве молиме наведете валидна сметка за споделување",
"Group sharing is disabled by the administrator" : "Споделување во групата е оневозможено од страна на администраторот",
"Please specify a valid group" : "Изберете група",
"Public link sharing is disabled by the administrator" : "Споделување со јавен линк е оневозможено од страна на администраторот",
- "Public upload disabled by the administrator" : "Јавно прикачување е оневозможено од страна на администраторот",
- "Public upload is only possible for publicly shared folders" : "Јавно прикачување е возможно само на јавно споделени папки",
+ "Please specify a valid email address" : "Наведете важечка адреса за е-пошта",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Неуспешно испраќање на лозинка за споделувањето %s преку разговор бидејќи разговорот не е овозможен",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Споделувањето на %1$s е неуспешно бидејќи позадината не дозволува споделувања од видот %2$s",
+ "Please specify a valid federated account ID" : "Ве молиме наведете важечки ID на федерирана сметка",
"Please specify a valid federated group ID" : "Внесете валидно федерално групно ИД",
- "You cannot share to a Circle if the app is not enabled" : "Неможете да споделите во круг ако апликацијата не е овозможена",
- "Please specify a valid circle" : "Изберете круг",
+ "You cannot share to a Team if the app is not enabled" : "Не можете да споделувате со тим ако апликацијата не е овозможена",
+ "Please specify a valid team" : "Ве молиме наведете валиден тим",
"Sharing %s failed because the back end does not support room shares" : "Споделувањето на %s е неуспешно бидејќи позадината не дозволува споделувања во соби со разговори",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Споделувањето на %s е неуспешно бидејќи серверот не дозволува ScienceMesh споделувања",
"Unknown share type" : "Непознат вид на споделување",
"Not a directory" : "Не е директориум",
"Could not lock node" : "Не можам да го заклучам јазолот",
- "Could not lock path" : "Неможе да се заклучи патеката",
- "Wrong or no update parameter given" : "Погрешни или нема зададено параметри за ажурирање",
+ "Public upload is only possible for publicly shared folders" : "Јавно прикачување е возможно само на јавно споделени папки",
"Share must at least have READ or CREATE permissions" : "Споделувањето мора барем да има дозволи за ЧИТАЊЕ или СОДАВАЊЕ",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Споделувањето мора да има дозвола за ЧИТАЊЕ ако е поставена дозвола за АЖУРИРАЊЕ или БРИШЕЊЕ",
+ "Public upload disabled by the administrator" : "Јавно прикачување е оневозможено од страна на администраторот",
+ "Could not lock path" : "Неможе да се заклучи патеката",
+ "no sharing rights on this item" : "немате право за споделување на оваа ставка",
+ "You are not allowed to edit incoming shares" : "Не ви е дозволено да ги уредувате дојдовните споделувања",
+ "Wrong or no update parameter given" : "Погрешни или нема зададено параметри за ажурирање",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "„Испраќањето на лозинката преку Talk“ за споделување датотека или папка не успеа бидејќи Talk не е овозможен.",
+ "Custom share link tokens have been disabled by the administrator" : "Администраторот ги оневозможи приспособените токени за линкови за споделување",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Токените мора да содржат најмалку 1 знак и може да содржат само букви, бројки или цртичка",
+ "Invalid date. Format must be YYYY-MM-DD" : "Невалиден датум. Форматот мора да биде ГГГГ-ММ-ДД",
+ "No sharing rights on this item" : "Немате право за споделување на оваа ставка",
+ "Invalid share attributes provided: \"%s\"" : "Обезбедени неважечки атрибути за споделување: \"%s\"",
+ "You are not allowed to send mail notifications" : "Не сте овластени да испраќате известувања на е-пошта",
+ "No mail notification configured for this share type" : "Нема конфигурирано известување по е-пошта за овој тип на споделување",
+ "Wrong password" : "Погрешна лозинка",
+ "Error while sending mail notification" : "Грешка при испраќање на известување на е-пошта",
+ "Failed to generate a unique token" : "Неуспешно генерирање на уникатен токен",
+ "This share does not exist or is no longer available" : "Споделувањето не постои или не е повеќе достапно",
"shared by %s" : "споделено од %s",
- "Download all files" : "Преземи ги сите датотеки",
- "Direct link" : "Директен линк",
+ "Download" : "Преземи",
"Add to your %s" : "Додади на твојот %s",
+ "Direct link" : "Директен линк",
"Share API is disabled" : "API-то за споделување е оневозможено",
"File sharing" : "Споделување на датотеки",
"Share will expire tomorrow" : "Споделувањето ќе истече утре",
@@ -109,124 +111,221 @@
"You received {share} to group {group} as a share by {user}" : "Примивте {share} во групата {group} како споделување од {user}",
"Accept" : "Прифати",
"Decline" : "Одбиј",
- "Sharing" : "Споделување",
+ "Remember to upload the files to %s" : "Не заборавајте да ги прикачите датотеките на %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Сакаме да ве потсетиме дека сè уште не сте поставиле ниедна датотека во споделената папка.",
+ "Open \"%s\"" : "Отвори \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Оваа апликација им овозможува на корисниците да споделуваат датотеки во рамките на Nextcloud. Доколку е овозможено, администраторот може да избере кои групи можат да споделуваат датотеки. Применливите корисници потоа можат да споделуваат датотеки и папки со други корисници и групи во рамките на Nextcloud. Покрај тоа, ако администраторот ја овозможи функцијата за далечно споделување, може да се користи надворешна врска за споделување датотеки со други корисници надвор од Nextcloud. Администраторот исто така може да овозможи поставување на лозинки, датуми на истекувања и да овозможи споделување од сервер на сервер преку линкови за споделување, како и споделување од мобилни уреди.\nИсклучувањето на функцијата ги отстранува споделените датотеки и папките на серверот за сите приматели на споделување, а исто така и на клиентите за синхронизација и апликациите за мобилни. Повеќе информации се достапни во Документацијата на Nextcloud.",
+ "People" : "Луѓе",
+ "Filter accounts" : "Филтрирај сметки",
+ "The request will expire on {date} at midnight and will be password protected." : "Барањето ќе истече на {date} на полноќ и ќе биде заштитено со лозинка.",
+ "The request will expire on {date} at midnight." : "Барањето ќе истече на {date} на полноќ.",
+ "The request will be password protected." : "Барањето ќе биде заштитено со лозинка.",
+ "When should the request expire?" : "Кога треба да истече барањето?",
+ "Set a submission expiration date" : "Поставете датум на истекување на поднесувањето",
+ "Expiration date" : "Рок на траење",
+ "Select a date" : "Избери датум",
+ "Your administrator has enforced a {count} days expiration policy." : "Вашиот администратор спроведе политика за истекување на рокот на траење на минимум {count}дена.",
+ "What password should be used for the request?" : "Која лозинка треба да се користи за барањето?",
+ "Set a password" : "Постави лозинка",
+ "Password" : "Лозинка",
+ "Enter a valid password" : "Внесете валидна лозинка",
+ "Generate a new password" : "Генерирај нова лозинка",
+ "Your administrator has enforced a password protection." : "Вашиот администратор спроведе политика за заштита со лозинка на споделувањата.",
+ "Automatically copying failed, please copy the share link manually" : "Неможе да се копира, копирајте го линкот рачно",
+ "Link copied" : "Линкот е копиран",
+ "Email already added" : "Е-поштата е веќе додадена",
+ "Invalid email address" : "Неправилна е-пошта адреса",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Адресата на е-пошта не е валидна: {emails}","Следниве адреси на е-пошта не се валидни: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} е-пошта адреса е веќе додадена","{count} е-пошта адреси се веќе додадени"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} е-пошта адреса е додадена","{count} е-пошта адреси се додадени"],
+ "You can now share the link below to allow people to upload files to your directory." : "Испратете го линкот за да им дозволите на луѓето да прикачат датотеки.",
+ "Share link" : "Сподели линк",
+ "Send link via email" : "Испрати линк преку е-пошта",
+ "Enter an email address or paste a list" : "Внеси е-пошта адреса или цела листа",
+ "Remove email" : "Отстрани е-пошта",
+ "Select a destination" : "Изберете дестинација",
+ "Select" : "Избери",
+ "What are you requesting?" : "Што барате?",
+ "Request subject" : "Предмет на барање",
+ "Birthday party photos, History assignment…" : "Фотографии, документи ...",
+ "Where should these files go?" : "Каде да се зачуваат датотеките?",
+ "Upload destination" : "Дестинација на прикачување",
+ "Revert to default" : "Врати се на стандардно",
+ "The uploaded files are visible only to you unless you choose to share them." : "Прикачените датотеки се видливи само за вас, освен ако не изберете да ги споделите.",
+ "Add a note" : "Додади белешка",
+ "Note for recipient" : "Белешка до примачот",
+ "Add a note to help people understand what you are requesting." : "Додајте белешка за да им помогнете на луѓето да разберат што барате.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Можете да додадете линкови, датум или која било друга информација што ќе му помогне на примачот да разбере што барате.",
+ "Close" : "Затвори",
+ "_Send email and close_::_Send {count} emails and close_" : ["Испрати порака на е-пошта и затвори","Испрати {count} пораки на е-пошта и затвори"],
+ "Please select a folder, you cannot share the root directory." : "Изберете папка, Неможете да ја споделите главната папка.",
+ "File request created" : "Барање за датотека е креирано",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Барање за датотека е креирано и испратена е порака на е-пошта","Барање за датотека е креирано и {count} пораки на е-пошта се испратени"],
+ "Error creating the share: {errorMessage}" : "Грешка при креирање на споделување: {errorMessage}",
+ "Error creating the share" : "Грешка при креирање на споделување",
+ "Error sending emails: {errorMessage}" : "Грешка при испраќање {errorMessage} пораки на е-пошта",
+ "Error sending emails" : "Грешка при испраќање на е-пошта порака",
+ "Create a file request" : "Креирај барање за датотека",
+ "Collect files from others even if they do not have an account." : "Прибавете датотеки од други дури и ако немаат сметка.",
+ "To ensure you can receive files, verify you have enough storage available." : "За да се осигурате дека можете да примате датотеки, проверете дали имате доволно простор на располагање.",
+ "File request" : "Барање за датотека",
+ "Previous step" : "Предходен чекор",
+ "Cancel" : "Откажи",
+ "Cancel the file request creation" : "Откажи барање за датотека",
+ "Close without sending emails" : "Затвори без испраќање е-пошта",
+ "Continue" : "Продолжи",
"Error while toggling options" : "Грешка при префрлање опции",
- "Set default folder for accepted shares" : "Постави стандардна папка за прифатените споделувања",
- "Reset" : "Ресетирање",
- "Reset folder to system default" : "Ресетирајте ја папката на стандардниот систем",
+ "Accept shares from other accounts and groups by default" : "Стандардно прифаќај акции од други корисници и групи",
"Choose a default folder for accepted shares" : "Избери стандардна папка за прифатените споделувања",
"Invalid path selected" : "Избрана невалидна патека",
"Unknown error" : "Непозната грешка",
- "Open Sharing Details" : "Отвори детали за споделувањето",
+ "Set default folder for accepted shares" : "Постави стандардна папка за прифатените споделувања",
+ "Reset" : "Ресетирање",
+ "Reset folder to system default" : "Ресетирајте ја папката на стандардниот систем",
+ "Share expiration: {date}" : "Рок на траење на споделувањето: {date}",
+ "Share Expiration" : "Рок на траење на споделувањето",
"group" : "група",
"conversation" : "разговор",
"remote" : "далечински",
"remote group" : "оддалечена група",
"guest" : "гостин",
+ "by {initiator}" : "од {initiator}",
"Shared with the group {user} by {owner}" : "Споделено со група на {user} од {owner}",
"Shared with the conversation {user} by {owner}" : "Споделено со разговор на {user} од {owner}",
"Shared with {user} by {owner}" : "Споделено со {user} од {owner}",
+ "Open Sharing Details" : "Отвори детали за споделувањето",
"Added by {initiator}" : "Додадено од {initiator}",
"Via “{folder}”" : "Преку “{folder}”",
"Unshare" : "Отстрани споделување",
- "Internal link" : "Внатрешен линк",
"Cannot copy, please copy the link manually" : "Неможе да се копира, копирајте го линкот рачно",
- "Copy internal link to clipboard" : "Копирај внатрешен линк во клипборд",
- "Link copied" : "Линкот е копиран",
- "Please enter the following required information before creating the share" : "Внесете ги следниве потребни податоци пред да го креирате споделувањето",
- "Password protection (enforced)" : "Заштитено со лозинка (enforced)",
- "Password protection" : "Заштитено со лозинка",
- "Enter a password" : "Внесете лозинка",
- "Expiration date (enforced)" : "Рок на траење (enforced)",
- "Enter a date" : "Внесете датум",
- "Create share" : "Ново споделување",
- "Cancel" : "Откажи",
- "Customize link" : "Прилагоди линк",
- "Add another link" : "Додади линк",
- "Create a new share link" : "Креирајте нов линк за споделување",
+ "Copy internal link" : "Копирај внатрешен линк",
+ "Internal link" : "Внатрешен линк",
"{shareWith} by {initiator}" : "{shareWith} од {initiator}",
"Shared via link by {initiator}" : "Споделено со линк од {initiator}",
+ "File request ({label})" : "Барање за датотека ({label})",
"Mail share ({label})" : "Споделено преку е-пошта ({label})",
"Share link ({label})" : "Сподели линк ({label})",
+ "Mail share" : "Споделување со е-пошта",
"Share link ({index})" : "Сподели линк ({index})",
- "Share link" : "Сподели линк",
+ "Create public link" : "Креирај јавен линк",
"Actions for \"{title}\"" : "Акции за \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Копирај јавен линк во клипборд за \"{title}\"",
"Error, please enter proper password and/or expiration date" : "Грешка, внесете лозинка и/или рок на траење",
"Link share created" : "Креиран линк за споделување",
"Error while creating the share" : "Грешка при креирање на споделување",
+ "Please enter the following required information before creating the share" : "Внесете ги следниве потребни податоци пред да го креирате споделувањето",
+ "Password protection (enforced)" : "Заштитено со лозинка (enforced)",
+ "Password protection" : "Заштитено со лозинка",
+ "Enter a password" : "Внесете лозинка",
+ "Enable link expiration (enforced)" : "Овозможи истекување на линк (задолжително)",
+ "Enable link expiration" : "Овозможи истекување на линк",
+ "Enter expiration date (enforced)" : "Внесете датум на истекување (задолжително)",
+ "Enter expiration date" : "Внесете датум на истекување",
+ "Create share" : "Ново споделување",
+ "Customize link" : "Прилагоди линк",
+ "Generate QR code" : "Генерирај QR код",
+ "Add another link" : "Додади линк",
+ "Create a new share link" : "Креирајте нов линк за споделување",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Опции за брзо споделување за , тековната избрана е \"{selectedOption}\"",
"View only" : "Само за гледање",
"Can edit" : "Може да се уредува",
- "File drop" : "Повлечи и прикачи",
"Custom permissions" : "Прилагодени дозволи",
- "Search for share recipients" : "Пребарај за примачи на споделувањето",
- "No recommendations. Start typing." : "Нема препораки. Започнете со пишување.",
"Resharing is not allowed" : "Повторно споделување не е дозволено",
"Name or email …" : "Име или е-пошта ...",
"Name, email, or Federated Cloud ID …" : "Име, е-пошта или федерален ИД ...",
"Searching …" : "Пребарување ...",
"No elements found." : "Нема пронајдено елементи.",
- "Search globally" : "Пребарај глобално",
+ "Search everywhere" : "Барај насекаде",
"Guest" : "Гостин",
"Group" : "Група",
"Email" : "Е-пошта",
+ "Team" : "Тим",
"Talk conversation" : "Talk раговор",
+ "ScienceMesh" : "ScienceMesh",
"on {server}" : "на {server}",
+ "Enter external recipients" : "Внесете надворешни примачи",
+ "Search for internal recipients" : "Пребарај внатрешни примачи",
+ "Note from" : "Белешка од",
+ "Note:" : "Белешка:",
+ "File drop" : "Повлечи и прикачи",
+ "Upload files to {foldername}." : "Прикачи датотеки во {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Со прикачување на датотеки, се согласувате со условите за користење.",
+ "Successfully uploaded files" : "Успешно прикачени датотеки",
+ "View terms of service" : "Прочитај ги условите за користење",
+ "Terms of service" : "Услови за користење",
+ "Share with {user}" : "Сподели со {user}",
+ "Share with email {email}" : "Сподели со е-пошта {email}",
+ "Share with group" : "Сподели со група",
+ "Share in conversation" : "Сподели во разговор",
+ "Share with {user} on remote server {server}" : "Споделено со {user} на далечен сервер {server}",
+ "Share with remote group" : "Сподели со оддалечена група",
+ "Share with guest" : "Сподели со гости",
+ "Update share" : "Ажурирај споделување",
+ "Save share" : "Зачувај споделување",
+ "Read" : "Читај",
+ "Create" : "Креирај",
+ "Edit" : "Уреди",
+ "Share" : "Сподели",
+ "Delete" : "Избриши",
+ "Password field cannot be empty" : "Полето за лозинка неможе да биде празно",
+ "Replace current password" : "Заменете ја тековната лозинка",
+ "Failed to generate a new token" : "Неуспешно генерирање нов токен",
"Allow upload and editing" : "Дозволи прикачување и уредување",
"Allow editing" : "Овозможи уредување",
"Upload only" : "Само прикачување",
"Advanced settings" : "Напредни параметри",
"Share label" : "Ознака на споделувањето",
+ "Share link token" : "Сподели токен за линк",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Поставете го токенот за јавен линкза споделување на нешто лесно за паметење или генерирајте нов токен. Не се препорачува да се користи токен што може да се погоди за акции што содржат чувствителни информации.",
+ "Generating…" : "Се генерира…",
+ "Generate new token" : "Генерирај нов токен",
"Set password" : "Постави лозинка",
- "Password" : "Лозинка",
"Password expires {passwordExpirationTime}" : "Лозинката истекува на {passwordExpirationTime}",
"Password expired" : "Лозинката е истечена",
"Video verification" : "Верификација со видео",
+ "Expiration date (enforced)" : "Рок на траење (enforced)",
"Set expiration date" : "Постави рок на траење",
- "Expiration date" : "Рок на траење",
"Hide download" : "Сокриј преземање",
- "Allow download" : "Дозволи преземање",
+ "Allow download and sync" : "Дозволете преземање и синхронизирање",
"Note to recipient" : "Белешка до примачот",
"Enter a note for the share recipient" : "Внесете белешка до примачот на споделуваето",
- "Read" : "Читај",
- "Create" : "Креирај",
- "Edit" : "Уреди",
- "Share" : "Сподели",
+ "Show files in grid view" : "Прикажи ги датотеките во поглед во мрежа",
"Delete share" : "Избриши споделување",
- "Update share" : "Ажурирај споделување",
- "Save share" : "Зачувај споделување",
"Others with access" : "Други со пристап",
+ "No other accounts with access found" : "Не се најдени други сметки со пристап",
"Toggle list of others with access to this directory" : "Изберете листата со други корисници со пристап до овој директориум",
"Toggle list of others with access to this file" : "Изберете листата со други корисници со пристап до оваа датотека",
"Unable to fetch inherited shares" : "Не можам да ги преземам наследените споделувања",
+ "Link shares" : "Споделувања со линк",
+ "Shares" : "Споделувања",
"Unable to load the shares list" : "Неможе да се вчита листата на споделувања",
"Expires {relativetime}" : "Истекува {relativetime}",
"this share just expired." : "ова споделување штотуку истече.",
"Shared with you by {owner}" : "Споделено со Вас од {owner}",
+ "Internal shares" : "Внатрешни споделувања",
+ "Internal shares explanation" : "Објаснување за внатрешни споделувања",
+ "External shares" : "Надворешни споделувања",
+ "External shares explanation" : "Објаснување за надворешни споделувања",
+ "Additional shares" : "Дополнителни споделувања",
+ "Additional shares explanation" : "Објаснување за додатни споделувања",
+ "Link to a file" : "Линк до датотеката",
"_Accept share_::_Accept shares_" : ["Прифати го споделувањето","Прифати ги споделувањата"],
"Open in Files" : "Отвори во датотеките",
"_Reject share_::_Reject shares_" : ["Одбиј го споделувањето","Одбиј ги споделувањата"],
"_Restore share_::_Restore shares_" : ["Врати споделување","Врати споделувања"],
"Shared" : "Споделен",
"Shared by {ownerDisplayName}" : "Споделено од {ownerDisplayName}",
- "Show sharing options" : "Прикажи параметри за споделување",
- "Link to a file" : "Линк до датотеката",
- "Error creating the share: {errorMessage}" : "Грешка при креирање на споделување: {errorMessage}",
- "Error creating the share" : "Грешка при креирање на споделување",
- "Error updating the share: {errorMessage}" : "Грешка при ажурирање на споделувањето: {errorMessage}",
- "Error updating the share" : "Грешка при ажурирање на споделувањето",
- "File \"{path}\" has been unshared" : "Датотеката \"{path}\" повеќе не се споделува",
- "Folder \"{path}\" has been unshared" : "Папката \"{path}\" повеќе не се споделува",
- "Share {propertyName} saved" : "Зачувано е споделувањето {propertyName}",
- "Shared by" : "Споделено од",
- "Shared with" : "Споделено со",
- "Password created successfully" : "Успрешно е креирана лозинка",
- "Error generating password from password policy" : "Грешка при генерирање на лозинка од политиката на лозинки",
- "Shared with you and the group {group} by {owner}" : "Споделено со Вас и групата {group} од {owner}",
- "Shared with you and {circle} by {owner}" : "Споделено со тебе и {circle} од {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Споделено со тебе и во разговорот {conversation} од {owner}",
- "Shared with you in a conversation by {owner}" : "Споделено со тебе и во разговорот од {owner}",
- "Shares" : "Споделувања",
+ "Shared multiple times with different people" : "Споделено повеќе пати со различни луѓе",
+ "Shared with others" : "Споделно со други",
+ "Create file request" : "Барање за датотека",
+ "Upload files to {foldername}" : "Прикачи датотеки во {foldername}",
+ "Public file share" : "Јавно споделување датотека",
+ "Publicly shared file." : "Јавно споделена датотека.",
+ "No file" : "Нема датотека",
+ "The file shared with you will show up here" : "Датотеките што другите ги споделуваат со вас ќе се прикажат овде",
+ "Public share" : "Јавно споделување",
+ "Publicly shared files." : "Јавно споделени датотеки.",
+ "No files" : "Нема датотеки",
+ "Files and folders shared with you will show up here" : "Датотеките и папките што другите ги споделуваат со вас ќе се прикажат овде",
"Overview of shared files." : "Преглед на споделени датотеки.",
"No shares" : "Нема споделувања",
"Files and folders you shared or have been shared with you will show up here" : "Датотеките и папките што ги споделувате или друг ги споделува со вас ќе се прикажат овде",
@@ -234,7 +333,6 @@
"List of files that are shared with you." : "Листа на датотеки што се споделени со вас.",
"Nothing shared with you yet" : "Ништо не е споделено со вас",
"Files and folders others shared with you will show up here" : "Датотеките и папките што другите ги споделуваат со вас ќе се прикажат овде",
- "Shared with others" : "Споделно со други",
"List of files that you shared with others." : "Листа на датотеки што ги имате споделено со други.",
"Nothing shared yet" : "Ништо не е споделено",
"Files and folders you shared will show up here" : "Датотеките и папките кои ги споделувате ќе се појават тука",
@@ -242,6 +340,10 @@
"List of files that are shared by link." : "Листа на датотеки што ги имате споделено со линк.",
"No shared links" : "Нема споделени врски/линкови",
"Files and folders you shared by link will show up here" : "Датотеките и папките кои ги споделувате со линк ќе се појават тука",
+ "File requests" : "Барања за датотеки",
+ "List of file requests." : "Листа на барања за датотеки.",
+ "No file requests" : "Нема барања за датотеки",
+ "File requests you have created will show up here" : "Барањата за датотеки што ги имате креирано ќе се појават овде",
"Deleted shares" : "Избришани споделувања",
"List of shares you left." : "Листа на споделувања што ги имате напуштено.",
"No deleted shares" : "Нема избришани споделувања",
@@ -250,47 +352,87 @@
"List of unapproved shares." : "Листа на неодобрени споделувања.",
"No pending shares" : "Нема споделувања на чекање",
"Shares you have received but not approved will show up here" : "Листа на споделувањата кој сте ги добиле но не се адобрени ќе се појават овде",
+ "Error deleting the share: {errorMessage}" : "Грешка при бришење на споделувањето: {errorMessage}",
+ "Error deleting the share" : "Грешка при отстранување на споделувањето",
+ "Error updating the share: {errorMessage}" : "Грешка при ажурирање на споделувањето: {errorMessage}",
+ "Error updating the share" : "Грешка при ажурирање на споделувањето",
+ "File \"{path}\" has been unshared" : "Датотеката \"{path}\" повеќе не се споделува",
+ "Folder \"{path}\" has been unshared" : "Папката \"{path}\" повеќе не се споделува",
+ "Could not update share" : "Неможе да се ажурира споделувањето",
+ "Share saved" : "Споделувањето е зачувано",
+ "Share expiry date saved" : "Зачуван е рок на траење на споделувањето",
+ "Share hide-download state saved" : "Зачуван е параметарот на споделувањето",
+ "Share label saved" : "Ознаката е зачувана",
+ "Share note for recipient saved" : "Белешката на споделувањето до примачот е зачувана",
+ "Share password saved" : "Лозинката е зачувана",
+ "Share permissions saved" : "Дозволите за споделување се зачувани",
+ "To upload files to {folder}, you need to provide your name first." : "За да прикачите датотеки во {folder}, мора да го наведете вашето име.",
+ "Upload files to {folder}" : "Прикачи датотеки во {folder}",
+ "Please confirm your name to upload files to {folder}" : "Потврдете го вашето име за да прикачите датотеки во {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} сподели папка со вас.",
+ "Names must not be empty." : "Имињата не можат да бидат празни.",
+ "Names must not start with a dot." : "Името неможе да започнува со точка.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" не е дозволено да содржи во името.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" е резервирано име и не е дозволено.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" не е дозволено име.",
+ "Names must not end with \"{extension}\"." : "Името неможе да завршува со \"{extension}\".",
+ "Invalid name." : "Невалидно име.",
+ "Shared by" : "Споделено од",
+ "Shared with" : "Споделено со",
+ "Password created successfully" : "Успрешно е креирана лозинка",
+ "Error generating password from password policy" : "Грешка при генерирање на лозинка од политиката на лозинки",
+ "Shared with you and the group {group} by {owner}" : "Споделено со Вас и групата {group} од {owner}",
+ "Shared with you and {circle} by {owner}" : "Споделено со тебе и {circle} од {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Споделено со тебе и во разговорот {conversation} од {owner}",
+ "Shared with you in a conversation by {owner}" : "Споделено со тебе и во разговорот од {owner}",
+ "Share not found" : "Споделувањето не е пронајдено",
+ "Back to %s" : "Врати се на %s",
+ "Add to your Nextcloud" : "Додадете во вашиот Cloud",
+ "Waiting…" : "Почекајте...",
+ "error" : "грешка",
+ "finished" : "завршено",
+ "This will stop your current uploads." : "Ова ќе го прекине вашето моментално прикачување.",
+ "Move or copy" : "Премести или копирај",
+ "You can upload into this folder" : "Можете да прикачувате во оваа папка",
+ "Show list view" : "Прикажи поглед во листа",
+ "Show grid view" : "Прикажи поглед во мрежа",
+ "No compatible server found at {remote}" : "{remote} не е компатибилен сервер",
+ "Invalid server URL" : "Неправилна URL на сервер",
+ "Failed to add the public link to your Nextcloud" : "Неуспешно додавање на јавниот линк",
+ "You are not allowed to edit link shares that you don't own" : "Не ви е дозволено да ги уредувате споделувањата кој не се ваши",
+ "Download all files" : "Преземи ги сите датотеки",
+ "Link copied to clipboard" : "Линкот е копиран во клипборд",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 е-пошта адреса е веќе додадена","{count} е-пошта адреси се веќе додадени"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 е-пошта адреса е додадена","{count} е-пошта адреси се додадени"],
+ "Copy to clipboard" : "Копирај во клипборд",
+ "Copy internal link to clipboard" : "Копирај внатрешен линк во клипборд",
+ "Only works for people with access to this folder" : "Работи само за луѓе со пристап до оваа папка",
+ "Only works for people with access to this file" : "Работи само за луѓе со пристап до оваа датотека",
+ "Copy public link of \"{title}\" to clipboard" : "Копирај јавен линк во клипборд за \"{title}\"",
+ "Search globally" : "Пребарај глобално",
+ "Search for share recipients" : "Пребарај за примачи на споделувањето",
+ "No recommendations. Start typing." : "Нема препораки. Започнете со пишување.",
+ "To upload files, you need to provide your name first." : "За да прикачите датотеки, мора да го наведете вашето име.",
+ "Enter your name" : "Внесете го вашето име",
+ "Submit name" : "Испрати име",
+ "Share with {userName}" : "Сподели со {userName}",
+ "Show sharing options" : "Прикажи параметри за споделување",
"Share note" : "Споделување со забелешка ",
"Upload files to %s" : "Прикачи датотеки во %s",
+ "%s shared a folder with you." : "%s сподели папка со вас.",
"Note" : "Белешка",
"Select or drop files" : "Изберете или испуштете датотеки",
"Uploading files" : "Прикачување на датотеки",
"Uploaded files:" : "Прикачени датотеки:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Со прикачување на датотеките, се согласувате со %1$sусловите за користење%2$s.",
- "Add to your Nextcloud" : "Додадете во вашиот Cloud",
- "Files and folders others share with you will show up here" : "Датотеките и папките што другите ги споделуваат со вас ќе се прикажат овде",
- "Files and folders you share will show up here" : "Датотеките и папките кои ги споделувате ќе се појават тука",
- "Files and folders you share by link will show up here" : "Датотеките и папките кои ги споделувате со линк ќе се појават тука",
- "Shares you deleted will show up here" : "Споделувањата што сте ги избришале ќе се појават овде",
- "Shares you have received but not confirmed will show up here" : "Споделувањата кој сте ги добиле но не сте ги потврдиле ќе се појават овде.",
- "Shares will show up here" : "Споделувањата ќе се појават овде",
- "Restore" : "Врати",
- "Something happened. Unable to restore the share." : "Нешто се случило. Неможе да се врати споделувањето.",
- "Something happened. Unable to accept the share." : "Нешто се случи. Неможам да го прифатам споделувањето.",
- "Something happened. Unable to reject the share." : "Нешто се случи. Неможам да го одбијам споделувањето.",
- "No expiration date set" : "Не е поставен рок на траење",
- "Please specify a valid user" : "Изберете корисник",
- "Please specify a valid federated user ID" : "Внесете валидно федерално корисничко ИД",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Оваа апликација им овозможува на корисниците да споделуваат датотеки во рамките на Nextcloud. Доколку е овозможено, администраторот може да избере кои групи можат да споделуваат датотеки. Применливите корисници потоа можат да споделуваат датотеки и папки со други корисници и групи во рамките на Nextcloud. Покрај тоа, ако администраторот ја овозможи функцијата за далечно споделување, може да се користи надворешна врска за споделување датотеки со други корисници надвор од Nextcloud. Администраторот исто така може да овозможи поставување на лозинки, датуми на истекувања и да овозможи споделување од сервер на сервер преку линкови за споделување, како и споделување од мобилни уреди.\nИсклучувањето на функцијата ги отстранува споделените датотеки и папките на серверот за сите приматели на споделување, а исто така и на клиентите за синхронизација и апликациите за мобилни. Повеќе информации се достапни во Документацијата на Nextcloud.",
- "Accept user and group shares by default" : "Стандардно прифаќај споделувања од корисници и групи",
- "Read only" : "Само читај",
- "File drop (upload only)" : "Испуши датотека (само за прикачување)",
- "Upload" : "Прикачи",
- "Bundled permissions" : "Пакет дозволи",
- "Only works for users with access to this folder" : "Функционира само за корисници со пристап до оваа папка",
- "Only works for users with access to this file" : "Функционира само за корисници со пристап до оваа датотека",
- "Circle" : "Круг",
- "Update" : "Ажурирај",
- "Share with " : "Сподели со",
- "No other users with access found" : "Не се пројандени други корисници со простап",
- "No entries found in this folder" : "Нема ништо во оваа папка",
"Name" : "Име",
- "Share time" : "Време на споделување",
- "Sorry, this link does not seem to work anymore." : "Извенете, но овој линк повеќе не функционира.",
- "Reasons might be:" : "Причината може да е:",
- "the item was removed" : "предметот беше отстранет",
- "the link expired" : "рокот на линкот е истечен",
- "sharing is disabled" : "споделувањето не е дозволено",
- "For more info, please ask the person who sent this link." : "За повеќе информации, прашајте го лицето кое ви го испратил линкот."
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Користете го овој метод за споделување датотеки со поединци или тимови во вашата организација. Ако примачот веќе има пристап до споделувањето, но не може да го лоцира, можете да му ја испратите внатрешната врска за споделување за лесен пристап.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Користете го овој метод за споделување датотеки со поединци или организации надвор од вашата организација. Датотеките и папките може да се споделуваат преку јавни линкови и адреси на е-пошта. Можете исто така да споделувате со други сметки на Nextcloud хостирани на различни истанци користејќи го нивниот федеративен ID.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Споделувања кои не се дел од внатрешни или надворешни споделувања. Ова може да биде споделување од апликации или други извори.",
+ "Share with accounts, teams, federated cloud id" : "Сподели со корисници, тимови, федерални корисници",
+ "Share with accounts and teams" : "Сподели со корисници и тимови",
+ "Federated cloud ID" : "Федерален корисник",
+ "Email, federated cloud id" : "Е-пошта, федерален ИД",
+ "Filename must not be empty." : "Името на датотеката не може да биде празно."
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/mn.js b/apps/files_sharing/l10n/mn.js
deleted file mode 100644
index 15fb0cabe5f..00000000000
--- a/apps/files_sharing/l10n/mn.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Sharing" : "Түгээлт",
- "A file or folder has been <strong>shared</strong>" : "Файл эсвэл хавтас амжилттай <strong>түгээгдлээ</strong>",
- "You shared %1$s with %2$s" : "Та %1$s-ийг %2$s руу түгээлээ",
- "You shared %1$s with group %2$s" : "Та %1$s-ийг %2$s групп руу түгээлээ",
- "You shared %1$s via link" : "Та %1$s-ийг холбоосоор түгээлээ",
- "%2$s shared %1$s with you" : "%2$s %1$s-ийг тань руу түгээлээ",
- "Shares" : "Түгээлтүүд",
- "Password" : "Нууц үг"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/mn.json b/apps/files_sharing/l10n/mn.json
deleted file mode 100644
index 3fd64731e5a..00000000000
--- a/apps/files_sharing/l10n/mn.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "Sharing" : "Түгээлт",
- "A file or folder has been <strong>shared</strong>" : "Файл эсвэл хавтас амжилттай <strong>түгээгдлээ</strong>",
- "You shared %1$s with %2$s" : "Та %1$s-ийг %2$s руу түгээлээ",
- "You shared %1$s with group %2$s" : "Та %1$s-ийг %2$s групп руу түгээлээ",
- "You shared %1$s via link" : "Та %1$s-ийг холбоосоор түгээлээ",
- "%2$s shared %1$s with you" : "%2$s %1$s-ийг тань руу түгээлээ",
- "Shares" : "Түгээлтүүд",
- "Password" : "Нууц үг"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ms_MY.js b/apps/files_sharing/l10n/ms_MY.js
deleted file mode 100644
index 43c01b830e0..00000000000
--- a/apps/files_sharing/l10n/ms_MY.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Cancel" : "Batal",
- "Shared by" : "Dikongsi dengan",
- "You shared %1$s via link" : "Anda kongsikan %1$s melalui sambungan",
- "%2$s shared %1$s with you" : "%2$s berkongsi %1$s dengan anda",
- "Shares" : "Kongsi",
- "Password" : "Kata laluan",
- "Name" : "Nama",
- "Download" : "Muat turun"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/ms_MY.json b/apps/files_sharing/l10n/ms_MY.json
deleted file mode 100644
index 333999e133b..00000000000
--- a/apps/files_sharing/l10n/ms_MY.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "Cancel" : "Batal",
- "Shared by" : "Dikongsi dengan",
- "You shared %1$s via link" : "Anda kongsikan %1$s melalui sambungan",
- "%2$s shared %1$s with you" : "%2$s berkongsi %1$s dengan anda",
- "Shares" : "Kongsi",
- "Password" : "Kata laluan",
- "Name" : "Nama",
- "Download" : "Muat turun"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/nb.js b/apps/files_sharing/l10n/nb.js
index 550a12ca999..dc5d5b5e5f0 100644
--- a/apps/files_sharing/l10n/nb.js
+++ b/apps/files_sharing/l10n/nb.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Venter...",
- "error" : "feil",
- "finished" : "fullført",
- "This will stop your current uploads." : "Dette fille stoppe dine nåværende opplastinger.",
- "Move or copy" : "Flytt eller kopier",
- "Download" : "Last ned",
- "Delete" : "Slett",
- "You can upload into this folder" : "Du kan laste opp til denne mappen",
- "Terms of service" : "Betingelser for tjenesten",
- "Show list view" : "Vis listevisning",
- "Show grid view" : "Vis rutenett-visning",
- "No compatible server found at {remote}" : "Ingen kompatibel server ble funnet på {remote}",
- "Invalid server URL" : "Ugyldig server adresse",
- "Failed to add the public link to your Nextcloud" : "Feil oppsto under oppretting av offentlig lenke til din Nextcloud",
"File shares" : "Fildelinger",
"Downloaded via public link" : "Nedlastet via offentlig lenke",
"Downloaded by {email}" : "Lastet ned av {email}",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "Deling for fil {file} med {user} utløpt",
"Share for file {file} expired" : "Deling for fil {file} utløpt",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Ei fil eller mappe delt via e-post eller offentlig lenke ble <strong>lastet ned</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Filer er <strong>lastet opp</strong> til en mappe som deles via e-post eller via offentlig kobling",
"A file or folder was shared from <strong>another server</strong>" : "En fil eller mappe ble delt fra <strong>en annen server</strong>",
- "Files" : "Filer",
+ "Sharing" : "Deling",
"A file or folder has been <strong>shared</strong>" : "En fil eller mappe ble <strong>delt</strong>",
"Shared link" : "Delte lenke",
"Wrong share ID, share does not exist" : "Feil delings-ID, deling eksisterer ikke",
@@ -78,34 +65,43 @@ OC.L10N.register(
"Please specify a file or folder path" : "Oppgi en fil eller mappesti",
"Wrong path, file/folder does not exist" : "Feil bane, fil/mappe eksisterer ikke",
"Could not create share" : "Kunne ikke opprette ressurs",
- "Invalid permissions" : "Ugyldig rettigheter",
- "Invalid date, date format must be YYYY-MM-DD" : "Feil dato, dato må være i formatet YYYY-MM-DD",
"Please specify a valid account to share with" : "Spesifiser en gyldig konto å dele med",
"Group sharing is disabled by the administrator" : "Gruppedeling er deaktivert av administratoren",
"Please specify a valid group" : "Oppgi en gyldig gruppe",
"Public link sharing is disabled by the administrator" : "Administratoren har skrudd av offentlig lenkedeling",
- "Public upload disabled by the administrator" : "Offentlig opplasting er deaktivert av administratoren",
- "Public upload is only possible for publicly shared folders" : "Offentlig opplasting er kun mulig i offentlig delte mapper",
+ "Please specify a valid email address" : "Vennligst spesifiser en gyldig e-postadresse",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Deling av %s ved å sende passordet av Nextcloud Talk mislyktes fordi Nextcloud Talk ikke er aktivert",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Deling av %1$s mislyktes fordi serveren ikke tillater delinger fra typen %2$s",
"Please specify a valid federated account ID" : "Angi en gyldig sammenknyttet konto-ID",
"Please specify a valid federated group ID" : "Angi en gyldig sammenknyttet gruppesky-ID",
- "You cannot share to a Circle if the app is not enabled" : "Du kan ikke dele til en sirkel så lenge appen ikke er aktivert",
- "Please specify a valid circle" : "Angi en gyldig sirkel",
+ "You cannot share to a Team if the app is not enabled" : "Du kan ikke dele til et Lag så lenge appen ikke er aktivert",
+ "Please specify a valid team" : "Vennligst spesifiser et gyldig lag",
"Sharing %s failed because the back end does not support room shares" : "Deling av %s mislyktes fordi serveren ikke støtter romdeling",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Deling av %s feilet fordi backend-en ikke støtter ScienceMesh-delinger",
"Unknown share type" : "Ukjent ressurstype",
"Not a directory" : "Ikke en mappe",
"Could not lock node" : "Kunne ikke låse noden",
- "Could not lock path" : "Kunne ikke låse sti",
- "Wrong or no update parameter given" : "Feil eller ingen parametre for oppdatering er angitt",
+ "Public upload is only possible for publicly shared folders" : "Offentlig opplasting er kun mulig i offentlig delte mapper",
"Share must at least have READ or CREATE permissions" : "Deling må minst ha READ- eller CREATE-tillatelser",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Del må ha READ-tillatelse hvis UPDATE eller DELETE-tillatelse er angitt",
+ "Public upload disabled by the administrator" : "Offentlig opplasting er deaktivert av administratoren",
+ "Could not lock path" : "Kunne ikke låse sti",
+ "no sharing rights on this item" : "Ingen delingsrettigheter på dette elementet",
+ "You are not allowed to edit incoming shares" : "Du har ikke lov til å redigere innkommende delinger",
+ "Wrong or no update parameter given" : "Feil eller ingen parametre for oppdatering er angitt",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Sende passordet av Nextcloud Talk\" for deling av en fil eller mappe mislyktes fordi Nextcloud Talk ikke er aktivert.",
+ "Invalid date. Format must be YYYY-MM-DD" : "Ugyldig dato. Formatet må være YYYY-MM-DD",
+ "No sharing rights on this item" : "Ingen delingsrettigheter på dette elementet",
+ "Invalid share attributes provided: \"%s\"" : "Ugyldige delingsattributter angitt: \"%s\"",
+ "You are not allowed to send mail notifications" : "Du har ikke lov til å sende e-postvarsler",
+ "No mail notification configured for this share type" : "Ingen e-postvarsling konfigurert for denne delte ressurstypen",
+ "Wrong password" : "Feil passord",
+ "Error while sending mail notification" : "Feil under sending av e-postvarsling",
+ "This share does not exist or is no longer available" : "Denne delingen eksisterer ikke eller er ikke lenger tilgjengelig",
"shared by %s" : "delt av %s",
- "Download all files" : "Last ned alle filer",
- "Direct link" : "Direkte lenke",
+ "Download" : "Last ned",
"Add to your %s" : "Legg til din %s",
+ "Direct link" : "Direkte lenke",
"Share API is disabled" : "Deling API er deaktivert",
"File sharing" : "Fildeling",
"Share will expire tomorrow" : "Deling utløper i morgen",
@@ -115,16 +111,72 @@ OC.L10N.register(
"Accept" : "Aksepter",
"Decline" : "Avslå",
"This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Denne applikasjonen lar personer dele filer i Nextcloud. Hvis aktivert, kan administrator velge hvilke grupper som kan dele filer. De aktuelle personene kan deretter dele filer og mapper med andre kontoer og grupper i Nextcloud. I tillegg, hvis administrator aktiverer delingslenke-funksjonen, kan en ekstern lenke brukes til å dele filer med andre personer utenfor Nextcloud. Administratorer kan også håndheve passord, utløpsdatoer og aktivere server-til-server-deling via delingslenker, samt deling fra mobile enheter.\nHvis du slår av funksjonen, fjernes delte filer og mapper på serveren for alle delingsmottakere, og også på synkroniseringsklienter og mobilapper. Mer informasjon er tilgjengelig i Nextcloud-dokumentasjonen.",
- "Sharing" : "Deling",
- "Accept shares from other accounts and groups by default" : "Aksepter som standard delte ressurser fra andre kontoer og grupper",
+ "People" : "Mennesker",
+ "Filter accounts" : "Filtrer kontoer",
+ "The request will expire on {date} at midnight and will be password protected." : "Forespørselen utløper {date} ved midnatt og vil være passordbeskyttet.",
+ "The request will expire on {date} at midnight." : "Forespørselen utløper {date} ved midnatt.",
+ "The request will be password protected." : "Forespørselen vil være passordbeskyttet.",
+ "When should the request expire?" : "Når skal forespørselen utløpe?",
+ "Set a submission expiration date" : "Angi en utløpsdato for sending",
+ "Expiration date" : "Utløpsdato",
+ "Select a date" : "Velg en dato",
+ "Your administrator has enforced a {count} days expiration policy." : "Systemansvarlig har håndhevet en {count} dagers retningslinjer for utløp.",
+ "What password should be used for the request?" : "Hvilket passord skal brukes for forespørselen?",
+ "Set a password" : "Sett et passord",
+ "Password" : "PassordP",
+ "Enter a valid password" : "Angi et gyldig passord",
+ "Generate a new password" : "Generer et nytt passord",
+ "Your administrator has enforced a password protection." : "Systemansvarlig har håndhevet en passordbeskyttelse.",
+ "Automatically copying failed, please copy the share link manually" : "Automatisk kopiering feilet, vennligst kopier delingslenken manuelt",
+ "Link copied" : "Lenke kopiert",
+ "Email already added" : "E-post allerede lagt til",
+ "Invalid email address" : "Ugyldig e-postadresse",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Følgende e-postadresse er ikke gyldig: {emails}","Følgende e-postadresser er ikke gyldige:: {emails}"],
+ "You can now share the link below to allow people to upload files to your directory." : "Du kan nå dele lenken nedenfor for å tillate folk å laste opp filer til katalogen din.",
+ "Share link" : "Share link",
+ "Copy" : "Kopi",
+ "Send link via email" : "Send lenke via e-post",
+ "Enter an email address or paste a list" : "Skriv inn en e-postadresse eller lim inn en liste",
+ "Remove email" : "Fjern e-post",
+ "Select a destination" : "Velg en destinasjon",
+ "Select" : "Velg",
+ "What are you requesting?" : "Hva ber du om?",
+ "Request subject" : "Be om emne",
+ "Birthday party photos, History assignment…" : "Bursdagsfestbilder, Historieoppgave...",
+ "Where should these files go?" : "Hvor skal disse filene gå?",
+ "Upload destination" : "Last opp destinasjon",
+ "Revert to default" : "Tilbakestill til standard",
+ "The uploaded files are visible only to you unless you choose to share them." : "De opplastede filene er bare synlige for deg med mindre du velger å dele dem.",
+ "Add a note" : "Legg til et notat",
+ "Note for recipient" : "Notat for mottaker",
+ "Add a note to help people understand what you are requesting." : "Legg til et notat for å hjelpe andre med å forstå hva du ber om.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Du kan legge til lenker, dato eller annen informasjon som vil hjelpe mottakeren å forstå hva du ber om.",
+ "Close" : "Lukk",
+ "_Send email and close_::_Send {count} emails and close_" : ["Send e-post og lukk","Send {count} e-poster og lukk"],
+ "Please select a folder, you cannot share the root directory." : "Velg en mappe, du kan ikke dele rotkatalogen.",
+ "File request created" : "Filforespørsel opprettet",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Filforespørsel opprettet og e-post sendt","Filforespørsel opprettet og {count} e-poster sendt"],
+ "Error creating the share: {errorMessage}" : "Feil ved opprettelse av delingen: {errorMessage}",
+ "Error creating the share" : "Feil ved oppretting av deling",
+ "Error sending emails: {errorMessage}" : "Feil ved sending av e-post: {errorMessage}",
+ "Error sending emails" : "Feil ved sending av e-post",
+ "Create a file request" : "Opprett en filforespørsel",
+ "Collect files from others even if they do not have an account." : "Samle filer fra andre selv om de ikke har en konto.",
+ "To ensure you can receive files, verify you have enough storage available." : "For å sikre at du kan motta filer, må du kontrollere at du har nok lagringsplass tilgjengelig.",
+ "File request" : "Filforespørsel",
+ "Previous step" : "Forrige trinn",
+ "Cancel" : "Avbryt",
+ "Cancel the file request creation" : "Avbryte opprettelsen av filforespørselen",
+ "Close without sending emails" : "Lukk uten å sende e-post",
+ "Continue" : "Fortsett",
"Error while toggling options" : "Feil under veksling av alternativer",
- "Set default folder for accepted shares" : "Angi standardmappe for aksepterte delinger",
- "Reset" : "Tilbakestill",
- "Reset folder to system default" : "Tilbakestill mappen til standard",
+ "Accept shares from other accounts and groups by default" : "Aksepter som standard delte ressurser fra andre kontoer og grupper",
"Choose a default folder for accepted shares" : "Velg en standardmappe for aksepterte delinger",
"Invalid path selected" : "Ugyldig angitt sti",
"Unknown error" : "Ukjent feil",
- "Open Sharing Details" : "Åpne delingsdetaljer",
+ "Set default folder for accepted shares" : "Angi standardmappe for aksepterte delinger",
+ "Reset" : "Tilbakestill",
+ "Reset folder to system default" : "Tilbakestill mappen til standard",
"group" : "gruppe",
"conversation" : "samtale",
"remote" : "ekstern",
@@ -133,51 +185,44 @@ OC.L10N.register(
"Shared with the group {user} by {owner}" : "Delt med gruppen {user} av {owner}",
"Shared with the conversation {user} by {owner}" : "Delt med samtalen {user} av {owner}",
"Shared with {user} by {owner}" : "Delt med {user} av {owner}",
+ "Open Sharing Details" : "Åpne delingsdetaljer",
"Added by {initiator}" : "Lagt til av {initiator}",
"Via “{folder}”" : "Via “{folder}”",
"Unshare" : "Opphev deling",
- "Internal link" : "Intern lenke",
"Cannot copy, please copy the link manually" : "Kan ikke kopiere, kopier lenken manuelt",
- "Copy internal link to clipboard" : "Kopier intern lenke til utklippstavlen",
- "Only works for people with access to this folder" : "Fungerer kun for personer med tilgang til denne mappen",
- "Only works for people with access to this file" : "Fungerer kun for personer med tilgang til denne filen",
- "Link copied" : "Lenke kopiert",
+ "Copy internal link" : "Kopier intern lenke",
+ "Internal link" : "Intern lenke",
+ "{shareWith} by {initiator}" : "{shareWith} av {initiator}",
+ "Shared via link by {initiator}" : "Delt via lenke av {initiator}",
+ "File request ({label})" : "Filforespørsel ({label})",
+ "Mail share ({label})" : "Deling via e-post ({label})",
+ "Share link ({label})" : "Del lenke ({label})",
+ "Mail share" : "E-postdeling",
+ "Share link ({index})" : "Del lenke ({index})",
+ "Create public link" : "Opprett offentlig kobling",
+ "Actions for \"{title}\"" : "Valg for \"{title}\"",
+ "Error, please enter proper password and/or expiration date" : "Feil, vennligst skriv inn riktig passord og/eller utløpsdato",
+ "Link share created" : "Lenkedeling opprettet",
+ "Error while creating the share" : "Feil under oppretting av delingen",
"Please enter the following required information before creating the share" : "Vennligst fyll inn følgende nødvendige informasjon før du oppretter delingen",
"Password protection (enforced)" : "Passordbeskyttelse (håndhevet)",
"Password protection" : "Passordbeskyttelse",
"Enter a password" : "Skriv inn et passord",
- "Expiration date (enforced)" : "Utløpsdato (håndhevet)",
- "Enter a date" : "Skriv inn dato",
"Create share" : "Opprett deling",
- "Cancel" : "Avbryt",
"Customize link" : "Tilpass lenke",
"Generate QR code" : "Generer QR-kode",
"Add another link" : "Legg til en lenke til",
"Create a new share link" : "Opprett ny delingslenke",
- "{shareWith} by {initiator}" : "{shareWith} av {initiator}",
- "Shared via link by {initiator}" : "Delt via lenke av {initiator}",
- "Mail share ({label})" : "Deling via e-post ({label})",
- "Share link ({label})" : "Del lenke ({label})",
- "Share link ({index})" : "Del lenke ({indeks})",
- "Share link" : "Share link",
- "Actions for \"{title}\"" : "Valg for \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Kopier den offentlige lenken til \"{title}\" til utklippstavlen",
- "Error, please enter proper password and/or expiration date" : "Feil, vennligst skriv inn riktig passord og/eller utløpsdato",
- "Link share created" : "Lenkedeling opprettet",
- "Error while creating the share" : "Feil under oppretting av delingen",
"Quick share options, the current selected is \"{selectedOption}\"" : "Alternativer for hurtigdeling, gjeldende valgte er \"{selectedOption}\"",
"View only" : "Kun se",
"Can edit" : "Kan endre",
- "File drop" : "Filkasse",
"Custom permissions" : "Egendefinerte tillatelser",
- "Search for share recipients" : "Søk etter delingsmottakere",
- "No recommendations. Start typing." : "Ingen forslag. Start skriving.",
"Resharing is not allowed" : "Videre deling er ikke tillatt",
"Name or email …" : "Navn eller epost ...",
"Name, email, or Federated Cloud ID …" : "Navn, epost eller sammenknyttet sky-ID ...",
"Searching …" : "Søker ...",
"No elements found." : "Ingen elementer funnet.",
- "Search globally" : "Søk globalt",
+ "Search everywhere" : "Søk overalt",
"Guest" : "Gjest",
"Group" : "Gruppe",
"Email" : "E-post",
@@ -186,70 +231,72 @@ OC.L10N.register(
"Deck board" : "Deck tavle",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "på {server}",
+ "Note from" : "Notat fra",
+ "Note:" : "Merk:",
+ "File drop" : "Filkasse",
+ "Upload files to {foldername}." : "Last opp filer til {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Ved å laste opp filer godtar du bruksvilkårene.",
+ "View terms of service" : "Vis bruksvilkårene",
+ "Terms of service" : "Betingelser for tjenesten",
+ "Share with email {email}" : "Del med e-post {email}",
+ "Share with group" : "Del med gruppe",
+ "Share in conversation" : "Del i samtalen",
+ "Share with {user} on remote server {server}" : "Del med {user} på ekstern server {server}",
+ "Share with remote group" : "Del med fjerngruppe",
+ "Share with guest" : "Del med gjest",
+ "Update share" : "Oppdater delt ressurs",
+ "Save share" : "Lagre delt ressurs",
+ "Read" : "Les",
+ "Create" : "Opprett",
+ "Edit" : "Rediger",
+ "Share" : "Del",
+ "Delete" : "Slett",
+ "Replace current password" : "Erstatt nåværende passord",
"Allow upload and editing" : "Tillatt opplasting og redigering",
"Allow editing" : "Tillat redigering",
"Upload only" : "Kun opplasting",
"Advanced settings" : "Avanserte innstillinger",
"Share label" : "Delingsmerkelapper",
"Set password" : "Velg passord",
- "Password" : "PassordP",
"Password expires {passwordExpirationTime}" : "Passordet utløper {passwordExpirationTime}",
"Password expired" : "Passordet er utløpt",
"Video verification" : "Videobekreftelse",
+ "Expiration date (enforced)" : "Utløpsdato (håndhevet)",
"Set expiration date" : "Sett utløpsdato",
- "Expiration date" : "Utløpsdato",
"Hide download" : "Gjem nedlasting",
- "Allow download" : "Tillat nedlasting",
+ "Allow download and sync" : "Tillat nedlasting og synkronisering",
"Note to recipient" : "Melding til mottaker",
"Enter a note for the share recipient" : "Skriv inn en beskjed til mottaker av deling",
- "Read" : "Les",
- "Create" : "Opprett",
- "Edit" : "Rediger",
- "Share" : "Del",
"Delete share" : "Slett delt ressurs",
- "Share with {userName}" : "Del med {userName}",
- "Share with email {email}" : "Del med e-post {email}",
- "Share with group" : "Del med gruppe",
- "Share in conversation" : "Del i samtalen",
- "Share with {user} on remote server {server}" : "Del med {user} på ekstern server {server}",
- "Share with remote group" : "Del med fjerngruppe",
- "Share with guest" : "Del med gjest",
- "Update share" : "Oppdater delt ressurs",
- "Save share" : "Lagre delt ressurs",
"Others with access" : "Andre med tilgang",
"No other accounts with access found" : "Ingen andre kontoer med tilgang funnet",
"Toggle list of others with access to this directory" : "Endre liste over andre brukere med tilgang til denne mappen",
"Toggle list of others with access to this file" : "Endre liste over andre brukere med tilgang til denne filen",
"Unable to fetch inherited shares" : "Kan ikke hente arvede delinger",
+ "Shares" : "Delinger",
"Unable to load the shares list" : "Kan ikke laste listen over delinger",
"Expires {relativetime}" : "Utløper {relativetime}",
"this share just expired." : "denne delingen utløp akkurat.",
"Shared with you by {owner}" : "Delt med deg av {owner}",
+ "Link to a file" : "Lenke til en fil",
"_Accept share_::_Accept shares_" : ["Aksepter delt ressurs","Aksepter delte ressurser"],
"Open in Files" : "Åpne i Filer",
"_Reject share_::_Reject shares_" : ["Avvis delt ressurs","Avvis delte ressurser"],
"_Restore share_::_Restore shares_" : ["Gjenopprett delt ressurs","Gjenopprett delte ressurser"],
"Shared" : "Delt",
- "Shared multiple times with different people" : "Del flere ganger med forskjellige personer",
"Shared by {ownerDisplayName}" : "Delt av {ownerDisplayName}",
- "Show sharing options" : "Vis alternativer for deling",
- "Link to a file" : "Lenke til en fil",
- "Error creating the share: {errorMessage}" : "Feil ved opprettelse av delingen: {errorMessage}",
- "Error creating the share" : "Feil ved oppretting av deling",
- "Error updating the share: {errorMessage}" : "Feil ved oppdatering av delingen: {errorMessage}",
- "Error updating the share" : "Feil under oppdatering av delingen",
- "File \"{path}\" has been unshared" : "Deling av filen \"{path}\" er opphevd",
- "Folder \"{path}\" has been unshared" : "Deling av mappen \"{path}\" er opphevd",
- "Share {propertyName} saved" : "Deling {propertyName} er lagret",
- "Shared by" : "Delt av",
- "Shared with" : "Delt med",
- "Password created successfully" : "Passord opprettet",
- "Error generating password from password policy" : "Feil under generering av passord fra passordregler",
- "Shared with you and the group {group} by {owner}" : "Delt med deg og gruppen {group} av {owner}",
- "Shared with you and {circle} by {owner}" : "Delt med deg og {circle} av {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Delt med deg og samtalen {conversation} av {owner}",
- "Shared with you in a conversation by {owner}" : "Delt md deg i samtale med {owner}",
- "Shares" : "Delinger",
+ "Shared multiple times with different people" : "Del flere ganger med forskjellige personer",
+ "Shared with others" : "Delt med andre",
+ "Create file request" : "Opprett filforespørsel",
+ "Upload files to {foldername}" : "Last opp filer til {foldername}",
+ "Public file share" : "Offentlig fildeling",
+ "Publicly shared file." : "Offentlig delt fil.",
+ "No file" : "Ingen fil",
+ "The file shared with you will show up here" : "Filen som er delt med deg vil vises her",
+ "Public share" : "Offentlig deling",
+ "Publicly shared files." : "Offentlig delte filer.",
+ "No files" : "Ingen filer",
+ "Files and folders shared with you will show up here" : "Filer og mapper delt med deg vil vises her",
"Overview of shared files." : "Oversikt over delte filer.",
"No shares" : "Ingen delinger",
"Files and folders you shared or have been shared with you will show up here" : "Filer og mapper du har delt eller har blitt delt med deg, vises her",
@@ -257,7 +304,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Liste over filer som er delt med deg.",
"Nothing shared with you yet" : "Ingenting er delt med deg enda",
"Files and folders others shared with you will show up here" : "Filer og mapper andre har delt med deg, vises her",
- "Shared with others" : "Delt med andre",
"List of files that you shared with others." : "Liste over filer som du delte med andre.",
"Nothing shared yet" : "Ingenting er delt ennå",
"Files and folders you shared will show up here" : "Filer og mapper du delte, vises her",
@@ -265,6 +311,10 @@ OC.L10N.register(
"List of files that are shared by link." : "Liste over filer som er delt via kobling.",
"No shared links" : "Ingen delte lenker",
"Files and folders you shared by link will show up here" : "Filer og mapper du har delt via kobling, vises her",
+ "File requests" : "Filforespørsler",
+ "List of file requests." : "Liste over filforespørsler.",
+ "No file requests" : "Ingen filforespørsler",
+ "File requests you have created will show up here" : "Filforespørsler du har opprettet vil vises her",
"Deleted shares" : "Slettede delinger",
"List of shares you left." : "Liste over delte ressurser du forlot.",
"No deleted shares" : "Ingen slettede delinger",
@@ -273,49 +323,61 @@ OC.L10N.register(
"List of unapproved shares." : "Liste over ikke godkjente delte ressurser.",
"No pending shares" : "Ingen ventende delinger",
"Shares you have received but not approved will show up here" : "Delte ressurser du har mottatt, men ikke godkjent, vises her",
+ "Error updating the share: {errorMessage}" : "Feil ved oppdatering av delingen: {errorMessage}",
+ "Error updating the share" : "Feil under oppdatering av delingen",
+ "File \"{path}\" has been unshared" : "Deling av filen \"{path}\" er opphevd",
+ "Folder \"{path}\" has been unshared" : "Deling av mappen \"{path}\" er opphevd",
+ "Upload files to {folder}" : "Last opp filer til {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} delte en mappe med deg.",
+ "Shared by" : "Delt av",
+ "Shared with" : "Delt med",
+ "Password created successfully" : "Passord opprettet",
+ "Error generating password from password policy" : "Feil under generering av passord fra passordregler",
+ "Shared with you and the group {group} by {owner}" : "Delt med deg og gruppen {group} av {owner}",
+ "Shared with you and {circle} by {owner}" : "Delt med deg og {circle} av {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Delt med deg og samtalen {conversation} av {owner}",
+ "Shared with you in a conversation by {owner}" : "Delt md deg i samtale med {owner}",
+ "Share not found" : "Deling ikke funnet",
+ "Back to %s" : "Tilbake til %s",
+ "Add to your Nextcloud" : "Legg til i din Nextcloud",
+ "Waiting…" : "Venter...",
+ "error" : "feil",
+ "finished" : "fullført",
+ "This will stop your current uploads." : "Dette fille stoppe dine nåværende opplastinger.",
+ "Move or copy" : "Flytt eller kopier",
+ "You can upload into this folder" : "Du kan laste opp til denne mappen",
+ "Show list view" : "Vis listevisning",
+ "Show grid view" : "Vis rutenett-visning",
+ "No compatible server found at {remote}" : "Ingen kompatibel server ble funnet på {remote}",
+ "Invalid server URL" : "Ugyldig server adresse",
+ "Failed to add the public link to your Nextcloud" : "Feil oppsto under oppretting av offentlig lenke til din Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "Du har ikke lov til å redigere delte lenker du ikke eier",
+ "Download all files" : "Last ned alle filer",
+ "Link copied to clipboard" : "Lenke kopiert til utklippstavlen",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-postadresse allerede lagt til","{count} e-postadresser allerede lagt til"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 e-postadresse lagt til","{count} e-postadresser lagt til"],
+ "Copy to clipboard" : "Kopiert til utklippstavlen",
+ "Copy internal link to clipboard" : "Kopier intern lenke til utklippstavlen",
+ "Only works for people with access to this folder" : "Fungerer kun for personer med tilgang til denne mappen",
+ "Only works for people with access to this file" : "Fungerer kun for personer med tilgang til denne filen",
+ "Copy public link of \"{title}\" to clipboard" : "Kopier den offentlige lenken til \"{title}\" til utklippstavlen",
+ "Search globally" : "Søk globalt",
+ "Search for share recipients" : "Søk etter delingsmottakere",
+ "No recommendations. Start typing." : "Ingen forslag. Start skriving.",
+ "To upload files, you need to provide your name first." : "For å laste opp filer må du først oppgi navnet ditt.",
+ "Enter your name" : "Skriv inn navnet ditt",
+ "Submit name" : "Send inn navn",
+ "Share with {userName}" : "Del med {userName}",
+ "Show sharing options" : "Vis alternativer for deling",
"Share note" : "Delingsnotat",
"Upload files to %s" : "Last opp filer til %s",
+ "%s shared a folder with you." : "%s delte en mappe med deg.",
"Note" : "Melding",
"Select or drop files" : "Velg eller slipp filer",
"Uploading files" : "Laster opp filer",
"Uploaded files:" : "Opplastede filer:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Ved å laste opp filer godtar du %1$stjenestevilkårene%2$s.",
- "Add to your Nextcloud" : "Legg til i din Nextcloud",
- "Files and folders others share with you will show up here" : "Filer og mapper som andre deler med deg vil bli vist her",
- "Files and folders you share will show up here" : "Filer og mapper som du deler vil bli vist her",
- "Files and folders you share by link will show up here" : "Filer og mapper som du deler med lenke vil bli vist her",
- "Shares you deleted will show up here" : "Delinger du har slettet vil vises her",
- "Shares you have received but not confirmed will show up here" : "Delinger du har mottatt men ikke bekreftet vil vises her",
- "Shares will show up here" : "Delinger vil vises her",
- "Restore" : "Gjenopprett",
- "Something happened. Unable to restore the share." : "Noe skjedde. Ikke mulig å gjenopprette delingen.",
- "Something happened. Unable to accept the share." : "Noe skjedde. Ikke mulig å motta delingen.",
- "Something happened. Unable to reject the share." : "Noe skjedde. Ikke mulig å avvise delingen.",
- "No expiration date set" : "Ingen utløpsdato er satt",
- "Please specify a valid user" : "Oppgi en gyldig bruker",
- "Please specify a valid federated user ID" : "Angi en gyldig sammenknyttet brukersky-ID",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Denne applikasjonen lar brukere dele filer i Nextcloud. Hvis aktivert, kan administrator velge hvilke grupper som kan dele filer. De aktuelle brukerne kan deretter dele filer og mapper med andre brukere og grupper i Nextcloud. I tillegg, hvis administrator aktiverer delingslenke-funksjonen, kan en ekstern lenke brukes til å dele filer med andre brukere utenfor Nextcloud. Administratorer kan også håndheve passord, utløpsdatoer og aktivere server-til-server-deling via delingslenker, samt deling fra mobile enheter.\nHvis du slår av funksjonen, fjernes delte filer og mapper på serveren for alle delingsmottakere, og også på synkroniseringsklienter og mobilapper. Mer informasjon er tilgjengelig i Nextcloud-dokumentasjonen.",
- "Accept user and group shares by default" : "Godta bruker- og gruppedelinger som standard",
- "Read only" : "Skrivebeskyttet",
- "File drop (upload only)" : "Filkasse (kun opplasting)",
- "Upload" : "Last opp",
- "Bundled permissions" : "Medfølgende tillatelser",
- "Only works for users with access to this folder" : "Virker kun for brukere med tilgang til mappen",
- "Only works for users with access to this file" : "Virker kun for brukere med tilgang til denne filen",
- "Circle" : "Sirkel",
- "Update" : "Oppdater",
- "Share with " : "Del med",
- "No other users with access found" : "Ingen andre brukere med tilgang funnet",
- "No entries found in this folder" : "Ingen oppføringer funnet i denne mappen",
"Name" : "Navn",
- "Share time" : "Delingstidspunkt",
- "Sorry, this link does not seem to work anymore." : "Beklager, denne linken ser ikke ut til å fungere lenger.",
- "Reasons might be:" : "Mulige årsaker:",
- "the item was removed" : "elementet er fjernet",
- "the link expired" : "lenken er utløpt",
- "sharing is disabled" : "deling er avskrudd",
- "For more info, please ask the person who sent this link." : "For mer informasjon, spør personen som sendte lenken.",
- "Share with remote" : "Del med ekstern",
- "Share with" : "Del med"
+ "Filename must not be empty." : "Filnavn kan ikke være tomt."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/nb.json b/apps/files_sharing/l10n/nb.json
index 993ec74018f..40f10e48abc 100644
--- a/apps/files_sharing/l10n/nb.json
+++ b/apps/files_sharing/l10n/nb.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Venter...",
- "error" : "feil",
- "finished" : "fullført",
- "This will stop your current uploads." : "Dette fille stoppe dine nåværende opplastinger.",
- "Move or copy" : "Flytt eller kopier",
- "Download" : "Last ned",
- "Delete" : "Slett",
- "You can upload into this folder" : "Du kan laste opp til denne mappen",
- "Terms of service" : "Betingelser for tjenesten",
- "Show list view" : "Vis listevisning",
- "Show grid view" : "Vis rutenett-visning",
- "No compatible server found at {remote}" : "Ingen kompatibel server ble funnet på {remote}",
- "Invalid server URL" : "Ugyldig server adresse",
- "Failed to add the public link to your Nextcloud" : "Feil oppsto under oppretting av offentlig lenke til din Nextcloud",
"File shares" : "Fildelinger",
"Downloaded via public link" : "Nedlastet via offentlig lenke",
"Downloaded by {email}" : "Lastet ned av {email}",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "Deling for fil {file} med {user} utløpt",
"Share for file {file} expired" : "Deling for fil {file} utløpt",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Ei fil eller mappe delt via e-post eller offentlig lenke ble <strong>lastet ned</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Filer er <strong>lastet opp</strong> til en mappe som deles via e-post eller via offentlig kobling",
"A file or folder was shared from <strong>another server</strong>" : "En fil eller mappe ble delt fra <strong>en annen server</strong>",
- "Files" : "Filer",
+ "Sharing" : "Deling",
"A file or folder has been <strong>shared</strong>" : "En fil eller mappe ble <strong>delt</strong>",
"Shared link" : "Delte lenke",
"Wrong share ID, share does not exist" : "Feil delings-ID, deling eksisterer ikke",
@@ -76,34 +63,43 @@
"Please specify a file or folder path" : "Oppgi en fil eller mappesti",
"Wrong path, file/folder does not exist" : "Feil bane, fil/mappe eksisterer ikke",
"Could not create share" : "Kunne ikke opprette ressurs",
- "Invalid permissions" : "Ugyldig rettigheter",
- "Invalid date, date format must be YYYY-MM-DD" : "Feil dato, dato må være i formatet YYYY-MM-DD",
"Please specify a valid account to share with" : "Spesifiser en gyldig konto å dele med",
"Group sharing is disabled by the administrator" : "Gruppedeling er deaktivert av administratoren",
"Please specify a valid group" : "Oppgi en gyldig gruppe",
"Public link sharing is disabled by the administrator" : "Administratoren har skrudd av offentlig lenkedeling",
- "Public upload disabled by the administrator" : "Offentlig opplasting er deaktivert av administratoren",
- "Public upload is only possible for publicly shared folders" : "Offentlig opplasting er kun mulig i offentlig delte mapper",
+ "Please specify a valid email address" : "Vennligst spesifiser en gyldig e-postadresse",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Deling av %s ved å sende passordet av Nextcloud Talk mislyktes fordi Nextcloud Talk ikke er aktivert",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Deling av %1$s mislyktes fordi serveren ikke tillater delinger fra typen %2$s",
"Please specify a valid federated account ID" : "Angi en gyldig sammenknyttet konto-ID",
"Please specify a valid federated group ID" : "Angi en gyldig sammenknyttet gruppesky-ID",
- "You cannot share to a Circle if the app is not enabled" : "Du kan ikke dele til en sirkel så lenge appen ikke er aktivert",
- "Please specify a valid circle" : "Angi en gyldig sirkel",
+ "You cannot share to a Team if the app is not enabled" : "Du kan ikke dele til et Lag så lenge appen ikke er aktivert",
+ "Please specify a valid team" : "Vennligst spesifiser et gyldig lag",
"Sharing %s failed because the back end does not support room shares" : "Deling av %s mislyktes fordi serveren ikke støtter romdeling",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Deling av %s feilet fordi backend-en ikke støtter ScienceMesh-delinger",
"Unknown share type" : "Ukjent ressurstype",
"Not a directory" : "Ikke en mappe",
"Could not lock node" : "Kunne ikke låse noden",
- "Could not lock path" : "Kunne ikke låse sti",
- "Wrong or no update parameter given" : "Feil eller ingen parametre for oppdatering er angitt",
+ "Public upload is only possible for publicly shared folders" : "Offentlig opplasting er kun mulig i offentlig delte mapper",
"Share must at least have READ or CREATE permissions" : "Deling må minst ha READ- eller CREATE-tillatelser",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Del må ha READ-tillatelse hvis UPDATE eller DELETE-tillatelse er angitt",
+ "Public upload disabled by the administrator" : "Offentlig opplasting er deaktivert av administratoren",
+ "Could not lock path" : "Kunne ikke låse sti",
+ "no sharing rights on this item" : "Ingen delingsrettigheter på dette elementet",
+ "You are not allowed to edit incoming shares" : "Du har ikke lov til å redigere innkommende delinger",
+ "Wrong or no update parameter given" : "Feil eller ingen parametre for oppdatering er angitt",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Sende passordet av Nextcloud Talk\" for deling av en fil eller mappe mislyktes fordi Nextcloud Talk ikke er aktivert.",
+ "Invalid date. Format must be YYYY-MM-DD" : "Ugyldig dato. Formatet må være YYYY-MM-DD",
+ "No sharing rights on this item" : "Ingen delingsrettigheter på dette elementet",
+ "Invalid share attributes provided: \"%s\"" : "Ugyldige delingsattributter angitt: \"%s\"",
+ "You are not allowed to send mail notifications" : "Du har ikke lov til å sende e-postvarsler",
+ "No mail notification configured for this share type" : "Ingen e-postvarsling konfigurert for denne delte ressurstypen",
+ "Wrong password" : "Feil passord",
+ "Error while sending mail notification" : "Feil under sending av e-postvarsling",
+ "This share does not exist or is no longer available" : "Denne delingen eksisterer ikke eller er ikke lenger tilgjengelig",
"shared by %s" : "delt av %s",
- "Download all files" : "Last ned alle filer",
- "Direct link" : "Direkte lenke",
+ "Download" : "Last ned",
"Add to your %s" : "Legg til din %s",
+ "Direct link" : "Direkte lenke",
"Share API is disabled" : "Deling API er deaktivert",
"File sharing" : "Fildeling",
"Share will expire tomorrow" : "Deling utløper i morgen",
@@ -113,16 +109,72 @@
"Accept" : "Aksepter",
"Decline" : "Avslå",
"This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Denne applikasjonen lar personer dele filer i Nextcloud. Hvis aktivert, kan administrator velge hvilke grupper som kan dele filer. De aktuelle personene kan deretter dele filer og mapper med andre kontoer og grupper i Nextcloud. I tillegg, hvis administrator aktiverer delingslenke-funksjonen, kan en ekstern lenke brukes til å dele filer med andre personer utenfor Nextcloud. Administratorer kan også håndheve passord, utløpsdatoer og aktivere server-til-server-deling via delingslenker, samt deling fra mobile enheter.\nHvis du slår av funksjonen, fjernes delte filer og mapper på serveren for alle delingsmottakere, og også på synkroniseringsklienter og mobilapper. Mer informasjon er tilgjengelig i Nextcloud-dokumentasjonen.",
- "Sharing" : "Deling",
- "Accept shares from other accounts and groups by default" : "Aksepter som standard delte ressurser fra andre kontoer og grupper",
+ "People" : "Mennesker",
+ "Filter accounts" : "Filtrer kontoer",
+ "The request will expire on {date} at midnight and will be password protected." : "Forespørselen utløper {date} ved midnatt og vil være passordbeskyttet.",
+ "The request will expire on {date} at midnight." : "Forespørselen utløper {date} ved midnatt.",
+ "The request will be password protected." : "Forespørselen vil være passordbeskyttet.",
+ "When should the request expire?" : "Når skal forespørselen utløpe?",
+ "Set a submission expiration date" : "Angi en utløpsdato for sending",
+ "Expiration date" : "Utløpsdato",
+ "Select a date" : "Velg en dato",
+ "Your administrator has enforced a {count} days expiration policy." : "Systemansvarlig har håndhevet en {count} dagers retningslinjer for utløp.",
+ "What password should be used for the request?" : "Hvilket passord skal brukes for forespørselen?",
+ "Set a password" : "Sett et passord",
+ "Password" : "PassordP",
+ "Enter a valid password" : "Angi et gyldig passord",
+ "Generate a new password" : "Generer et nytt passord",
+ "Your administrator has enforced a password protection." : "Systemansvarlig har håndhevet en passordbeskyttelse.",
+ "Automatically copying failed, please copy the share link manually" : "Automatisk kopiering feilet, vennligst kopier delingslenken manuelt",
+ "Link copied" : "Lenke kopiert",
+ "Email already added" : "E-post allerede lagt til",
+ "Invalid email address" : "Ugyldig e-postadresse",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Følgende e-postadresse er ikke gyldig: {emails}","Følgende e-postadresser er ikke gyldige:: {emails}"],
+ "You can now share the link below to allow people to upload files to your directory." : "Du kan nå dele lenken nedenfor for å tillate folk å laste opp filer til katalogen din.",
+ "Share link" : "Share link",
+ "Copy" : "Kopi",
+ "Send link via email" : "Send lenke via e-post",
+ "Enter an email address or paste a list" : "Skriv inn en e-postadresse eller lim inn en liste",
+ "Remove email" : "Fjern e-post",
+ "Select a destination" : "Velg en destinasjon",
+ "Select" : "Velg",
+ "What are you requesting?" : "Hva ber du om?",
+ "Request subject" : "Be om emne",
+ "Birthday party photos, History assignment…" : "Bursdagsfestbilder, Historieoppgave...",
+ "Where should these files go?" : "Hvor skal disse filene gå?",
+ "Upload destination" : "Last opp destinasjon",
+ "Revert to default" : "Tilbakestill til standard",
+ "The uploaded files are visible only to you unless you choose to share them." : "De opplastede filene er bare synlige for deg med mindre du velger å dele dem.",
+ "Add a note" : "Legg til et notat",
+ "Note for recipient" : "Notat for mottaker",
+ "Add a note to help people understand what you are requesting." : "Legg til et notat for å hjelpe andre med å forstå hva du ber om.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Du kan legge til lenker, dato eller annen informasjon som vil hjelpe mottakeren å forstå hva du ber om.",
+ "Close" : "Lukk",
+ "_Send email and close_::_Send {count} emails and close_" : ["Send e-post og lukk","Send {count} e-poster og lukk"],
+ "Please select a folder, you cannot share the root directory." : "Velg en mappe, du kan ikke dele rotkatalogen.",
+ "File request created" : "Filforespørsel opprettet",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Filforespørsel opprettet og e-post sendt","Filforespørsel opprettet og {count} e-poster sendt"],
+ "Error creating the share: {errorMessage}" : "Feil ved opprettelse av delingen: {errorMessage}",
+ "Error creating the share" : "Feil ved oppretting av deling",
+ "Error sending emails: {errorMessage}" : "Feil ved sending av e-post: {errorMessage}",
+ "Error sending emails" : "Feil ved sending av e-post",
+ "Create a file request" : "Opprett en filforespørsel",
+ "Collect files from others even if they do not have an account." : "Samle filer fra andre selv om de ikke har en konto.",
+ "To ensure you can receive files, verify you have enough storage available." : "For å sikre at du kan motta filer, må du kontrollere at du har nok lagringsplass tilgjengelig.",
+ "File request" : "Filforespørsel",
+ "Previous step" : "Forrige trinn",
+ "Cancel" : "Avbryt",
+ "Cancel the file request creation" : "Avbryte opprettelsen av filforespørselen",
+ "Close without sending emails" : "Lukk uten å sende e-post",
+ "Continue" : "Fortsett",
"Error while toggling options" : "Feil under veksling av alternativer",
- "Set default folder for accepted shares" : "Angi standardmappe for aksepterte delinger",
- "Reset" : "Tilbakestill",
- "Reset folder to system default" : "Tilbakestill mappen til standard",
+ "Accept shares from other accounts and groups by default" : "Aksepter som standard delte ressurser fra andre kontoer og grupper",
"Choose a default folder for accepted shares" : "Velg en standardmappe for aksepterte delinger",
"Invalid path selected" : "Ugyldig angitt sti",
"Unknown error" : "Ukjent feil",
- "Open Sharing Details" : "Åpne delingsdetaljer",
+ "Set default folder for accepted shares" : "Angi standardmappe for aksepterte delinger",
+ "Reset" : "Tilbakestill",
+ "Reset folder to system default" : "Tilbakestill mappen til standard",
"group" : "gruppe",
"conversation" : "samtale",
"remote" : "ekstern",
@@ -131,51 +183,44 @@
"Shared with the group {user} by {owner}" : "Delt med gruppen {user} av {owner}",
"Shared with the conversation {user} by {owner}" : "Delt med samtalen {user} av {owner}",
"Shared with {user} by {owner}" : "Delt med {user} av {owner}",
+ "Open Sharing Details" : "Åpne delingsdetaljer",
"Added by {initiator}" : "Lagt til av {initiator}",
"Via “{folder}”" : "Via “{folder}”",
"Unshare" : "Opphev deling",
- "Internal link" : "Intern lenke",
"Cannot copy, please copy the link manually" : "Kan ikke kopiere, kopier lenken manuelt",
- "Copy internal link to clipboard" : "Kopier intern lenke til utklippstavlen",
- "Only works for people with access to this folder" : "Fungerer kun for personer med tilgang til denne mappen",
- "Only works for people with access to this file" : "Fungerer kun for personer med tilgang til denne filen",
- "Link copied" : "Lenke kopiert",
+ "Copy internal link" : "Kopier intern lenke",
+ "Internal link" : "Intern lenke",
+ "{shareWith} by {initiator}" : "{shareWith} av {initiator}",
+ "Shared via link by {initiator}" : "Delt via lenke av {initiator}",
+ "File request ({label})" : "Filforespørsel ({label})",
+ "Mail share ({label})" : "Deling via e-post ({label})",
+ "Share link ({label})" : "Del lenke ({label})",
+ "Mail share" : "E-postdeling",
+ "Share link ({index})" : "Del lenke ({index})",
+ "Create public link" : "Opprett offentlig kobling",
+ "Actions for \"{title}\"" : "Valg for \"{title}\"",
+ "Error, please enter proper password and/or expiration date" : "Feil, vennligst skriv inn riktig passord og/eller utløpsdato",
+ "Link share created" : "Lenkedeling opprettet",
+ "Error while creating the share" : "Feil under oppretting av delingen",
"Please enter the following required information before creating the share" : "Vennligst fyll inn følgende nødvendige informasjon før du oppretter delingen",
"Password protection (enforced)" : "Passordbeskyttelse (håndhevet)",
"Password protection" : "Passordbeskyttelse",
"Enter a password" : "Skriv inn et passord",
- "Expiration date (enforced)" : "Utløpsdato (håndhevet)",
- "Enter a date" : "Skriv inn dato",
"Create share" : "Opprett deling",
- "Cancel" : "Avbryt",
"Customize link" : "Tilpass lenke",
"Generate QR code" : "Generer QR-kode",
"Add another link" : "Legg til en lenke til",
"Create a new share link" : "Opprett ny delingslenke",
- "{shareWith} by {initiator}" : "{shareWith} av {initiator}",
- "Shared via link by {initiator}" : "Delt via lenke av {initiator}",
- "Mail share ({label})" : "Deling via e-post ({label})",
- "Share link ({label})" : "Del lenke ({label})",
- "Share link ({index})" : "Del lenke ({indeks})",
- "Share link" : "Share link",
- "Actions for \"{title}\"" : "Valg for \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Kopier den offentlige lenken til \"{title}\" til utklippstavlen",
- "Error, please enter proper password and/or expiration date" : "Feil, vennligst skriv inn riktig passord og/eller utløpsdato",
- "Link share created" : "Lenkedeling opprettet",
- "Error while creating the share" : "Feil under oppretting av delingen",
"Quick share options, the current selected is \"{selectedOption}\"" : "Alternativer for hurtigdeling, gjeldende valgte er \"{selectedOption}\"",
"View only" : "Kun se",
"Can edit" : "Kan endre",
- "File drop" : "Filkasse",
"Custom permissions" : "Egendefinerte tillatelser",
- "Search for share recipients" : "Søk etter delingsmottakere",
- "No recommendations. Start typing." : "Ingen forslag. Start skriving.",
"Resharing is not allowed" : "Videre deling er ikke tillatt",
"Name or email …" : "Navn eller epost ...",
"Name, email, or Federated Cloud ID …" : "Navn, epost eller sammenknyttet sky-ID ...",
"Searching …" : "Søker ...",
"No elements found." : "Ingen elementer funnet.",
- "Search globally" : "Søk globalt",
+ "Search everywhere" : "Søk overalt",
"Guest" : "Gjest",
"Group" : "Gruppe",
"Email" : "E-post",
@@ -184,70 +229,72 @@
"Deck board" : "Deck tavle",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "på {server}",
+ "Note from" : "Notat fra",
+ "Note:" : "Merk:",
+ "File drop" : "Filkasse",
+ "Upload files to {foldername}." : "Last opp filer til {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Ved å laste opp filer godtar du bruksvilkårene.",
+ "View terms of service" : "Vis bruksvilkårene",
+ "Terms of service" : "Betingelser for tjenesten",
+ "Share with email {email}" : "Del med e-post {email}",
+ "Share with group" : "Del med gruppe",
+ "Share in conversation" : "Del i samtalen",
+ "Share with {user} on remote server {server}" : "Del med {user} på ekstern server {server}",
+ "Share with remote group" : "Del med fjerngruppe",
+ "Share with guest" : "Del med gjest",
+ "Update share" : "Oppdater delt ressurs",
+ "Save share" : "Lagre delt ressurs",
+ "Read" : "Les",
+ "Create" : "Opprett",
+ "Edit" : "Rediger",
+ "Share" : "Del",
+ "Delete" : "Slett",
+ "Replace current password" : "Erstatt nåværende passord",
"Allow upload and editing" : "Tillatt opplasting og redigering",
"Allow editing" : "Tillat redigering",
"Upload only" : "Kun opplasting",
"Advanced settings" : "Avanserte innstillinger",
"Share label" : "Delingsmerkelapper",
"Set password" : "Velg passord",
- "Password" : "PassordP",
"Password expires {passwordExpirationTime}" : "Passordet utløper {passwordExpirationTime}",
"Password expired" : "Passordet er utløpt",
"Video verification" : "Videobekreftelse",
+ "Expiration date (enforced)" : "Utløpsdato (håndhevet)",
"Set expiration date" : "Sett utløpsdato",
- "Expiration date" : "Utløpsdato",
"Hide download" : "Gjem nedlasting",
- "Allow download" : "Tillat nedlasting",
+ "Allow download and sync" : "Tillat nedlasting og synkronisering",
"Note to recipient" : "Melding til mottaker",
"Enter a note for the share recipient" : "Skriv inn en beskjed til mottaker av deling",
- "Read" : "Les",
- "Create" : "Opprett",
- "Edit" : "Rediger",
- "Share" : "Del",
"Delete share" : "Slett delt ressurs",
- "Share with {userName}" : "Del med {userName}",
- "Share with email {email}" : "Del med e-post {email}",
- "Share with group" : "Del med gruppe",
- "Share in conversation" : "Del i samtalen",
- "Share with {user} on remote server {server}" : "Del med {user} på ekstern server {server}",
- "Share with remote group" : "Del med fjerngruppe",
- "Share with guest" : "Del med gjest",
- "Update share" : "Oppdater delt ressurs",
- "Save share" : "Lagre delt ressurs",
"Others with access" : "Andre med tilgang",
"No other accounts with access found" : "Ingen andre kontoer med tilgang funnet",
"Toggle list of others with access to this directory" : "Endre liste over andre brukere med tilgang til denne mappen",
"Toggle list of others with access to this file" : "Endre liste over andre brukere med tilgang til denne filen",
"Unable to fetch inherited shares" : "Kan ikke hente arvede delinger",
+ "Shares" : "Delinger",
"Unable to load the shares list" : "Kan ikke laste listen over delinger",
"Expires {relativetime}" : "Utløper {relativetime}",
"this share just expired." : "denne delingen utløp akkurat.",
"Shared with you by {owner}" : "Delt med deg av {owner}",
+ "Link to a file" : "Lenke til en fil",
"_Accept share_::_Accept shares_" : ["Aksepter delt ressurs","Aksepter delte ressurser"],
"Open in Files" : "Åpne i Filer",
"_Reject share_::_Reject shares_" : ["Avvis delt ressurs","Avvis delte ressurser"],
"_Restore share_::_Restore shares_" : ["Gjenopprett delt ressurs","Gjenopprett delte ressurser"],
"Shared" : "Delt",
- "Shared multiple times with different people" : "Del flere ganger med forskjellige personer",
"Shared by {ownerDisplayName}" : "Delt av {ownerDisplayName}",
- "Show sharing options" : "Vis alternativer for deling",
- "Link to a file" : "Lenke til en fil",
- "Error creating the share: {errorMessage}" : "Feil ved opprettelse av delingen: {errorMessage}",
- "Error creating the share" : "Feil ved oppretting av deling",
- "Error updating the share: {errorMessage}" : "Feil ved oppdatering av delingen: {errorMessage}",
- "Error updating the share" : "Feil under oppdatering av delingen",
- "File \"{path}\" has been unshared" : "Deling av filen \"{path}\" er opphevd",
- "Folder \"{path}\" has been unshared" : "Deling av mappen \"{path}\" er opphevd",
- "Share {propertyName} saved" : "Deling {propertyName} er lagret",
- "Shared by" : "Delt av",
- "Shared with" : "Delt med",
- "Password created successfully" : "Passord opprettet",
- "Error generating password from password policy" : "Feil under generering av passord fra passordregler",
- "Shared with you and the group {group} by {owner}" : "Delt med deg og gruppen {group} av {owner}",
- "Shared with you and {circle} by {owner}" : "Delt med deg og {circle} av {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Delt med deg og samtalen {conversation} av {owner}",
- "Shared with you in a conversation by {owner}" : "Delt md deg i samtale med {owner}",
- "Shares" : "Delinger",
+ "Shared multiple times with different people" : "Del flere ganger med forskjellige personer",
+ "Shared with others" : "Delt med andre",
+ "Create file request" : "Opprett filforespørsel",
+ "Upload files to {foldername}" : "Last opp filer til {foldername}",
+ "Public file share" : "Offentlig fildeling",
+ "Publicly shared file." : "Offentlig delt fil.",
+ "No file" : "Ingen fil",
+ "The file shared with you will show up here" : "Filen som er delt med deg vil vises her",
+ "Public share" : "Offentlig deling",
+ "Publicly shared files." : "Offentlig delte filer.",
+ "No files" : "Ingen filer",
+ "Files and folders shared with you will show up here" : "Filer og mapper delt med deg vil vises her",
"Overview of shared files." : "Oversikt over delte filer.",
"No shares" : "Ingen delinger",
"Files and folders you shared or have been shared with you will show up here" : "Filer og mapper du har delt eller har blitt delt med deg, vises her",
@@ -255,7 +302,6 @@
"List of files that are shared with you." : "Liste over filer som er delt med deg.",
"Nothing shared with you yet" : "Ingenting er delt med deg enda",
"Files and folders others shared with you will show up here" : "Filer og mapper andre har delt med deg, vises her",
- "Shared with others" : "Delt med andre",
"List of files that you shared with others." : "Liste over filer som du delte med andre.",
"Nothing shared yet" : "Ingenting er delt ennå",
"Files and folders you shared will show up here" : "Filer og mapper du delte, vises her",
@@ -263,6 +309,10 @@
"List of files that are shared by link." : "Liste over filer som er delt via kobling.",
"No shared links" : "Ingen delte lenker",
"Files and folders you shared by link will show up here" : "Filer og mapper du har delt via kobling, vises her",
+ "File requests" : "Filforespørsler",
+ "List of file requests." : "Liste over filforespørsler.",
+ "No file requests" : "Ingen filforespørsler",
+ "File requests you have created will show up here" : "Filforespørsler du har opprettet vil vises her",
"Deleted shares" : "Slettede delinger",
"List of shares you left." : "Liste over delte ressurser du forlot.",
"No deleted shares" : "Ingen slettede delinger",
@@ -271,49 +321,61 @@
"List of unapproved shares." : "Liste over ikke godkjente delte ressurser.",
"No pending shares" : "Ingen ventende delinger",
"Shares you have received but not approved will show up here" : "Delte ressurser du har mottatt, men ikke godkjent, vises her",
+ "Error updating the share: {errorMessage}" : "Feil ved oppdatering av delingen: {errorMessage}",
+ "Error updating the share" : "Feil under oppdatering av delingen",
+ "File \"{path}\" has been unshared" : "Deling av filen \"{path}\" er opphevd",
+ "Folder \"{path}\" has been unshared" : "Deling av mappen \"{path}\" er opphevd",
+ "Upload files to {folder}" : "Last opp filer til {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} delte en mappe med deg.",
+ "Shared by" : "Delt av",
+ "Shared with" : "Delt med",
+ "Password created successfully" : "Passord opprettet",
+ "Error generating password from password policy" : "Feil under generering av passord fra passordregler",
+ "Shared with you and the group {group} by {owner}" : "Delt med deg og gruppen {group} av {owner}",
+ "Shared with you and {circle} by {owner}" : "Delt med deg og {circle} av {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Delt med deg og samtalen {conversation} av {owner}",
+ "Shared with you in a conversation by {owner}" : "Delt md deg i samtale med {owner}",
+ "Share not found" : "Deling ikke funnet",
+ "Back to %s" : "Tilbake til %s",
+ "Add to your Nextcloud" : "Legg til i din Nextcloud",
+ "Waiting…" : "Venter...",
+ "error" : "feil",
+ "finished" : "fullført",
+ "This will stop your current uploads." : "Dette fille stoppe dine nåværende opplastinger.",
+ "Move or copy" : "Flytt eller kopier",
+ "You can upload into this folder" : "Du kan laste opp til denne mappen",
+ "Show list view" : "Vis listevisning",
+ "Show grid view" : "Vis rutenett-visning",
+ "No compatible server found at {remote}" : "Ingen kompatibel server ble funnet på {remote}",
+ "Invalid server URL" : "Ugyldig server adresse",
+ "Failed to add the public link to your Nextcloud" : "Feil oppsto under oppretting av offentlig lenke til din Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "Du har ikke lov til å redigere delte lenker du ikke eier",
+ "Download all files" : "Last ned alle filer",
+ "Link copied to clipboard" : "Lenke kopiert til utklippstavlen",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-postadresse allerede lagt til","{count} e-postadresser allerede lagt til"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 e-postadresse lagt til","{count} e-postadresser lagt til"],
+ "Copy to clipboard" : "Kopiert til utklippstavlen",
+ "Copy internal link to clipboard" : "Kopier intern lenke til utklippstavlen",
+ "Only works for people with access to this folder" : "Fungerer kun for personer med tilgang til denne mappen",
+ "Only works for people with access to this file" : "Fungerer kun for personer med tilgang til denne filen",
+ "Copy public link of \"{title}\" to clipboard" : "Kopier den offentlige lenken til \"{title}\" til utklippstavlen",
+ "Search globally" : "Søk globalt",
+ "Search for share recipients" : "Søk etter delingsmottakere",
+ "No recommendations. Start typing." : "Ingen forslag. Start skriving.",
+ "To upload files, you need to provide your name first." : "For å laste opp filer må du først oppgi navnet ditt.",
+ "Enter your name" : "Skriv inn navnet ditt",
+ "Submit name" : "Send inn navn",
+ "Share with {userName}" : "Del med {userName}",
+ "Show sharing options" : "Vis alternativer for deling",
"Share note" : "Delingsnotat",
"Upload files to %s" : "Last opp filer til %s",
+ "%s shared a folder with you." : "%s delte en mappe med deg.",
"Note" : "Melding",
"Select or drop files" : "Velg eller slipp filer",
"Uploading files" : "Laster opp filer",
"Uploaded files:" : "Opplastede filer:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Ved å laste opp filer godtar du %1$stjenestevilkårene%2$s.",
- "Add to your Nextcloud" : "Legg til i din Nextcloud",
- "Files and folders others share with you will show up here" : "Filer og mapper som andre deler med deg vil bli vist her",
- "Files and folders you share will show up here" : "Filer og mapper som du deler vil bli vist her",
- "Files and folders you share by link will show up here" : "Filer og mapper som du deler med lenke vil bli vist her",
- "Shares you deleted will show up here" : "Delinger du har slettet vil vises her",
- "Shares you have received but not confirmed will show up here" : "Delinger du har mottatt men ikke bekreftet vil vises her",
- "Shares will show up here" : "Delinger vil vises her",
- "Restore" : "Gjenopprett",
- "Something happened. Unable to restore the share." : "Noe skjedde. Ikke mulig å gjenopprette delingen.",
- "Something happened. Unable to accept the share." : "Noe skjedde. Ikke mulig å motta delingen.",
- "Something happened. Unable to reject the share." : "Noe skjedde. Ikke mulig å avvise delingen.",
- "No expiration date set" : "Ingen utløpsdato er satt",
- "Please specify a valid user" : "Oppgi en gyldig bruker",
- "Please specify a valid federated user ID" : "Angi en gyldig sammenknyttet brukersky-ID",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Denne applikasjonen lar brukere dele filer i Nextcloud. Hvis aktivert, kan administrator velge hvilke grupper som kan dele filer. De aktuelle brukerne kan deretter dele filer og mapper med andre brukere og grupper i Nextcloud. I tillegg, hvis administrator aktiverer delingslenke-funksjonen, kan en ekstern lenke brukes til å dele filer med andre brukere utenfor Nextcloud. Administratorer kan også håndheve passord, utløpsdatoer og aktivere server-til-server-deling via delingslenker, samt deling fra mobile enheter.\nHvis du slår av funksjonen, fjernes delte filer og mapper på serveren for alle delingsmottakere, og også på synkroniseringsklienter og mobilapper. Mer informasjon er tilgjengelig i Nextcloud-dokumentasjonen.",
- "Accept user and group shares by default" : "Godta bruker- og gruppedelinger som standard",
- "Read only" : "Skrivebeskyttet",
- "File drop (upload only)" : "Filkasse (kun opplasting)",
- "Upload" : "Last opp",
- "Bundled permissions" : "Medfølgende tillatelser",
- "Only works for users with access to this folder" : "Virker kun for brukere med tilgang til mappen",
- "Only works for users with access to this file" : "Virker kun for brukere med tilgang til denne filen",
- "Circle" : "Sirkel",
- "Update" : "Oppdater",
- "Share with " : "Del med",
- "No other users with access found" : "Ingen andre brukere med tilgang funnet",
- "No entries found in this folder" : "Ingen oppføringer funnet i denne mappen",
"Name" : "Navn",
- "Share time" : "Delingstidspunkt",
- "Sorry, this link does not seem to work anymore." : "Beklager, denne linken ser ikke ut til å fungere lenger.",
- "Reasons might be:" : "Mulige årsaker:",
- "the item was removed" : "elementet er fjernet",
- "the link expired" : "lenken er utløpt",
- "sharing is disabled" : "deling er avskrudd",
- "For more info, please ask the person who sent this link." : "For mer informasjon, spør personen som sendte lenken.",
- "Share with remote" : "Del med ekstern",
- "Share with" : "Del med"
+ "Filename must not be empty." : "Filnavn kan ikke være tomt."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/nl.js b/apps/files_sharing/l10n/nl.js
index 0e01c010f25..b65514dae47 100644
--- a/apps/files_sharing/l10n/nl.js
+++ b/apps/files_sharing/l10n/nl.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Wachten ...",
- "error" : "fout",
- "finished" : "klaar",
- "This will stop your current uploads." : "Dit beëindigt onderhanden uploads",
- "Move or copy" : "Verplaatsen of kopiëren",
- "Download" : "Downloaden",
- "Delete" : "Verwijderen",
- "You can upload into this folder" : "Je kunt uploaden naar deze map",
- "Terms of service" : "Gebruiksvoorwaarden",
- "Show list view" : "Toon lijstweergave",
- "Show grid view" : "Toon roosterweergave",
- "No compatible server found at {remote}" : "Geen geschikte server gevonden op {remote}",
- "Invalid server URL" : "Ongeldig server URL",
- "Failed to add the public link to your Nextcloud" : "Kon de openbare link niet aan je Nextcloud toevoegen",
"File shares" : "File shares",
"Downloaded via public link" : "Gedownload via een openbare link",
"Downloaded by {email}" : "Gedownload via {email}",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "Share voor bestande {file} met {user} verlopen",
"Share for file {file} expired" : "Share voor bestand {file} verlopen",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Een bestand of map gedeeld via mail of publieke link werd <strong>gedownload</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Bestanden zijn <strong>geüpload</strong> naar een map die per mail of via een openbare link wordt gedeeld",
"A file or folder was shared from <strong>another server</strong>" : "Een bestand of map werd gedeeld vanaf <strong>een andere server</strong>",
- "Files" : "Bestanden",
+ "Sharing" : "Delen",
"A file or folder has been <strong>shared</strong>" : "Een bestand of map is <strong>gedeeld</strong>",
"Shared link" : "Gedeeld link",
"Wrong share ID, share does not exist" : "Onjuist deel-ID, de gedeelde folder bestaat niet",
@@ -78,29 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "Geef een bestand of pad van een map op",
"Wrong path, file/folder does not exist" : "slecht path, file/folder bestaat niet",
"Could not create share" : "Kan gedeelde folder niet aanmaken",
- "Invalid permissions" : "Ongeldige machtigingen",
- "Invalid date, date format must be YYYY-MM-DD" : "Ongeldige datum, datumnotatie moet in de vorm YYYY-MM-DD",
+ "Please specify a valid account to share with" : "Geef een geldig account op waarmee je wilt delen",
"Group sharing is disabled by the administrator" : "Delen voor groepen is uitgeschakeld door de beheerder",
"Please specify a valid group" : "Geef een geldige groep op",
"Public link sharing is disabled by the administrator" : "Delen van openbare links is uitgeschakeld door de beheerder",
- "Public upload disabled by the administrator" : "Publieke upload uitgeschakeld door de systeembeheerder",
- "Public upload is only possible for publicly shared folders" : "Publieke upload is alleen mogelijk voor publiek gedeelde mappen",
+ "Please specify a valid email address" : "Geef een geldig e-mailadres op",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Delen %s versturen van het wachtwoord via Nextcloud Talk is mislukt omdat Nextcloud Talk niet is ingeschakeld",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Delen van %1$s mislukte omdat de backend het delen van type %2$s niet ondersteunt",
- "Please specify a valid federated group ID" : "Geef een geldig gefedereerd groepID op",
- "You cannot share to a Circle if the app is not enabled" : "Je kunt niets met een Kring delen als de app niet is ingeschakeld.",
- "Please specify a valid circle" : "Geef een geldige kring op",
+ "Please specify a valid federated account ID" : "Geef een geldig federatief account-ID op",
+ "Please specify a valid federated group ID" : "Geef een geldig gefedereerd groep-ID op",
+ "You cannot share to a Team if the app is not enabled" : "Je kunt niet delen met een Team als de app niet is ingeschakeld",
+ "Please specify a valid team" : "Geef een geldig team op",
"Sharing %s failed because the back end does not support room shares" : "Delen van %s mislukte omdat de backend het delen in ruimtes niet ondersteunt",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Delen %s is mislukt omdat het back-end geen ScienceMesh-shares ondersteunt",
"Unknown share type" : "Onbekend type gedeelde folder",
"Not a directory" : "Geen directory",
"Could not lock node" : "Kon de node niet blokkeren",
+ "Public upload is only possible for publicly shared folders" : "Publieke upload is alleen mogelijk voor publiek gedeelde mappen",
+ "Share must at least have READ or CREATE permissions" : "Share moet ten minste READ - of CREATE-rechten hebben",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "Share moet READ-toestemming hebben als de UPDATE- of DELETE-toestemming is ingesteld",
+ "Public upload disabled by the administrator" : "Publieke upload uitgeschakeld door de systeembeheerder",
"Could not lock path" : "Kan pad niet blokkeren",
+ "no sharing rights on this item" : "geen deelrechten op dit item",
+ "You are not allowed to edit incoming shares" : "Je mag geen inkomende shares bewerken",
"Wrong or no update parameter given" : "Verkeerde of geen update parameter opgegeven",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Het wachtwoord verzenden via Nextcloud Talk\" voor het delen van een bestand of map is mislukt omdat Nextcloud Talk niet is ingeschakeld.",
+ "Custom share link tokens have been disabled by the administrator" : "Aangepaste share link tokens zijn uitgeschakeld door de beheerder",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tokens moeten minimaal 1 teken bevatten en mogen alleen letters, cijfers of een koppelteken bevatten",
+ "Invalid date. Format must be YYYY-MM-DD" : "Ongeldige datum. Formaat moet zijn YYYY-MM-DD",
+ "No sharing rights on this item" : "Geen deelrechten op dit item",
+ "Invalid share attributes provided: \"%s\"" : "Ongeldige deelattributen verstrekt: \"%s\"",
+ "You are not allowed to send mail notifications" : "Je mag geen mailmeldingen versturen",
+ "No mail notification configured for this share type" : "Geen mailmelding geconfigureerd voor dit type share",
+ "Wrong password" : "Onjuist wachtwoord",
+ "Error while sending mail notification" : "Fout tijdens het verzenden van e-mailmelding",
+ "Failed to generate a unique token" : "Het genereren van een uniek token is mislukt",
+ "This share does not exist or is no longer available" : "Deze share bestaat niet of is niet meer beschikbaar",
"shared by %s" : "Gedeeld door %s",
- "Download all files" : "Download alle bestanden",
- "Direct link" : "Directe link",
+ "Download" : "Downloaden",
"Add to your %s" : "Toevoegen aan je %s",
+ "Direct link" : "Directe link",
"Share API is disabled" : "Delen API is uitgeschakeld",
"File sharing" : "Bestand delen",
"Share will expire tomorrow" : "De share vervalt morgen",
@@ -109,154 +113,329 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Je ontving {share} aan groep {group} als een share van {user}",
"Accept" : "Accepteren",
"Decline" : "Afwijzen",
- "Sharing" : "Delen",
+ "Remember to upload the files to %s" : "Vergeet niet om de bestanden te uploaden naar %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "We willen je er vriendelijk op wijzen dat je nog geen bestanden hebt geüpload naar de gedeelde map.",
+ "Open \"%s\"" : "Open \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Met deze applicatie kunnen mensen bestanden delen binnen Nextcloud. Indien ingeschakeld kan de beheerder kiezen welke groepen bestanden kunnen delen. Deze mensen kunnen vervolgens bestanden en mappen delen met andere accounts en groepen binnen Nextcloud. Als de beheerder de share-linkfunctie inschakelt, kan bovendien een externe link worden gebruikt om bestanden te delen met andere mensen buiten Nextcloud. Beheerders kunnen ook wachtwoorden en vervaldata afdwingen en het delen tussen servers mogelijk maken via share-links, evenals delen vanaf mobiele apparaten.\nAls je de functie uitschakelt, worden gedeelde bestanden en mappen op de server verwijderd voor alle ontvangers van shares, en ook voor de synchronisatieclients en mobiele apps. Meer informatie is beschikbaar in de Nextcloud Documentatie.",
+ "People" : "Mensen",
+ "Filter accounts" : "Accounts filteren",
+ "The request will expire on {date} at midnight and will be password protected." : "De aanvraag verloopt op {date} om middernacht en zal beveiligd zijn met een wachtwoord.",
+ "The request will expire on {date} at midnight." : "De aanvraag verloopt op {date} om middernacht.",
+ "The request will be password protected." : "De aanvraag is wachtwoordbeveiligd",
+ "When should the request expire?" : "Wanneer moet de aanvraag verlopen?",
+ "Set a submission expiration date" : "Stel een opgave vervaldatum in",
+ "Expiration date" : "Vervaldatum",
+ "Select a date" : "Selecteer een datum",
+ "Your administrator has enforced a {count} days expiration policy." : "Je beheerder heeft een vervalbeleid van {count} dagen ingesteld.",
+ "What password should be used for the request?" : "Welk wachtwoord moet gebruikt worden voor de aanvraag?",
+ "Set a password" : "Instellen wachtwoord",
+ "Password" : "Wachtwoord",
+ "Enter a valid password" : "Voer een geldig wachtwoord in",
+ "Generate a new password" : "Genereer een nieuw wachtwoord",
+ "Your administrator has enforced a password protection." : "Je beheerder heeft wachtwoordbeveiliging verplicht gesteld.",
+ "Automatically copying failed, please copy the share link manually" : "Automatisch kopiëren mislukt. Kopieer de link handmatig a.u.b.",
+ "Link copied" : "Link gekopieerd",
+ "Email already added" : "E-mail al toegevoegd",
+ "Invalid email address" : "Ongeldig e-mailadres",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Het volgende e-mailadres is niet geldig: {emails}","De volgende e-mailadressen zijn niet geldig: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["Al {count} e-mailadres toegevoegd","Al {count} e-mailadressen toegevoegd"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} E-mailadres toegevoegd","{count} E-mailadressen toegevoegd"],
+ "You can now share the link below to allow people to upload files to your directory." : "Je kan nu onderstaande link delen om anderen toe te staan bestanden naar je map te uploaden.",
+ "Share link" : "Delen link",
+ "Copy" : "Kopiëren",
+ "Send link via email" : "Versturen link via e-mail",
+ "Enter an email address or paste a list" : "Voer e-mailadres in of plak een lijst",
+ "Remove email" : "Verwijder e-mail",
+ "Select a destination" : "Selecteer een bestemming",
+ "Select" : "Selecteer",
+ "What are you requesting?" : "Wat is je aanvraag?",
+ "Request subject" : "Onderwerp aanvraag",
+ "Birthday party photos, History assignment…" : "Verjaardagsfoto's, Geschiedenis…",
+ "Where should these files go?" : "Waar moeten deze bestanden naartoe?",
+ "Upload destination" : "Uploadbestemming",
+ "Revert to default" : "Val terug op standaard",
+ "The uploaded files are visible only to you unless you choose to share them." : "De geüploade bestanden zijn alleen voor jou zichtbaar, tenzij je ervoor kiest ze te delen.",
+ "Add a note" : "Voeg een notitie toe",
+ "Note for recipient" : "Notitie voor ontvanger",
+ "Add a note to help people understand what you are requesting." : "Voeg een notitie toe zodat anderen begrijpen wat je aanvraag behelst",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Je kan links, datums of andere informatie toevoegen, die de ontvanger helpt te begrijpen wat je aanvraag behelst.",
+ "Close" : "Sluit",
+ "_Send email and close_::_Send {count} emails and close_" : ["Stuur e-mail en sluit","Verstuur {count} e-mails and sluit"],
+ "Please select a folder, you cannot share the root directory." : "Selecteer een map, je kan de basismap niet delen.",
+ "File request created" : "Bestandsaanvraag gemaakt",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Bestandsaanvraag gemaakt en e-mail verstuurd","Bestandsaanvraag gemaakt en {count} e-mails verstuurd."],
+ "Error creating the share: {errorMessage}" : "Fout bij aanmaken share: {errorMessage}",
+ "Error creating the share" : "Fout tijdens aanmaken share",
+ "Error sending emails: {errorMessage}" : "Fout bij versturen e-mails: {errorMessage}",
+ "Error sending emails" : "Fout bij het verzenden van e-mails",
+ "Create a file request" : "Maak een bestandsaanvraag",
+ "Collect files from others even if they do not have an account." : "Verzamel bestanden van anderen, ook al hebben ze geen account.",
+ "To ensure you can receive files, verify you have enough storage available." : "Om zeker te zijn dat je bestanden kan ontvangen, controleer of je genoeg opslagruimte beschikbaar hebt.",
+ "File request" : "Bestandsaanvraag",
+ "Previous step" : "Vorige stap",
+ "Cancel" : "Annuleren",
+ "Cancel the file request creation" : "Annuleer het maken van de bestandsaanvraag",
+ "Close without sending emails" : "Sluit zonder versturen van e-mails",
+ "Continue" : "Doorgaan",
"Error while toggling options" : "Fout bij het wisselen van opties",
- "Set default folder for accepted shares" : "Stel standaard map in voor geaccepteerde shares",
- "Reset" : "Herstellen",
- "Reset folder to system default" : "Reset map naar systeem standaard",
+ "Accept shares from other accounts and groups by default" : "Accepteer standaard shares van andere accounts en groepen",
"Choose a default folder for accepted shares" : "Kies een standaard map voor geaccepteerde shares",
"Invalid path selected" : "Ongeldig pad geselecteerd",
"Unknown error" : "Onbekende fout",
+ "Set default folder for accepted shares" : "Stel standaard map in voor geaccepteerde shares",
+ "Reset" : "Herstellen",
+ "Reset folder to system default" : "Reset map naar systeem standaard",
+ "Share expiration: {date}" : "Vervaldatum van de share: {date}",
+ "Share Expiration" : "Vervaldatum van de share",
"group" : "groep",
"conversation" : "gesprek",
"remote" : "extern",
"remote group" : "externe groep",
"guest" : "gast",
+ "by {initiator}" : "door {initiator}",
"Shared with the group {user} by {owner}" : "Gedeeld met groep {user} door {owner}",
"Shared with the conversation {user} by {owner}" : "Gedeeld met gesprek {user} door {owner}",
"Shared with {user} by {owner}" : "Gedeeld met {user} door {owner}",
+ "Open Sharing Details" : "Open Delen details",
"Added by {initiator}" : "Toegevoegd door {initiator}",
"Via “{folder}”" : "Via “{folder}”",
"Unshare" : "Delen stoppen",
- "Internal link" : "Interne link",
"Cannot copy, please copy the link manually" : "Kan niet kopiëren, kopieer de link handmatig",
- "Copy internal link to clipboard" : "Kopieer interne link naar klembord",
- "Link copied" : "Link gekopieerd",
+ "Copy internal link" : "Kopieer interne link",
+ "Internal link" : "Interne link",
+ "{shareWith} by {initiator}" : "{shareWith} door {initiator}",
+ "Shared via link by {initiator}" : "Gedeeld via link door {initiator}",
+ "File request ({label})" : "Bestandsaanvraag ({label})",
+ "Mail share ({label})" : "Mail share ({label})",
+ "Share link ({label})" : "Link delen ({label})",
+ "Mail share" : "Share mailen",
+ "Share link ({index})" : "Deellink ({index})",
+ "Create public link" : "Creëer openbare link",
+ "Actions for \"{title}\"" : "Acties voor \"{title}\"",
+ "Error, please enter proper password and/or expiration date" : "Fout. geef een geldig wachtwoord op en/of een vervaldatum",
+ "Link share created" : "Te delen share gemaakt",
+ "Error while creating the share" : "Fout bij maken share",
"Please enter the following required information before creating the share" : "Geef de volgend verplichte gegevens op voor het aanmaken van de deellink",
"Password protection (enforced)" : "Wachtwoordbeveiliging (afgedwongen)",
"Password protection" : "Wachtwoordbeveiliging",
"Enter a password" : "Voer een wachtwoord in",
- "Expiration date (enforced)" : "Vervaldatum (afgedwongen)",
- "Enter a date" : "Voeg een datum toe",
+ "Enable link expiration (enforced)" : "Activeer link-verval (afgedwongen)",
+ "Enable link expiration" : "Activeer link-verval",
+ "Enter expiration date (enforced)" : "Voer vervaldatum in (afgedwongen)",
+ "Enter expiration date" : "Voer vervaldatum in",
"Create share" : "Creëren share",
- "Cancel" : "Annuleren",
+ "Customize link" : "Bewerk link",
+ "Generate QR code" : "Genereer QR code",
"Add another link" : "Nog een link toevoegen ",
"Create a new share link" : "Creëer een nieuwe deellink",
- "{shareWith} by {initiator}" : "{shareWith} door {initiator}",
- "Shared via link by {initiator}" : "Gedeeld via link door {initiator}",
- "Mail share ({label})" : "Mail share ({label})",
- "Share link ({label})" : "Link delen ({label})",
- "Share link" : "Delen link",
- "Error, please enter proper password and/or expiration date" : "Fout. geef een geldig wachtwoord op en/of een vervaldatum",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Snel delen opties, de huidige geselecteerd is \"{selectedOption}\"",
"View only" : "Alleen bekijken",
"Can edit" : "Kan bewerken",
- "File drop" : "Bestandsopslag",
"Custom permissions" : "Aangepaste machtigingen",
- "No recommendations. Start typing." : "Geen aanbevelingen. Begin te typen.",
- "Resharing is not allowed" : "Verder delen niet toegestaan",
+ "Resharing is not allowed" : "Opnieuw delen niet toegestaan",
"Name or email …" : "Naam of e-mailadres …",
- "Name, email, or Federated Cloud ID …" : "Naam, e-mailadres of gefedereerde Cloud ID …",
+ "Name, email, or Federated Cloud ID …" : "Naam, e-mailadres of gefedereerde Cloud-ID …",
"Searching …" : "Zoeken ...",
"No elements found." : "Geen elementen gevonden.",
- "Search globally" : "Zoek door alles",
+ "Search everywhere" : "Zoek in alles",
"Guest" : "Gast",
"Group" : "Groep",
"Email" : "E-mail",
+ "Team" : "Team",
"Talk conversation" : "Talk gesprek",
"Deck board" : "Deck board",
+ "ScienceMesh" : "ScienceMesh",
"on {server}" : "op {server}",
+ "Enter external recipients" : "Externe ontvangers invoeren",
+ "Search for internal recipients" : "Interne ontvangers zoeken",
+ "Note from" : "Notirtie van",
+ "Note:" : "Notitie:",
+ "File drop" : "Bestandsopslag",
+ "Upload files to {foldername}." : "Upload bestanden naar {foldername}",
+ "By uploading files, you agree to the terms of service." : "Door het uploaden van bestanden stem je in met de gebruiksvoorwaarden.",
+ "Successfully uploaded files" : "Succesvol geüploade bestanden",
+ "View terms of service" : "Toon gebruiksvoorwaarden",
+ "Terms of service" : "Gebruiksvoorwaarden",
+ "Share with email {email}" : "Deel met e-mail {email}",
+ "Share with group" : "Deel met groep",
+ "Share in conversation" : "Deel in gesprek",
+ "Share with {user} on remote server {server}" : "Deel met {user} op server {server}",
+ "Share with remote group" : "Deel met remote groep",
+ "Share with guest" : "Deel met gast",
+ "Update share" : "Update share",
+ "Save share" : "Bewaar share",
+ "Read" : "Lezen",
+ "Create" : "Creëer",
+ "Edit" : "Bewerk",
+ "Share" : "Delen",
+ "Delete" : "Verwijderen",
+ "Password field cannot be empty" : "Wachtwoordveld kan niet leeg zijn",
+ "Replace current password" : "Vervang huidig wachtwoord",
+ "Failed to generate a new token" : "Het genereren van een nieuw token is mislukt",
"Allow upload and editing" : "Uploaden en bewerken toestaan",
"Allow editing" : "Bewerken toestaan",
+ "Upload only" : "Alleen uploaden",
"Advanced settings" : "Geavanceerde instellingen",
"Share label" : "Deel het label",
+ "Share link token" : "Share link token",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Stel het publieke deellink-token in op iets dat gemakkelijk te onthouden is of genereer een nieuw token. Het is niet aanbevolen om een raadbaar token te gebruiken voor shares die gevoelige informatie bevatten.",
+ "Generating…" : "Genereren…",
+ "Generate new token" : "Nieuw token genereren",
"Set password" : "Instellen wachtwoord",
- "Password" : "Wachtwoord",
"Password expires {passwordExpirationTime}" : "Wachtwoord vervalt {passwordExpirationTime}",
"Password expired" : "Wachtwoord is vervallen",
"Video verification" : "Video verificatie",
+ "Expiration date (enforced)" : "Vervaldatum (afgedwongen)",
"Set expiration date" : "Stel vervaldatum in",
- "Expiration date" : "Vervaldatum",
"Hide download" : "Verberg download",
- "Allow download" : "Downloaden toestaan",
+ "Allow download and sync" : "Download en synchroniseren toestaan",
"Note to recipient" : "Notitie voor ontvanger",
"Enter a note for the share recipient" : "Geef een notitie op voor de share-ontvanger",
- "Read" : "Lezen",
- "Create" : "Creëer",
- "Edit" : "Bewerk",
- "Share" : "Delen",
+ "Show files in grid view" : "Bestanden tonen in rasterweergave",
"Delete share" : "Verwijder share",
"Others with access" : "Anderen met toegang",
+ "No other accounts with access found" : "Geen andere accounts met toegang gevonden",
"Toggle list of others with access to this directory" : "Omschakelen lijst van anderen met toegang tot deze directory",
"Toggle list of others with access to this file" : "Omschakelen lijst van anderen met toegang tot dit bestand",
"Unable to fetch inherited shares" : "Kon overerfde shares niet ophalen",
+ "Link shares" : "Deel shares",
+ "Shares" : "Shares",
"Unable to load the shares list" : "Kon de shares-lijst niet laden",
"Expires {relativetime}" : "Vervalt {relativetime}",
"this share just expired." : "deze share is net verlopen.",
"Shared with you by {owner}" : "Met je gedeeld door {owner}",
- "Shared" : "Gedeeld",
+ "Internal shares" : "Interne schijven",
+ "Internal shares explanation" : "Uitleg over interne shares",
+ "External shares" : "Externe shares",
+ "External shares explanation" : "Uitleg over externe shares",
+ "Additional shares" : "Aanvullende shares",
+ "Additional shares explanation" : "Uitleg over aanvullende shares",
"Link to a file" : "Link naar een bestand",
- "Error creating the share: {errorMessage}" : "Fout bij aanmaken share: {errorMessage}",
- "Error creating the share" : "Fout tijdens aanmaken share",
- "Error updating the share: {errorMessage}" : "Fout bij aanpassen van de share: {errorMessage}",
- "Error updating the share" : "Fout tijdens bijwerken share",
- "File \"{path}\" has been unshared" : "Bestand \"{path}\" is niet meer gedeeld",
- "Folder \"{path}\" has been unshared" : "Map \"{path}\" is niet meer gedeeld",
- "Shared by" : "Gedeeld door",
- "Shared with" : "Gedeeld met",
- "Shared with you and the group {group} by {owner}" : "Met jou en de groep {group} gedeeld door {owner}",
- "Shared with you and {circle} by {owner}" : "Gedeeld met jou en {circle} door {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Gedeeld met jou en gesprek {conversation} door {owner}",
- "Shared with you in a conversation by {owner}" : "Met jou in een gesprek gedeeld door {owner}",
- "Shares" : "Shares",
+ "_Accept share_::_Accept shares_" : ["Accepteer share","Accepteer shares"],
+ "Open in Files" : "Open in Bestanden",
+ "_Reject share_::_Reject shares_" : ["Wijs share af","Wijs shares af"],
+ "_Restore share_::_Restore shares_" : ["Herstel share","Herstel shares"],
+ "Shared" : "Gedeeld",
+ "Shared by {ownerDisplayName}" : "Gedeeld door {ownerDisplayName}",
+ "Shared multiple times with different people" : "Meerdere keren gedeeld met verschillende mensen",
+ "Shared with others" : "Gedeeld met anderen",
+ "Create file request" : "Maak bestandsaanvraag",
+ "Upload files to {foldername}" : "Upload bestanden naar {foldername}",
+ "Public file share" : "Openbare bestandsshare",
+ "Publicly shared file." : "Openbaar gedeeld bestand.",
+ "No file" : "Geen bestand",
+ "The file shared with you will show up here" : "Het bestand dat met je gedeeld wordt, wordt hier getoond.",
+ "Public share" : "Openbare deellink",
+ "Publicly shared files." : "Openbaar gedeelde bestanden.",
+ "No files" : "Geen bestanden",
+ "Files and folders shared with you will show up here" : "Bestanden en mappen die met je gedeeld worden, worden hier getoond",
+ "Overview of shared files." : "Overzicht van gedeelde bestanden.",
"No shares" : "Geen shares",
+ "Files and folders you shared or have been shared with you will show up here" : "Bestanden en mappen die je gedeeld hebt of die met je gedeeld zijn, worden hier getoond",
"Shared with you" : "Met je gedeeld",
+ "List of files that are shared with you." : "Lijst van bestanden die met je gedeeeld zijn.",
"Nothing shared with you yet" : "Nog niets met je gedeeld",
- "Shared with others" : "Gedeeld met anderen",
+ "Files and folders others shared with you will show up here" : "Bestanden en mappen die anderen met je delen, worden hier getoond",
+ "List of files that you shared with others." : "Lijst van bestanden die je met anderen gedeeld hebt.",
"Nothing shared yet" : "Nog niets gedeeld",
+ "Files and folders you shared will show up here" : "Bestanden en mappen die je deelt, worden hier getoond",
"Shared by link" : "Gedeeld via een link",
+ "List of files that are shared by link." : "Lijst van bestanden die door een link gedeeld zijn.",
"No shared links" : "Geen gedeelde links",
+ "Files and folders you shared by link will show up here" : "Bestanden en mappen die je via links deelt, worden hier getoond",
+ "File requests" : "Bestandsaanvragen",
+ "List of file requests." : "Lijst met bestandsverzoeken.",
+ "No file requests" : "Geen bestandsverzoeken",
+ "File requests you have created will show up here" : "Bestandsverzoeken die je hebt aangemaakt, worden hier weergegeven",
"Deleted shares" : "Verwijderde shares",
+ "List of shares you left." : "Lijst met shares die je hebt behouden.",
"No deleted shares" : "Geen verwijderde shares",
+ "Shares you have left will show up here" : "Shares die je hebt behoudem, verschijnen hier",
"Pending shares" : "Deellinks in behandeling",
+ "List of unapproved shares." : "Lijst van niet-goedgekeurde shares.",
"No pending shares" : "Geen deellinks in behandeling",
+ "Shares you have received but not approved will show up here" : "Shares die je hebt ontvangen maar niet hebt goedgekeurd, verschijnen hier",
+ "Error deleting the share: {errorMessage}" : "Fout bij verwijderen van de share: {errorMessage}",
+ "Error deleting the share" : "Fout bij verwijderen share",
+ "Error updating the share: {errorMessage}" : "Fout bij aanpassen van de share: {errorMessage}",
+ "Error updating the share" : "Fout tijdens bijwerken share",
+ "File \"{path}\" has been unshared" : "Bestand \"{path}\" is niet meer gedeeld",
+ "Folder \"{path}\" has been unshared" : "Map \"{path}\" is niet meer gedeeld",
+ "Could not update share" : "Kon share niet bijwerken",
+ "Share saved" : "Share opgeslagen",
+ "Share expiry date saved" : "Share vervaldatum opgeslagen",
+ "Share hide-download state saved" : "Share verberg-download status opgeslagen",
+ "Share label saved" : "Share label opgeslagen",
+ "Share note for recipient saved" : "Share notitie voor ontvanger opgeslagen",
+ "Share password saved" : "Share wachtwoord opgeslagen",
+ "Share permissions saved" : "Share machtigingen opgeslagen",
+ "To upload files to {folder}, you need to provide your name first." : "Om bestanden te uploaden naar {folder}, moet je eerst je naam opgeven.",
+ "Upload files to {folder}" : "Upload bestanden naar {folder}",
+ "Please confirm your name to upload files to {folder}" : "Bevestig je naam om bestanden naar {folder} te uploaden",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} deelde een map met je.",
+ "Names must not be empty." : "Namen mogen niet leeg zijn.",
+ "Names must not start with a dot." : "Namen mogen niet met een punt beginnen.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" is niet toegestaan in een naam.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" is een gereserveerde naam en niet toegestaan.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" is geen toegestane naam.",
+ "Names must not end with \"{extension}\"." : "Namen mogen niet eindigen met \"{extension}\".",
+ "Invalid name." : "Ongeldige naam.",
+ "Shared by" : "Gedeeld door",
+ "Shared with" : "Gedeeld met",
+ "Password created successfully" : "Wachtwoord succesvol gemaakt",
+ "Error generating password from password policy" : "Fout bij genereren wachtwoord vanuit wachtwoordbeleid",
+ "Shared with you and the group {group} by {owner}" : "Met jou en de groep {group} gedeeld door {owner}",
+ "Shared with you and {circle} by {owner}" : "Gedeeld met jou en {circle} door {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Gedeeld met jou en gesprek {conversation} door {owner}",
+ "Shared with you in a conversation by {owner}" : "Met jou in een gesprek gedeeld door {owner}",
+ "Share not found" : "Gedeelde map niet gevonden",
+ "Back to %s" : "Terug naar %s",
+ "Add to your Nextcloud" : "Toevoegen aan je Nextcloud",
+ "Waiting…" : "Wachten ...",
+ "error" : "fout",
+ "finished" : "klaar",
+ "This will stop your current uploads." : "Dit beëindigt onderhanden uploads",
+ "Move or copy" : "Verplaatsen of kopiëren",
+ "You can upload into this folder" : "Je kunt uploaden naar deze map",
+ "Show list view" : "Toon lijstweergave",
+ "Show grid view" : "Toon roosterweergave",
+ "No compatible server found at {remote}" : "Geen geschikte server gevonden op {remote}",
+ "Invalid server URL" : "Ongeldig server URL",
+ "Failed to add the public link to your Nextcloud" : "Kon de openbare link niet aan je Nextcloud toevoegen",
+ "You are not allowed to edit link shares that you don't own" : "Je mag geen linkshares bewerken die je niet bezit",
+ "Download all files" : "Download alle bestanden",
+ "Link copied to clipboard" : "Link gekopieerd naar het klembord",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 E-mailadres al toegevoegd","Al {count} e-mailadressen toegevoegd"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 E-mailadres toegevoegd","{count} E-mailadressen toegevoegd"],
+ "Copy to clipboard" : "Kopiëren naar het klembord",
+ "Copy internal link to clipboard" : "Kopieer interne link naar klembord",
+ "Only works for people with access to this folder" : "Werkt alleen voor gebruikers met toegang tot deze map",
+ "Only works for people with access to this file" : "Dit werkt alleen voor gebruikers met toegang tot dit bestand",
+ "Copy public link of \"{title}\" to clipboard" : "Kopiëren openbare link van \"{title}\" naar klembord",
+ "Search globally" : "Zoek door alles",
+ "Search for share recipients" : "Zoek om mee te delen",
+ "No recommendations. Start typing." : "Geen aanbevelingen. Begin te typen.",
+ "To upload files, you need to provide your name first." : "Om bestanden te uploaden moet je eerste je naam opgeven.",
+ "Enter your name" : "Geef je naam op",
+ "Submit name" : "Naam doorgeven",
+ "Share with {userName}" : "Deel met {userName}",
+ "Show sharing options" : "Toon deelopties",
"Share note" : "Notitie delen",
"Upload files to %s" : "Upload bestanden naar %s",
+ "%s shared a folder with you." : "%s heeft een map met je gedeeld",
"Note" : "Notitie",
"Select or drop files" : "Selecteer bestanden of sleep ze naar dit venster",
"Uploading files" : "Uploaden bestanden",
"Uploaded files:" : "Geüploade bestanden",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Door het uploaden van bestanden stem je in met de %1$sgebruiksvoorwaarden%2$s.",
- "Add to your Nextcloud" : "Toevoegen aan je Nextcloud",
- "Files and folders others share with you will show up here" : "Bestanden en mappen die anderen met je delen, worden hier getoond",
- "Files and folders you share will show up here" : "Bestanden en mappen die je deelt, worden hier getoond",
- "Files and folders you share by link will show up here" : "Bestanden en mappen die je via links deelt, worden hier getoond",
- "Shares you deleted will show up here" : "Shares die je verwijderde, worden hier getoond",
- "Shares you have received but not confirmed will show up here" : "Hier staan de ontvangen maar nog niet geaccepteerde deellinks",
- "Shares will show up here" : "Shares worden hier getoond",
- "Restore" : "Herstellen",
- "Something happened. Unable to restore the share." : "Er is iets gebeurd. Kan de share niet herstellen.",
- "Something happened. Unable to accept the share." : "Er is iets gebeurd. Kan de deellink niet accepteren.",
- "Something happened. Unable to reject the share." : "Er is iets gebeurd. Kan de deellink niet weigeren.",
- "No expiration date set" : "Geen vervaldatum ingesteld",
- "Please specify a valid user" : "Geef een geldige gebruiker op",
- "Please specify a valid federated user ID" : "Geef een geldig gefedereerd gebruikersID op",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Met deze applicatie kunnen gebruikers bestanden delen binnen Nextcloud. Indien ingeschakeld, kan de beheerder kiezen welke groepen bestanden kunnen delen. De betreffende gebruikers kunnen vervolgens bestanden en mappen delen met andere gebruikers en groepen binnen Nextcloud. Als de beheerder de functie voor het delen van koppelingen inschakelt, kan ook een externe koppeling worden gebruikt om bestanden te delen met andere gebruikers buiten Nextcloud. Beheerders kunnen ook wachtwoorden en vervaldatums afdwingen en delen van server-naar-server mogelijk maken via koppelingslinks en evenals delen vanaf mobiele apparaten.\nAls je de functie uitschakelt, worden gedeelde bestanden en mappen op de server verwijderd voor alle ontvangers van shares, en ook voor de synchronisatieclients en mobiele apps. Meer informatie is beschikbaar in de Nextcloud-documentatie.",
- "Accept user and group shares by default" : "Accepteer gebruiker- en groepsshares automatisch",
- "Read only" : "Alleen lezen",
- "File drop (upload only)" : "Bestand droppen (alleen uploaden)",
- "Upload" : "Uploaden",
- "Only works for users with access to this folder" : "Dit werkt alleen voor gebruikers met toegang tot deze map",
- "Only works for users with access to this file" : "Dit werkt alleen voor gebruikers met toegang tot dit bestand",
- "Circle" : "Kring",
- "Update" : "Update",
- "No other users with access found" : "Geen andere gebruikers met toegang gevonden",
- "No entries found in this folder" : "Niets gevonden in deze map",
"Name" : "Naam",
- "Share time" : "Deel tijd",
- "Reasons might be:" : "Redenen kunnen zijn:",
- "the item was removed" : "bestand was verwijderd",
- "the link expired" : "de link is verlopen",
- "sharing is disabled" : "delen is uitgeschakeld",
- "For more info, please ask the person who sent this link." : "Voor meer informatie, neem contact op met de persoon die u deze link heeft gestuurd."
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Gebruik deze methode om bestanden te delen met personen of teams binnen je organisatie. Als de ontvanger al toegang heeft tot de share, maar deze niet kan lokaliseren, kun je deze de interne share-link sturen voor gemakkelijke toegang.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Gebruik deze methode om bestanden te delen met personen of organisaties buiten je organisatie. Bestanden en mappen kunnen worden gedeeld via openbare deellinks en e-mailadressen. Je kunt ook delen met andere Nextcloud-accounts die in verschillende instanties worden gehost met behulp van hun federatieve cloud-ID.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Shares die geen deel uitmaken van de interne of externe shares. Dit kunnen shares zijn van apps of andere bronnen.",
+ "Share with accounts, teams, federated cloud id" : "Delen met accounts, teams, federatieve cloud-ID",
+ "Share with accounts and teams" : "Delen met accounts en teams",
+ "Federated cloud ID" : "Federatieve cloud-ID",
+ "Email, federated cloud id" : "E-mail, federatieve cloud-ID",
+ "Filename must not be empty." : "Bestandsnaam mag niet leeg zijn"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/nl.json b/apps/files_sharing/l10n/nl.json
index 36a413f74c9..489f85be98f 100644
--- a/apps/files_sharing/l10n/nl.json
+++ b/apps/files_sharing/l10n/nl.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Wachten ...",
- "error" : "fout",
- "finished" : "klaar",
- "This will stop your current uploads." : "Dit beëindigt onderhanden uploads",
- "Move or copy" : "Verplaatsen of kopiëren",
- "Download" : "Downloaden",
- "Delete" : "Verwijderen",
- "You can upload into this folder" : "Je kunt uploaden naar deze map",
- "Terms of service" : "Gebruiksvoorwaarden",
- "Show list view" : "Toon lijstweergave",
- "Show grid view" : "Toon roosterweergave",
- "No compatible server found at {remote}" : "Geen geschikte server gevonden op {remote}",
- "Invalid server URL" : "Ongeldig server URL",
- "Failed to add the public link to your Nextcloud" : "Kon de openbare link niet aan je Nextcloud toevoegen",
"File shares" : "File shares",
"Downloaded via public link" : "Gedownload via een openbare link",
"Downloaded by {email}" : "Gedownload via {email}",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "Share voor bestande {file} met {user} verlopen",
"Share for file {file} expired" : "Share voor bestand {file} verlopen",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Een bestand of map gedeeld via mail of publieke link werd <strong>gedownload</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Bestanden zijn <strong>geüpload</strong> naar een map die per mail of via een openbare link wordt gedeeld",
"A file or folder was shared from <strong>another server</strong>" : "Een bestand of map werd gedeeld vanaf <strong>een andere server</strong>",
- "Files" : "Bestanden",
+ "Sharing" : "Delen",
"A file or folder has been <strong>shared</strong>" : "Een bestand of map is <strong>gedeeld</strong>",
"Shared link" : "Gedeeld link",
"Wrong share ID, share does not exist" : "Onjuist deel-ID, de gedeelde folder bestaat niet",
@@ -76,29 +63,46 @@
"Please specify a file or folder path" : "Geef een bestand of pad van een map op",
"Wrong path, file/folder does not exist" : "slecht path, file/folder bestaat niet",
"Could not create share" : "Kan gedeelde folder niet aanmaken",
- "Invalid permissions" : "Ongeldige machtigingen",
- "Invalid date, date format must be YYYY-MM-DD" : "Ongeldige datum, datumnotatie moet in de vorm YYYY-MM-DD",
+ "Please specify a valid account to share with" : "Geef een geldig account op waarmee je wilt delen",
"Group sharing is disabled by the administrator" : "Delen voor groepen is uitgeschakeld door de beheerder",
"Please specify a valid group" : "Geef een geldige groep op",
"Public link sharing is disabled by the administrator" : "Delen van openbare links is uitgeschakeld door de beheerder",
- "Public upload disabled by the administrator" : "Publieke upload uitgeschakeld door de systeembeheerder",
- "Public upload is only possible for publicly shared folders" : "Publieke upload is alleen mogelijk voor publiek gedeelde mappen",
+ "Please specify a valid email address" : "Geef een geldig e-mailadres op",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Delen %s versturen van het wachtwoord via Nextcloud Talk is mislukt omdat Nextcloud Talk niet is ingeschakeld",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Delen van %1$s mislukte omdat de backend het delen van type %2$s niet ondersteunt",
- "Please specify a valid federated group ID" : "Geef een geldig gefedereerd groepID op",
- "You cannot share to a Circle if the app is not enabled" : "Je kunt niets met een Kring delen als de app niet is ingeschakeld.",
- "Please specify a valid circle" : "Geef een geldige kring op",
+ "Please specify a valid federated account ID" : "Geef een geldig federatief account-ID op",
+ "Please specify a valid federated group ID" : "Geef een geldig gefedereerd groep-ID op",
+ "You cannot share to a Team if the app is not enabled" : "Je kunt niet delen met een Team als de app niet is ingeschakeld",
+ "Please specify a valid team" : "Geef een geldig team op",
"Sharing %s failed because the back end does not support room shares" : "Delen van %s mislukte omdat de backend het delen in ruimtes niet ondersteunt",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Delen %s is mislukt omdat het back-end geen ScienceMesh-shares ondersteunt",
"Unknown share type" : "Onbekend type gedeelde folder",
"Not a directory" : "Geen directory",
"Could not lock node" : "Kon de node niet blokkeren",
+ "Public upload is only possible for publicly shared folders" : "Publieke upload is alleen mogelijk voor publiek gedeelde mappen",
+ "Share must at least have READ or CREATE permissions" : "Share moet ten minste READ - of CREATE-rechten hebben",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "Share moet READ-toestemming hebben als de UPDATE- of DELETE-toestemming is ingesteld",
+ "Public upload disabled by the administrator" : "Publieke upload uitgeschakeld door de systeembeheerder",
"Could not lock path" : "Kan pad niet blokkeren",
+ "no sharing rights on this item" : "geen deelrechten op dit item",
+ "You are not allowed to edit incoming shares" : "Je mag geen inkomende shares bewerken",
"Wrong or no update parameter given" : "Verkeerde of geen update parameter opgegeven",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Het wachtwoord verzenden via Nextcloud Talk\" voor het delen van een bestand of map is mislukt omdat Nextcloud Talk niet is ingeschakeld.",
+ "Custom share link tokens have been disabled by the administrator" : "Aangepaste share link tokens zijn uitgeschakeld door de beheerder",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tokens moeten minimaal 1 teken bevatten en mogen alleen letters, cijfers of een koppelteken bevatten",
+ "Invalid date. Format must be YYYY-MM-DD" : "Ongeldige datum. Formaat moet zijn YYYY-MM-DD",
+ "No sharing rights on this item" : "Geen deelrechten op dit item",
+ "Invalid share attributes provided: \"%s\"" : "Ongeldige deelattributen verstrekt: \"%s\"",
+ "You are not allowed to send mail notifications" : "Je mag geen mailmeldingen versturen",
+ "No mail notification configured for this share type" : "Geen mailmelding geconfigureerd voor dit type share",
+ "Wrong password" : "Onjuist wachtwoord",
+ "Error while sending mail notification" : "Fout tijdens het verzenden van e-mailmelding",
+ "Failed to generate a unique token" : "Het genereren van een uniek token is mislukt",
+ "This share does not exist or is no longer available" : "Deze share bestaat niet of is niet meer beschikbaar",
"shared by %s" : "Gedeeld door %s",
- "Download all files" : "Download alle bestanden",
- "Direct link" : "Directe link",
+ "Download" : "Downloaden",
"Add to your %s" : "Toevoegen aan je %s",
+ "Direct link" : "Directe link",
"Share API is disabled" : "Delen API is uitgeschakeld",
"File sharing" : "Bestand delen",
"Share will expire tomorrow" : "De share vervalt morgen",
@@ -107,154 +111,329 @@
"You received {share} to group {group} as a share by {user}" : "Je ontving {share} aan groep {group} als een share van {user}",
"Accept" : "Accepteren",
"Decline" : "Afwijzen",
- "Sharing" : "Delen",
+ "Remember to upload the files to %s" : "Vergeet niet om de bestanden te uploaden naar %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "We willen je er vriendelijk op wijzen dat je nog geen bestanden hebt geüpload naar de gedeelde map.",
+ "Open \"%s\"" : "Open \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Met deze applicatie kunnen mensen bestanden delen binnen Nextcloud. Indien ingeschakeld kan de beheerder kiezen welke groepen bestanden kunnen delen. Deze mensen kunnen vervolgens bestanden en mappen delen met andere accounts en groepen binnen Nextcloud. Als de beheerder de share-linkfunctie inschakelt, kan bovendien een externe link worden gebruikt om bestanden te delen met andere mensen buiten Nextcloud. Beheerders kunnen ook wachtwoorden en vervaldata afdwingen en het delen tussen servers mogelijk maken via share-links, evenals delen vanaf mobiele apparaten.\nAls je de functie uitschakelt, worden gedeelde bestanden en mappen op de server verwijderd voor alle ontvangers van shares, en ook voor de synchronisatieclients en mobiele apps. Meer informatie is beschikbaar in de Nextcloud Documentatie.",
+ "People" : "Mensen",
+ "Filter accounts" : "Accounts filteren",
+ "The request will expire on {date} at midnight and will be password protected." : "De aanvraag verloopt op {date} om middernacht en zal beveiligd zijn met een wachtwoord.",
+ "The request will expire on {date} at midnight." : "De aanvraag verloopt op {date} om middernacht.",
+ "The request will be password protected." : "De aanvraag is wachtwoordbeveiligd",
+ "When should the request expire?" : "Wanneer moet de aanvraag verlopen?",
+ "Set a submission expiration date" : "Stel een opgave vervaldatum in",
+ "Expiration date" : "Vervaldatum",
+ "Select a date" : "Selecteer een datum",
+ "Your administrator has enforced a {count} days expiration policy." : "Je beheerder heeft een vervalbeleid van {count} dagen ingesteld.",
+ "What password should be used for the request?" : "Welk wachtwoord moet gebruikt worden voor de aanvraag?",
+ "Set a password" : "Instellen wachtwoord",
+ "Password" : "Wachtwoord",
+ "Enter a valid password" : "Voer een geldig wachtwoord in",
+ "Generate a new password" : "Genereer een nieuw wachtwoord",
+ "Your administrator has enforced a password protection." : "Je beheerder heeft wachtwoordbeveiliging verplicht gesteld.",
+ "Automatically copying failed, please copy the share link manually" : "Automatisch kopiëren mislukt. Kopieer de link handmatig a.u.b.",
+ "Link copied" : "Link gekopieerd",
+ "Email already added" : "E-mail al toegevoegd",
+ "Invalid email address" : "Ongeldig e-mailadres",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Het volgende e-mailadres is niet geldig: {emails}","De volgende e-mailadressen zijn niet geldig: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["Al {count} e-mailadres toegevoegd","Al {count} e-mailadressen toegevoegd"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} E-mailadres toegevoegd","{count} E-mailadressen toegevoegd"],
+ "You can now share the link below to allow people to upload files to your directory." : "Je kan nu onderstaande link delen om anderen toe te staan bestanden naar je map te uploaden.",
+ "Share link" : "Delen link",
+ "Copy" : "Kopiëren",
+ "Send link via email" : "Versturen link via e-mail",
+ "Enter an email address or paste a list" : "Voer e-mailadres in of plak een lijst",
+ "Remove email" : "Verwijder e-mail",
+ "Select a destination" : "Selecteer een bestemming",
+ "Select" : "Selecteer",
+ "What are you requesting?" : "Wat is je aanvraag?",
+ "Request subject" : "Onderwerp aanvraag",
+ "Birthday party photos, History assignment…" : "Verjaardagsfoto's, Geschiedenis…",
+ "Where should these files go?" : "Waar moeten deze bestanden naartoe?",
+ "Upload destination" : "Uploadbestemming",
+ "Revert to default" : "Val terug op standaard",
+ "The uploaded files are visible only to you unless you choose to share them." : "De geüploade bestanden zijn alleen voor jou zichtbaar, tenzij je ervoor kiest ze te delen.",
+ "Add a note" : "Voeg een notitie toe",
+ "Note for recipient" : "Notitie voor ontvanger",
+ "Add a note to help people understand what you are requesting." : "Voeg een notitie toe zodat anderen begrijpen wat je aanvraag behelst",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Je kan links, datums of andere informatie toevoegen, die de ontvanger helpt te begrijpen wat je aanvraag behelst.",
+ "Close" : "Sluit",
+ "_Send email and close_::_Send {count} emails and close_" : ["Stuur e-mail en sluit","Verstuur {count} e-mails and sluit"],
+ "Please select a folder, you cannot share the root directory." : "Selecteer een map, je kan de basismap niet delen.",
+ "File request created" : "Bestandsaanvraag gemaakt",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Bestandsaanvraag gemaakt en e-mail verstuurd","Bestandsaanvraag gemaakt en {count} e-mails verstuurd."],
+ "Error creating the share: {errorMessage}" : "Fout bij aanmaken share: {errorMessage}",
+ "Error creating the share" : "Fout tijdens aanmaken share",
+ "Error sending emails: {errorMessage}" : "Fout bij versturen e-mails: {errorMessage}",
+ "Error sending emails" : "Fout bij het verzenden van e-mails",
+ "Create a file request" : "Maak een bestandsaanvraag",
+ "Collect files from others even if they do not have an account." : "Verzamel bestanden van anderen, ook al hebben ze geen account.",
+ "To ensure you can receive files, verify you have enough storage available." : "Om zeker te zijn dat je bestanden kan ontvangen, controleer of je genoeg opslagruimte beschikbaar hebt.",
+ "File request" : "Bestandsaanvraag",
+ "Previous step" : "Vorige stap",
+ "Cancel" : "Annuleren",
+ "Cancel the file request creation" : "Annuleer het maken van de bestandsaanvraag",
+ "Close without sending emails" : "Sluit zonder versturen van e-mails",
+ "Continue" : "Doorgaan",
"Error while toggling options" : "Fout bij het wisselen van opties",
- "Set default folder for accepted shares" : "Stel standaard map in voor geaccepteerde shares",
- "Reset" : "Herstellen",
- "Reset folder to system default" : "Reset map naar systeem standaard",
+ "Accept shares from other accounts and groups by default" : "Accepteer standaard shares van andere accounts en groepen",
"Choose a default folder for accepted shares" : "Kies een standaard map voor geaccepteerde shares",
"Invalid path selected" : "Ongeldig pad geselecteerd",
"Unknown error" : "Onbekende fout",
+ "Set default folder for accepted shares" : "Stel standaard map in voor geaccepteerde shares",
+ "Reset" : "Herstellen",
+ "Reset folder to system default" : "Reset map naar systeem standaard",
+ "Share expiration: {date}" : "Vervaldatum van de share: {date}",
+ "Share Expiration" : "Vervaldatum van de share",
"group" : "groep",
"conversation" : "gesprek",
"remote" : "extern",
"remote group" : "externe groep",
"guest" : "gast",
+ "by {initiator}" : "door {initiator}",
"Shared with the group {user} by {owner}" : "Gedeeld met groep {user} door {owner}",
"Shared with the conversation {user} by {owner}" : "Gedeeld met gesprek {user} door {owner}",
"Shared with {user} by {owner}" : "Gedeeld met {user} door {owner}",
+ "Open Sharing Details" : "Open Delen details",
"Added by {initiator}" : "Toegevoegd door {initiator}",
"Via “{folder}”" : "Via “{folder}”",
"Unshare" : "Delen stoppen",
- "Internal link" : "Interne link",
"Cannot copy, please copy the link manually" : "Kan niet kopiëren, kopieer de link handmatig",
- "Copy internal link to clipboard" : "Kopieer interne link naar klembord",
- "Link copied" : "Link gekopieerd",
+ "Copy internal link" : "Kopieer interne link",
+ "Internal link" : "Interne link",
+ "{shareWith} by {initiator}" : "{shareWith} door {initiator}",
+ "Shared via link by {initiator}" : "Gedeeld via link door {initiator}",
+ "File request ({label})" : "Bestandsaanvraag ({label})",
+ "Mail share ({label})" : "Mail share ({label})",
+ "Share link ({label})" : "Link delen ({label})",
+ "Mail share" : "Share mailen",
+ "Share link ({index})" : "Deellink ({index})",
+ "Create public link" : "Creëer openbare link",
+ "Actions for \"{title}\"" : "Acties voor \"{title}\"",
+ "Error, please enter proper password and/or expiration date" : "Fout. geef een geldig wachtwoord op en/of een vervaldatum",
+ "Link share created" : "Te delen share gemaakt",
+ "Error while creating the share" : "Fout bij maken share",
"Please enter the following required information before creating the share" : "Geef de volgend verplichte gegevens op voor het aanmaken van de deellink",
"Password protection (enforced)" : "Wachtwoordbeveiliging (afgedwongen)",
"Password protection" : "Wachtwoordbeveiliging",
"Enter a password" : "Voer een wachtwoord in",
- "Expiration date (enforced)" : "Vervaldatum (afgedwongen)",
- "Enter a date" : "Voeg een datum toe",
+ "Enable link expiration (enforced)" : "Activeer link-verval (afgedwongen)",
+ "Enable link expiration" : "Activeer link-verval",
+ "Enter expiration date (enforced)" : "Voer vervaldatum in (afgedwongen)",
+ "Enter expiration date" : "Voer vervaldatum in",
"Create share" : "Creëren share",
- "Cancel" : "Annuleren",
+ "Customize link" : "Bewerk link",
+ "Generate QR code" : "Genereer QR code",
"Add another link" : "Nog een link toevoegen ",
"Create a new share link" : "Creëer een nieuwe deellink",
- "{shareWith} by {initiator}" : "{shareWith} door {initiator}",
- "Shared via link by {initiator}" : "Gedeeld via link door {initiator}",
- "Mail share ({label})" : "Mail share ({label})",
- "Share link ({label})" : "Link delen ({label})",
- "Share link" : "Delen link",
- "Error, please enter proper password and/or expiration date" : "Fout. geef een geldig wachtwoord op en/of een vervaldatum",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Snel delen opties, de huidige geselecteerd is \"{selectedOption}\"",
"View only" : "Alleen bekijken",
"Can edit" : "Kan bewerken",
- "File drop" : "Bestandsopslag",
"Custom permissions" : "Aangepaste machtigingen",
- "No recommendations. Start typing." : "Geen aanbevelingen. Begin te typen.",
- "Resharing is not allowed" : "Verder delen niet toegestaan",
+ "Resharing is not allowed" : "Opnieuw delen niet toegestaan",
"Name or email …" : "Naam of e-mailadres …",
- "Name, email, or Federated Cloud ID …" : "Naam, e-mailadres of gefedereerde Cloud ID …",
+ "Name, email, or Federated Cloud ID …" : "Naam, e-mailadres of gefedereerde Cloud-ID …",
"Searching …" : "Zoeken ...",
"No elements found." : "Geen elementen gevonden.",
- "Search globally" : "Zoek door alles",
+ "Search everywhere" : "Zoek in alles",
"Guest" : "Gast",
"Group" : "Groep",
"Email" : "E-mail",
+ "Team" : "Team",
"Talk conversation" : "Talk gesprek",
"Deck board" : "Deck board",
+ "ScienceMesh" : "ScienceMesh",
"on {server}" : "op {server}",
+ "Enter external recipients" : "Externe ontvangers invoeren",
+ "Search for internal recipients" : "Interne ontvangers zoeken",
+ "Note from" : "Notirtie van",
+ "Note:" : "Notitie:",
+ "File drop" : "Bestandsopslag",
+ "Upload files to {foldername}." : "Upload bestanden naar {foldername}",
+ "By uploading files, you agree to the terms of service." : "Door het uploaden van bestanden stem je in met de gebruiksvoorwaarden.",
+ "Successfully uploaded files" : "Succesvol geüploade bestanden",
+ "View terms of service" : "Toon gebruiksvoorwaarden",
+ "Terms of service" : "Gebruiksvoorwaarden",
+ "Share with email {email}" : "Deel met e-mail {email}",
+ "Share with group" : "Deel met groep",
+ "Share in conversation" : "Deel in gesprek",
+ "Share with {user} on remote server {server}" : "Deel met {user} op server {server}",
+ "Share with remote group" : "Deel met remote groep",
+ "Share with guest" : "Deel met gast",
+ "Update share" : "Update share",
+ "Save share" : "Bewaar share",
+ "Read" : "Lezen",
+ "Create" : "Creëer",
+ "Edit" : "Bewerk",
+ "Share" : "Delen",
+ "Delete" : "Verwijderen",
+ "Password field cannot be empty" : "Wachtwoordveld kan niet leeg zijn",
+ "Replace current password" : "Vervang huidig wachtwoord",
+ "Failed to generate a new token" : "Het genereren van een nieuw token is mislukt",
"Allow upload and editing" : "Uploaden en bewerken toestaan",
"Allow editing" : "Bewerken toestaan",
+ "Upload only" : "Alleen uploaden",
"Advanced settings" : "Geavanceerde instellingen",
"Share label" : "Deel het label",
+ "Share link token" : "Share link token",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Stel het publieke deellink-token in op iets dat gemakkelijk te onthouden is of genereer een nieuw token. Het is niet aanbevolen om een raadbaar token te gebruiken voor shares die gevoelige informatie bevatten.",
+ "Generating…" : "Genereren…",
+ "Generate new token" : "Nieuw token genereren",
"Set password" : "Instellen wachtwoord",
- "Password" : "Wachtwoord",
"Password expires {passwordExpirationTime}" : "Wachtwoord vervalt {passwordExpirationTime}",
"Password expired" : "Wachtwoord is vervallen",
"Video verification" : "Video verificatie",
+ "Expiration date (enforced)" : "Vervaldatum (afgedwongen)",
"Set expiration date" : "Stel vervaldatum in",
- "Expiration date" : "Vervaldatum",
"Hide download" : "Verberg download",
- "Allow download" : "Downloaden toestaan",
+ "Allow download and sync" : "Download en synchroniseren toestaan",
"Note to recipient" : "Notitie voor ontvanger",
"Enter a note for the share recipient" : "Geef een notitie op voor de share-ontvanger",
- "Read" : "Lezen",
- "Create" : "Creëer",
- "Edit" : "Bewerk",
- "Share" : "Delen",
+ "Show files in grid view" : "Bestanden tonen in rasterweergave",
"Delete share" : "Verwijder share",
"Others with access" : "Anderen met toegang",
+ "No other accounts with access found" : "Geen andere accounts met toegang gevonden",
"Toggle list of others with access to this directory" : "Omschakelen lijst van anderen met toegang tot deze directory",
"Toggle list of others with access to this file" : "Omschakelen lijst van anderen met toegang tot dit bestand",
"Unable to fetch inherited shares" : "Kon overerfde shares niet ophalen",
+ "Link shares" : "Deel shares",
+ "Shares" : "Shares",
"Unable to load the shares list" : "Kon de shares-lijst niet laden",
"Expires {relativetime}" : "Vervalt {relativetime}",
"this share just expired." : "deze share is net verlopen.",
"Shared with you by {owner}" : "Met je gedeeld door {owner}",
- "Shared" : "Gedeeld",
+ "Internal shares" : "Interne schijven",
+ "Internal shares explanation" : "Uitleg over interne shares",
+ "External shares" : "Externe shares",
+ "External shares explanation" : "Uitleg over externe shares",
+ "Additional shares" : "Aanvullende shares",
+ "Additional shares explanation" : "Uitleg over aanvullende shares",
"Link to a file" : "Link naar een bestand",
- "Error creating the share: {errorMessage}" : "Fout bij aanmaken share: {errorMessage}",
- "Error creating the share" : "Fout tijdens aanmaken share",
- "Error updating the share: {errorMessage}" : "Fout bij aanpassen van de share: {errorMessage}",
- "Error updating the share" : "Fout tijdens bijwerken share",
- "File \"{path}\" has been unshared" : "Bestand \"{path}\" is niet meer gedeeld",
- "Folder \"{path}\" has been unshared" : "Map \"{path}\" is niet meer gedeeld",
- "Shared by" : "Gedeeld door",
- "Shared with" : "Gedeeld met",
- "Shared with you and the group {group} by {owner}" : "Met jou en de groep {group} gedeeld door {owner}",
- "Shared with you and {circle} by {owner}" : "Gedeeld met jou en {circle} door {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Gedeeld met jou en gesprek {conversation} door {owner}",
- "Shared with you in a conversation by {owner}" : "Met jou in een gesprek gedeeld door {owner}",
- "Shares" : "Shares",
+ "_Accept share_::_Accept shares_" : ["Accepteer share","Accepteer shares"],
+ "Open in Files" : "Open in Bestanden",
+ "_Reject share_::_Reject shares_" : ["Wijs share af","Wijs shares af"],
+ "_Restore share_::_Restore shares_" : ["Herstel share","Herstel shares"],
+ "Shared" : "Gedeeld",
+ "Shared by {ownerDisplayName}" : "Gedeeld door {ownerDisplayName}",
+ "Shared multiple times with different people" : "Meerdere keren gedeeld met verschillende mensen",
+ "Shared with others" : "Gedeeld met anderen",
+ "Create file request" : "Maak bestandsaanvraag",
+ "Upload files to {foldername}" : "Upload bestanden naar {foldername}",
+ "Public file share" : "Openbare bestandsshare",
+ "Publicly shared file." : "Openbaar gedeeld bestand.",
+ "No file" : "Geen bestand",
+ "The file shared with you will show up here" : "Het bestand dat met je gedeeld wordt, wordt hier getoond.",
+ "Public share" : "Openbare deellink",
+ "Publicly shared files." : "Openbaar gedeelde bestanden.",
+ "No files" : "Geen bestanden",
+ "Files and folders shared with you will show up here" : "Bestanden en mappen die met je gedeeld worden, worden hier getoond",
+ "Overview of shared files." : "Overzicht van gedeelde bestanden.",
"No shares" : "Geen shares",
+ "Files and folders you shared or have been shared with you will show up here" : "Bestanden en mappen die je gedeeld hebt of die met je gedeeld zijn, worden hier getoond",
"Shared with you" : "Met je gedeeld",
+ "List of files that are shared with you." : "Lijst van bestanden die met je gedeeeld zijn.",
"Nothing shared with you yet" : "Nog niets met je gedeeld",
- "Shared with others" : "Gedeeld met anderen",
+ "Files and folders others shared with you will show up here" : "Bestanden en mappen die anderen met je delen, worden hier getoond",
+ "List of files that you shared with others." : "Lijst van bestanden die je met anderen gedeeld hebt.",
"Nothing shared yet" : "Nog niets gedeeld",
+ "Files and folders you shared will show up here" : "Bestanden en mappen die je deelt, worden hier getoond",
"Shared by link" : "Gedeeld via een link",
+ "List of files that are shared by link." : "Lijst van bestanden die door een link gedeeld zijn.",
"No shared links" : "Geen gedeelde links",
+ "Files and folders you shared by link will show up here" : "Bestanden en mappen die je via links deelt, worden hier getoond",
+ "File requests" : "Bestandsaanvragen",
+ "List of file requests." : "Lijst met bestandsverzoeken.",
+ "No file requests" : "Geen bestandsverzoeken",
+ "File requests you have created will show up here" : "Bestandsverzoeken die je hebt aangemaakt, worden hier weergegeven",
"Deleted shares" : "Verwijderde shares",
+ "List of shares you left." : "Lijst met shares die je hebt behouden.",
"No deleted shares" : "Geen verwijderde shares",
+ "Shares you have left will show up here" : "Shares die je hebt behoudem, verschijnen hier",
"Pending shares" : "Deellinks in behandeling",
+ "List of unapproved shares." : "Lijst van niet-goedgekeurde shares.",
"No pending shares" : "Geen deellinks in behandeling",
+ "Shares you have received but not approved will show up here" : "Shares die je hebt ontvangen maar niet hebt goedgekeurd, verschijnen hier",
+ "Error deleting the share: {errorMessage}" : "Fout bij verwijderen van de share: {errorMessage}",
+ "Error deleting the share" : "Fout bij verwijderen share",
+ "Error updating the share: {errorMessage}" : "Fout bij aanpassen van de share: {errorMessage}",
+ "Error updating the share" : "Fout tijdens bijwerken share",
+ "File \"{path}\" has been unshared" : "Bestand \"{path}\" is niet meer gedeeld",
+ "Folder \"{path}\" has been unshared" : "Map \"{path}\" is niet meer gedeeld",
+ "Could not update share" : "Kon share niet bijwerken",
+ "Share saved" : "Share opgeslagen",
+ "Share expiry date saved" : "Share vervaldatum opgeslagen",
+ "Share hide-download state saved" : "Share verberg-download status opgeslagen",
+ "Share label saved" : "Share label opgeslagen",
+ "Share note for recipient saved" : "Share notitie voor ontvanger opgeslagen",
+ "Share password saved" : "Share wachtwoord opgeslagen",
+ "Share permissions saved" : "Share machtigingen opgeslagen",
+ "To upload files to {folder}, you need to provide your name first." : "Om bestanden te uploaden naar {folder}, moet je eerst je naam opgeven.",
+ "Upload files to {folder}" : "Upload bestanden naar {folder}",
+ "Please confirm your name to upload files to {folder}" : "Bevestig je naam om bestanden naar {folder} te uploaden",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} deelde een map met je.",
+ "Names must not be empty." : "Namen mogen niet leeg zijn.",
+ "Names must not start with a dot." : "Namen mogen niet met een punt beginnen.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" is niet toegestaan in een naam.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" is een gereserveerde naam en niet toegestaan.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" is geen toegestane naam.",
+ "Names must not end with \"{extension}\"." : "Namen mogen niet eindigen met \"{extension}\".",
+ "Invalid name." : "Ongeldige naam.",
+ "Shared by" : "Gedeeld door",
+ "Shared with" : "Gedeeld met",
+ "Password created successfully" : "Wachtwoord succesvol gemaakt",
+ "Error generating password from password policy" : "Fout bij genereren wachtwoord vanuit wachtwoordbeleid",
+ "Shared with you and the group {group} by {owner}" : "Met jou en de groep {group} gedeeld door {owner}",
+ "Shared with you and {circle} by {owner}" : "Gedeeld met jou en {circle} door {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Gedeeld met jou en gesprek {conversation} door {owner}",
+ "Shared with you in a conversation by {owner}" : "Met jou in een gesprek gedeeld door {owner}",
+ "Share not found" : "Gedeelde map niet gevonden",
+ "Back to %s" : "Terug naar %s",
+ "Add to your Nextcloud" : "Toevoegen aan je Nextcloud",
+ "Waiting…" : "Wachten ...",
+ "error" : "fout",
+ "finished" : "klaar",
+ "This will stop your current uploads." : "Dit beëindigt onderhanden uploads",
+ "Move or copy" : "Verplaatsen of kopiëren",
+ "You can upload into this folder" : "Je kunt uploaden naar deze map",
+ "Show list view" : "Toon lijstweergave",
+ "Show grid view" : "Toon roosterweergave",
+ "No compatible server found at {remote}" : "Geen geschikte server gevonden op {remote}",
+ "Invalid server URL" : "Ongeldig server URL",
+ "Failed to add the public link to your Nextcloud" : "Kon de openbare link niet aan je Nextcloud toevoegen",
+ "You are not allowed to edit link shares that you don't own" : "Je mag geen linkshares bewerken die je niet bezit",
+ "Download all files" : "Download alle bestanden",
+ "Link copied to clipboard" : "Link gekopieerd naar het klembord",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 E-mailadres al toegevoegd","Al {count} e-mailadressen toegevoegd"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 E-mailadres toegevoegd","{count} E-mailadressen toegevoegd"],
+ "Copy to clipboard" : "Kopiëren naar het klembord",
+ "Copy internal link to clipboard" : "Kopieer interne link naar klembord",
+ "Only works for people with access to this folder" : "Werkt alleen voor gebruikers met toegang tot deze map",
+ "Only works for people with access to this file" : "Dit werkt alleen voor gebruikers met toegang tot dit bestand",
+ "Copy public link of \"{title}\" to clipboard" : "Kopiëren openbare link van \"{title}\" naar klembord",
+ "Search globally" : "Zoek door alles",
+ "Search for share recipients" : "Zoek om mee te delen",
+ "No recommendations. Start typing." : "Geen aanbevelingen. Begin te typen.",
+ "To upload files, you need to provide your name first." : "Om bestanden te uploaden moet je eerste je naam opgeven.",
+ "Enter your name" : "Geef je naam op",
+ "Submit name" : "Naam doorgeven",
+ "Share with {userName}" : "Deel met {userName}",
+ "Show sharing options" : "Toon deelopties",
"Share note" : "Notitie delen",
"Upload files to %s" : "Upload bestanden naar %s",
+ "%s shared a folder with you." : "%s heeft een map met je gedeeld",
"Note" : "Notitie",
"Select or drop files" : "Selecteer bestanden of sleep ze naar dit venster",
"Uploading files" : "Uploaden bestanden",
"Uploaded files:" : "Geüploade bestanden",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Door het uploaden van bestanden stem je in met de %1$sgebruiksvoorwaarden%2$s.",
- "Add to your Nextcloud" : "Toevoegen aan je Nextcloud",
- "Files and folders others share with you will show up here" : "Bestanden en mappen die anderen met je delen, worden hier getoond",
- "Files and folders you share will show up here" : "Bestanden en mappen die je deelt, worden hier getoond",
- "Files and folders you share by link will show up here" : "Bestanden en mappen die je via links deelt, worden hier getoond",
- "Shares you deleted will show up here" : "Shares die je verwijderde, worden hier getoond",
- "Shares you have received but not confirmed will show up here" : "Hier staan de ontvangen maar nog niet geaccepteerde deellinks",
- "Shares will show up here" : "Shares worden hier getoond",
- "Restore" : "Herstellen",
- "Something happened. Unable to restore the share." : "Er is iets gebeurd. Kan de share niet herstellen.",
- "Something happened. Unable to accept the share." : "Er is iets gebeurd. Kan de deellink niet accepteren.",
- "Something happened. Unable to reject the share." : "Er is iets gebeurd. Kan de deellink niet weigeren.",
- "No expiration date set" : "Geen vervaldatum ingesteld",
- "Please specify a valid user" : "Geef een geldige gebruiker op",
- "Please specify a valid federated user ID" : "Geef een geldig gefedereerd gebruikersID op",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Met deze applicatie kunnen gebruikers bestanden delen binnen Nextcloud. Indien ingeschakeld, kan de beheerder kiezen welke groepen bestanden kunnen delen. De betreffende gebruikers kunnen vervolgens bestanden en mappen delen met andere gebruikers en groepen binnen Nextcloud. Als de beheerder de functie voor het delen van koppelingen inschakelt, kan ook een externe koppeling worden gebruikt om bestanden te delen met andere gebruikers buiten Nextcloud. Beheerders kunnen ook wachtwoorden en vervaldatums afdwingen en delen van server-naar-server mogelijk maken via koppelingslinks en evenals delen vanaf mobiele apparaten.\nAls je de functie uitschakelt, worden gedeelde bestanden en mappen op de server verwijderd voor alle ontvangers van shares, en ook voor de synchronisatieclients en mobiele apps. Meer informatie is beschikbaar in de Nextcloud-documentatie.",
- "Accept user and group shares by default" : "Accepteer gebruiker- en groepsshares automatisch",
- "Read only" : "Alleen lezen",
- "File drop (upload only)" : "Bestand droppen (alleen uploaden)",
- "Upload" : "Uploaden",
- "Only works for users with access to this folder" : "Dit werkt alleen voor gebruikers met toegang tot deze map",
- "Only works for users with access to this file" : "Dit werkt alleen voor gebruikers met toegang tot dit bestand",
- "Circle" : "Kring",
- "Update" : "Update",
- "No other users with access found" : "Geen andere gebruikers met toegang gevonden",
- "No entries found in this folder" : "Niets gevonden in deze map",
"Name" : "Naam",
- "Share time" : "Deel tijd",
- "Reasons might be:" : "Redenen kunnen zijn:",
- "the item was removed" : "bestand was verwijderd",
- "the link expired" : "de link is verlopen",
- "sharing is disabled" : "delen is uitgeschakeld",
- "For more info, please ask the person who sent this link." : "Voor meer informatie, neem contact op met de persoon die u deze link heeft gestuurd."
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Gebruik deze methode om bestanden te delen met personen of teams binnen je organisatie. Als de ontvanger al toegang heeft tot de share, maar deze niet kan lokaliseren, kun je deze de interne share-link sturen voor gemakkelijke toegang.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Gebruik deze methode om bestanden te delen met personen of organisaties buiten je organisatie. Bestanden en mappen kunnen worden gedeeld via openbare deellinks en e-mailadressen. Je kunt ook delen met andere Nextcloud-accounts die in verschillende instanties worden gehost met behulp van hun federatieve cloud-ID.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Shares die geen deel uitmaken van de interne of externe shares. Dit kunnen shares zijn van apps of andere bronnen.",
+ "Share with accounts, teams, federated cloud id" : "Delen met accounts, teams, federatieve cloud-ID",
+ "Share with accounts and teams" : "Delen met accounts en teams",
+ "Federated cloud ID" : "Federatieve cloud-ID",
+ "Email, federated cloud id" : "E-mail, federatieve cloud-ID",
+ "Filename must not be empty." : "Bestandsnaam mag niet leeg zijn"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/nn_NO.js b/apps/files_sharing/l10n/nn_NO.js
deleted file mode 100644
index 5585f720596..00000000000
--- a/apps/files_sharing/l10n/nn_NO.js
+++ /dev/null
@@ -1,24 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Cancel" : "Avbryt",
- "Shared by" : "Delt av",
- "Sharing" : "Deling",
- "A file or folder has been <strong>shared</strong>" : "Ei fil eller ei mappe har blitt <strong>delt</strong>",
- "You shared %1$s with %2$s" : "Du delte %1$s med %2$s",
- "You shared %1$s with group %2$s" : "Du delte %1$s med gruppa %2$s",
- "You shared %1$s via link" : "Du delte %1$s via ei lenkje",
- "%2$s shared %1$s with you" : "%2$s delte %1$s med deg",
- "Shares" : "Delingar",
- "The password is wrong. Try again." : "Passordet er gale. Prøv igjen.",
- "Password" : "Passord",
- "Name" : "Namn",
- "Sorry, this link doesn’t seem to work anymore." : "Orsak, denne lenkja fungerer visst ikkje lenger.",
- "Reasons might be:" : "Moglege grunnar:",
- "the item was removed" : "fila/mappa er fjerna",
- "the link expired" : "lenkja har gått ut på dato",
- "sharing is disabled" : "deling er slått av",
- "For more info, please ask the person who sent this link." : "Spør den som sende deg lenkje om du vil ha meir informasjon.",
- "Download" : "Last ned"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/nn_NO.json b/apps/files_sharing/l10n/nn_NO.json
deleted file mode 100644
index 81e16df9b28..00000000000
--- a/apps/files_sharing/l10n/nn_NO.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{ "translations": {
- "Cancel" : "Avbryt",
- "Shared by" : "Delt av",
- "Sharing" : "Deling",
- "A file or folder has been <strong>shared</strong>" : "Ei fil eller ei mappe har blitt <strong>delt</strong>",
- "You shared %1$s with %2$s" : "Du delte %1$s med %2$s",
- "You shared %1$s with group %2$s" : "Du delte %1$s med gruppa %2$s",
- "You shared %1$s via link" : "Du delte %1$s via ei lenkje",
- "%2$s shared %1$s with you" : "%2$s delte %1$s med deg",
- "Shares" : "Delingar",
- "The password is wrong. Try again." : "Passordet er gale. Prøv igjen.",
- "Password" : "Passord",
- "Name" : "Namn",
- "Sorry, this link doesn’t seem to work anymore." : "Orsak, denne lenkja fungerer visst ikkje lenger.",
- "Reasons might be:" : "Moglege grunnar:",
- "the item was removed" : "fila/mappa er fjerna",
- "the link expired" : "lenkja har gått ut på dato",
- "sharing is disabled" : "deling er slått av",
- "For more info, please ask the person who sent this link." : "Spør den som sende deg lenkje om du vil ha meir informasjon.",
- "Download" : "Last ned"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/oc.js b/apps/files_sharing/l10n/oc.js
deleted file mode 100644
index 50ca51ca1b1..00000000000
--- a/apps/files_sharing/l10n/oc.js
+++ /dev/null
@@ -1,72 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Server to server sharing is not enabled on this server" : "Lo partiment de servidor a servidor es pas activat sus aqueste servidor",
- "The mountpoint name contains invalid characters." : "Lo nom del punt de montatge conten de caractèrs invalids.",
- "Invalid or untrusted SSL certificate" : "Certificat SSL invalid o pas fisable",
- "Could not authenticate to remote share, password might be wrong" : "Impossible de s'autentificar al partiment distant : lo senhal es probablament incorrècte",
- "Storage not valid" : "Supòrt d'emmagazinatge invalid",
- "Couldn't add remote share" : "Impossible d'apondre lo partiment distant",
- "Shared with you" : "Partejats amb vos",
- "Shared with others" : "Partejats amb d'autres",
- "Shared by link" : "Partejats per ligam",
- "Nothing shared with you yet" : "Cap de fichièr es pas partejat amb vos pel moment",
- "Files and folders others share with you will show up here" : "Los fichièrs e dorsièrs partejats amb vos apareisseràn aicí",
- "Nothing shared yet" : "Res es pas partejat pel moment",
- "Files and folders you share will show up here" : "Los fichièrs e dorsièrs que partejatz apareisseràn aicí",
- "No shared links" : "Pas cap de partiment per ligam",
- "Files and folders you share by link will show up here" : "Los fichièrs e dorsièrs que partejatz per ligam apareisseràn aicí",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Volètz apondre lo partiment distant {name} de {owner}@{remote} ?",
- "Remote share" : "Partiment distant",
- "Remote share password" : "Senhal del partiment distant",
- "Cancel" : "Anullar",
- "Add remote share" : "Apondre un partiment distant",
- "You can upload into this folder" : "Podètz mandar dins aqueste dorsièr",
- "No ownCloud installation (7 or higher) found at {remote}" : "Cap d'installacion ownCloud (7 o superior) pas trobada sus {remote}",
- "Invalid ownCloud url" : "URL ownCloud invalida",
- "Shared by" : "Partejat per",
- "Sharing" : "Partiment",
- "A file or folder has been <strong>shared</strong>" : "Un fichièr o un repertòri es estat <strong>partejat</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un fichièr o un repertòri es estat partejat depuis <strong>un autre servidor</strong>",
- "A public shared file or folder was <strong>downloaded</strong>" : "Un fichièr o un repertòri partejat publicament es estat <strong>telecargat</strong>",
- "You received a new remote share %2$s from %1$s" : "L'utilizaire %1$s a partejat la ressorsa distanta %2$s amb vos",
- "You received a new remote share from %s" : "Avètz recebut un partiment distant de %s",
- "%1$s accepted remote share %2$s" : "%1$s a acceptat lo partiment distant %2$s",
- "%1$s declined remote share %2$s" : "%1$s a refusat lo partiment distant %2$s",
- "%1$s unshared %2$s from you" : "%1$s a daissat de partejar %2$s amb vos",
- "Public shared folder %1$s was downloaded" : "Lo dorsièr public %1$s es estat telecargat",
- "Public shared file %1$s was downloaded" : "Lo fichièr public %1$s es estat telecargat",
- "You shared %1$s with %2$s" : "Avètz partejat %1$s amb %2$s",
- "%2$s shared %1$s with %3$s" : "%2$s partejat %1$s amb %3$s",
- "You shared %1$s with group %2$s" : "Avètz partejat %1$s amb lo grop %2$s",
- "%2$s shared %1$s with group %3$s" : "%2$s partejat %1$s amb lo grop %3$s",
- "%2$s shared %1$s via link" : "%2$s a partejat %1$s per ligam public",
- "You shared %1$s via link" : "Avètz partejat %1$s per ligam public",
- "%2$s shared %1$s with you" : "%2$s a partejat %1$s amb vos",
- "Downloaded via public link" : "Telecargat per ligam public",
- "Shared with %2$s" : "Partejat amb %2$s",
- "Shared with %3$s by %2$s" : "Partejat amb %3$s per %2$s",
- "Shared with group %2$s" : "Partejat amb lo grop %2$s",
- "Shared with group %3$s by %2$s" : "Partejat amb lo grop %3$s per %2$s",
- "Shared via link by %2$s" : "Partejat via ligam per %2$s",
- "Shared via public link" : "Partejat per ligam public",
- "Shared by %2$s" : "Partejat per %2$s",
- "Shares" : "Partiments",
- "This share is password-protected" : "Aqueste partiment es protegit per un senhal",
- "The password is wrong. Try again." : "Lo senhal es incorrècte. Ensajatz tornamai.",
- "Password" : "Senhal",
- "No entries found in this folder" : "Cap d'entrada pas trobada dins aqueste dorsièr",
- "Name" : "Nom",
- "Share time" : "Data de partiment",
- "Sorry, this link doesn’t seem to work anymore." : "O planhèm, mas sembla qu'aqueste ligam fonciona pas mai.",
- "Reasons might be:" : "Las rasons pòdon èsser :",
- "the item was removed" : "l'element es estat suprimit",
- "the link expired" : "lo ligam a expirat",
- "sharing is disabled" : "lo partiment es desactivat",
- "For more info, please ask the person who sent this link." : "Per mai d'informacions, contactatz la persona qu'a mandat aqueste ligam.",
- "Add to your ownCloud" : "Apondre a vòstre ownCloud",
- "Download" : "Telecargar",
- "Download %s" : "Telecargar %s",
- "Direct link" : "Ligam dirècte"
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_sharing/l10n/oc.json b/apps/files_sharing/l10n/oc.json
deleted file mode 100644
index a5280effab3..00000000000
--- a/apps/files_sharing/l10n/oc.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{ "translations": {
- "Server to server sharing is not enabled on this server" : "Lo partiment de servidor a servidor es pas activat sus aqueste servidor",
- "The mountpoint name contains invalid characters." : "Lo nom del punt de montatge conten de caractèrs invalids.",
- "Invalid or untrusted SSL certificate" : "Certificat SSL invalid o pas fisable",
- "Could not authenticate to remote share, password might be wrong" : "Impossible de s'autentificar al partiment distant : lo senhal es probablament incorrècte",
- "Storage not valid" : "Supòrt d'emmagazinatge invalid",
- "Couldn't add remote share" : "Impossible d'apondre lo partiment distant",
- "Shared with you" : "Partejats amb vos",
- "Shared with others" : "Partejats amb d'autres",
- "Shared by link" : "Partejats per ligam",
- "Nothing shared with you yet" : "Cap de fichièr es pas partejat amb vos pel moment",
- "Files and folders others share with you will show up here" : "Los fichièrs e dorsièrs partejats amb vos apareisseràn aicí",
- "Nothing shared yet" : "Res es pas partejat pel moment",
- "Files and folders you share will show up here" : "Los fichièrs e dorsièrs que partejatz apareisseràn aicí",
- "No shared links" : "Pas cap de partiment per ligam",
- "Files and folders you share by link will show up here" : "Los fichièrs e dorsièrs que partejatz per ligam apareisseràn aicí",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Volètz apondre lo partiment distant {name} de {owner}@{remote} ?",
- "Remote share" : "Partiment distant",
- "Remote share password" : "Senhal del partiment distant",
- "Cancel" : "Anullar",
- "Add remote share" : "Apondre un partiment distant",
- "You can upload into this folder" : "Podètz mandar dins aqueste dorsièr",
- "No ownCloud installation (7 or higher) found at {remote}" : "Cap d'installacion ownCloud (7 o superior) pas trobada sus {remote}",
- "Invalid ownCloud url" : "URL ownCloud invalida",
- "Shared by" : "Partejat per",
- "Sharing" : "Partiment",
- "A file or folder has been <strong>shared</strong>" : "Un fichièr o un repertòri es estat <strong>partejat</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un fichièr o un repertòri es estat partejat depuis <strong>un autre servidor</strong>",
- "A public shared file or folder was <strong>downloaded</strong>" : "Un fichièr o un repertòri partejat publicament es estat <strong>telecargat</strong>",
- "You received a new remote share %2$s from %1$s" : "L'utilizaire %1$s a partejat la ressorsa distanta %2$s amb vos",
- "You received a new remote share from %s" : "Avètz recebut un partiment distant de %s",
- "%1$s accepted remote share %2$s" : "%1$s a acceptat lo partiment distant %2$s",
- "%1$s declined remote share %2$s" : "%1$s a refusat lo partiment distant %2$s",
- "%1$s unshared %2$s from you" : "%1$s a daissat de partejar %2$s amb vos",
- "Public shared folder %1$s was downloaded" : "Lo dorsièr public %1$s es estat telecargat",
- "Public shared file %1$s was downloaded" : "Lo fichièr public %1$s es estat telecargat",
- "You shared %1$s with %2$s" : "Avètz partejat %1$s amb %2$s",
- "%2$s shared %1$s with %3$s" : "%2$s partejat %1$s amb %3$s",
- "You shared %1$s with group %2$s" : "Avètz partejat %1$s amb lo grop %2$s",
- "%2$s shared %1$s with group %3$s" : "%2$s partejat %1$s amb lo grop %3$s",
- "%2$s shared %1$s via link" : "%2$s a partejat %1$s per ligam public",
- "You shared %1$s via link" : "Avètz partejat %1$s per ligam public",
- "%2$s shared %1$s with you" : "%2$s a partejat %1$s amb vos",
- "Downloaded via public link" : "Telecargat per ligam public",
- "Shared with %2$s" : "Partejat amb %2$s",
- "Shared with %3$s by %2$s" : "Partejat amb %3$s per %2$s",
- "Shared with group %2$s" : "Partejat amb lo grop %2$s",
- "Shared with group %3$s by %2$s" : "Partejat amb lo grop %3$s per %2$s",
- "Shared via link by %2$s" : "Partejat via ligam per %2$s",
- "Shared via public link" : "Partejat per ligam public",
- "Shared by %2$s" : "Partejat per %2$s",
- "Shares" : "Partiments",
- "This share is password-protected" : "Aqueste partiment es protegit per un senhal",
- "The password is wrong. Try again." : "Lo senhal es incorrècte. Ensajatz tornamai.",
- "Password" : "Senhal",
- "No entries found in this folder" : "Cap d'entrada pas trobada dins aqueste dorsièr",
- "Name" : "Nom",
- "Share time" : "Data de partiment",
- "Sorry, this link doesn’t seem to work anymore." : "O planhèm, mas sembla qu'aqueste ligam fonciona pas mai.",
- "Reasons might be:" : "Las rasons pòdon èsser :",
- "the item was removed" : "l'element es estat suprimit",
- "the link expired" : "lo ligam a expirat",
- "sharing is disabled" : "lo partiment es desactivat",
- "For more info, please ask the person who sent this link." : "Per mai d'informacions, contactatz la persona qu'a mandat aqueste ligam.",
- "Add to your ownCloud" : "Apondre a vòstre ownCloud",
- "Download" : "Telecargar",
- "Download %s" : "Telecargar %s",
- "Direct link" : "Ligam dirècte"
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/pl.js b/apps/files_sharing/l10n/pl.js
index 039d75e7e4c..0bca4bd37e5 100644
--- a/apps/files_sharing/l10n/pl.js
+++ b/apps/files_sharing/l10n/pl.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Oczekiwanie…",
- "error" : "błąd",
- "finished" : "zakończone",
- "This will stop your current uploads." : "Spowoduje to zatrzymanie wysyłania plików.",
- "Move or copy" : "Przenieś lub kopiuj",
- "Download" : "Pobierz",
- "Delete" : "Usuń",
- "You can upload into this folder" : "Możesz wysłać do tego katalogu",
- "Terms of service" : "Warunki usługi",
- "Show list view" : "Pokaż widok listy",
- "Show grid view" : "Pokaż widok siatki",
- "No compatible server found at {remote}" : "Nie znaleziono kompatybilnego serwera na {remote}",
- "Invalid server URL" : "Nieprawidłowy adres URL serwera",
- "Failed to add the public link to your Nextcloud" : "Nie udało się dodać linku publicznego do Nextcloud",
"File shares" : "Udostępniony plik",
"Downloaded via public link" : "Pobrano przez link publiczny",
"Downloaded by {email}" : "Pobrano przez {email}",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "Udostępnianie pliku {file} dla {user} wygasło",
"Share for file {file} expired" : "Udostępnianie pliku {file} wygasło",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Plik lub katalog udostępniony za pomocą e-maila lub linku publicznego został <strong>pobrany</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Pliki zostały <strong>przesłane</strong> do katalogu udostępnionego pocztą lub odnośnikiem publicznym",
"A file or folder was shared from <strong>another server</strong>" : "Plik lub katalog został udostępniony z <strong>innego serwera</strong>",
- "Files" : "Pliki",
+ "Sharing" : "Udostępnianie",
"A file or folder has been <strong>shared</strong>" : "Plik lub katalog został <strong>udostępniony</strong>",
"Shared link" : "Udostępnij link",
"Wrong share ID, share does not exist" : "Złe ID udostępnienia, udostępnienie nie istnieje",
@@ -78,32 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "Podaj ścieżkę do pliku lub katalogu",
"Wrong path, file/folder does not exist" : "Błędna ścieżka, plik/katalog nie istnieje",
"Could not create share" : "Nie można utworzyć udostępnienia",
- "Invalid permissions" : "Nieprawidłowe uprawnienia",
- "Invalid date, date format must be YYYY-MM-DD" : "Nieprawidłowa data, data musi być w formacie RRRR-MM-DD",
+ "Please specify a valid account to share with" : "Podaj prawidłowe konto, któremu chcesz udostępnić",
"Group sharing is disabled by the administrator" : "Udostępnianie grupowe jest wyłączone przez administratora",
"Please specify a valid group" : "Podaj prawidłową grupę",
"Public link sharing is disabled by the administrator" : "Udostępnianie linków publicznych zostało wyłączone przez administratora",
- "Public upload disabled by the administrator" : "Przesyłanie publiczne zostało wyłączone przez administratora",
- "Public upload is only possible for publicly shared folders" : "Przesyłanie publiczne jest możliwe tylko w przypadku katalogów udostępnianych publicznie",
+ "Please specify a valid email address" : "Proszę podać prawidłowy adres e-mail",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Udostępnienie %s wysyłanego hasła przez Nextcloud Talk nie powiodło się, ponieważ Nextcloud Talk nie jest włączony",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Udostępnienie %1$s nie powiodło się, ponieważ zaplecze nie zezwala na udostępnianie typu %2$s",
+ "Please specify a valid federated account ID" : "Podaj prawidłowy identyfikator konta federacyjnego",
"Please specify a valid federated group ID" : "Podaj prawidłowy ID grupy federacyjnej",
- "You cannot share to a Circle if the app is not enabled" : "Nie możesz udostępnić w Kręgach, jeśli aplikacja jest wyłączona",
- "Please specify a valid circle" : "Podaj prawidłowy krąg",
+ "You cannot share to a Team if the app is not enabled" : "Nie możesz udostępniać zespołom, jeśli aplikacja \"Zespoły\" nie jest włączona",
+ "Please specify a valid team" : "Proszę podać prawidłowy zespół",
"Sharing %s failed because the back end does not support room shares" : "Udostępnienie %s nie powiodło się, ponieważ zaplecze nie obsługuje udostępnień pokoju",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Udostępnienie %s nie powiodło się, ponieważ oprogramowanie nie obsługuje udostępniania ScienceMesh",
"Unknown share type" : "Nieznany typ udostępnienia",
"Not a directory" : "Nie jest katalogiem",
"Could not lock node" : "Nie można zablokować powiązania",
- "Could not lock path" : "Nie można zablokować ścieżki",
- "Wrong or no update parameter given" : "Brakujący lub błędny parametr aktualizacji",
+ "Public upload is only possible for publicly shared folders" : "Przesyłanie publiczne jest możliwe tylko w przypadku katalogów udostępnianych publicznie",
"Share must at least have READ or CREATE permissions" : "Udostępnienie musi mieć co najmniej uprawnienia do ODCZYTU lub TWORZENIA",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Udostępnienie musi mieć uprawnienie do ODCZYTU, jeśli ustawiono uprawnienie do AKTUALIZACJI lub USUWANIA",
+ "Public upload disabled by the administrator" : "Przesyłanie publiczne zostało wyłączone przez administratora",
+ "Could not lock path" : "Nie można zablokować ścieżki",
+ "no sharing rights on this item" : "brak praw do udostępniania tego elementu",
+ "You are not allowed to edit incoming shares" : "Nie masz uprawnień do modyfikowania przychodzących udostępnień",
+ "Wrong or no update parameter given" : "Brakujący lub błędny parametr aktualizacji",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Wysyłanie hasła przez Nextcloud Talk\" w celu udostępnienia pliku lub katalogu nie powiodło się, ponieważ usługa Nextcloud Talk jest wyłączona.",
+ "Custom share link tokens have been disabled by the administrator" : "Administrator wyłączył niestandardowe tokeny linków udostępniania",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tokeny muszą zawierać co najmniej 1 znak i mogą zawierać wyłącznie litery, cyfry lub myślnik",
+ "Invalid date. Format must be YYYY-MM-DD" : "Nieprawidłowa data. Format musi być RRRR-MM-DD",
+ "No sharing rights on this item" : "Brak praw do udostępniania tego elementu",
+ "Invalid share attributes provided: \"%s\"" : "Podano nieprawidłowe atrybuty udziału: „%s”",
+ "You are not allowed to send mail notifications" : "Nie masz uprawnień do wysyłania powiadomień e-mail",
+ "No mail notification configured for this share type" : "Dla tego typu udziału nie skonfigurowano żadnego powiadomienia e-mail",
+ "Wrong password" : "Złe hasło",
+ "Error while sending mail notification" : "Wystąpił błąd podczas wysyłania powiadomienia e-mail",
+ "Failed to generate a unique token" : "Nie udało się wygenerować unikalnego tokena",
+ "This share does not exist or is no longer available" : "Ten współudział nie istnieje lub nie jest już dostępny",
"shared by %s" : "udostępnione przez %s",
- "Download all files" : "Pobierz wszystkie pliki",
- "Direct link" : "Bezpośredni link",
+ "Download" : "Pobierz",
"Add to your %s" : "Dodaj do %s",
+ "Direct link" : "Bezpośredni link",
"Share API is disabled" : "API udostępniania jest wyłączone",
"File sharing" : "Udostępnianie pliku",
"Share will expire tomorrow" : "Udostępnienie wygaśnie jutro",
@@ -112,64 +113,133 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Otrzymałeś {share} do grupy {group} udostępnione przez {user}",
"Accept" : "Akceptuj",
"Decline" : "Odrzuć",
- "Sharing" : "Udostępnianie",
+ "Remember to upload the files to %s" : "Pamiętaj o przesłaniu plików do %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Uprzejmie przypominamy, że nie przesłałeś jeszcze żadnych plików do udostępnionego katalogu.",
+ "Open \"%s\"" : "Otwórz \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Aplikacja umożliwia ludziom udostępnianie plików w Nextcloud. Jeśli ta opcja jest włączona, administrator może wybrać, które grupy mogą udostępniać pliki. Odpowiedni ludzie mogą następnie udostępniać pliki i katalogi innym kontom i grupom w Nextcloud. Ponadto, jeśli administrator włączy funkcję udostępniania przez odnośnik, można użyć zewnętrznego odnośnika do udostępniania plików innym ludziom poza Nextcloud. Administratorzy mogą również wymuszać hasła, daty wygaśnięcia i udostępnienia między serwerami za pośrednictwem odnośników udostępnienia, a także udostępnienia z urządzeń mobilnych.\nWyłączenie tej funkcji powoduje usunięcie udostępnionych plików i katalogów na serwerze dla wszystkich odbiorców, a także klientów synchronizacji i aplikacji mobilnych. Więcej informacji można znaleźć w dokumentacji Nextcloud.",
+ "People" : "Osoby",
+ "Filter accounts" : "Filtruj konta",
+ "The request will expire on {date} at midnight and will be password protected." : "Prośba wygaśnie {date} o północy i będzie chronione hasłem.",
+ "The request will expire on {date} at midnight." : "Prośba wygaśnie {date} o północy.",
+ "The request will be password protected." : "Żądanie będzie chronione hasłem.",
+ "When should the request expire?" : "Kiedy żądanie powinno wygasnąć?",
+ "Set a submission expiration date" : "Ustaw datę ważności zgłoszenia",
+ "Expiration date" : "Data wygaśnięcia",
+ "Select a date" : "Wybierz datę",
+ "Your administrator has enforced a {count} days expiration policy." : "Administrator wprowadził zasadę wygasania po {count} dniach.",
+ "What password should be used for the request?" : "Jakiego hasła należy użyć do żądania?",
+ "Set a password" : "Ustaw hasło",
+ "Password" : "Hasło",
+ "Enter a valid password" : "Wprowadź prawidłowe hasło",
+ "Generate a new password" : "Wygeneruj nowe hasło",
+ "Your administrator has enforced a password protection." : "Administrator wymusił ochronę hasłem.",
+ "Automatically copying failed, please copy the share link manually" : "Automatyczne kopiowanie nie powiodło się. Skopiuj ręcznie odnośnik udostępniania",
+ "Link copied" : "Link skopiowany",
+ "Email already added" : "Adres e-mail został już dodany",
+ "Invalid email address" : "Nieprawidłowy adres e-mail",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Podany adres e-mail jest nieprawidłowy: {emails}","Poniższe adresy e-mail są nieprawidłowe: {emails}","Poniższe adresy e-mail są nieprawidłowe: {emails}","Poniższe adresy e-mail są nieprawidłowe: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["Dodano już {count} adres e-mail","Dodano już {count} adresy e-mail","Dodano już {count} adresów e-mail","Dodano już {count} adresów e-mail"],
+ "_{count} email address added_::_{count} email addresses added_" : ["Dodano {count} adres e-mail","Dodano {count} adresy e-mail","Dodano {count} adresów e-mail","Dodano {count} adresów e-mail"],
+ "You can now share the link below to allow people to upload files to your directory." : "Możesz teraz udostępnić poniższy odnośnik, aby umożliwić innym przesyłanie plików do Twojego katalogu.",
+ "Share link" : "Udostępnij link",
+ "Copy" : "Skopiuj",
+ "Send link via email" : "Wyślij link mailem",
+ "Enter an email address or paste a list" : "Wpisz adres e-mail lub wklej listę",
+ "Remove email" : "Usuń e-mail",
+ "Select a destination" : "Wybierz miejsce docelowe",
+ "Select" : "Wybierz",
+ "What are you requesting?" : "O co prosisz?",
+ "Request subject" : "Temat prośby",
+ "Birthday party photos, History assignment…" : "Zdjęcia z urodzin, zadanie z historii…",
+ "Where should these files go?" : "Gdzie powinny znaleźć się te pliki?",
+ "Upload destination" : "Miejsce docelowe przesyłania",
+ "Revert to default" : "Przywróć ustawienia domyślne",
+ "The uploaded files are visible only to you unless you choose to share them." : "Przesłane pliki są widoczne tylko dla Ciebie, chyba że zdecydujesz się je udostępnić.",
+ "Add a note" : "Dodaj notatkę",
+ "Note for recipient" : "Notatka dla odbiorcy",
+ "Add a note to help people understand what you are requesting." : "Dodaj notatkę, aby pomóc innym zrozumieć, o co prosisz.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Możesz dodać odnośniki, datę lub inne informacje, które pomogą odbiorcy zrozumieć, o co prosisz.",
+ "Close" : "Zamknij",
+ "_Send email and close_::_Send {count} emails and close_" : ["Wyślij e-mail i zamknij","Wyślij {count} e-maile i zamknij","Wyślij {count} e-maili i zamknij","Wyślij {count} e-maili i zamknij"],
+ "Please select a folder, you cannot share the root directory." : "Wybierz katalog. Nie możesz udostępnić katalogu głównego.",
+ "File request created" : "Utworzono prośbę o plik",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Utworzono prośbę o plik i e-mail został wysłany","Utworzono prośbę o plik i wysłano {count} wiadomości e-mail","Utworzono prośbę o plik i wysłano {count} wiadomości e-mail","Utworzono prośbę o plik i wysłano {count} wiadomości e-mail"],
+ "Error creating the share: {errorMessage}" : "Błąd podczas tworzenia udostępnienia: {errorMessage}",
+ "Error creating the share" : "Błąd podczas tworzenia udostępnienia",
+ "Error sending emails: {errorMessage}" : "Błąd podczas wysyłania e-maili: {errorMessage}",
+ "Error sending emails" : "Wystąpił błąd podczas wysyłania e-maili",
+ "Create a file request" : "Utwórz żądanie pliku",
+ "Collect files from others even if they do not have an account." : "Zbieraj pliki od innych, nawet jeśli nie mają oni konta.",
+ "To ensure you can receive files, verify you have enough storage available." : "Aby mieć pewność, że będziesz mógł odbierać pliki, sprawdź, czy masz wystarczającą ilość wolnego miejsca.",
+ "File request" : "Prośba o plik",
+ "Previous step" : "Poprzedni krok",
+ "Cancel" : "Anuluj",
+ "Cancel the file request creation" : "Anuluj tworzenie prośby o plik",
+ "Close without sending emails" : "Zamknij bez wysyłania e-maili",
+ "Continue" : "Kontynuuj",
"Error while toggling options" : "Błąd podczas przełączania opcji",
- "Set default folder for accepted shares" : "Ustaw domyślny katalog dla zaakceptowanych udostępnień",
- "Reset" : "Resetuj",
- "Reset folder to system default" : "Zresetuj katalog do domyślnych ustawień systemu",
+ "Accept shares from other accounts and groups by default" : "Domyślnie akceptuj współdzielenie z innych kont i grup",
"Choose a default folder for accepted shares" : "Wybierz domyślny katalog dla zaakceptowanych udostępnień",
"Invalid path selected" : "Wybrano nieprawidłową ścieżkę",
"Unknown error" : "Nieznany błąd",
- "Open Sharing Details" : "Otwórz szczegóły udostępniania",
+ "Set default folder for accepted shares" : "Ustaw domyślny katalog dla zaakceptowanych udostępnień",
+ "Reset" : "Resetuj",
+ "Reset folder to system default" : "Zresetuj katalog do domyślnych ustawień systemu",
+ "Share expiration: {date}" : "Data wygaśnięcia udostępnienia: {date}",
+ "Share Expiration" : "Wygaśnięcie udostępnienia",
"group" : "grupa",
"conversation" : "rozmowa",
"remote" : "zdalny",
"remote group" : "grupa zdalna",
"guest" : "gość",
+ "by {initiator}" : "przez {initiator}",
"Shared with the group {user} by {owner}" : "Udostępnione grupie {user} przez {owner}",
"Shared with the conversation {user} by {owner}" : "Udostępnione w rozmowie {user} przez {owner}",
"Shared with {user} by {owner}" : "Udostępnione {user} przez {owner}",
+ "Open Sharing Details" : "Otwórz szczegóły udostępniania",
"Added by {initiator}" : "Dodane przez {initiator}",
"Via “{folder}”" : "Przez “{folder}”",
"Unshare" : "Zatrzymaj udostępnianie",
- "Internal link" : "Link wewnętrzny",
"Cannot copy, please copy the link manually" : "Nie można skopiować, spróbuj skopiować link ręcznie",
- "Copy internal link to clipboard" : "Kopiuj link wewnętrzny do schowka",
- "Link copied" : "Link skopiowany",
- "Please enter the following required information before creating the share" : "Wprowadź następujące wymagane informacje przed udzieleniem dostępu",
- "Password protection (enforced)" : "Ochrona hasłem (wymuszona)",
- "Password protection" : "Ochrona hasła",
- "Enter a password" : "Wprowadź hasło",
- "Expiration date (enforced)" : "Data ważności (wymuszona)",
- "Enter a date" : "Podaj datę",
- "Create share" : "Utwórz udostępnienie",
- "Cancel" : "Anuluj",
- "Customize link" : "Dostosuj link",
- "Add another link" : "Dodaj kolejny link",
- "Create a new share link" : "Utwórz nowy link udostępnienia",
+ "Copy internal link" : "Kopiuj link wewnętrzny",
+ "For people who already have access" : "Dla osób, które już mają dostęp",
+ "Internal link" : "Link wewnętrzny",
"{shareWith} by {initiator}" : "{shareWith} przez {initiator}",
"Shared via link by {initiator}" : "Udostępnione przez link od {initiator}",
+ "File request ({label})" : "Prośba o plik ({label})",
"Mail share ({label})" : "Udostępnij pocztę ({label})",
"Share link ({label})" : "Udostępnij link ({label})",
+ "Mail share" : "Udostępnij pocztę",
"Share link ({index})" : "Udostępnij link ({index})",
- "Share link" : "Udostępnij link",
+ "Create public link" : "Utwórz link publiczny",
"Actions for \"{title}\"" : "Akcje dla \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Kopiuj link publiczny dla \"{title}\" do schowka",
+ "Copy public link of \"{title}\"" : "Kopiuj publiczny link do \"{title}\"",
"Error, please enter proper password and/or expiration date" : "Błąd, wprowadź prawidłowe hasło i/lub datę ważności",
"Link share created" : "Utworzony link udostępniania",
"Error while creating the share" : "Błąd podczas tworzenia udostępniania",
+ "Please enter the following required information before creating the share" : "Wprowadź następujące wymagane informacje przed udzieleniem dostępu",
+ "Password protection (enforced)" : "Ochrona hasłem (wymuszona)",
+ "Password protection" : "Ochrona hasła",
+ "Enter a password" : "Wprowadź hasło",
+ "Enable link expiration (enforced)" : "Włącz wygaśnięcie odnośnika (wymuszone)",
+ "Enable link expiration" : "Włącz wygaśnięcie odnośnika",
+ "Enter expiration date (enforced)" : "Podaj datę ważności (wymuszone)",
+ "Enter expiration date" : "Wprowadź datę ważności",
+ "Create share" : "Utwórz udostępnienie",
+ "Customize link" : "Dostosuj link",
+ "Generate QR code" : "Wygeneruj kod QR",
+ "Add another link" : "Dodaj kolejny link",
+ "Create a new share link" : "Utwórz nowy link udostępnienia",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Opcje szybkiego udostępniania, obecnie wybrane to „{selectedOption}”",
"View only" : "Tylko podgląd",
"Can edit" : "Może modyfikować",
- "File drop" : "Upuść plik",
"Custom permissions" : "Uprawnienia niestandardowe",
- "Search for share recipients" : "Szukaj odbiorców udostępnienia",
- "No recommendations. Start typing." : "Brak rekomendacji. Możesz napisać.",
"Resharing is not allowed" : "Udostępnianie dalej jest niedozwolone",
"Name or email …" : "Nazwa lub adres e-mail…",
"Name, email, or Federated Cloud ID …" : "Nazwa, adres e-mail lub ID Chmury Federacyjnej…",
"Searching …" : "Wyszukiwanie…",
"No elements found." : "Nie znaleziono elementów.",
- "Search globally" : "Szukaj globalnie",
+ "Search everywhere" : "Szukaj wszędzie",
"Guest" : "Gość",
"Group" : "Grupa",
"Email" : "E-mail",
@@ -178,61 +248,99 @@ OC.L10N.register(
"Deck board" : "Tablica Deck",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "na {server}",
+ "Enter external recipients" : "Wprowadź odbiorców zewnętrznych",
+ "Search for internal recipients" : "Wyszukaj odbiorców wewnętrznych",
+ "Note from" : "Notatka od",
+ "Note:" : "Notatka:",
+ "File drop" : "Upuść plik",
+ "Upload files to {foldername}." : "Prześlij pliki do {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Przesyłając pliki, wyrażasz zgodę na warunki korzystania z usługi.",
+ "Successfully uploaded files" : "Pomyślnie przesłano pliki",
+ "View terms of service" : "Zobacz warunki korzystania z usługi",
+ "Terms of service" : "Warunki usługi",
+ "Share with {user}" : "Udostępnij {user}",
+ "Share with email {email}" : "Udostępnij na e-mail {email}",
+ "Share with group" : "Udostępnij grupie",
+ "Share in conversation" : "Udostępnij w rozmowie",
+ "Share with {user} on remote server {server}" : "Udostępnij {user} na zdalnym serwerze {server}",
+ "Share with remote group" : "Udostępnij grupie zdalnej",
+ "Share with guest" : "Współdziel z gościem",
+ "Update share" : "Zaktualizuj udostępnienie",
+ "Save share" : "Zapisz udostępnienie",
+ "Read" : "Czytaj",
+ "Create" : "Utwórz",
+ "Edit" : "Edytuj",
+ "Share" : "Udostępnij",
+ "Delete" : "Usuń",
+ "Password field cannot be empty" : "Pole hasła nie może być puste",
+ "Replace current password" : "Zamień obecne hasło",
+ "Failed to generate a new token" : "Nie udało się wygenerować nowego tokena",
"Allow upload and editing" : "Zezwalaj na wysyłanie i edytowanie",
"Allow editing" : "Zezwalaj na edytowanie",
"Upload only" : "Tylko wyślij",
"Advanced settings" : "Ustawienia zaawansowane",
"Share label" : "Udostępnij etykietę",
+ "Share link token" : "Udostępnij token linku",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Ustaw publiczny token linku udostępniania na coś łatwego do zapamiętania lub wygeneruj nowy token. Nie zaleca się używania łatwego do zgadnięcia tokena dla udostępnień zawierających poufne informacje.",
+ "Generating…" : "Generowanie…",
+ "Generate new token" : "Wygeneruj nowy token",
"Set password" : "Ustaw hasło",
- "Password" : "Hasło",
"Password expires {passwordExpirationTime}" : "Hasło wygasa {passwordExpirationTime}",
"Password expired" : "Hasło wygasło",
"Video verification" : "Weryfikacja wideo",
+ "Expiration date (enforced)" : "Data ważności (wymuszona)",
"Set expiration date" : "Ustaw datę wygaśnięcia",
- "Expiration date" : "Data wygaśnięcia",
"Hide download" : "Ukryj pobieranie",
- "Allow download" : "Zezwól na pobieranie",
+ "Allow download and sync" : "Zezwalaj na pobieranie i synchronizację",
"Note to recipient" : "Informacja dla odbiorcy",
"Enter a note for the share recipient" : "Napisz notatkę dla odbiorcy udostępnienia",
- "Read" : "Czytaj",
- "Create" : "Utwórz",
- "Edit" : "Edytuj",
- "Share" : "Udostępnij",
+ "Show files in grid view" : "Pokaż pliki w widoku siatki",
"Delete share" : "Usuń udostępnianie",
- "Update share" : "Zaktualizuj udostępnienie",
- "Save share" : "Zapisz udostępnienie",
"Others with access" : "Inni z dostępem",
+ "No other accounts with access found" : "Nie znaleziono innych kont z dostępem",
"Toggle list of others with access to this directory" : "Przełącz listę innych z dostępem do tego katalogu",
"Toggle list of others with access to this file" : "Przełącz listę innych z dostępem do tego pliku",
"Unable to fetch inherited shares" : "Nie można pobrać odziedziczonych udostępnień",
+ "Link shares" : "Udostępnianie linków",
+ "Shares" : "Udostępnienia",
+ "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Udostępniaj pliki w swojej organizacji. Odbiorcy, którzy już mogą wyświetlać plik, mogą także użyć tego linku dla łatwiejszego dostępu.",
+ "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Udostępniaj pliki osobom spoza organizacji poprzez publiczne linki i adresy e-mail. Możesz także udostępniać na konta Nextcloud w innych instancjach, używając ich federacyjnego identyfikatora chmury.",
+ "Shares from apps or other sources which are not included in internal or external shares." : "Udostępnienia z aplikacji lub innych źródeł, które nie są uwzględnione w udostępnieniach wewnętrznych lub zewnętrznych.",
+ "Type names, teams, federated cloud IDs" : "Wpisz nazwy, zespoły, identyfikatory federacyjnej chmury",
+ "Type names or teams" : "Wpisz nazwy lub zespoły",
+ "Type a federated cloud ID" : "Wpisz identyfikator federacyjnej chmury",
+ "Type an email" : "Wpisz adres e-mail",
+ "Type an email or federated cloud ID" : "Wpisz adres e-mail lub identyfikator federacyjnej chmury",
"Unable to load the shares list" : "Nie można pobrać listy udostępnień",
"Expires {relativetime}" : "Wygasa {relativetime}",
"this share just expired." : "te udostępnienie właśnie wygasło.",
"Shared with you by {owner}" : "Udostępnione Tobie przez {owner}",
+ "Internal shares" : "Udostępnianie wewnętrzne",
+ "Internal shares explanation" : "Objaśnienie udostępnień wewnętrznych",
+ "External shares" : "Udostępnienia zewnętrzne",
+ "External shares explanation" : "Objaśnienie udostępnień zewnętrznych",
+ "Additional shares" : "Dodatkowe udostępnienia",
+ "Additional shares explanation" : "Objaśnienia dodatkowych udostępnień",
+ "Link to a file" : "Link do pliku",
"_Accept share_::_Accept shares_" : ["Zaakceptuj udostępnienie","Zaakceptuj udostępnienia","Zaakceptuj udostępnienia","Zaakceptuj udostępnienia"],
"Open in Files" : "Otwórz w Plikach",
"_Reject share_::_Reject shares_" : ["Odrzuć udostępnienie","Odrzuć udostępnienia","Odrzuć udostępnienia","Odrzuć udostępnienia"],
"_Restore share_::_Restore shares_" : ["Przywróć udostępnienie","Przywróć udostępnienia","Przywróć udostępnienia","Przywróć udostępnienia"],
"Shared" : "Udostępniono",
"Shared by {ownerDisplayName}" : "Udostępnione przez {ownerDisplayName}",
- "Show sharing options" : "Pokaż opcje udostępniania",
- "Link to a file" : "Link do pliku",
- "Error creating the share: {errorMessage}" : "Błąd podczas tworzenia udostępnienia: {errorMessage}",
- "Error creating the share" : "Błąd podczas tworzenia udostępnienia",
- "Error updating the share: {errorMessage}" : "Błąd podczas aktualizacji udostępnienia: {errorMessage}",
- "Error updating the share" : "Błąd podczas aktualizacji udostępnienia",
- "File \"{path}\" has been unshared" : "Zatrzymane udostępnienie dla pliku \"{path}\"",
- "Folder \"{path}\" has been unshared" : "Zatrzymane udostępnienie dla katalogu \"{path}\"",
- "Share {propertyName} saved" : "Zapisano udostępnienie {propertyName}",
- "Shared by" : "Udostępnione przez",
- "Shared with" : "Udostępnione",
- "Password created successfully" : "Hasło utworzone pomyślnie",
- "Error generating password from password policy" : "Błąd generowania hasła z zasad haseł",
- "Shared with you and the group {group} by {owner}" : "Udostępnione Tobie i grupie {group} przez {owner}",
- "Shared with you and {circle} by {owner}" : "Udostępnione Tobie i {circle} przez {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Udostępnione Tobie i w rozmowie {conversation} przez {owner}",
- "Shared with you in a conversation by {owner}" : "Udostępnione Tobie w rozmowie przez {owner}",
- "Shares" : "Udostępnienia",
+ "Shared multiple times with different people" : "Udostępniony wiele razy różnym osobom",
+ "Sharing options" : "Opcje udostępniania",
+ "Shared with others" : "Udostępnione innym",
+ "Create file request" : "Utwórz prośbę o plik",
+ "Upload files to {foldername}" : "Prześlij pliki do {foldername}",
+ "Public file share" : "Publiczny udział plików",
+ "Publicly shared file." : "Plik udostępniony publicznie.",
+ "No file" : "Brak pliku",
+ "The file shared with you will show up here" : "Udostępniony Ci plik pojawi się tutaj",
+ "Public share" : "Udostępnienie publiczne",
+ "Publicly shared files." : "Pliki udostępnione publicznie.",
+ "No files" : "Brak plików",
+ "Files and folders shared with you will show up here" : "Tutaj pojawią się udostępnione Ci pliki i katalogi",
"Overview of shared files." : "Przegląd udostępnionych plików.",
"No shares" : "Brak udostępnień",
"Files and folders you shared or have been shared with you will show up here" : "Tutaj pojawią się pliki i katalogi, które udostępniłeś lub zostały Tobie udostępnione",
@@ -240,7 +348,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Lista plików, które zostały Tobie udostępnione.",
"Nothing shared with you yet" : "Nie masz jeszcze nic udostępnionego",
"Files and folders others shared with you will show up here" : "Tutaj pojawią się pliki i katalogi udostępnione Tobie przez inne osoby",
- "Shared with others" : "Udostępnione innym",
"List of files that you shared with others." : "Lista plików udostępnionych innym.",
"Nothing shared yet" : "Jeszcze nic nie udostępniłeś",
"Files and folders you shared will show up here" : "Tutaj pojawią się udostępnione pliki i katalogi",
@@ -248,6 +355,10 @@ OC.L10N.register(
"List of files that are shared by link." : "Lista plików udostępnianych za pomocą linku.",
"No shared links" : "Brak udostępnionych linków",
"Files and folders you shared by link will show up here" : "Tutaj pojawią się pliki i katalogi udostępnione przez link",
+ "File requests" : "Prośba o plik",
+ "List of file requests." : "Lista próśb o plik",
+ "No file requests" : "Brak próśb o plik",
+ "File requests you have created will show up here" : "Prośby o pliki, które zgłosiłeś, będą tutaj wyświetlone",
"Deleted shares" : "Usunięte udostępnienia",
"List of shares you left." : "Lista udostępnień, które pozostawiłeś.",
"No deleted shares" : "Brak usuniętych udostępnień",
@@ -256,48 +367,87 @@ OC.L10N.register(
"List of unapproved shares." : "Lista niezatwierdzonych udostępnień.",
"No pending shares" : "Brak oczekujących udostępnień",
"Shares you have received but not approved will show up here" : "Tutaj pojawią się udostępnienia, które otrzymałeś, ale nie zostały zatwierdzone",
+ "Error deleting the share: {errorMessage}" : "Błąd podczas usuwania udostępnienia: {errorMessage}",
+ "Error deleting the share" : "Błąd podczas usuwania udostępnienia",
+ "Error updating the share: {errorMessage}" : "Błąd podczas aktualizacji udostępnienia: {errorMessage}",
+ "Error updating the share" : "Błąd podczas aktualizacji udostępnienia",
+ "File \"{path}\" has been unshared" : "Zatrzymane udostępnienie dla pliku \"{path}\"",
+ "Folder \"{path}\" has been unshared" : "Zatrzymane udostępnienie dla katalogu \"{path}\"",
+ "Could not update share" : "Nie można zaktualizować współudziału",
+ "Share saved" : "Zapisano udostępnienie",
+ "Share expiry date saved" : "Zapisano datę ważności udziału",
+ "Share hide-download state saved" : "Udostępnij ukryj-pobierz status zapisany",
+ "Share label saved" : "Etykieta udostępnienia zapisana",
+ "Share note for recipient saved" : "Zapisano udostępnianą notatkę dla odbiorcy",
+ "Share password saved" : "Hasło udostępnienia zapisane",
+ "Share permissions saved" : "Zapisano uprawnienia udostępniania",
+ "To upload files to {folder}, you need to provide your name first." : "Aby przesłać pliki do {folder}, musisz najpierw podać swoje imię.",
+ "Upload files to {folder}" : "Prześlij pliki do {folder}",
+ "Please confirm your name to upload files to {folder}" : "Proszę potwierdź swoje imię, aby przesłać pliki do {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} udostępnił Ci katalog.",
+ "Names must not be empty." : "Imię nie może być puste.",
+ "Names must not start with a dot." : "Imię nie może zaczynać się od kropki.",
+ "\"{char}\" is not allowed inside a name." : "Znak \"{char}\" nie jest dozwolony w nazwie.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" jest nazwą zastrzeżoną i nie jest dozwolona.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" nie jest dozwoloną nazwą.",
+ "Names must not end with \"{extension}\"." : "Nazwy nie mogą kończyć się na \"{extension}\".",
+ "Invalid name." : "Nieprawidłowa nazwa.",
+ "Shared by" : "Udostępnione przez",
+ "Shared with" : "Udostępnione",
+ "Password created successfully" : "Hasło utworzone pomyślnie",
+ "Error generating password from password policy" : "Błąd generowania hasła z zasad haseł",
+ "Shared with you and the group {group} by {owner}" : "Udostępnione Tobie i grupie {group} przez {owner}",
+ "Shared with you and {circle} by {owner}" : "Udostępnione Tobie i {circle} przez {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Udostępnione Tobie i w rozmowie {conversation} przez {owner}",
+ "Shared with you in a conversation by {owner}" : "Udostępnione Tobie w rozmowie przez {owner}",
+ "Share not found" : "Nie znaleziono udostępnienia",
+ "Back to %s" : "Powrót do %s",
+ "Add to your Nextcloud" : "Dodaj do swojego Nextcloud",
+ "Waiting…" : "Oczekiwanie…",
+ "error" : "błąd",
+ "finished" : "zakończone",
+ "This will stop your current uploads." : "Spowoduje to zatrzymanie wysyłania plików.",
+ "Move or copy" : "Przenieś lub kopiuj",
+ "You can upload into this folder" : "Możesz wysłać do tego katalogu",
+ "Show list view" : "Pokaż widok listy",
+ "Show grid view" : "Pokaż widok siatki",
+ "No compatible server found at {remote}" : "Nie znaleziono kompatybilnego serwera na {remote}",
+ "Invalid server URL" : "Nieprawidłowy adres URL serwera",
+ "Failed to add the public link to your Nextcloud" : "Nie udało się dodać linku publicznego do Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "Nie możesz modyfikować udostępnionych odnośników, których nie jesteś właścicielem",
+ "Download all files" : "Pobierz wszystkie pliki",
+ "Link copied to clipboard" : "Link skopiowany do schowka",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Dodano już 1 adres e-mail","Dodano już {count} adresy e-mail","Dodano już {count} adresów e-mail","Dodano już {count} adresów e-mail"],
+ "_1 email address added_::_{count} email addresses added_" : ["Dodano 1 adres e-mail","Dodano {count} adresy e-mail","Dodano {count} adresów e-mail","Dodano {count} adresów e-mail"],
+ "Copy to clipboard" : "Kopiuj do schowka",
+ "Copy internal link to clipboard" : "Kopiuj link wewnętrzny do schowka",
+ "Only works for people with access to this folder" : "Działa tylko dla osób z dostępem do tego katalogu",
+ "Only works for people with access to this file" : "Działa tylko dla osób z dostępem do tego pliku",
+ "Copy public link of \"{title}\" to clipboard" : "Kopiuj link publiczny dla \"{title}\" do schowka",
+ "Search globally" : "Szukaj globalnie",
+ "Search for share recipients" : "Szukaj odbiorców udostępnienia",
+ "No recommendations. Start typing." : "Brak rekomendacji. Możesz napisać.",
+ "To upload files, you need to provide your name first." : "Aby przesłać pliki, musisz najpierw podać swoje imię i nazwisko.",
+ "Enter your name" : "Wpisz swoją nazwę",
+ "Submit name" : "Wyślij nazwę",
+ "Share with {userName}" : "Podziel się z {userName}",
+ "Show sharing options" : "Pokaż opcje udostępniania",
"Share note" : "Notatka udostępnienia",
"Upload files to %s" : "Wyślij pliki do %s",
+ "%s shared a folder with you." : "%s udostępnił Ci katalog.",
"Note" : "Notatka",
"Select or drop files" : "Wybierz lub upuść pliki",
"Uploading files" : "Wysyłanie plików",
"Uploaded files:" : "Wysłane pliki:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Wysyłając pliki, zgadzasz się na %1$swarunki korzystania z usługi%2$s.",
- "Add to your Nextcloud" : "Dodaj do swojego Nextcloud",
- "Files and folders others share with you will show up here" : "Tutaj pokażą się udostępnione pliki i katalogi przez innych",
- "Files and folders you share will show up here" : "Tutaj pokażą się pliki i katalogi, które udostępnisz",
- "Files and folders you share by link will show up here" : "Tutaj pokażą się pliki i katalogi, które udostępnisz linkiem",
- "Shares you deleted will show up here" : "Tutaj pojawią się usunięte udostępnienia",
- "Shares you have received but not confirmed will show up here" : "Tutaj pojawią się niepotwierdzone udostępnienia",
- "Shares will show up here" : "Tutaj pojawią się udostępnienia",
- "Restore" : "Przywróć",
- "Something happened. Unable to restore the share." : "Coś nie tak. Nie można przywrócić udostępnienia",
- "Something happened. Unable to accept the share." : "Coś się stało. Nie można zaakceptować udostępnienia.",
- "Something happened. Unable to reject the share." : "Coś się stało. Nie można odrzucić udostępnienia.",
- "No expiration date set" : "Nie ustawiono daty wygaśnięcia",
- "Please specify a valid user" : "Podaj prawidłowego użytkownika",
- "Please specify a valid federated user ID" : "Podaj prawidłowy ID użytkownika federacyjnego",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Aplikacja umożliwia użytkownikom udostępnianie plików w Nextcloud. Jeśli ta opcja jest włączona, administrator może wybrać, które grupy mogą udostępniać pliki. Odpowiedni użytkownicy mogą następnie udostępniać pliki i katalogi innym użytkownikom i grupom w Nextcloud. Ponadto, jeśli administrator włączy funkcję udostępniania przez link, można użyć zewnętrznego linku do udostępniania plików innym użytkownikom poza Nextcloud. Administratorzy mogą również wymuszać hasła, daty wygaśnięcia i udostępnienia między serwerami za pośrednictwem linków udostępnienia, a także udostępnienia z urządzeń mobilnych.\nWyłączenie tej funkcji powoduje usunięcie udostępnionych plików i katalogów na serwerze dla wszystkich odbiorców, a także klientów synchronizacji i aplikacji mobilnych. Więcej informacji można znaleźć w dokumentacji Nextcloud.",
- "Accept user and group shares by default" : "Domyślnie akceptuj udostępnienia użytkowników i grup",
- "Read only" : "Tylko do odczytu",
- "File drop (upload only)" : "Upuszczanie pliku (tylko wysyłanie)",
- "Upload" : "Wyślij",
- "Bundled permissions" : "Uprawnienia w pakiecie",
- "Only works for users with access to this folder" : "Działa tylko dla użytkowników mającym dostęp do tego katalogu",
- "Only works for users with access to this file" : "Działa tylko dla użytkowników mającym dostęp do tego pliku",
- "Circle" : "Krąg",
- "Update" : "Aktualizuj",
- "Share with " : "Udostępnij dla",
- "No other users with access found" : "Nie znaleziono innych użytkowników z dostępem",
- "No entries found in this folder" : "Brak wpisów w tym katalogu",
"Name" : "Nazwa",
- "Share time" : "Czas udostępnienia",
- "Sorry, this link does not seem to work anymore." : "Przepraszamy, ale wygląda na to, że ten link już nie działa.",
- "Reasons might be:" : "Możliwe powody:",
- "the item was removed" : "element został usunięty",
- "the link expired" : "link wygasł",
- "sharing is disabled" : "udostępnianie jest wyłączone",
- "For more info, please ask the person who sent this link." : "Aby uzyskać więcej informacji, zapytaj osobę, która wysłała ten link.",
- "Share with" : "Udostępnij dla"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Użyj tej metody, aby udostępniać pliki osobom lub zespołom w swojej organizacji. Jeśli odbiorca ma już dostęp do udostępnionego pliku, ale nie może go zlokalizować, możesz wysłać mu wewnętrzny link do udostępniania, aby ułatwić dostęp.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Użyj tej metody, aby udostępniać pliki osobom lub organizacjom spoza Twojej organizacji. Pliki i katalogi można udostępniać za pośrednictwem publicznych linków udostępniania i adresów e-mail. Możesz również udostępniać pliki innym kontom Nextcloud hostowanym na różnych instancjach, używając ich identyfikatora Chmury Federacyjnej.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Udostępnienia, które nie są częścią udostępnień wewnętrznych lub zewnętrznych. Mogą to być udostępnienia z aplikacji lub innych źródeł.",
+ "Share with accounts, teams, federated cloud id" : "Udostępnij kontom, zespołom, ID Chmury Federacyjnej",
+ "Share with accounts and teams" : "Udostępnij kontom i zespołom",
+ "Federated cloud ID" : "Federacyjny identyfikator chmury",
+ "Email, federated cloud id" : "E-mail, ID Chmury Federacyjnej",
+ "Filename must not be empty." : "Nazwa pliku nie może być pusta."
},
"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);");
diff --git a/apps/files_sharing/l10n/pl.json b/apps/files_sharing/l10n/pl.json
index 2845b311f24..9094487ffe2 100644
--- a/apps/files_sharing/l10n/pl.json
+++ b/apps/files_sharing/l10n/pl.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Oczekiwanie…",
- "error" : "błąd",
- "finished" : "zakończone",
- "This will stop your current uploads." : "Spowoduje to zatrzymanie wysyłania plików.",
- "Move or copy" : "Przenieś lub kopiuj",
- "Download" : "Pobierz",
- "Delete" : "Usuń",
- "You can upload into this folder" : "Możesz wysłać do tego katalogu",
- "Terms of service" : "Warunki usługi",
- "Show list view" : "Pokaż widok listy",
- "Show grid view" : "Pokaż widok siatki",
- "No compatible server found at {remote}" : "Nie znaleziono kompatybilnego serwera na {remote}",
- "Invalid server URL" : "Nieprawidłowy adres URL serwera",
- "Failed to add the public link to your Nextcloud" : "Nie udało się dodać linku publicznego do Nextcloud",
"File shares" : "Udostępniony plik",
"Downloaded via public link" : "Pobrano przez link publiczny",
"Downloaded by {email}" : "Pobrano przez {email}",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "Udostępnianie pliku {file} dla {user} wygasło",
"Share for file {file} expired" : "Udostępnianie pliku {file} wygasło",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Plik lub katalog udostępniony za pomocą e-maila lub linku publicznego został <strong>pobrany</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Pliki zostały <strong>przesłane</strong> do katalogu udostępnionego pocztą lub odnośnikiem publicznym",
"A file or folder was shared from <strong>another server</strong>" : "Plik lub katalog został udostępniony z <strong>innego serwera</strong>",
- "Files" : "Pliki",
+ "Sharing" : "Udostępnianie",
"A file or folder has been <strong>shared</strong>" : "Plik lub katalog został <strong>udostępniony</strong>",
"Shared link" : "Udostępnij link",
"Wrong share ID, share does not exist" : "Złe ID udostępnienia, udostępnienie nie istnieje",
@@ -76,32 +63,46 @@
"Please specify a file or folder path" : "Podaj ścieżkę do pliku lub katalogu",
"Wrong path, file/folder does not exist" : "Błędna ścieżka, plik/katalog nie istnieje",
"Could not create share" : "Nie można utworzyć udostępnienia",
- "Invalid permissions" : "Nieprawidłowe uprawnienia",
- "Invalid date, date format must be YYYY-MM-DD" : "Nieprawidłowa data, data musi być w formacie RRRR-MM-DD",
+ "Please specify a valid account to share with" : "Podaj prawidłowe konto, któremu chcesz udostępnić",
"Group sharing is disabled by the administrator" : "Udostępnianie grupowe jest wyłączone przez administratora",
"Please specify a valid group" : "Podaj prawidłową grupę",
"Public link sharing is disabled by the administrator" : "Udostępnianie linków publicznych zostało wyłączone przez administratora",
- "Public upload disabled by the administrator" : "Przesyłanie publiczne zostało wyłączone przez administratora",
- "Public upload is only possible for publicly shared folders" : "Przesyłanie publiczne jest możliwe tylko w przypadku katalogów udostępnianych publicznie",
+ "Please specify a valid email address" : "Proszę podać prawidłowy adres e-mail",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Udostępnienie %s wysyłanego hasła przez Nextcloud Talk nie powiodło się, ponieważ Nextcloud Talk nie jest włączony",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Udostępnienie %1$s nie powiodło się, ponieważ zaplecze nie zezwala na udostępnianie typu %2$s",
+ "Please specify a valid federated account ID" : "Podaj prawidłowy identyfikator konta federacyjnego",
"Please specify a valid federated group ID" : "Podaj prawidłowy ID grupy federacyjnej",
- "You cannot share to a Circle if the app is not enabled" : "Nie możesz udostępnić w Kręgach, jeśli aplikacja jest wyłączona",
- "Please specify a valid circle" : "Podaj prawidłowy krąg",
+ "You cannot share to a Team if the app is not enabled" : "Nie możesz udostępniać zespołom, jeśli aplikacja \"Zespoły\" nie jest włączona",
+ "Please specify a valid team" : "Proszę podać prawidłowy zespół",
"Sharing %s failed because the back end does not support room shares" : "Udostępnienie %s nie powiodło się, ponieważ zaplecze nie obsługuje udostępnień pokoju",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Udostępnienie %s nie powiodło się, ponieważ oprogramowanie nie obsługuje udostępniania ScienceMesh",
"Unknown share type" : "Nieznany typ udostępnienia",
"Not a directory" : "Nie jest katalogiem",
"Could not lock node" : "Nie można zablokować powiązania",
- "Could not lock path" : "Nie można zablokować ścieżki",
- "Wrong or no update parameter given" : "Brakujący lub błędny parametr aktualizacji",
+ "Public upload is only possible for publicly shared folders" : "Przesyłanie publiczne jest możliwe tylko w przypadku katalogów udostępnianych publicznie",
"Share must at least have READ or CREATE permissions" : "Udostępnienie musi mieć co najmniej uprawnienia do ODCZYTU lub TWORZENIA",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Udostępnienie musi mieć uprawnienie do ODCZYTU, jeśli ustawiono uprawnienie do AKTUALIZACJI lub USUWANIA",
+ "Public upload disabled by the administrator" : "Przesyłanie publiczne zostało wyłączone przez administratora",
+ "Could not lock path" : "Nie można zablokować ścieżki",
+ "no sharing rights on this item" : "brak praw do udostępniania tego elementu",
+ "You are not allowed to edit incoming shares" : "Nie masz uprawnień do modyfikowania przychodzących udostępnień",
+ "Wrong or no update parameter given" : "Brakujący lub błędny parametr aktualizacji",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Wysyłanie hasła przez Nextcloud Talk\" w celu udostępnienia pliku lub katalogu nie powiodło się, ponieważ usługa Nextcloud Talk jest wyłączona.",
+ "Custom share link tokens have been disabled by the administrator" : "Administrator wyłączył niestandardowe tokeny linków udostępniania",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tokeny muszą zawierać co najmniej 1 znak i mogą zawierać wyłącznie litery, cyfry lub myślnik",
+ "Invalid date. Format must be YYYY-MM-DD" : "Nieprawidłowa data. Format musi być RRRR-MM-DD",
+ "No sharing rights on this item" : "Brak praw do udostępniania tego elementu",
+ "Invalid share attributes provided: \"%s\"" : "Podano nieprawidłowe atrybuty udziału: „%s”",
+ "You are not allowed to send mail notifications" : "Nie masz uprawnień do wysyłania powiadomień e-mail",
+ "No mail notification configured for this share type" : "Dla tego typu udziału nie skonfigurowano żadnego powiadomienia e-mail",
+ "Wrong password" : "Złe hasło",
+ "Error while sending mail notification" : "Wystąpił błąd podczas wysyłania powiadomienia e-mail",
+ "Failed to generate a unique token" : "Nie udało się wygenerować unikalnego tokena",
+ "This share does not exist or is no longer available" : "Ten współudział nie istnieje lub nie jest już dostępny",
"shared by %s" : "udostępnione przez %s",
- "Download all files" : "Pobierz wszystkie pliki",
- "Direct link" : "Bezpośredni link",
+ "Download" : "Pobierz",
"Add to your %s" : "Dodaj do %s",
+ "Direct link" : "Bezpośredni link",
"Share API is disabled" : "API udostępniania jest wyłączone",
"File sharing" : "Udostępnianie pliku",
"Share will expire tomorrow" : "Udostępnienie wygaśnie jutro",
@@ -110,64 +111,133 @@
"You received {share} to group {group} as a share by {user}" : "Otrzymałeś {share} do grupy {group} udostępnione przez {user}",
"Accept" : "Akceptuj",
"Decline" : "Odrzuć",
- "Sharing" : "Udostępnianie",
+ "Remember to upload the files to %s" : "Pamiętaj o przesłaniu plików do %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Uprzejmie przypominamy, że nie przesłałeś jeszcze żadnych plików do udostępnionego katalogu.",
+ "Open \"%s\"" : "Otwórz \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Aplikacja umożliwia ludziom udostępnianie plików w Nextcloud. Jeśli ta opcja jest włączona, administrator może wybrać, które grupy mogą udostępniać pliki. Odpowiedni ludzie mogą następnie udostępniać pliki i katalogi innym kontom i grupom w Nextcloud. Ponadto, jeśli administrator włączy funkcję udostępniania przez odnośnik, można użyć zewnętrznego odnośnika do udostępniania plików innym ludziom poza Nextcloud. Administratorzy mogą również wymuszać hasła, daty wygaśnięcia i udostępnienia między serwerami za pośrednictwem odnośników udostępnienia, a także udostępnienia z urządzeń mobilnych.\nWyłączenie tej funkcji powoduje usunięcie udostępnionych plików i katalogów na serwerze dla wszystkich odbiorców, a także klientów synchronizacji i aplikacji mobilnych. Więcej informacji można znaleźć w dokumentacji Nextcloud.",
+ "People" : "Osoby",
+ "Filter accounts" : "Filtruj konta",
+ "The request will expire on {date} at midnight and will be password protected." : "Prośba wygaśnie {date} o północy i będzie chronione hasłem.",
+ "The request will expire on {date} at midnight." : "Prośba wygaśnie {date} o północy.",
+ "The request will be password protected." : "Żądanie będzie chronione hasłem.",
+ "When should the request expire?" : "Kiedy żądanie powinno wygasnąć?",
+ "Set a submission expiration date" : "Ustaw datę ważności zgłoszenia",
+ "Expiration date" : "Data wygaśnięcia",
+ "Select a date" : "Wybierz datę",
+ "Your administrator has enforced a {count} days expiration policy." : "Administrator wprowadził zasadę wygasania po {count} dniach.",
+ "What password should be used for the request?" : "Jakiego hasła należy użyć do żądania?",
+ "Set a password" : "Ustaw hasło",
+ "Password" : "Hasło",
+ "Enter a valid password" : "Wprowadź prawidłowe hasło",
+ "Generate a new password" : "Wygeneruj nowe hasło",
+ "Your administrator has enforced a password protection." : "Administrator wymusił ochronę hasłem.",
+ "Automatically copying failed, please copy the share link manually" : "Automatyczne kopiowanie nie powiodło się. Skopiuj ręcznie odnośnik udostępniania",
+ "Link copied" : "Link skopiowany",
+ "Email already added" : "Adres e-mail został już dodany",
+ "Invalid email address" : "Nieprawidłowy adres e-mail",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Podany adres e-mail jest nieprawidłowy: {emails}","Poniższe adresy e-mail są nieprawidłowe: {emails}","Poniższe adresy e-mail są nieprawidłowe: {emails}","Poniższe adresy e-mail są nieprawidłowe: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["Dodano już {count} adres e-mail","Dodano już {count} adresy e-mail","Dodano już {count} adresów e-mail","Dodano już {count} adresów e-mail"],
+ "_{count} email address added_::_{count} email addresses added_" : ["Dodano {count} adres e-mail","Dodano {count} adresy e-mail","Dodano {count} adresów e-mail","Dodano {count} adresów e-mail"],
+ "You can now share the link below to allow people to upload files to your directory." : "Możesz teraz udostępnić poniższy odnośnik, aby umożliwić innym przesyłanie plików do Twojego katalogu.",
+ "Share link" : "Udostępnij link",
+ "Copy" : "Skopiuj",
+ "Send link via email" : "Wyślij link mailem",
+ "Enter an email address or paste a list" : "Wpisz adres e-mail lub wklej listę",
+ "Remove email" : "Usuń e-mail",
+ "Select a destination" : "Wybierz miejsce docelowe",
+ "Select" : "Wybierz",
+ "What are you requesting?" : "O co prosisz?",
+ "Request subject" : "Temat prośby",
+ "Birthday party photos, History assignment…" : "Zdjęcia z urodzin, zadanie z historii…",
+ "Where should these files go?" : "Gdzie powinny znaleźć się te pliki?",
+ "Upload destination" : "Miejsce docelowe przesyłania",
+ "Revert to default" : "Przywróć ustawienia domyślne",
+ "The uploaded files are visible only to you unless you choose to share them." : "Przesłane pliki są widoczne tylko dla Ciebie, chyba że zdecydujesz się je udostępnić.",
+ "Add a note" : "Dodaj notatkę",
+ "Note for recipient" : "Notatka dla odbiorcy",
+ "Add a note to help people understand what you are requesting." : "Dodaj notatkę, aby pomóc innym zrozumieć, o co prosisz.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Możesz dodać odnośniki, datę lub inne informacje, które pomogą odbiorcy zrozumieć, o co prosisz.",
+ "Close" : "Zamknij",
+ "_Send email and close_::_Send {count} emails and close_" : ["Wyślij e-mail i zamknij","Wyślij {count} e-maile i zamknij","Wyślij {count} e-maili i zamknij","Wyślij {count} e-maili i zamknij"],
+ "Please select a folder, you cannot share the root directory." : "Wybierz katalog. Nie możesz udostępnić katalogu głównego.",
+ "File request created" : "Utworzono prośbę o plik",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Utworzono prośbę o plik i e-mail został wysłany","Utworzono prośbę o plik i wysłano {count} wiadomości e-mail","Utworzono prośbę o plik i wysłano {count} wiadomości e-mail","Utworzono prośbę o plik i wysłano {count} wiadomości e-mail"],
+ "Error creating the share: {errorMessage}" : "Błąd podczas tworzenia udostępnienia: {errorMessage}",
+ "Error creating the share" : "Błąd podczas tworzenia udostępnienia",
+ "Error sending emails: {errorMessage}" : "Błąd podczas wysyłania e-maili: {errorMessage}",
+ "Error sending emails" : "Wystąpił błąd podczas wysyłania e-maili",
+ "Create a file request" : "Utwórz żądanie pliku",
+ "Collect files from others even if they do not have an account." : "Zbieraj pliki od innych, nawet jeśli nie mają oni konta.",
+ "To ensure you can receive files, verify you have enough storage available." : "Aby mieć pewność, że będziesz mógł odbierać pliki, sprawdź, czy masz wystarczającą ilość wolnego miejsca.",
+ "File request" : "Prośba o plik",
+ "Previous step" : "Poprzedni krok",
+ "Cancel" : "Anuluj",
+ "Cancel the file request creation" : "Anuluj tworzenie prośby o plik",
+ "Close without sending emails" : "Zamknij bez wysyłania e-maili",
+ "Continue" : "Kontynuuj",
"Error while toggling options" : "Błąd podczas przełączania opcji",
- "Set default folder for accepted shares" : "Ustaw domyślny katalog dla zaakceptowanych udostępnień",
- "Reset" : "Resetuj",
- "Reset folder to system default" : "Zresetuj katalog do domyślnych ustawień systemu",
+ "Accept shares from other accounts and groups by default" : "Domyślnie akceptuj współdzielenie z innych kont i grup",
"Choose a default folder for accepted shares" : "Wybierz domyślny katalog dla zaakceptowanych udostępnień",
"Invalid path selected" : "Wybrano nieprawidłową ścieżkę",
"Unknown error" : "Nieznany błąd",
- "Open Sharing Details" : "Otwórz szczegóły udostępniania",
+ "Set default folder for accepted shares" : "Ustaw domyślny katalog dla zaakceptowanych udostępnień",
+ "Reset" : "Resetuj",
+ "Reset folder to system default" : "Zresetuj katalog do domyślnych ustawień systemu",
+ "Share expiration: {date}" : "Data wygaśnięcia udostępnienia: {date}",
+ "Share Expiration" : "Wygaśnięcie udostępnienia",
"group" : "grupa",
"conversation" : "rozmowa",
"remote" : "zdalny",
"remote group" : "grupa zdalna",
"guest" : "gość",
+ "by {initiator}" : "przez {initiator}",
"Shared with the group {user} by {owner}" : "Udostępnione grupie {user} przez {owner}",
"Shared with the conversation {user} by {owner}" : "Udostępnione w rozmowie {user} przez {owner}",
"Shared with {user} by {owner}" : "Udostępnione {user} przez {owner}",
+ "Open Sharing Details" : "Otwórz szczegóły udostępniania",
"Added by {initiator}" : "Dodane przez {initiator}",
"Via “{folder}”" : "Przez “{folder}”",
"Unshare" : "Zatrzymaj udostępnianie",
- "Internal link" : "Link wewnętrzny",
"Cannot copy, please copy the link manually" : "Nie można skopiować, spróbuj skopiować link ręcznie",
- "Copy internal link to clipboard" : "Kopiuj link wewnętrzny do schowka",
- "Link copied" : "Link skopiowany",
- "Please enter the following required information before creating the share" : "Wprowadź następujące wymagane informacje przed udzieleniem dostępu",
- "Password protection (enforced)" : "Ochrona hasłem (wymuszona)",
- "Password protection" : "Ochrona hasła",
- "Enter a password" : "Wprowadź hasło",
- "Expiration date (enforced)" : "Data ważności (wymuszona)",
- "Enter a date" : "Podaj datę",
- "Create share" : "Utwórz udostępnienie",
- "Cancel" : "Anuluj",
- "Customize link" : "Dostosuj link",
- "Add another link" : "Dodaj kolejny link",
- "Create a new share link" : "Utwórz nowy link udostępnienia",
+ "Copy internal link" : "Kopiuj link wewnętrzny",
+ "For people who already have access" : "Dla osób, które już mają dostęp",
+ "Internal link" : "Link wewnętrzny",
"{shareWith} by {initiator}" : "{shareWith} przez {initiator}",
"Shared via link by {initiator}" : "Udostępnione przez link od {initiator}",
+ "File request ({label})" : "Prośba o plik ({label})",
"Mail share ({label})" : "Udostępnij pocztę ({label})",
"Share link ({label})" : "Udostępnij link ({label})",
+ "Mail share" : "Udostępnij pocztę",
"Share link ({index})" : "Udostępnij link ({index})",
- "Share link" : "Udostępnij link",
+ "Create public link" : "Utwórz link publiczny",
"Actions for \"{title}\"" : "Akcje dla \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Kopiuj link publiczny dla \"{title}\" do schowka",
+ "Copy public link of \"{title}\"" : "Kopiuj publiczny link do \"{title}\"",
"Error, please enter proper password and/or expiration date" : "Błąd, wprowadź prawidłowe hasło i/lub datę ważności",
"Link share created" : "Utworzony link udostępniania",
"Error while creating the share" : "Błąd podczas tworzenia udostępniania",
+ "Please enter the following required information before creating the share" : "Wprowadź następujące wymagane informacje przed udzieleniem dostępu",
+ "Password protection (enforced)" : "Ochrona hasłem (wymuszona)",
+ "Password protection" : "Ochrona hasła",
+ "Enter a password" : "Wprowadź hasło",
+ "Enable link expiration (enforced)" : "Włącz wygaśnięcie odnośnika (wymuszone)",
+ "Enable link expiration" : "Włącz wygaśnięcie odnośnika",
+ "Enter expiration date (enforced)" : "Podaj datę ważności (wymuszone)",
+ "Enter expiration date" : "Wprowadź datę ważności",
+ "Create share" : "Utwórz udostępnienie",
+ "Customize link" : "Dostosuj link",
+ "Generate QR code" : "Wygeneruj kod QR",
+ "Add another link" : "Dodaj kolejny link",
+ "Create a new share link" : "Utwórz nowy link udostępnienia",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Opcje szybkiego udostępniania, obecnie wybrane to „{selectedOption}”",
"View only" : "Tylko podgląd",
"Can edit" : "Może modyfikować",
- "File drop" : "Upuść plik",
"Custom permissions" : "Uprawnienia niestandardowe",
- "Search for share recipients" : "Szukaj odbiorców udostępnienia",
- "No recommendations. Start typing." : "Brak rekomendacji. Możesz napisać.",
"Resharing is not allowed" : "Udostępnianie dalej jest niedozwolone",
"Name or email …" : "Nazwa lub adres e-mail…",
"Name, email, or Federated Cloud ID …" : "Nazwa, adres e-mail lub ID Chmury Federacyjnej…",
"Searching …" : "Wyszukiwanie…",
"No elements found." : "Nie znaleziono elementów.",
- "Search globally" : "Szukaj globalnie",
+ "Search everywhere" : "Szukaj wszędzie",
"Guest" : "Gość",
"Group" : "Grupa",
"Email" : "E-mail",
@@ -176,61 +246,99 @@
"Deck board" : "Tablica Deck",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "na {server}",
+ "Enter external recipients" : "Wprowadź odbiorców zewnętrznych",
+ "Search for internal recipients" : "Wyszukaj odbiorców wewnętrznych",
+ "Note from" : "Notatka od",
+ "Note:" : "Notatka:",
+ "File drop" : "Upuść plik",
+ "Upload files to {foldername}." : "Prześlij pliki do {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Przesyłając pliki, wyrażasz zgodę na warunki korzystania z usługi.",
+ "Successfully uploaded files" : "Pomyślnie przesłano pliki",
+ "View terms of service" : "Zobacz warunki korzystania z usługi",
+ "Terms of service" : "Warunki usługi",
+ "Share with {user}" : "Udostępnij {user}",
+ "Share with email {email}" : "Udostępnij na e-mail {email}",
+ "Share with group" : "Udostępnij grupie",
+ "Share in conversation" : "Udostępnij w rozmowie",
+ "Share with {user} on remote server {server}" : "Udostępnij {user} na zdalnym serwerze {server}",
+ "Share with remote group" : "Udostępnij grupie zdalnej",
+ "Share with guest" : "Współdziel z gościem",
+ "Update share" : "Zaktualizuj udostępnienie",
+ "Save share" : "Zapisz udostępnienie",
+ "Read" : "Czytaj",
+ "Create" : "Utwórz",
+ "Edit" : "Edytuj",
+ "Share" : "Udostępnij",
+ "Delete" : "Usuń",
+ "Password field cannot be empty" : "Pole hasła nie może być puste",
+ "Replace current password" : "Zamień obecne hasło",
+ "Failed to generate a new token" : "Nie udało się wygenerować nowego tokena",
"Allow upload and editing" : "Zezwalaj na wysyłanie i edytowanie",
"Allow editing" : "Zezwalaj na edytowanie",
"Upload only" : "Tylko wyślij",
"Advanced settings" : "Ustawienia zaawansowane",
"Share label" : "Udostępnij etykietę",
+ "Share link token" : "Udostępnij token linku",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Ustaw publiczny token linku udostępniania na coś łatwego do zapamiętania lub wygeneruj nowy token. Nie zaleca się używania łatwego do zgadnięcia tokena dla udostępnień zawierających poufne informacje.",
+ "Generating…" : "Generowanie…",
+ "Generate new token" : "Wygeneruj nowy token",
"Set password" : "Ustaw hasło",
- "Password" : "Hasło",
"Password expires {passwordExpirationTime}" : "Hasło wygasa {passwordExpirationTime}",
"Password expired" : "Hasło wygasło",
"Video verification" : "Weryfikacja wideo",
+ "Expiration date (enforced)" : "Data ważności (wymuszona)",
"Set expiration date" : "Ustaw datę wygaśnięcia",
- "Expiration date" : "Data wygaśnięcia",
"Hide download" : "Ukryj pobieranie",
- "Allow download" : "Zezwól na pobieranie",
+ "Allow download and sync" : "Zezwalaj na pobieranie i synchronizację",
"Note to recipient" : "Informacja dla odbiorcy",
"Enter a note for the share recipient" : "Napisz notatkę dla odbiorcy udostępnienia",
- "Read" : "Czytaj",
- "Create" : "Utwórz",
- "Edit" : "Edytuj",
- "Share" : "Udostępnij",
+ "Show files in grid view" : "Pokaż pliki w widoku siatki",
"Delete share" : "Usuń udostępnianie",
- "Update share" : "Zaktualizuj udostępnienie",
- "Save share" : "Zapisz udostępnienie",
"Others with access" : "Inni z dostępem",
+ "No other accounts with access found" : "Nie znaleziono innych kont z dostępem",
"Toggle list of others with access to this directory" : "Przełącz listę innych z dostępem do tego katalogu",
"Toggle list of others with access to this file" : "Przełącz listę innych z dostępem do tego pliku",
"Unable to fetch inherited shares" : "Nie można pobrać odziedziczonych udostępnień",
+ "Link shares" : "Udostępnianie linków",
+ "Shares" : "Udostępnienia",
+ "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Udostępniaj pliki w swojej organizacji. Odbiorcy, którzy już mogą wyświetlać plik, mogą także użyć tego linku dla łatwiejszego dostępu.",
+ "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Udostępniaj pliki osobom spoza organizacji poprzez publiczne linki i adresy e-mail. Możesz także udostępniać na konta Nextcloud w innych instancjach, używając ich federacyjnego identyfikatora chmury.",
+ "Shares from apps or other sources which are not included in internal or external shares." : "Udostępnienia z aplikacji lub innych źródeł, które nie są uwzględnione w udostępnieniach wewnętrznych lub zewnętrznych.",
+ "Type names, teams, federated cloud IDs" : "Wpisz nazwy, zespoły, identyfikatory federacyjnej chmury",
+ "Type names or teams" : "Wpisz nazwy lub zespoły",
+ "Type a federated cloud ID" : "Wpisz identyfikator federacyjnej chmury",
+ "Type an email" : "Wpisz adres e-mail",
+ "Type an email or federated cloud ID" : "Wpisz adres e-mail lub identyfikator federacyjnej chmury",
"Unable to load the shares list" : "Nie można pobrać listy udostępnień",
"Expires {relativetime}" : "Wygasa {relativetime}",
"this share just expired." : "te udostępnienie właśnie wygasło.",
"Shared with you by {owner}" : "Udostępnione Tobie przez {owner}",
+ "Internal shares" : "Udostępnianie wewnętrzne",
+ "Internal shares explanation" : "Objaśnienie udostępnień wewnętrznych",
+ "External shares" : "Udostępnienia zewnętrzne",
+ "External shares explanation" : "Objaśnienie udostępnień zewnętrznych",
+ "Additional shares" : "Dodatkowe udostępnienia",
+ "Additional shares explanation" : "Objaśnienia dodatkowych udostępnień",
+ "Link to a file" : "Link do pliku",
"_Accept share_::_Accept shares_" : ["Zaakceptuj udostępnienie","Zaakceptuj udostępnienia","Zaakceptuj udostępnienia","Zaakceptuj udostępnienia"],
"Open in Files" : "Otwórz w Plikach",
"_Reject share_::_Reject shares_" : ["Odrzuć udostępnienie","Odrzuć udostępnienia","Odrzuć udostępnienia","Odrzuć udostępnienia"],
"_Restore share_::_Restore shares_" : ["Przywróć udostępnienie","Przywróć udostępnienia","Przywróć udostępnienia","Przywróć udostępnienia"],
"Shared" : "Udostępniono",
"Shared by {ownerDisplayName}" : "Udostępnione przez {ownerDisplayName}",
- "Show sharing options" : "Pokaż opcje udostępniania",
- "Link to a file" : "Link do pliku",
- "Error creating the share: {errorMessage}" : "Błąd podczas tworzenia udostępnienia: {errorMessage}",
- "Error creating the share" : "Błąd podczas tworzenia udostępnienia",
- "Error updating the share: {errorMessage}" : "Błąd podczas aktualizacji udostępnienia: {errorMessage}",
- "Error updating the share" : "Błąd podczas aktualizacji udostępnienia",
- "File \"{path}\" has been unshared" : "Zatrzymane udostępnienie dla pliku \"{path}\"",
- "Folder \"{path}\" has been unshared" : "Zatrzymane udostępnienie dla katalogu \"{path}\"",
- "Share {propertyName} saved" : "Zapisano udostępnienie {propertyName}",
- "Shared by" : "Udostępnione przez",
- "Shared with" : "Udostępnione",
- "Password created successfully" : "Hasło utworzone pomyślnie",
- "Error generating password from password policy" : "Błąd generowania hasła z zasad haseł",
- "Shared with you and the group {group} by {owner}" : "Udostępnione Tobie i grupie {group} przez {owner}",
- "Shared with you and {circle} by {owner}" : "Udostępnione Tobie i {circle} przez {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Udostępnione Tobie i w rozmowie {conversation} przez {owner}",
- "Shared with you in a conversation by {owner}" : "Udostępnione Tobie w rozmowie przez {owner}",
- "Shares" : "Udostępnienia",
+ "Shared multiple times with different people" : "Udostępniony wiele razy różnym osobom",
+ "Sharing options" : "Opcje udostępniania",
+ "Shared with others" : "Udostępnione innym",
+ "Create file request" : "Utwórz prośbę o plik",
+ "Upload files to {foldername}" : "Prześlij pliki do {foldername}",
+ "Public file share" : "Publiczny udział plików",
+ "Publicly shared file." : "Plik udostępniony publicznie.",
+ "No file" : "Brak pliku",
+ "The file shared with you will show up here" : "Udostępniony Ci plik pojawi się tutaj",
+ "Public share" : "Udostępnienie publiczne",
+ "Publicly shared files." : "Pliki udostępnione publicznie.",
+ "No files" : "Brak plików",
+ "Files and folders shared with you will show up here" : "Tutaj pojawią się udostępnione Ci pliki i katalogi",
"Overview of shared files." : "Przegląd udostępnionych plików.",
"No shares" : "Brak udostępnień",
"Files and folders you shared or have been shared with you will show up here" : "Tutaj pojawią się pliki i katalogi, które udostępniłeś lub zostały Tobie udostępnione",
@@ -238,7 +346,6 @@
"List of files that are shared with you." : "Lista plików, które zostały Tobie udostępnione.",
"Nothing shared with you yet" : "Nie masz jeszcze nic udostępnionego",
"Files and folders others shared with you will show up here" : "Tutaj pojawią się pliki i katalogi udostępnione Tobie przez inne osoby",
- "Shared with others" : "Udostępnione innym",
"List of files that you shared with others." : "Lista plików udostępnionych innym.",
"Nothing shared yet" : "Jeszcze nic nie udostępniłeś",
"Files and folders you shared will show up here" : "Tutaj pojawią się udostępnione pliki i katalogi",
@@ -246,6 +353,10 @@
"List of files that are shared by link." : "Lista plików udostępnianych za pomocą linku.",
"No shared links" : "Brak udostępnionych linków",
"Files and folders you shared by link will show up here" : "Tutaj pojawią się pliki i katalogi udostępnione przez link",
+ "File requests" : "Prośba o plik",
+ "List of file requests." : "Lista próśb o plik",
+ "No file requests" : "Brak próśb o plik",
+ "File requests you have created will show up here" : "Prośby o pliki, które zgłosiłeś, będą tutaj wyświetlone",
"Deleted shares" : "Usunięte udostępnienia",
"List of shares you left." : "Lista udostępnień, które pozostawiłeś.",
"No deleted shares" : "Brak usuniętych udostępnień",
@@ -254,48 +365,87 @@
"List of unapproved shares." : "Lista niezatwierdzonych udostępnień.",
"No pending shares" : "Brak oczekujących udostępnień",
"Shares you have received but not approved will show up here" : "Tutaj pojawią się udostępnienia, które otrzymałeś, ale nie zostały zatwierdzone",
+ "Error deleting the share: {errorMessage}" : "Błąd podczas usuwania udostępnienia: {errorMessage}",
+ "Error deleting the share" : "Błąd podczas usuwania udostępnienia",
+ "Error updating the share: {errorMessage}" : "Błąd podczas aktualizacji udostępnienia: {errorMessage}",
+ "Error updating the share" : "Błąd podczas aktualizacji udostępnienia",
+ "File \"{path}\" has been unshared" : "Zatrzymane udostępnienie dla pliku \"{path}\"",
+ "Folder \"{path}\" has been unshared" : "Zatrzymane udostępnienie dla katalogu \"{path}\"",
+ "Could not update share" : "Nie można zaktualizować współudziału",
+ "Share saved" : "Zapisano udostępnienie",
+ "Share expiry date saved" : "Zapisano datę ważności udziału",
+ "Share hide-download state saved" : "Udostępnij ukryj-pobierz status zapisany",
+ "Share label saved" : "Etykieta udostępnienia zapisana",
+ "Share note for recipient saved" : "Zapisano udostępnianą notatkę dla odbiorcy",
+ "Share password saved" : "Hasło udostępnienia zapisane",
+ "Share permissions saved" : "Zapisano uprawnienia udostępniania",
+ "To upload files to {folder}, you need to provide your name first." : "Aby przesłać pliki do {folder}, musisz najpierw podać swoje imię.",
+ "Upload files to {folder}" : "Prześlij pliki do {folder}",
+ "Please confirm your name to upload files to {folder}" : "Proszę potwierdź swoje imię, aby przesłać pliki do {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} udostępnił Ci katalog.",
+ "Names must not be empty." : "Imię nie może być puste.",
+ "Names must not start with a dot." : "Imię nie może zaczynać się od kropki.",
+ "\"{char}\" is not allowed inside a name." : "Znak \"{char}\" nie jest dozwolony w nazwie.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" jest nazwą zastrzeżoną i nie jest dozwolona.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" nie jest dozwoloną nazwą.",
+ "Names must not end with \"{extension}\"." : "Nazwy nie mogą kończyć się na \"{extension}\".",
+ "Invalid name." : "Nieprawidłowa nazwa.",
+ "Shared by" : "Udostępnione przez",
+ "Shared with" : "Udostępnione",
+ "Password created successfully" : "Hasło utworzone pomyślnie",
+ "Error generating password from password policy" : "Błąd generowania hasła z zasad haseł",
+ "Shared with you and the group {group} by {owner}" : "Udostępnione Tobie i grupie {group} przez {owner}",
+ "Shared with you and {circle} by {owner}" : "Udostępnione Tobie i {circle} przez {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Udostępnione Tobie i w rozmowie {conversation} przez {owner}",
+ "Shared with you in a conversation by {owner}" : "Udostępnione Tobie w rozmowie przez {owner}",
+ "Share not found" : "Nie znaleziono udostępnienia",
+ "Back to %s" : "Powrót do %s",
+ "Add to your Nextcloud" : "Dodaj do swojego Nextcloud",
+ "Waiting…" : "Oczekiwanie…",
+ "error" : "błąd",
+ "finished" : "zakończone",
+ "This will stop your current uploads." : "Spowoduje to zatrzymanie wysyłania plików.",
+ "Move or copy" : "Przenieś lub kopiuj",
+ "You can upload into this folder" : "Możesz wysłać do tego katalogu",
+ "Show list view" : "Pokaż widok listy",
+ "Show grid view" : "Pokaż widok siatki",
+ "No compatible server found at {remote}" : "Nie znaleziono kompatybilnego serwera na {remote}",
+ "Invalid server URL" : "Nieprawidłowy adres URL serwera",
+ "Failed to add the public link to your Nextcloud" : "Nie udało się dodać linku publicznego do Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "Nie możesz modyfikować udostępnionych odnośników, których nie jesteś właścicielem",
+ "Download all files" : "Pobierz wszystkie pliki",
+ "Link copied to clipboard" : "Link skopiowany do schowka",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Dodano już 1 adres e-mail","Dodano już {count} adresy e-mail","Dodano już {count} adresów e-mail","Dodano już {count} adresów e-mail"],
+ "_1 email address added_::_{count} email addresses added_" : ["Dodano 1 adres e-mail","Dodano {count} adresy e-mail","Dodano {count} adresów e-mail","Dodano {count} adresów e-mail"],
+ "Copy to clipboard" : "Kopiuj do schowka",
+ "Copy internal link to clipboard" : "Kopiuj link wewnętrzny do schowka",
+ "Only works for people with access to this folder" : "Działa tylko dla osób z dostępem do tego katalogu",
+ "Only works for people with access to this file" : "Działa tylko dla osób z dostępem do tego pliku",
+ "Copy public link of \"{title}\" to clipboard" : "Kopiuj link publiczny dla \"{title}\" do schowka",
+ "Search globally" : "Szukaj globalnie",
+ "Search for share recipients" : "Szukaj odbiorców udostępnienia",
+ "No recommendations. Start typing." : "Brak rekomendacji. Możesz napisać.",
+ "To upload files, you need to provide your name first." : "Aby przesłać pliki, musisz najpierw podać swoje imię i nazwisko.",
+ "Enter your name" : "Wpisz swoją nazwę",
+ "Submit name" : "Wyślij nazwę",
+ "Share with {userName}" : "Podziel się z {userName}",
+ "Show sharing options" : "Pokaż opcje udostępniania",
"Share note" : "Notatka udostępnienia",
"Upload files to %s" : "Wyślij pliki do %s",
+ "%s shared a folder with you." : "%s udostępnił Ci katalog.",
"Note" : "Notatka",
"Select or drop files" : "Wybierz lub upuść pliki",
"Uploading files" : "Wysyłanie plików",
"Uploaded files:" : "Wysłane pliki:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Wysyłając pliki, zgadzasz się na %1$swarunki korzystania z usługi%2$s.",
- "Add to your Nextcloud" : "Dodaj do swojego Nextcloud",
- "Files and folders others share with you will show up here" : "Tutaj pokażą się udostępnione pliki i katalogi przez innych",
- "Files and folders you share will show up here" : "Tutaj pokażą się pliki i katalogi, które udostępnisz",
- "Files and folders you share by link will show up here" : "Tutaj pokażą się pliki i katalogi, które udostępnisz linkiem",
- "Shares you deleted will show up here" : "Tutaj pojawią się usunięte udostępnienia",
- "Shares you have received but not confirmed will show up here" : "Tutaj pojawią się niepotwierdzone udostępnienia",
- "Shares will show up here" : "Tutaj pojawią się udostępnienia",
- "Restore" : "Przywróć",
- "Something happened. Unable to restore the share." : "Coś nie tak. Nie można przywrócić udostępnienia",
- "Something happened. Unable to accept the share." : "Coś się stało. Nie można zaakceptować udostępnienia.",
- "Something happened. Unable to reject the share." : "Coś się stało. Nie można odrzucić udostępnienia.",
- "No expiration date set" : "Nie ustawiono daty wygaśnięcia",
- "Please specify a valid user" : "Podaj prawidłowego użytkownika",
- "Please specify a valid federated user ID" : "Podaj prawidłowy ID użytkownika federacyjnego",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Aplikacja umożliwia użytkownikom udostępnianie plików w Nextcloud. Jeśli ta opcja jest włączona, administrator może wybrać, które grupy mogą udostępniać pliki. Odpowiedni użytkownicy mogą następnie udostępniać pliki i katalogi innym użytkownikom i grupom w Nextcloud. Ponadto, jeśli administrator włączy funkcję udostępniania przez link, można użyć zewnętrznego linku do udostępniania plików innym użytkownikom poza Nextcloud. Administratorzy mogą również wymuszać hasła, daty wygaśnięcia i udostępnienia między serwerami za pośrednictwem linków udostępnienia, a także udostępnienia z urządzeń mobilnych.\nWyłączenie tej funkcji powoduje usunięcie udostępnionych plików i katalogów na serwerze dla wszystkich odbiorców, a także klientów synchronizacji i aplikacji mobilnych. Więcej informacji można znaleźć w dokumentacji Nextcloud.",
- "Accept user and group shares by default" : "Domyślnie akceptuj udostępnienia użytkowników i grup",
- "Read only" : "Tylko do odczytu",
- "File drop (upload only)" : "Upuszczanie pliku (tylko wysyłanie)",
- "Upload" : "Wyślij",
- "Bundled permissions" : "Uprawnienia w pakiecie",
- "Only works for users with access to this folder" : "Działa tylko dla użytkowników mającym dostęp do tego katalogu",
- "Only works for users with access to this file" : "Działa tylko dla użytkowników mającym dostęp do tego pliku",
- "Circle" : "Krąg",
- "Update" : "Aktualizuj",
- "Share with " : "Udostępnij dla",
- "No other users with access found" : "Nie znaleziono innych użytkowników z dostępem",
- "No entries found in this folder" : "Brak wpisów w tym katalogu",
"Name" : "Nazwa",
- "Share time" : "Czas udostępnienia",
- "Sorry, this link does not seem to work anymore." : "Przepraszamy, ale wygląda na to, że ten link już nie działa.",
- "Reasons might be:" : "Możliwe powody:",
- "the item was removed" : "element został usunięty",
- "the link expired" : "link wygasł",
- "sharing is disabled" : "udostępnianie jest wyłączone",
- "For more info, please ask the person who sent this link." : "Aby uzyskać więcej informacji, zapytaj osobę, która wysłała ten link.",
- "Share with" : "Udostępnij dla"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Użyj tej metody, aby udostępniać pliki osobom lub zespołom w swojej organizacji. Jeśli odbiorca ma już dostęp do udostępnionego pliku, ale nie może go zlokalizować, możesz wysłać mu wewnętrzny link do udostępniania, aby ułatwić dostęp.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Użyj tej metody, aby udostępniać pliki osobom lub organizacjom spoza Twojej organizacji. Pliki i katalogi można udostępniać za pośrednictwem publicznych linków udostępniania i adresów e-mail. Możesz również udostępniać pliki innym kontom Nextcloud hostowanym na różnych instancjach, używając ich identyfikatora Chmury Federacyjnej.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Udostępnienia, które nie są częścią udostępnień wewnętrznych lub zewnętrznych. Mogą to być udostępnienia z aplikacji lub innych źródeł.",
+ "Share with accounts, teams, federated cloud id" : "Udostępnij kontom, zespołom, ID Chmury Federacyjnej",
+ "Share with accounts and teams" : "Udostępnij kontom i zespołom",
+ "Federated cloud ID" : "Federacyjny identyfikator chmury",
+ "Email, federated cloud id" : "E-mail, ID Chmury Federacyjnej",
+ "Filename must not be empty." : "Nazwa pliku nie może być pusta."
},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/pt_BR.js b/apps/files_sharing/l10n/pt_BR.js
index 67621cac4c7..c308cfdb122 100644
--- a/apps/files_sharing/l10n/pt_BR.js
+++ b/apps/files_sharing/l10n/pt_BR.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Aguarde...",
- "error" : "erro",
- "finished" : "terminou",
- "This will stop your current uploads." : "Isso interromperá seus envios atuais.",
- "Move or copy" : "Mover ou copiar",
- "Download" : "Baixar",
- "Delete" : "Excluir",
- "You can upload into this folder" : "Você pode enviar arquivos para esta pasta",
- "Terms of service" : "Termos de serviço",
- "Show list view" : "Mostrar visualização em lista",
- "Show grid view" : "Mostrar visualização em grade",
- "No compatible server found at {remote}" : "Nenhum servidor compativel encontrado em {remote}",
- "Invalid server URL" : "URL do servidor inválida",
- "Failed to add the public link to your Nextcloud" : "Ocorreu uma falha ao adicionar o link público ao seu Nextcloud",
"File shares" : "Compartilhamentos de arquivos",
"Downloaded via public link" : "Baixado via link público",
"Downloaded by {email}" : "Baixado por {email}",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "Compartilhamento do arquivo {file} com {user} expirado",
"Share for file {file} expired" : "Compartilhamento do arquivo {file} expirado",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Um arquivo ou pasta compartilhado por e-mail ou por link público foi <strong>baixado</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Os arquivos foram <strong>enviados</strong> para uma pasta compartilhada por e-mail ou por link público",
"A file or folder was shared from <strong>another server</strong>" : "Um arquivo ou pasta foi compartilhado a partir de <strong>outro servidor</strong>",
- "Files" : "Arquivos",
+ "Sharing" : "Compartilhando",
"A file or folder has been <strong>shared</strong>" : "Um arquivo ou pasta foi <strong>compartilhado</strong> ",
"Shared link" : "Link compartilhado",
"Wrong share ID, share does not exist" : "ID de compartilhamento incorreto, o compartilhamento não existe",
@@ -78,34 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "Por favor especifique um arquivo ou um caminho de pasta",
"Wrong path, file/folder does not exist" : "Caminho errado, arquivo/pasta não existe",
"Could not create share" : "Não foi possível criar o compartilhamento",
- "Invalid permissions" : "Permissões inválidas",
- "Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser YYYY-MM-DD",
- "Please specify a valid account to share with" : "Especifique uma conta válida com a qual compartilhar",
+ "Please specify a valid account to share with" : "Por favor, especifique uma conta válida com a qual compartilhar",
"Group sharing is disabled by the administrator" : "O compartilhamento para grupos foi desabilitado pelo administrador",
- "Please specify a valid group" : "Por favor especifique um grupo válido",
+ "Please specify a valid group" : "Por favor, especifique um grupo válido",
"Public link sharing is disabled by the administrator" : "O compartilhamento por link público foi desativado pelo administrador",
- "Public upload disabled by the administrator" : "O envio público foi desativado pelo administrador",
- "Public upload is only possible for publicly shared folders" : "O envio público só é possível para pastas compartilhadas publicamente",
+ "Please specify a valid email address" : "Por favor, especifique um endereço de e-mail válido",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "O compartilhamento %s falhou ao enviar a senha ao Nextcloud Talk porque este não está ativado",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "O compartilhamento %1$s falhou porque a infraestrutura não permite compartilhamentos do tipo %2$s",
- "Please specify a valid federated account ID" : "Especifique um ID de conta federada válido",
- "Please specify a valid federated group ID" : "Especifique um ID de grupo federado válido ",
- "You cannot share to a Circle if the app is not enabled" : "Você não pode compartilhar para um círculo se o aplicativo não está habilitado",
- "Please specify a valid circle" : "Por favor especifique um círculo válido",
- "Sharing %s failed because the back end does not support room shares" : "Falhou ao compartilhar %s porque o sistema não suporta compartilhamento de salas",
- "Sharing %s failed because the back end does not support ScienceMesh shares" : "Falha ao compartilhar %s porque o back-end não suporta compartilhamentos ScienceMesh",
+ "Please specify a valid federated account ID" : "Por favor, especifique um ID de conta federada válido",
+ "Please specify a valid federated group ID" : "Por favor, especifique um ID de grupo federado válido ",
+ "You cannot share to a Team if the app is not enabled" : "Você não pode compartilhar com uma Equipe se o aplicativo não estiver ativado",
+ "Please specify a valid team" : "Por favor, especifique uma equipe válida",
+ "Sharing %s failed because the back end does not support room shares" : "O compartilhamento de %s falhou porque o back-end não é compatível com compartilhamentos de salas",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "O compartilhamento de %s falhou porque o back-end não é compatível com os compartilhamentos ScienceMesh",
"Unknown share type" : "Tipo de compartilhamento desconhecido",
"Not a directory" : "Não é um diretório",
"Could not lock node" : "Não foi possível bloquear o nó",
+ "Public upload is only possible for publicly shared folders" : "O envio público só é possível para pastas compartilhadas publicamente",
+ "Share must at least have READ or CREATE permissions" : "O compartilhamento deve ter pelo menos permissões de READ (ler) ou CREATE (criar)",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "O compartilhamento deve ter permissão de READ (ler) se a permissão UPDATE (atualizar) ou DELETE (excluir) estiver definida",
+ "Public upload disabled by the administrator" : "Upload público foi desativado pelo administrador",
"Could not lock path" : "Não foi possível bloquear o caminho",
+ "no sharing rights on this item" : "sem permissões de compartilhamento para este item",
+ "You are not allowed to edit incoming shares" : "Você não tem permissão para editar compartilhamentos recebidos",
"Wrong or no update parameter given" : "O parâmetro da atualização fornecido está errado ou não existe",
- "Share must at least have READ or CREATE permissions" : "O compartilhamento deve ter pelo menos permissões de LER ou CRIAR",
- "Share must have READ permission if UPDATE or DELETE permission is set" : "O compartilhamento deve ter permissão de LEITURA se a permissão ATUALIZAÇÃO ou EXCLUSÃO estiver definida",
- "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "O \"envio da senha pelo Bate Papo Nextcloud\" para compartilhar um arquivo ou pasta falhou porque o Bate Papo Nextcloud não está habilitado. ",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "O \"envio da senha pelo Nextcloud Talk\" para compartilhar um arquivo ou pasta falhou porque o Nextcloud Talk não está ativado. ",
+ "Custom share link tokens have been disabled by the administrator" : "Tokens personalizados para links de compartilhamento foram desativados pelo administrador",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Os tokens devem conter pelo menos 1 caractere e podem incluir apenas letras, números ou um hífen",
+ "Invalid date. Format must be YYYY-MM-DD" : "Data inválida. O formato deve ser AAAA-MM-DD",
+ "No sharing rights on this item" : "Sem permissões de compartilhamento para este item",
+ "Invalid share attributes provided: \"%s\"" : "Atributos de compartilhamento inválidos fornecidos: \"%s\"",
+ "You are not allowed to send mail notifications" : "Você não tem permissão para enviar notificações por e-mail",
+ "No mail notification configured for this share type" : "Nenhuma notificação por e-mail configurada para este tipo de compartilhamento",
+ "Wrong password" : "Senha incorreta",
+ "Error while sending mail notification" : "Erro ao enviar notificação por e-mail",
+ "Failed to generate a unique token" : "Falha ao gerar um token único",
+ "This share does not exist or is no longer available" : "Este compartilhamento não existe ou não está mais disponível",
"shared by %s" : "compartilhado por %s",
- "Download all files" : "Baixar todos os arquivos",
- "Direct link" : "Link direto",
+ "Download" : "Baixar",
"Add to your %s" : "Adicione ao seu %s",
+ "Direct link" : "Link direto",
"Share API is disabled" : "O compartilhamento de API está desabilitado.",
"File sharing" : "Compartilhamento de arquivos",
"Share will expire tomorrow" : "Compartilhamento irá expirar amanhã",
@@ -114,140 +113,234 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Você recebeu {share} para o grupo {group} como um compartilhamento de {user}",
"Accept" : "Aceitar",
"Decline" : "Recusar",
- "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Este aplicativo permite que as pessoas compartilhem arquivos dentro do Nextcloud. Se ativado, o administrador pode escolher quais grupos podem compartilhar arquivos. As pessoas aplicáveis ​​podem então compartilhar arquivos e pastas com outras contas e grupos dentro do Nextcloud. Além disso, se o administrador ativar o recurso de compartilhamento de link, um link externo poderá ser usado para compartilhar arquivos com outras pessoas fora do Nextcloud. Os administradores também podem impor senhas, datas de expiração e permitir o compartilhamento de servidor para servidor por meio de links de compartilhamento, bem como compartilhamento de dispositivos móveis. \nDesativar o recurso remove arquivos e pastas compartilhados no servidor para todos os destinatários de compartilhamento e também nos clientes de sincronização e aplicativos móveis. Mais informações estão disponíveis na documentação do Nextcloud.",
- "Sharing" : "Compartilhando",
- "Accept shares from other accounts and groups by default" : "Aceitar compartilhamentos de outras contas e grupos por padrão",
+ "Remember to upload the files to %s" : "Lembre-se de enviar os arquivos para %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Gostaríamos de lembrar que você ainda não carregou nenhum arquivo para a pasta compartilhada.",
+ "Open \"%s\"" : "Abrir \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Este aplicativo permite que as pessoas compartilhem arquivos dentro do Nextcloud. Se ativado, o administrador pode escolher quais grupos podem compartilhar arquivos. As pessoas aplicáveis ​​podem então compartilhar arquivos e pastas com outras contas e grupos dentro do Nextcloud. Além disso, se o administrador ativar o recurso de link de compartilhamento, um link externo poderá ser usado para compartilhar arquivos com outras pessoas fora do Nextcloud. Os administradores também podem impor senhas, datas de expiração e permitir o compartilhamento de servidor para servidor por meio de links de compartilhamento, bem como compartilhamento a partir de dispositivos móveis. \nDesativar o recurso remove arquivos e pastas compartilhados no servidor para todos os destinatários de compartilhamento e também nos clientes de sincronização e aplicativos móveis. Mais informações estão disponíveis na Documentação do Nextcloud.",
+ "People" : "Pessoas",
+ "Filter accounts" : "Filtrar contas",
+ "The request will expire on {date} at midnight and will be password protected." : "A solicitação expirará em {date} à meia-noite e será protegida por senha.",
+ "The request will expire on {date} at midnight." : "A solicitação expirará em {date} à meia-noite.",
+ "The request will be password protected." : "A solicitação será protegida por senha.",
+ "When should the request expire?" : "Quando a solicitação deve expirar?",
+ "Set a submission expiration date" : "Definir uma data de expiração para o envio",
+ "Expiration date" : "Expiração",
+ "Select a date" : "Selecionar uma data",
+ "Your administrator has enforced a {count} days expiration policy." : "Seu administrador aplicou uma política de expiração de {count} dias.",
+ "What password should be used for the request?" : "Qual senha deve ser usada para a solicitação?",
+ "Set a password" : "Definir uma senha",
+ "Password" : "Senha",
+ "Enter a valid password" : "Digite uma senha válida",
+ "Generate a new password" : "Gerar uma nova senha",
+ "Your administrator has enforced a password protection." : "Seu administrador aplicou uma proteção por senha.",
+ "Automatically copying failed, please copy the share link manually" : "A cópia automática falhou. Copie o link de compartilhamento manualmente",
+ "Link copied" : "Link copiado",
+ "Email already added" : "E-mail já adicionado",
+ "Invalid email address" : "Endereço de e-mail inválido",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["O seguinte endereço de e-mail não é válido: {emails}","Os seguintes endereços de e-mail não são válidos: {emails}","Os seguintes endereços de e-mail não são válidos: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} endereço de e-mail já adicionado","{count} endereços de e-mail já adicionados","{count} endereços de e-mail já adicionados"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} endereço de e-mail adicionado","{count} endereços de e-mail adicionados","{count} endereços de e-mail adicionados"],
+ "You can now share the link below to allow people to upload files to your directory." : "Agora você pode compartilhar o link abaixo para permitir que as pessoas carreguem arquivos em seu diretório.",
+ "Share link" : "Link de compartilhamento",
+ "Copy" : "Copiar",
+ "Send link via email" : "Enviar link por e-mail",
+ "Enter an email address or paste a list" : "Digite um endereço de e-mail ou cole uma lista",
+ "Remove email" : "Remover e-mail",
+ "Select a destination" : "Selecione um destino",
+ "Select" : "Selecionar",
+ "What are you requesting?" : "O que você está solicitando?",
+ "Request subject" : "Assunto da solicitação",
+ "Birthday party photos, History assignment…" : "Fotos da festa de aniversário, Tarefas de história…",
+ "Where should these files go?" : "Para onde esses arquivos devem ir?",
+ "Upload destination" : "Destino do upload",
+ "Revert to default" : "Reverter para o padrão",
+ "The uploaded files are visible only to you unless you choose to share them." : "Os arquivos enviados ficam visíveis apenas para você, a menos que você opte por compartilhá-los.",
+ "Add a note" : "Adicionar uma nota",
+ "Note for recipient" : "Nota para o destinatário",
+ "Add a note to help people understand what you are requesting." : "Adicione uma nota para ajudar as pessoas a entenderem o que você está solicitando.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Você pode adicionar links, datas ou qualquer outra informação que ajude o destinatário a entender o que você está solicitando.",
+ "Close" : "Fechar",
+ "_Send email and close_::_Send {count} emails and close_" : ["Envie e-mail e feche","Envie {count} e-mails e feche","Envie {count} e-mails e feche"],
+ "Please select a folder, you cannot share the root directory." : "Selecione uma pasta, você não pode compartilhar o diretório raiz.",
+ "File request created" : "Solicitação de arquivo criada",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Solicitação de arquivo criada e e-mail enviado","Solicitação de arquivo criada e {count} e-mails enviados","Solicitação de arquivo criada e {count} e-mails enviados"],
+ "Error creating the share: {errorMessage}" : "Erro ao criar o compartilhamento: {errorMessage}",
+ "Error creating the share" : "Erro ao criar o compartilhamento",
+ "Error sending emails: {errorMessage}" : "Erro ao enviar e-mails: {errorMessage}",
+ "Error sending emails" : "Erro ao enviar e-mails",
+ "Create a file request" : "Criar uma solicitação de arquivo",
+ "Collect files from others even if they do not have an account." : "Colete arquivos de outras pessoas, mesmo que elas não tenham uma conta.",
+ "To ensure you can receive files, verify you have enough storage available." : "Para garantir que você possa receber arquivos, verifique se você tem armazenamento suficiente disponível.",
+ "File request" : "Solicitação de arquivo",
+ "Previous step" : "Etapa anterior",
+ "Cancel" : "Cancelar",
+ "Cancel the file request creation" : "Cancelar a criação da solicitação de arquivo",
+ "Close without sending emails" : "Fechar sem enviar e-mails",
+ "Continue" : "Continuar",
"Error while toggling options" : "Erro ao alternar opções",
- "Set default folder for accepted shares" : "Definir pasta padrão para compartilhamentos aceitos",
- "Reset" : "Redefinir",
- "Reset folder to system default" : "Redefinir pasta para o padrão do sistema",
+ "Accept shares from other accounts and groups by default" : "Aceitar compartilhamentos de outras contas e grupos por padrão",
"Choose a default folder for accepted shares" : "Escolha uma pasta padrão para os compartilhamentos aceitos",
"Invalid path selected" : "Caminho inválido selecionado",
"Unknown error" : "Erro desconhecido",
- "Open Sharing Details" : "Abrir Detalhes de Compartilhamento",
+ "Set default folder for accepted shares" : "Definir pasta padrão para compartilhamentos aceitos",
+ "Reset" : "Redefinir",
+ "Reset folder to system default" : "Redefinir pasta para o padrão do sistema",
+ "Share expiration: {date}" : "Expiração do compartilhamento: {date}",
+ "Share Expiration" : "Expiração do Compartilhamento",
"group" : "grupo",
"conversation" : "conversa",
"remote" : "remoto",
"remote group" : "grupo remoto",
"guest" : "convidado",
- "Shared with the group {user} by {owner}" : "Compartilhado com o grupo {group} por {owner}",
- "Shared with the conversation {user} by {owner}" : "Compartilhado com a conversa {conversation} por {owner}",
+ "by {initiator}" : "por {initiator}",
+ "Shared with the group {user} by {owner}" : "Compartilhado com o grupo {user} por {owner}",
+ "Shared with the conversation {user} by {owner}" : "Compartilhado com a conversa {user} por {owner}",
"Shared with {user} by {owner}" : "Compartilhado com {user} por {owner}",
+ "Open Sharing Details" : "Abrir Detalhes de Compartilhamento",
"Added by {initiator}" : "Adicionado por {initiator}",
"Via “{folder}”" : "Via “{folder}”",
"Unshare" : "Descompartilhar",
- "Internal link" : "Link interno",
"Cannot copy, please copy the link manually" : "Não é possível copiar, copie o link manualmente",
- "Copy internal link to clipboard" : "Copie o link interno para a área de transferência",
- "Only works for people with access to this folder" : "Funciona apenas para pessoas com acesso a esta pasta",
- "Only works for people with access to this file" : "Funciona apenas para pessoas com acesso a este arquivo",
- "Link copied" : "Link copiado",
+ "Copy internal link" : "Copiar link interno",
+ "For people who already have access" : "Para pessoas que já têm acesso",
+ "Internal link" : "Link interno",
+ "{shareWith} by {initiator}" : "{shareWith} por {initiator}",
+ "Shared via link by {initiator}" : "Compartilhado via link por {initiator}",
+ "File request ({label})" : "Solicitação de arquivo ({label})",
+ "Mail share ({label})" : "Compartilhamento por e-mail ({label})",
+ "Share link ({label})" : "Link de compartilhamento ({label})",
+ "Mail share" : "Compartilhamento por e-mail",
+ "Share link ({index})" : "Link de compartilhamento ({index})",
+ "Create public link" : "Criar link público",
+ "Actions for \"{title}\"" : "Ações para \"{title}\"",
+ "Copy public link of \"{title}\"" : "Copiar link público de \"{title}\"",
+ "Error, please enter proper password and/or expiration date" : "Erro, digite a senha correta e/ou a data de validade",
+ "Link share created" : "Compartilhamento por link criado",
+ "Error while creating the share" : "Erro ao criar o compartilhamento",
"Please enter the following required information before creating the share" : "Digite as seguintes informações necessárias antes de criar o compartilhamento",
"Password protection (enforced)" : "Proteção por senha (imposta)",
"Password protection" : "Proteger com senha",
"Enter a password" : "Digite uma senha",
- "Expiration date (enforced)" : "Data de vencimento (imposta)",
- "Enter a date" : "Digite uma data",
+ "Enable link expiration (enforced)" : "Ativar expiração de link (imposta)",
+ "Enable link expiration" : "Ativar expiração de link",
+ "Enter expiration date (enforced)" : "Insira a data de expiração (imposta)",
+ "Enter expiration date" : "Insira a data de expiração",
"Create share" : "Criar compartilhamento",
- "Cancel" : "Cancelar",
- "Customize link" : "Personalizar o link",
+ "Customize link" : "Personalizar link",
"Generate QR code" : "Gerar código QR",
- "Add another link" : "Adicionar um novo link",
+ "Add another link" : "Adicionar outro link",
"Create a new share link" : "Criar um novo link de compartilhamento",
- "{shareWith} by {initiator}" : "{shareWith} por {initiator}",
- "Shared via link by {initiator}" : "Compartilhado via link por {initiator}",
- "Mail share ({label})" : "Compartilhar por e-mail ({label})",
- "Share link ({label})" : "Compartilhar link ({label})",
- "Share link ({index})" : "Compartilhar link ({index})",
- "Share link" : "Link de compartilhamento",
- "Actions for \"{title}\"" : "Ações para \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Copie o link público de \"{title}\" para a área de transferência",
- "Error, please enter proper password and/or expiration date" : "Erro, digite a senha correta e/ou a data de validade",
- "Link share created" : "Compartilhamento de link criado",
- "Error while creating the share" : "Erro ao criar o compartilhamento",
- "Quick share options, the current selected is \"{selectedOption}\"" : "Opções de compartilhamento rápido, o selecionado atualmente é \"{selectedOption}\"",
- "View only" : "Somente visualização ",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Opções de compartilhamento rápido, o atual selecionado é \"{selectedOption}\"",
+ "View only" : "Somente visualização",
"Can edit" : "Pode editar",
- "File drop" : "Baixar Arquivo ",
"Custom permissions" : "Permissões personalizadas",
- "Search for share recipients" : "Pesquisar destinatários de compartilhamento",
- "No recommendations. Start typing." : "Sem recomendações. Inicie a digitação.",
"Resharing is not allowed" : "Recompartilhamento não é permitido",
"Name or email …" : "Nome ou e-mail...",
- "Name, email, or Federated Cloud ID …" : "Nome, e-mail ou ID da nuvem federada...",
+ "Name, email, or Federated Cloud ID …" : "Nome, e-mail ou ID de Nuvem Federada …",
"Searching …" : "Pesquisando...",
"No elements found." : "Nenhum elemento encontrado.",
- "Search globally" : "Pesquisar globalmente",
+ "Search everywhere" : "Pesquisar em qualquer lugar",
"Guest" : "Convidado",
"Group" : "Grupo",
"Email" : "E-mail",
"Team" : "Equipe",
"Talk conversation" : "Conversa Talk",
- "Deck board" : "Painel de deck",
+ "Deck board" : "Painel de Deck",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "em {server}",
- "Allow upload and editing" : "Permitir envio e edição",
+ "Enter external recipients" : "Insira destinatários externos",
+ "Search for internal recipients" : "Pesquisar destinatários internos",
+ "Note from" : "Nota de",
+ "Note:" : "Nota:",
+ "File drop" : "Depósito de arquivos",
+ "Upload files to {foldername}." : "Fazer upload de arquivos para {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Ao fazer upload de arquivos, você concorda com os termos de serviço.",
+ "Successfully uploaded files" : "Arquivos carregados com sucesso",
+ "View terms of service" : "Ver os termos de serviço",
+ "Terms of service" : "Termos de serviço",
+ "Share with {user}" : "Compartilhe com {user}",
+ "Share with email {email}" : "Compartilhar com e-mail {email}",
+ "Share with group" : "Compartilhar com grupo",
+ "Share in conversation" : "Compartilhar na conversa",
+ "Share with {user} on remote server {server}" : "Compartilhar com {user} no servidor remoto {server}",
+ "Share with remote group" : "Compartilhar com grupo remoto",
+ "Share with guest" : "Compartilhar com convidado",
+ "Update share" : "Atualizar compartilhamento",
+ "Save share" : "Salvar compartilhamento",
+ "Read" : "Ler",
+ "Create" : "Criar",
+ "Edit" : "Editar",
+ "Share" : "Compartilhar",
+ "Delete" : "Excluir",
+ "Password field cannot be empty" : "O campo da senha não pode estar vazio",
+ "Replace current password" : "Substituir senha atual",
+ "Failed to generate a new token" : "Falha ao gerar um novo token",
+ "Allow upload and editing" : "Permitir uploads e edição",
"Allow editing" : "Permitir edição",
- "Upload only" : "Fazer upload apenas",
+ "Upload only" : "Somente upload",
"Advanced settings" : "Configurações avançadas",
"Share label" : "Compartilhar etiqueta",
- "Set password" : "Configurar senha",
- "Password" : "Senha",
- "Password expires {passwordExpirationTime}" : "A senha expira em {passwordExpirationTime}",
+ "Share link token" : "Token do link de compartilhamento",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Defina o token do link de compartilhamento público para algo fácil de lembrar ou gere um novo token. Não é recomendado usar um token fácil de adivinhar para compartilhamentos que contenham informações confidenciais.",
+ "Generating…" : "Gerando…",
+ "Generate new token" : "Gerar novo token",
+ "Set password" : "Definir senha",
+ "Password expires {passwordExpirationTime}" : "A senha expira em {passwordExpirationTime}",
"Password expired" : "Senha expirada",
"Video verification" : "Verificação de vídeo",
- "Set expiration date" : "Definir data de vencimento",
- "Expiration date" : "Expiração",
+ "Expiration date (enforced)" : "Data de vencimento (imposta)",
+ "Set expiration date" : "Definir data de expiração",
"Hide download" : "Ocultar download",
- "Allow download" : "Permitir baixar",
- "Note to recipient" : "Observação ao destinatário",
+ "Allow download and sync" : "Permitir download e sincronização",
+ "Note to recipient" : "Nota para o destinatário",
"Enter a note for the share recipient" : "Digite uma observação ao destinatário",
- "Read" : "Leitura",
- "Create" : "Criar",
- "Edit" : "Editar",
- "Share" : "Compartilhar",
+ "Show files in grid view" : "Mostrar arquivos na visualização em grade",
"Delete share" : "Excluir compartilhamento",
- "Share with {userName}" : "Compartilhe com {userName}",
- "Share with group" : "Compartilhar com grupo",
- "Share in conversation" : "Compartilhar na conversa",
- "Share with remote group" : "Compartilhar com grupo remoto",
- "Share with guest" : "Compartilhar com convidado",
- "Update share" : "Atualizar compartilhamento",
- "Save share" : "Salvar compartilhamento",
"Others with access" : "Outros com acesso",
"No other accounts with access found" : "Nenhuma outra conta com acesso encontrada",
"Toggle list of others with access to this directory" : "Alternar a lista de outras pessoas com acesso a este diretório",
"Toggle list of others with access to this file" : "Alternar a lista de outras pessoas com acesso a este arquivo",
"Unable to fetch inherited shares" : "Não foi possível buscar compartilhamentos herdados",
+ "Link shares" : "Compartilhamentos por link",
+ "Shares" : "Compartilhamentos",
+ "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Compartilhe arquivos dentro da sua organização. Os destinatários que já conseguem visualizar o arquivo também podem usar este link para facilitar o acesso.",
+ "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Compartilhe arquivos com outras pessoas fora da sua organização por meio de links públicos e endereços de e-mail. Você também pode compartilhar com contas Nextcloud em outras instâncias usando o ID de nuvem federado delas.",
+ "Shares from apps or other sources which are not included in internal or external shares." : "Compartilhamentos de aplicativos ou outras fontes que não estão incluídos em compartilhamentos internos ou externos.",
+ "Type names, teams, federated cloud IDs" : "Digite nomes, equipes, IDs de nuvem federada",
+ "Type names or teams" : "Digite nomes ou equipes",
+ "Type a federated cloud ID" : "Digite um ID de nuvem federada",
+ "Type an email" : "Digite um e-mail",
+ "Type an email or federated cloud ID" : "Digite um e-mail ou ID de nuvem federada",
"Unable to load the shares list" : "Não foi possível carregar a lista de compartilhamentos",
"Expires {relativetime}" : "Expira {relativetime}",
"this share just expired." : "esse compartilhamento acabou de expirar.",
"Shared with you by {owner}" : "Compartilhado com você por {owner}",
- "_Accept share_::_Accept shares_" : ["Aceitar compartilhamentos","Aceitar compartilhamentos","Aceitar compartilhamentos"],
+ "Internal shares" : "Compartilhamentos internos",
+ "Internal shares explanation" : "Explicação sobre compartilhamentos internos",
+ "External shares" : "Compartilhamentos externos",
+ "External shares explanation" : "Explicação sobre compartilhamentos externos",
+ "Additional shares" : "Compartilhamentos adicionais",
+ "Additional shares explanation" : "Explicação sobre compartilhamentos adicionais",
+ "Link to a file" : "Criar link para um arquivo",
+ "_Accept share_::_Accept shares_" : ["Aceitar compartilhamento","Aceitar compartilhamentos","Aceitar compartilhamentos"],
"Open in Files" : "Abrir em arquivos",
- "_Reject share_::_Reject shares_" : ["Rejeitar compartilhamentos","Rejeitar compartilhamentos","Rejeitar compartilhamentos"],
- "_Restore share_::_Restore shares_" : ["Restaurar compartilhamentos","Restaurar compartilhamentos","Restaurar compartilhamentos"],
+ "_Reject share_::_Reject shares_" : ["Rejeitar compartilhamento","Rejeitar compartilhamentos","Rejeitar compartilhamentos"],
+ "_Restore share_::_Restore shares_" : ["Restaurar compartilhamento","Restaurar compartilhamentos","Restaurar compartilhamentos"],
"Shared" : "Compartilhado",
- "Shared multiple times with different people" : "Compartilhado várias vezes com pessoas diferentes",
"Shared by {ownerDisplayName}" : "Compartilhado por {ownerDisplayName}",
- "Show sharing options" : "Mostrar opções de compartilhamento",
- "Link to a file" : "Criar link para um arquivo",
- "Error creating the share: {errorMessage}" : "Erro ao criar o compartilhamento: {errorMessage}",
- "Error creating the share" : "Erro ao criar o compartilhamento",
- "Error updating the share: {errorMessage}" : "Erro ao atualizar o compartilhamento: {errorMessage}",
- "Error updating the share" : "Erro ao atualizar o compartilhamento",
- "File \"{path}\" has been unshared" : "O arquivo \"{path}\" não foi compartilhado",
- "Folder \"{path}\" has been unshared" : "A pasta \"{path}\" foi descompartilhada",
- "Share {propertyName} saved" : "Compartilhe {propertyName} salvo",
- "Shared by" : "Compartilhado por",
- "Shared with" : "Compartilhado com",
- "Password created successfully" : "Senha criada com sucesso",
- "Error generating password from password policy" : "Erro ao gerar senha da política de senha",
- "Shared with you and the group {group} by {owner}" : "Compartilhado com você e o grupo {group} por {owner}",
- "Shared with you and {circle} by {owner}" : "Compartilhado com você e {circle} por {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Compartilhado com você e a conversa {conversation} por {owner}",
- "Shared with you in a conversation by {owner}" : "Compartilhado com você em uma conversa por {owner}",
- "Shares" : "Compartilhamentos",
+ "Shared multiple times with different people" : "Compartilhado várias vezes com pessoas diferentes",
+ "Sharing options" : "Opções de compartilhamento",
+ "Shared with others" : "Compartilhado com outros",
+ "Create file request" : "Criar solicitação de arquivo",
+ "Upload files to {foldername}" : "Fazer upload de arquivos para {foldername}",
+ "Public file share" : "Compartilhamento público de arquivo",
+ "Publicly shared file." : "Arquivo compartilhado publicamente.",
+ "No file" : "Sem arquivo",
+ "The file shared with you will show up here" : "O arquivo compartilhado com você aparecerá aqui",
+ "Public share" : "Compartilhamento público",
+ "Publicly shared files." : "Arquivos compartilhados publicamente.",
+ "No files" : "Sem arquivos",
+ "Files and folders shared with you will show up here" : "Arquivos e pastas compartilhados com você aparecerão aqui",
"Overview of shared files." : "Visão geral dos arquivos compartilhados.",
"No shares" : "Sem compartilhamentos",
"Files and folders you shared or have been shared with you will show up here" : "Arquivos e pastas que você compartilhou ou foram compartilhados com você aparecerão aqui",
@@ -255,7 +348,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Lista de arquivos compartilhados com você.",
"Nothing shared with you yet" : "Nada foi compartilhado!",
"Files and folders others shared with you will show up here" : "Arquivos e pastas que outras pessoas compartilharam com você aparecerão aqui",
- "Shared with others" : "Compartilhado com outros",
"List of files that you shared with others." : "Lista de arquivos que você compartilhou com outras pessoas.",
"Nothing shared yet" : "Você ainda não compartilhou nada!",
"Files and folders you shared will show up here" : "Arquivos e pastas que você compartilhou aparecerão aqui",
@@ -263,57 +355,99 @@ OC.L10N.register(
"List of files that are shared by link." : "Lista de arquivos compartilhados por link.",
"No shared links" : "Nenhum link compartilhado!",
"Files and folders you shared by link will show up here" : "Arquivos e pastas que você compartilhou por link aparecerão aqui",
- "Deleted shares" : "Compartilhamentos apagados",
- "List of shares you left." : "Lista de compartilhamentos que você deixou.",
- "No deleted shares" : "Não há compartilhamentos apagados",
- "Shares you have left will show up here" : "Os compartilhamentos que você deixou aparecerão aqui",
+ "File requests" : "Solicitações de arquivo",
+ "List of file requests." : "Lista de solicitações de arquivos.",
+ "No file requests" : "Nenhuma solicitação de arquivo",
+ "File requests you have created will show up here" : "As solicitações de arquivo que você criou aparecerão aqui",
+ "Deleted shares" : "Compartilhamentos excluídos",
+ "List of shares you left." : "Lista de compartilhamentos dos quais você saiu.",
+ "No deleted shares" : "Não há compartilhamentos excluídos",
+ "Shares you have left will show up here" : "Os compartilhamentos dos quais você saiu aparecerão aqui",
"Pending shares" : "Compartilhamentos pendentes",
- "List of unapproved shares." : "Lista de compartilhamentos não aprovadas.",
+ "List of unapproved shares." : "Lista de compartilhamentos não aprovados.",
"No pending shares" : "Não há compartilhamentos pendentes",
- "Shares you have received but not approved will show up here" : "As ações que você recebeu, mas não aprovou, aparecerão aqui",
- "Share note" : "Anotação de compartilhamento",
+ "Shares you have received but not approved will show up here" : "Os compartilhamentos que você recebeu, mas não aprovou, aparecerão aqui",
+ "Error deleting the share: {errorMessage}" : "Erro ao excluir o compartilhamento: {errorMessage}",
+ "Error deleting the share" : "Erro ao excluir o compartilhamento",
+ "Error updating the share: {errorMessage}" : "Erro ao atualizar o compartilhamento: {errorMessage}",
+ "Error updating the share" : "Erro ao atualizar o compartilhamento",
+ "File \"{path}\" has been unshared" : "O arquivo \"{path}\" foi descompartilhado",
+ "Folder \"{path}\" has been unshared" : "A pasta \"{path}\" foi descompartilhada",
+ "Could not update share" : "Não foi possível atualizar o compartilhamento",
+ "Share saved" : "Compartilhamento salvo",
+ "Share expiry date saved" : "Data de expiração do compartilhamento salva",
+ "Share hide-download state saved" : "Estado ocultar-download do compartilhamento salvo",
+ "Share label saved" : "Rótulo de compartilhamento salvo",
+ "Share note for recipient saved" : "Nota para o destinatário do compartilhamento salva",
+ "Share password saved" : "Senha do compartilhamento salva",
+ "Share permissions saved" : "Permissões do compartilhamento salvas",
+ "To upload files to {folder}, you need to provide your name first." : "Para fazer upload de arquivos para {folder}, primeiro você precisa fornecer seu nome.",
+ "Upload files to {folder}" : "Fazer upload de arquivos para {folder}",
+ "Please confirm your name to upload files to {folder}" : "Confirme seu nome para fazer upload de arquivos para {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} compartilhou uma pasta com você.",
+ "Names must not be empty." : "Os nomes não podem estar vazios.",
+ "Names must not start with a dot." : "Os nomes não devem começar com um ponto.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" não é permitido dentro de um nome.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" é um nome reservado e não permitido.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" não é um nome permitido.",
+ "Names must not end with \"{extension}\"." : "Os nomes não devem terminar com \"{extension}\".",
+ "Invalid name." : "Nome inválido.",
+ "Shared by" : "Compartilhado por",
+ "Shared with" : "Compartilhado com",
+ "Password created successfully" : "Senha criada com sucesso",
+ "Error generating password from password policy" : "Erro ao gerar a senha a partir da política de senha",
+ "Shared with you and the group {group} by {owner}" : "Compartilhado com você e o grupo {group} por {owner}",
+ "Shared with you and {circle} by {owner}" : "Compartilhado com você e {circle} por {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Compartilhado com você e a conversa {conversation} por {owner}",
+ "Shared with you in a conversation by {owner}" : "Compartilhado com você em uma conversa por {owner}",
+ "Share not found" : "Compartilhamento não encontrado",
+ "Back to %s" : "Voltar para %s",
+ "Add to your Nextcloud" : "Adicionar ao seu Nextcloud",
+ "Waiting…" : "Aguarde...",
+ "error" : "erro",
+ "finished" : "terminou",
+ "This will stop your current uploads." : "Isso interromperá seus uploads atuais.",
+ "Move or copy" : "Mover ou copiar",
+ "You can upload into this folder" : "Você pode enviar arquivos para esta pasta",
+ "Show list view" : "Mostrar visualização em lista",
+ "Show grid view" : "Mostrar visualização em grade",
+ "No compatible server found at {remote}" : "Nenhum servidor compativel encontrado em {remote}",
+ "Invalid server URL" : "URL do servidor inválida",
+ "Failed to add the public link to your Nextcloud" : "Ocorreu uma falha ao adicionar o link público ao seu Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "Você não tem permissão para editar compartilhamentos de links que não são de sua propriedade",
+ "Download all files" : "Baixar todos os arquivos",
+ "Link copied to clipboard" : "Link copiado para a área de transferência",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 endereço de e-mail já adicionado","{count} endereços de e-mail já adicionados","{count} endereços de e-mail já adicionados"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 endereço de e-mail adicionado","{count} endereços de e-mail adicionados","{count} endereços de e-mail adicionados"],
+ "Copy to clipboard" : "Copiar para área de transferência",
+ "Copy internal link to clipboard" : "Copiar link interno para a área de transferência",
+ "Only works for people with access to this folder" : "Funciona apenas para pessoas com acesso a esta pasta",
+ "Only works for people with access to this file" : "Funciona apenas para pessoas com acesso a este arquivo",
+ "Copy public link of \"{title}\" to clipboard" : "Copiar link público de \"{title}\" para a área de transferência",
+ "Search globally" : "Pesquisar globalmente",
+ "Search for share recipients" : "Pesquisar destinatários de compartilhamento",
+ "No recommendations. Start typing." : "Sem recomendações. Inicie a digitação.",
+ "To upload files, you need to provide your name first." : "Para fazer upload de arquivos, primeiro você precisa fornecer seu nome.",
+ "Enter your name" : "Digite seu nome",
+ "Submit name" : "Enviar nome",
+ "Share with {userName}" : "Compartilhar com {userName}",
+ "Show sharing options" : "Mostrar opções de compartilhamento",
+ "Share note" : "Compartilhar nota",
"Upload files to %s" : "Enviar arquivos para %s",
+ "%s shared a folder with you." : "%s compartilhou uma pasta com você.",
"Note" : "Nota",
"Select or drop files" : "Selecione ou solte arquivos",
"Uploading files" : "Enviando arquivos...",
"Uploaded files:" : "Arquivos enviados:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Ao enviar arquivos, você concorda com os %1$stermos de serviço%2$s.",
- "Add to your Nextcloud" : "Adicionar ao seu Nextcloud",
- "Files and folders others share with you will show up here" : "Arquivos e pastas que outras pessoas compartilham com você serão exibidos aqui.",
- "Files and folders you share will show up here" : "Arquivos e pastas que você compartilhar serão exibidos aqui.",
- "Files and folders you share by link will show up here" : "Arquivos e pastas que você compartilha por link serão exibidos aqui",
- "Shares you deleted will show up here" : "Compartilhamentos apagados aparecem aqui",
- "Shares you have received but not confirmed will show up here" : "Compartilhamentos que você recebeu, mas ainda não confirmou, serão exibidos aqui",
- "Shares will show up here" : "Compartilhamentos serão mostrados aqui",
- "Restore" : "Restaurar",
- "Something happened. Unable to restore the share." : "Algo aconteceu. Não foi possível restaurar o compartilhamento.",
- "Something happened. Unable to accept the share." : "Ocorreu um erro. Não foi possível aceitar o compartilhamento.",
- "Something happened. Unable to reject the share." : "Ocorreu um erro. Não foi possível recusar o compartilhamento.",
- "No expiration date set" : "Nenhuma data de expiração definida",
- "Please specify a valid user" : "Por favor especifique um usuário válido",
- "Please specify a valid federated user ID" : "Especifique um ID de usuário federado válido ",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Este aplicativo permite que os usuários compartilhem arquivos no Nextcloud. Se ativado, o administrador pode escolher quais grupos podem compartilhar arquivos. Os usuários aplicáveis podem compartilhar arquivos e pastas com outros usuários e grupos no Nextcloud. Além disso, se o administrador ativar o recurso de link de compartilhamento, um link externo poderá ser usado para compartilhar arquivos com outros usuários fora do Nextcloud. Os administradores também podem impor senhas, datas de vencimento e permitir o compartilhamento de servidor para servidor por meio de links de compartilhamento, bem como o compartilhamento de dispositivos móveis.\nDesativar este recurso remove arquivos e pastas compartilhados no servidor para todos os destinatários de compartilhamento e também nos clientes de sincronização e aplicativos móveis. Mais informações estão disponíveis na documentação do Nextcloud.",
- "Accept user and group shares by default" : "Aceitar compartilhamentos de usuário e grupo por padrão",
- "Read only" : "Somente leitura",
- "File drop (upload only)" : "Depósito de arquivos (somente envios)",
- "Upload" : "Enviar",
- "Bundled permissions" : "Permissões agrupadas",
- "Only works for users with access to this folder" : "Funciona apenas para usuários com acesso a esta pasta",
- "Only works for users with access to this file" : "Funciona apenas para usuários com acesso a este arquivo",
- "Circle" : "Círculo",
- "Update" : "Atualizar",
- "Share with " : "Compartilhar com",
- "No other users with access found" : "Nenhum usuário com acesso encontrado",
- "No entries found in this folder" : "Nenhuma entrada foi encontrada nesta pasta",
"Name" : "Nome",
- "Share time" : "Compartilhamento",
- "Sorry, this link does not seem to work anymore." : "Desculpe, este link parece não funcionar mais.",
- "Reasons might be:" : "As razões podem ser:",
- "the item was removed" : "o item foi removido",
- "the link expired" : "o link expirou",
- "sharing is disabled" : "o compartilhamento está desativado",
- "For more info, please ask the person who sent this link." : "Para mais informações, pergunte à pessoa que lhe enviou o link.",
- "Share with remote" : "Compartilhar com controle remoto",
- "Share with" : "Compartilhar com"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Use este método para compartilhar arquivos com pessoas ou equipes dentro da sua organização. Se o destinatário já tiver acesso ao compartilhamento, mas não conseguir encontrá-lo, você pode enviar o link de compartilhamento interno para facilitar o acesso.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Use este método para compartilhar arquivos com indivíduos ou organizações fora da sua organização. Arquivos e pastas podem ser compartilhados por meio de links públicos de compartilhamento e endereços de e-mail. Você também pode compartilhar com outras contas Nextcloud hospedadas em instâncias diferentes usando o ID de nuvem federada delas.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Compartilhamentos que não fazem parte dos compartilhamentos internos ou externos. Podem ser compartilhamentos de aplicativos ou outras fontes.",
+ "Share with accounts, teams, federated cloud id" : "Compartilhar com contas, equipes, ID de nuvem federada",
+ "Share with accounts and teams" : "Compartilhar com contas e equipes",
+ "Federated cloud ID" : "ID de nuvem federada",
+ "Email, federated cloud id" : "E-mail, ID de nuvem federada",
+ "Filename must not be empty." : "O nome do arquivo não pode estar vazio."
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json
index 1942988a5bd..27b631d6137 100644
--- a/apps/files_sharing/l10n/pt_BR.json
+++ b/apps/files_sharing/l10n/pt_BR.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Aguarde...",
- "error" : "erro",
- "finished" : "terminou",
- "This will stop your current uploads." : "Isso interromperá seus envios atuais.",
- "Move or copy" : "Mover ou copiar",
- "Download" : "Baixar",
- "Delete" : "Excluir",
- "You can upload into this folder" : "Você pode enviar arquivos para esta pasta",
- "Terms of service" : "Termos de serviço",
- "Show list view" : "Mostrar visualização em lista",
- "Show grid view" : "Mostrar visualização em grade",
- "No compatible server found at {remote}" : "Nenhum servidor compativel encontrado em {remote}",
- "Invalid server URL" : "URL do servidor inválida",
- "Failed to add the public link to your Nextcloud" : "Ocorreu uma falha ao adicionar o link público ao seu Nextcloud",
"File shares" : "Compartilhamentos de arquivos",
"Downloaded via public link" : "Baixado via link público",
"Downloaded by {email}" : "Baixado por {email}",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "Compartilhamento do arquivo {file} com {user} expirado",
"Share for file {file} expired" : "Compartilhamento do arquivo {file} expirado",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Um arquivo ou pasta compartilhado por e-mail ou por link público foi <strong>baixado</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Os arquivos foram <strong>enviados</strong> para uma pasta compartilhada por e-mail ou por link público",
"A file or folder was shared from <strong>another server</strong>" : "Um arquivo ou pasta foi compartilhado a partir de <strong>outro servidor</strong>",
- "Files" : "Arquivos",
+ "Sharing" : "Compartilhando",
"A file or folder has been <strong>shared</strong>" : "Um arquivo ou pasta foi <strong>compartilhado</strong> ",
"Shared link" : "Link compartilhado",
"Wrong share ID, share does not exist" : "ID de compartilhamento incorreto, o compartilhamento não existe",
@@ -76,34 +63,46 @@
"Please specify a file or folder path" : "Por favor especifique um arquivo ou um caminho de pasta",
"Wrong path, file/folder does not exist" : "Caminho errado, arquivo/pasta não existe",
"Could not create share" : "Não foi possível criar o compartilhamento",
- "Invalid permissions" : "Permissões inválidas",
- "Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser YYYY-MM-DD",
- "Please specify a valid account to share with" : "Especifique uma conta válida com a qual compartilhar",
+ "Please specify a valid account to share with" : "Por favor, especifique uma conta válida com a qual compartilhar",
"Group sharing is disabled by the administrator" : "O compartilhamento para grupos foi desabilitado pelo administrador",
- "Please specify a valid group" : "Por favor especifique um grupo válido",
+ "Please specify a valid group" : "Por favor, especifique um grupo válido",
"Public link sharing is disabled by the administrator" : "O compartilhamento por link público foi desativado pelo administrador",
- "Public upload disabled by the administrator" : "O envio público foi desativado pelo administrador",
- "Public upload is only possible for publicly shared folders" : "O envio público só é possível para pastas compartilhadas publicamente",
+ "Please specify a valid email address" : "Por favor, especifique um endereço de e-mail válido",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "O compartilhamento %s falhou ao enviar a senha ao Nextcloud Talk porque este não está ativado",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "O compartilhamento %1$s falhou porque a infraestrutura não permite compartilhamentos do tipo %2$s",
- "Please specify a valid federated account ID" : "Especifique um ID de conta federada válido",
- "Please specify a valid federated group ID" : "Especifique um ID de grupo federado válido ",
- "You cannot share to a Circle if the app is not enabled" : "Você não pode compartilhar para um círculo se o aplicativo não está habilitado",
- "Please specify a valid circle" : "Por favor especifique um círculo válido",
- "Sharing %s failed because the back end does not support room shares" : "Falhou ao compartilhar %s porque o sistema não suporta compartilhamento de salas",
- "Sharing %s failed because the back end does not support ScienceMesh shares" : "Falha ao compartilhar %s porque o back-end não suporta compartilhamentos ScienceMesh",
+ "Please specify a valid federated account ID" : "Por favor, especifique um ID de conta federada válido",
+ "Please specify a valid federated group ID" : "Por favor, especifique um ID de grupo federado válido ",
+ "You cannot share to a Team if the app is not enabled" : "Você não pode compartilhar com uma Equipe se o aplicativo não estiver ativado",
+ "Please specify a valid team" : "Por favor, especifique uma equipe válida",
+ "Sharing %s failed because the back end does not support room shares" : "O compartilhamento de %s falhou porque o back-end não é compatível com compartilhamentos de salas",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "O compartilhamento de %s falhou porque o back-end não é compatível com os compartilhamentos ScienceMesh",
"Unknown share type" : "Tipo de compartilhamento desconhecido",
"Not a directory" : "Não é um diretório",
"Could not lock node" : "Não foi possível bloquear o nó",
+ "Public upload is only possible for publicly shared folders" : "O envio público só é possível para pastas compartilhadas publicamente",
+ "Share must at least have READ or CREATE permissions" : "O compartilhamento deve ter pelo menos permissões de READ (ler) ou CREATE (criar)",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "O compartilhamento deve ter permissão de READ (ler) se a permissão UPDATE (atualizar) ou DELETE (excluir) estiver definida",
+ "Public upload disabled by the administrator" : "Upload público foi desativado pelo administrador",
"Could not lock path" : "Não foi possível bloquear o caminho",
+ "no sharing rights on this item" : "sem permissões de compartilhamento para este item",
+ "You are not allowed to edit incoming shares" : "Você não tem permissão para editar compartilhamentos recebidos",
"Wrong or no update parameter given" : "O parâmetro da atualização fornecido está errado ou não existe",
- "Share must at least have READ or CREATE permissions" : "O compartilhamento deve ter pelo menos permissões de LER ou CRIAR",
- "Share must have READ permission if UPDATE or DELETE permission is set" : "O compartilhamento deve ter permissão de LEITURA se a permissão ATUALIZAÇÃO ou EXCLUSÃO estiver definida",
- "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "O \"envio da senha pelo Bate Papo Nextcloud\" para compartilhar um arquivo ou pasta falhou porque o Bate Papo Nextcloud não está habilitado. ",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "O \"envio da senha pelo Nextcloud Talk\" para compartilhar um arquivo ou pasta falhou porque o Nextcloud Talk não está ativado. ",
+ "Custom share link tokens have been disabled by the administrator" : "Tokens personalizados para links de compartilhamento foram desativados pelo administrador",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Os tokens devem conter pelo menos 1 caractere e podem incluir apenas letras, números ou um hífen",
+ "Invalid date. Format must be YYYY-MM-DD" : "Data inválida. O formato deve ser AAAA-MM-DD",
+ "No sharing rights on this item" : "Sem permissões de compartilhamento para este item",
+ "Invalid share attributes provided: \"%s\"" : "Atributos de compartilhamento inválidos fornecidos: \"%s\"",
+ "You are not allowed to send mail notifications" : "Você não tem permissão para enviar notificações por e-mail",
+ "No mail notification configured for this share type" : "Nenhuma notificação por e-mail configurada para este tipo de compartilhamento",
+ "Wrong password" : "Senha incorreta",
+ "Error while sending mail notification" : "Erro ao enviar notificação por e-mail",
+ "Failed to generate a unique token" : "Falha ao gerar um token único",
+ "This share does not exist or is no longer available" : "Este compartilhamento não existe ou não está mais disponível",
"shared by %s" : "compartilhado por %s",
- "Download all files" : "Baixar todos os arquivos",
- "Direct link" : "Link direto",
+ "Download" : "Baixar",
"Add to your %s" : "Adicione ao seu %s",
+ "Direct link" : "Link direto",
"Share API is disabled" : "O compartilhamento de API está desabilitado.",
"File sharing" : "Compartilhamento de arquivos",
"Share will expire tomorrow" : "Compartilhamento irá expirar amanhã",
@@ -112,140 +111,234 @@
"You received {share} to group {group} as a share by {user}" : "Você recebeu {share} para o grupo {group} como um compartilhamento de {user}",
"Accept" : "Aceitar",
"Decline" : "Recusar",
- "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Este aplicativo permite que as pessoas compartilhem arquivos dentro do Nextcloud. Se ativado, o administrador pode escolher quais grupos podem compartilhar arquivos. As pessoas aplicáveis ​​podem então compartilhar arquivos e pastas com outras contas e grupos dentro do Nextcloud. Além disso, se o administrador ativar o recurso de compartilhamento de link, um link externo poderá ser usado para compartilhar arquivos com outras pessoas fora do Nextcloud. Os administradores também podem impor senhas, datas de expiração e permitir o compartilhamento de servidor para servidor por meio de links de compartilhamento, bem como compartilhamento de dispositivos móveis. \nDesativar o recurso remove arquivos e pastas compartilhados no servidor para todos os destinatários de compartilhamento e também nos clientes de sincronização e aplicativos móveis. Mais informações estão disponíveis na documentação do Nextcloud.",
- "Sharing" : "Compartilhando",
- "Accept shares from other accounts and groups by default" : "Aceitar compartilhamentos de outras contas e grupos por padrão",
+ "Remember to upload the files to %s" : "Lembre-se de enviar os arquivos para %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Gostaríamos de lembrar que você ainda não carregou nenhum arquivo para a pasta compartilhada.",
+ "Open \"%s\"" : "Abrir \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Este aplicativo permite que as pessoas compartilhem arquivos dentro do Nextcloud. Se ativado, o administrador pode escolher quais grupos podem compartilhar arquivos. As pessoas aplicáveis ​​podem então compartilhar arquivos e pastas com outras contas e grupos dentro do Nextcloud. Além disso, se o administrador ativar o recurso de link de compartilhamento, um link externo poderá ser usado para compartilhar arquivos com outras pessoas fora do Nextcloud. Os administradores também podem impor senhas, datas de expiração e permitir o compartilhamento de servidor para servidor por meio de links de compartilhamento, bem como compartilhamento a partir de dispositivos móveis. \nDesativar o recurso remove arquivos e pastas compartilhados no servidor para todos os destinatários de compartilhamento e também nos clientes de sincronização e aplicativos móveis. Mais informações estão disponíveis na Documentação do Nextcloud.",
+ "People" : "Pessoas",
+ "Filter accounts" : "Filtrar contas",
+ "The request will expire on {date} at midnight and will be password protected." : "A solicitação expirará em {date} à meia-noite e será protegida por senha.",
+ "The request will expire on {date} at midnight." : "A solicitação expirará em {date} à meia-noite.",
+ "The request will be password protected." : "A solicitação será protegida por senha.",
+ "When should the request expire?" : "Quando a solicitação deve expirar?",
+ "Set a submission expiration date" : "Definir uma data de expiração para o envio",
+ "Expiration date" : "Expiração",
+ "Select a date" : "Selecionar uma data",
+ "Your administrator has enforced a {count} days expiration policy." : "Seu administrador aplicou uma política de expiração de {count} dias.",
+ "What password should be used for the request?" : "Qual senha deve ser usada para a solicitação?",
+ "Set a password" : "Definir uma senha",
+ "Password" : "Senha",
+ "Enter a valid password" : "Digite uma senha válida",
+ "Generate a new password" : "Gerar uma nova senha",
+ "Your administrator has enforced a password protection." : "Seu administrador aplicou uma proteção por senha.",
+ "Automatically copying failed, please copy the share link manually" : "A cópia automática falhou. Copie o link de compartilhamento manualmente",
+ "Link copied" : "Link copiado",
+ "Email already added" : "E-mail já adicionado",
+ "Invalid email address" : "Endereço de e-mail inválido",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["O seguinte endereço de e-mail não é válido: {emails}","Os seguintes endereços de e-mail não são válidos: {emails}","Os seguintes endereços de e-mail não são válidos: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} endereço de e-mail já adicionado","{count} endereços de e-mail já adicionados","{count} endereços de e-mail já adicionados"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} endereço de e-mail adicionado","{count} endereços de e-mail adicionados","{count} endereços de e-mail adicionados"],
+ "You can now share the link below to allow people to upload files to your directory." : "Agora você pode compartilhar o link abaixo para permitir que as pessoas carreguem arquivos em seu diretório.",
+ "Share link" : "Link de compartilhamento",
+ "Copy" : "Copiar",
+ "Send link via email" : "Enviar link por e-mail",
+ "Enter an email address or paste a list" : "Digite um endereço de e-mail ou cole uma lista",
+ "Remove email" : "Remover e-mail",
+ "Select a destination" : "Selecione um destino",
+ "Select" : "Selecionar",
+ "What are you requesting?" : "O que você está solicitando?",
+ "Request subject" : "Assunto da solicitação",
+ "Birthday party photos, History assignment…" : "Fotos da festa de aniversário, Tarefas de história…",
+ "Where should these files go?" : "Para onde esses arquivos devem ir?",
+ "Upload destination" : "Destino do upload",
+ "Revert to default" : "Reverter para o padrão",
+ "The uploaded files are visible only to you unless you choose to share them." : "Os arquivos enviados ficam visíveis apenas para você, a menos que você opte por compartilhá-los.",
+ "Add a note" : "Adicionar uma nota",
+ "Note for recipient" : "Nota para o destinatário",
+ "Add a note to help people understand what you are requesting." : "Adicione uma nota para ajudar as pessoas a entenderem o que você está solicitando.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Você pode adicionar links, datas ou qualquer outra informação que ajude o destinatário a entender o que você está solicitando.",
+ "Close" : "Fechar",
+ "_Send email and close_::_Send {count} emails and close_" : ["Envie e-mail e feche","Envie {count} e-mails e feche","Envie {count} e-mails e feche"],
+ "Please select a folder, you cannot share the root directory." : "Selecione uma pasta, você não pode compartilhar o diretório raiz.",
+ "File request created" : "Solicitação de arquivo criada",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Solicitação de arquivo criada e e-mail enviado","Solicitação de arquivo criada e {count} e-mails enviados","Solicitação de arquivo criada e {count} e-mails enviados"],
+ "Error creating the share: {errorMessage}" : "Erro ao criar o compartilhamento: {errorMessage}",
+ "Error creating the share" : "Erro ao criar o compartilhamento",
+ "Error sending emails: {errorMessage}" : "Erro ao enviar e-mails: {errorMessage}",
+ "Error sending emails" : "Erro ao enviar e-mails",
+ "Create a file request" : "Criar uma solicitação de arquivo",
+ "Collect files from others even if they do not have an account." : "Colete arquivos de outras pessoas, mesmo que elas não tenham uma conta.",
+ "To ensure you can receive files, verify you have enough storage available." : "Para garantir que você possa receber arquivos, verifique se você tem armazenamento suficiente disponível.",
+ "File request" : "Solicitação de arquivo",
+ "Previous step" : "Etapa anterior",
+ "Cancel" : "Cancelar",
+ "Cancel the file request creation" : "Cancelar a criação da solicitação de arquivo",
+ "Close without sending emails" : "Fechar sem enviar e-mails",
+ "Continue" : "Continuar",
"Error while toggling options" : "Erro ao alternar opções",
- "Set default folder for accepted shares" : "Definir pasta padrão para compartilhamentos aceitos",
- "Reset" : "Redefinir",
- "Reset folder to system default" : "Redefinir pasta para o padrão do sistema",
+ "Accept shares from other accounts and groups by default" : "Aceitar compartilhamentos de outras contas e grupos por padrão",
"Choose a default folder for accepted shares" : "Escolha uma pasta padrão para os compartilhamentos aceitos",
"Invalid path selected" : "Caminho inválido selecionado",
"Unknown error" : "Erro desconhecido",
- "Open Sharing Details" : "Abrir Detalhes de Compartilhamento",
+ "Set default folder for accepted shares" : "Definir pasta padrão para compartilhamentos aceitos",
+ "Reset" : "Redefinir",
+ "Reset folder to system default" : "Redefinir pasta para o padrão do sistema",
+ "Share expiration: {date}" : "Expiração do compartilhamento: {date}",
+ "Share Expiration" : "Expiração do Compartilhamento",
"group" : "grupo",
"conversation" : "conversa",
"remote" : "remoto",
"remote group" : "grupo remoto",
"guest" : "convidado",
- "Shared with the group {user} by {owner}" : "Compartilhado com o grupo {group} por {owner}",
- "Shared with the conversation {user} by {owner}" : "Compartilhado com a conversa {conversation} por {owner}",
+ "by {initiator}" : "por {initiator}",
+ "Shared with the group {user} by {owner}" : "Compartilhado com o grupo {user} por {owner}",
+ "Shared with the conversation {user} by {owner}" : "Compartilhado com a conversa {user} por {owner}",
"Shared with {user} by {owner}" : "Compartilhado com {user} por {owner}",
+ "Open Sharing Details" : "Abrir Detalhes de Compartilhamento",
"Added by {initiator}" : "Adicionado por {initiator}",
"Via “{folder}”" : "Via “{folder}”",
"Unshare" : "Descompartilhar",
- "Internal link" : "Link interno",
"Cannot copy, please copy the link manually" : "Não é possível copiar, copie o link manualmente",
- "Copy internal link to clipboard" : "Copie o link interno para a área de transferência",
- "Only works for people with access to this folder" : "Funciona apenas para pessoas com acesso a esta pasta",
- "Only works for people with access to this file" : "Funciona apenas para pessoas com acesso a este arquivo",
- "Link copied" : "Link copiado",
+ "Copy internal link" : "Copiar link interno",
+ "For people who already have access" : "Para pessoas que já têm acesso",
+ "Internal link" : "Link interno",
+ "{shareWith} by {initiator}" : "{shareWith} por {initiator}",
+ "Shared via link by {initiator}" : "Compartilhado via link por {initiator}",
+ "File request ({label})" : "Solicitação de arquivo ({label})",
+ "Mail share ({label})" : "Compartilhamento por e-mail ({label})",
+ "Share link ({label})" : "Link de compartilhamento ({label})",
+ "Mail share" : "Compartilhamento por e-mail",
+ "Share link ({index})" : "Link de compartilhamento ({index})",
+ "Create public link" : "Criar link público",
+ "Actions for \"{title}\"" : "Ações para \"{title}\"",
+ "Copy public link of \"{title}\"" : "Copiar link público de \"{title}\"",
+ "Error, please enter proper password and/or expiration date" : "Erro, digite a senha correta e/ou a data de validade",
+ "Link share created" : "Compartilhamento por link criado",
+ "Error while creating the share" : "Erro ao criar o compartilhamento",
"Please enter the following required information before creating the share" : "Digite as seguintes informações necessárias antes de criar o compartilhamento",
"Password protection (enforced)" : "Proteção por senha (imposta)",
"Password protection" : "Proteger com senha",
"Enter a password" : "Digite uma senha",
- "Expiration date (enforced)" : "Data de vencimento (imposta)",
- "Enter a date" : "Digite uma data",
+ "Enable link expiration (enforced)" : "Ativar expiração de link (imposta)",
+ "Enable link expiration" : "Ativar expiração de link",
+ "Enter expiration date (enforced)" : "Insira a data de expiração (imposta)",
+ "Enter expiration date" : "Insira a data de expiração",
"Create share" : "Criar compartilhamento",
- "Cancel" : "Cancelar",
- "Customize link" : "Personalizar o link",
+ "Customize link" : "Personalizar link",
"Generate QR code" : "Gerar código QR",
- "Add another link" : "Adicionar um novo link",
+ "Add another link" : "Adicionar outro link",
"Create a new share link" : "Criar um novo link de compartilhamento",
- "{shareWith} by {initiator}" : "{shareWith} por {initiator}",
- "Shared via link by {initiator}" : "Compartilhado via link por {initiator}",
- "Mail share ({label})" : "Compartilhar por e-mail ({label})",
- "Share link ({label})" : "Compartilhar link ({label})",
- "Share link ({index})" : "Compartilhar link ({index})",
- "Share link" : "Link de compartilhamento",
- "Actions for \"{title}\"" : "Ações para \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Copie o link público de \"{title}\" para a área de transferência",
- "Error, please enter proper password and/or expiration date" : "Erro, digite a senha correta e/ou a data de validade",
- "Link share created" : "Compartilhamento de link criado",
- "Error while creating the share" : "Erro ao criar o compartilhamento",
- "Quick share options, the current selected is \"{selectedOption}\"" : "Opções de compartilhamento rápido, o selecionado atualmente é \"{selectedOption}\"",
- "View only" : "Somente visualização ",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Opções de compartilhamento rápido, o atual selecionado é \"{selectedOption}\"",
+ "View only" : "Somente visualização",
"Can edit" : "Pode editar",
- "File drop" : "Baixar Arquivo ",
"Custom permissions" : "Permissões personalizadas",
- "Search for share recipients" : "Pesquisar destinatários de compartilhamento",
- "No recommendations. Start typing." : "Sem recomendações. Inicie a digitação.",
"Resharing is not allowed" : "Recompartilhamento não é permitido",
"Name or email …" : "Nome ou e-mail...",
- "Name, email, or Federated Cloud ID …" : "Nome, e-mail ou ID da nuvem federada...",
+ "Name, email, or Federated Cloud ID …" : "Nome, e-mail ou ID de Nuvem Federada …",
"Searching …" : "Pesquisando...",
"No elements found." : "Nenhum elemento encontrado.",
- "Search globally" : "Pesquisar globalmente",
+ "Search everywhere" : "Pesquisar em qualquer lugar",
"Guest" : "Convidado",
"Group" : "Grupo",
"Email" : "E-mail",
"Team" : "Equipe",
"Talk conversation" : "Conversa Talk",
- "Deck board" : "Painel de deck",
+ "Deck board" : "Painel de Deck",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "em {server}",
- "Allow upload and editing" : "Permitir envio e edição",
+ "Enter external recipients" : "Insira destinatários externos",
+ "Search for internal recipients" : "Pesquisar destinatários internos",
+ "Note from" : "Nota de",
+ "Note:" : "Nota:",
+ "File drop" : "Depósito de arquivos",
+ "Upload files to {foldername}." : "Fazer upload de arquivos para {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Ao fazer upload de arquivos, você concorda com os termos de serviço.",
+ "Successfully uploaded files" : "Arquivos carregados com sucesso",
+ "View terms of service" : "Ver os termos de serviço",
+ "Terms of service" : "Termos de serviço",
+ "Share with {user}" : "Compartilhe com {user}",
+ "Share with email {email}" : "Compartilhar com e-mail {email}",
+ "Share with group" : "Compartilhar com grupo",
+ "Share in conversation" : "Compartilhar na conversa",
+ "Share with {user} on remote server {server}" : "Compartilhar com {user} no servidor remoto {server}",
+ "Share with remote group" : "Compartilhar com grupo remoto",
+ "Share with guest" : "Compartilhar com convidado",
+ "Update share" : "Atualizar compartilhamento",
+ "Save share" : "Salvar compartilhamento",
+ "Read" : "Ler",
+ "Create" : "Criar",
+ "Edit" : "Editar",
+ "Share" : "Compartilhar",
+ "Delete" : "Excluir",
+ "Password field cannot be empty" : "O campo da senha não pode estar vazio",
+ "Replace current password" : "Substituir senha atual",
+ "Failed to generate a new token" : "Falha ao gerar um novo token",
+ "Allow upload and editing" : "Permitir uploads e edição",
"Allow editing" : "Permitir edição",
- "Upload only" : "Fazer upload apenas",
+ "Upload only" : "Somente upload",
"Advanced settings" : "Configurações avançadas",
"Share label" : "Compartilhar etiqueta",
- "Set password" : "Configurar senha",
- "Password" : "Senha",
- "Password expires {passwordExpirationTime}" : "A senha expira em {passwordExpirationTime}",
+ "Share link token" : "Token do link de compartilhamento",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Defina o token do link de compartilhamento público para algo fácil de lembrar ou gere um novo token. Não é recomendado usar um token fácil de adivinhar para compartilhamentos que contenham informações confidenciais.",
+ "Generating…" : "Gerando…",
+ "Generate new token" : "Gerar novo token",
+ "Set password" : "Definir senha",
+ "Password expires {passwordExpirationTime}" : "A senha expira em {passwordExpirationTime}",
"Password expired" : "Senha expirada",
"Video verification" : "Verificação de vídeo",
- "Set expiration date" : "Definir data de vencimento",
- "Expiration date" : "Expiração",
+ "Expiration date (enforced)" : "Data de vencimento (imposta)",
+ "Set expiration date" : "Definir data de expiração",
"Hide download" : "Ocultar download",
- "Allow download" : "Permitir baixar",
- "Note to recipient" : "Observação ao destinatário",
+ "Allow download and sync" : "Permitir download e sincronização",
+ "Note to recipient" : "Nota para o destinatário",
"Enter a note for the share recipient" : "Digite uma observação ao destinatário",
- "Read" : "Leitura",
- "Create" : "Criar",
- "Edit" : "Editar",
- "Share" : "Compartilhar",
+ "Show files in grid view" : "Mostrar arquivos na visualização em grade",
"Delete share" : "Excluir compartilhamento",
- "Share with {userName}" : "Compartilhe com {userName}",
- "Share with group" : "Compartilhar com grupo",
- "Share in conversation" : "Compartilhar na conversa",
- "Share with remote group" : "Compartilhar com grupo remoto",
- "Share with guest" : "Compartilhar com convidado",
- "Update share" : "Atualizar compartilhamento",
- "Save share" : "Salvar compartilhamento",
"Others with access" : "Outros com acesso",
"No other accounts with access found" : "Nenhuma outra conta com acesso encontrada",
"Toggle list of others with access to this directory" : "Alternar a lista de outras pessoas com acesso a este diretório",
"Toggle list of others with access to this file" : "Alternar a lista de outras pessoas com acesso a este arquivo",
"Unable to fetch inherited shares" : "Não foi possível buscar compartilhamentos herdados",
+ "Link shares" : "Compartilhamentos por link",
+ "Shares" : "Compartilhamentos",
+ "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Compartilhe arquivos dentro da sua organização. Os destinatários que já conseguem visualizar o arquivo também podem usar este link para facilitar o acesso.",
+ "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Compartilhe arquivos com outras pessoas fora da sua organização por meio de links públicos e endereços de e-mail. Você também pode compartilhar com contas Nextcloud em outras instâncias usando o ID de nuvem federado delas.",
+ "Shares from apps or other sources which are not included in internal or external shares." : "Compartilhamentos de aplicativos ou outras fontes que não estão incluídos em compartilhamentos internos ou externos.",
+ "Type names, teams, federated cloud IDs" : "Digite nomes, equipes, IDs de nuvem federada",
+ "Type names or teams" : "Digite nomes ou equipes",
+ "Type a federated cloud ID" : "Digite um ID de nuvem federada",
+ "Type an email" : "Digite um e-mail",
+ "Type an email or federated cloud ID" : "Digite um e-mail ou ID de nuvem federada",
"Unable to load the shares list" : "Não foi possível carregar a lista de compartilhamentos",
"Expires {relativetime}" : "Expira {relativetime}",
"this share just expired." : "esse compartilhamento acabou de expirar.",
"Shared with you by {owner}" : "Compartilhado com você por {owner}",
- "_Accept share_::_Accept shares_" : ["Aceitar compartilhamentos","Aceitar compartilhamentos","Aceitar compartilhamentos"],
+ "Internal shares" : "Compartilhamentos internos",
+ "Internal shares explanation" : "Explicação sobre compartilhamentos internos",
+ "External shares" : "Compartilhamentos externos",
+ "External shares explanation" : "Explicação sobre compartilhamentos externos",
+ "Additional shares" : "Compartilhamentos adicionais",
+ "Additional shares explanation" : "Explicação sobre compartilhamentos adicionais",
+ "Link to a file" : "Criar link para um arquivo",
+ "_Accept share_::_Accept shares_" : ["Aceitar compartilhamento","Aceitar compartilhamentos","Aceitar compartilhamentos"],
"Open in Files" : "Abrir em arquivos",
- "_Reject share_::_Reject shares_" : ["Rejeitar compartilhamentos","Rejeitar compartilhamentos","Rejeitar compartilhamentos"],
- "_Restore share_::_Restore shares_" : ["Restaurar compartilhamentos","Restaurar compartilhamentos","Restaurar compartilhamentos"],
+ "_Reject share_::_Reject shares_" : ["Rejeitar compartilhamento","Rejeitar compartilhamentos","Rejeitar compartilhamentos"],
+ "_Restore share_::_Restore shares_" : ["Restaurar compartilhamento","Restaurar compartilhamentos","Restaurar compartilhamentos"],
"Shared" : "Compartilhado",
- "Shared multiple times with different people" : "Compartilhado várias vezes com pessoas diferentes",
"Shared by {ownerDisplayName}" : "Compartilhado por {ownerDisplayName}",
- "Show sharing options" : "Mostrar opções de compartilhamento",
- "Link to a file" : "Criar link para um arquivo",
- "Error creating the share: {errorMessage}" : "Erro ao criar o compartilhamento: {errorMessage}",
- "Error creating the share" : "Erro ao criar o compartilhamento",
- "Error updating the share: {errorMessage}" : "Erro ao atualizar o compartilhamento: {errorMessage}",
- "Error updating the share" : "Erro ao atualizar o compartilhamento",
- "File \"{path}\" has been unshared" : "O arquivo \"{path}\" não foi compartilhado",
- "Folder \"{path}\" has been unshared" : "A pasta \"{path}\" foi descompartilhada",
- "Share {propertyName} saved" : "Compartilhe {propertyName} salvo",
- "Shared by" : "Compartilhado por",
- "Shared with" : "Compartilhado com",
- "Password created successfully" : "Senha criada com sucesso",
- "Error generating password from password policy" : "Erro ao gerar senha da política de senha",
- "Shared with you and the group {group} by {owner}" : "Compartilhado com você e o grupo {group} por {owner}",
- "Shared with you and {circle} by {owner}" : "Compartilhado com você e {circle} por {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Compartilhado com você e a conversa {conversation} por {owner}",
- "Shared with you in a conversation by {owner}" : "Compartilhado com você em uma conversa por {owner}",
- "Shares" : "Compartilhamentos",
+ "Shared multiple times with different people" : "Compartilhado várias vezes com pessoas diferentes",
+ "Sharing options" : "Opções de compartilhamento",
+ "Shared with others" : "Compartilhado com outros",
+ "Create file request" : "Criar solicitação de arquivo",
+ "Upload files to {foldername}" : "Fazer upload de arquivos para {foldername}",
+ "Public file share" : "Compartilhamento público de arquivo",
+ "Publicly shared file." : "Arquivo compartilhado publicamente.",
+ "No file" : "Sem arquivo",
+ "The file shared with you will show up here" : "O arquivo compartilhado com você aparecerá aqui",
+ "Public share" : "Compartilhamento público",
+ "Publicly shared files." : "Arquivos compartilhados publicamente.",
+ "No files" : "Sem arquivos",
+ "Files and folders shared with you will show up here" : "Arquivos e pastas compartilhados com você aparecerão aqui",
"Overview of shared files." : "Visão geral dos arquivos compartilhados.",
"No shares" : "Sem compartilhamentos",
"Files and folders you shared or have been shared with you will show up here" : "Arquivos e pastas que você compartilhou ou foram compartilhados com você aparecerão aqui",
@@ -253,7 +346,6 @@
"List of files that are shared with you." : "Lista de arquivos compartilhados com você.",
"Nothing shared with you yet" : "Nada foi compartilhado!",
"Files and folders others shared with you will show up here" : "Arquivos e pastas que outras pessoas compartilharam com você aparecerão aqui",
- "Shared with others" : "Compartilhado com outros",
"List of files that you shared with others." : "Lista de arquivos que você compartilhou com outras pessoas.",
"Nothing shared yet" : "Você ainda não compartilhou nada!",
"Files and folders you shared will show up here" : "Arquivos e pastas que você compartilhou aparecerão aqui",
@@ -261,57 +353,99 @@
"List of files that are shared by link." : "Lista de arquivos compartilhados por link.",
"No shared links" : "Nenhum link compartilhado!",
"Files and folders you shared by link will show up here" : "Arquivos e pastas que você compartilhou por link aparecerão aqui",
- "Deleted shares" : "Compartilhamentos apagados",
- "List of shares you left." : "Lista de compartilhamentos que você deixou.",
- "No deleted shares" : "Não há compartilhamentos apagados",
- "Shares you have left will show up here" : "Os compartilhamentos que você deixou aparecerão aqui",
+ "File requests" : "Solicitações de arquivo",
+ "List of file requests." : "Lista de solicitações de arquivos.",
+ "No file requests" : "Nenhuma solicitação de arquivo",
+ "File requests you have created will show up here" : "As solicitações de arquivo que você criou aparecerão aqui",
+ "Deleted shares" : "Compartilhamentos excluídos",
+ "List of shares you left." : "Lista de compartilhamentos dos quais você saiu.",
+ "No deleted shares" : "Não há compartilhamentos excluídos",
+ "Shares you have left will show up here" : "Os compartilhamentos dos quais você saiu aparecerão aqui",
"Pending shares" : "Compartilhamentos pendentes",
- "List of unapproved shares." : "Lista de compartilhamentos não aprovadas.",
+ "List of unapproved shares." : "Lista de compartilhamentos não aprovados.",
"No pending shares" : "Não há compartilhamentos pendentes",
- "Shares you have received but not approved will show up here" : "As ações que você recebeu, mas não aprovou, aparecerão aqui",
- "Share note" : "Anotação de compartilhamento",
+ "Shares you have received but not approved will show up here" : "Os compartilhamentos que você recebeu, mas não aprovou, aparecerão aqui",
+ "Error deleting the share: {errorMessage}" : "Erro ao excluir o compartilhamento: {errorMessage}",
+ "Error deleting the share" : "Erro ao excluir o compartilhamento",
+ "Error updating the share: {errorMessage}" : "Erro ao atualizar o compartilhamento: {errorMessage}",
+ "Error updating the share" : "Erro ao atualizar o compartilhamento",
+ "File \"{path}\" has been unshared" : "O arquivo \"{path}\" foi descompartilhado",
+ "Folder \"{path}\" has been unshared" : "A pasta \"{path}\" foi descompartilhada",
+ "Could not update share" : "Não foi possível atualizar o compartilhamento",
+ "Share saved" : "Compartilhamento salvo",
+ "Share expiry date saved" : "Data de expiração do compartilhamento salva",
+ "Share hide-download state saved" : "Estado ocultar-download do compartilhamento salvo",
+ "Share label saved" : "Rótulo de compartilhamento salvo",
+ "Share note for recipient saved" : "Nota para o destinatário do compartilhamento salva",
+ "Share password saved" : "Senha do compartilhamento salva",
+ "Share permissions saved" : "Permissões do compartilhamento salvas",
+ "To upload files to {folder}, you need to provide your name first." : "Para fazer upload de arquivos para {folder}, primeiro você precisa fornecer seu nome.",
+ "Upload files to {folder}" : "Fazer upload de arquivos para {folder}",
+ "Please confirm your name to upload files to {folder}" : "Confirme seu nome para fazer upload de arquivos para {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} compartilhou uma pasta com você.",
+ "Names must not be empty." : "Os nomes não podem estar vazios.",
+ "Names must not start with a dot." : "Os nomes não devem começar com um ponto.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" não é permitido dentro de um nome.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" é um nome reservado e não permitido.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" não é um nome permitido.",
+ "Names must not end with \"{extension}\"." : "Os nomes não devem terminar com \"{extension}\".",
+ "Invalid name." : "Nome inválido.",
+ "Shared by" : "Compartilhado por",
+ "Shared with" : "Compartilhado com",
+ "Password created successfully" : "Senha criada com sucesso",
+ "Error generating password from password policy" : "Erro ao gerar a senha a partir da política de senha",
+ "Shared with you and the group {group} by {owner}" : "Compartilhado com você e o grupo {group} por {owner}",
+ "Shared with you and {circle} by {owner}" : "Compartilhado com você e {circle} por {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Compartilhado com você e a conversa {conversation} por {owner}",
+ "Shared with you in a conversation by {owner}" : "Compartilhado com você em uma conversa por {owner}",
+ "Share not found" : "Compartilhamento não encontrado",
+ "Back to %s" : "Voltar para %s",
+ "Add to your Nextcloud" : "Adicionar ao seu Nextcloud",
+ "Waiting…" : "Aguarde...",
+ "error" : "erro",
+ "finished" : "terminou",
+ "This will stop your current uploads." : "Isso interromperá seus uploads atuais.",
+ "Move or copy" : "Mover ou copiar",
+ "You can upload into this folder" : "Você pode enviar arquivos para esta pasta",
+ "Show list view" : "Mostrar visualização em lista",
+ "Show grid view" : "Mostrar visualização em grade",
+ "No compatible server found at {remote}" : "Nenhum servidor compativel encontrado em {remote}",
+ "Invalid server URL" : "URL do servidor inválida",
+ "Failed to add the public link to your Nextcloud" : "Ocorreu uma falha ao adicionar o link público ao seu Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "Você não tem permissão para editar compartilhamentos de links que não são de sua propriedade",
+ "Download all files" : "Baixar todos os arquivos",
+ "Link copied to clipboard" : "Link copiado para a área de transferência",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 endereço de e-mail já adicionado","{count} endereços de e-mail já adicionados","{count} endereços de e-mail já adicionados"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 endereço de e-mail adicionado","{count} endereços de e-mail adicionados","{count} endereços de e-mail adicionados"],
+ "Copy to clipboard" : "Copiar para área de transferência",
+ "Copy internal link to clipboard" : "Copiar link interno para a área de transferência",
+ "Only works for people with access to this folder" : "Funciona apenas para pessoas com acesso a esta pasta",
+ "Only works for people with access to this file" : "Funciona apenas para pessoas com acesso a este arquivo",
+ "Copy public link of \"{title}\" to clipboard" : "Copiar link público de \"{title}\" para a área de transferência",
+ "Search globally" : "Pesquisar globalmente",
+ "Search for share recipients" : "Pesquisar destinatários de compartilhamento",
+ "No recommendations. Start typing." : "Sem recomendações. Inicie a digitação.",
+ "To upload files, you need to provide your name first." : "Para fazer upload de arquivos, primeiro você precisa fornecer seu nome.",
+ "Enter your name" : "Digite seu nome",
+ "Submit name" : "Enviar nome",
+ "Share with {userName}" : "Compartilhar com {userName}",
+ "Show sharing options" : "Mostrar opções de compartilhamento",
+ "Share note" : "Compartilhar nota",
"Upload files to %s" : "Enviar arquivos para %s",
+ "%s shared a folder with you." : "%s compartilhou uma pasta com você.",
"Note" : "Nota",
"Select or drop files" : "Selecione ou solte arquivos",
"Uploading files" : "Enviando arquivos...",
"Uploaded files:" : "Arquivos enviados:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Ao enviar arquivos, você concorda com os %1$stermos de serviço%2$s.",
- "Add to your Nextcloud" : "Adicionar ao seu Nextcloud",
- "Files and folders others share with you will show up here" : "Arquivos e pastas que outras pessoas compartilham com você serão exibidos aqui.",
- "Files and folders you share will show up here" : "Arquivos e pastas que você compartilhar serão exibidos aqui.",
- "Files and folders you share by link will show up here" : "Arquivos e pastas que você compartilha por link serão exibidos aqui",
- "Shares you deleted will show up here" : "Compartilhamentos apagados aparecem aqui",
- "Shares you have received but not confirmed will show up here" : "Compartilhamentos que você recebeu, mas ainda não confirmou, serão exibidos aqui",
- "Shares will show up here" : "Compartilhamentos serão mostrados aqui",
- "Restore" : "Restaurar",
- "Something happened. Unable to restore the share." : "Algo aconteceu. Não foi possível restaurar o compartilhamento.",
- "Something happened. Unable to accept the share." : "Ocorreu um erro. Não foi possível aceitar o compartilhamento.",
- "Something happened. Unable to reject the share." : "Ocorreu um erro. Não foi possível recusar o compartilhamento.",
- "No expiration date set" : "Nenhuma data de expiração definida",
- "Please specify a valid user" : "Por favor especifique um usuário válido",
- "Please specify a valid federated user ID" : "Especifique um ID de usuário federado válido ",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Este aplicativo permite que os usuários compartilhem arquivos no Nextcloud. Se ativado, o administrador pode escolher quais grupos podem compartilhar arquivos. Os usuários aplicáveis podem compartilhar arquivos e pastas com outros usuários e grupos no Nextcloud. Além disso, se o administrador ativar o recurso de link de compartilhamento, um link externo poderá ser usado para compartilhar arquivos com outros usuários fora do Nextcloud. Os administradores também podem impor senhas, datas de vencimento e permitir o compartilhamento de servidor para servidor por meio de links de compartilhamento, bem como o compartilhamento de dispositivos móveis.\nDesativar este recurso remove arquivos e pastas compartilhados no servidor para todos os destinatários de compartilhamento e também nos clientes de sincronização e aplicativos móveis. Mais informações estão disponíveis na documentação do Nextcloud.",
- "Accept user and group shares by default" : "Aceitar compartilhamentos de usuário e grupo por padrão",
- "Read only" : "Somente leitura",
- "File drop (upload only)" : "Depósito de arquivos (somente envios)",
- "Upload" : "Enviar",
- "Bundled permissions" : "Permissões agrupadas",
- "Only works for users with access to this folder" : "Funciona apenas para usuários com acesso a esta pasta",
- "Only works for users with access to this file" : "Funciona apenas para usuários com acesso a este arquivo",
- "Circle" : "Círculo",
- "Update" : "Atualizar",
- "Share with " : "Compartilhar com",
- "No other users with access found" : "Nenhum usuário com acesso encontrado",
- "No entries found in this folder" : "Nenhuma entrada foi encontrada nesta pasta",
"Name" : "Nome",
- "Share time" : "Compartilhamento",
- "Sorry, this link does not seem to work anymore." : "Desculpe, este link parece não funcionar mais.",
- "Reasons might be:" : "As razões podem ser:",
- "the item was removed" : "o item foi removido",
- "the link expired" : "o link expirou",
- "sharing is disabled" : "o compartilhamento está desativado",
- "For more info, please ask the person who sent this link." : "Para mais informações, pergunte à pessoa que lhe enviou o link.",
- "Share with remote" : "Compartilhar com controle remoto",
- "Share with" : "Compartilhar com"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Use este método para compartilhar arquivos com pessoas ou equipes dentro da sua organização. Se o destinatário já tiver acesso ao compartilhamento, mas não conseguir encontrá-lo, você pode enviar o link de compartilhamento interno para facilitar o acesso.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Use este método para compartilhar arquivos com indivíduos ou organizações fora da sua organização. Arquivos e pastas podem ser compartilhados por meio de links públicos de compartilhamento e endereços de e-mail. Você também pode compartilhar com outras contas Nextcloud hospedadas em instâncias diferentes usando o ID de nuvem federada delas.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Compartilhamentos que não fazem parte dos compartilhamentos internos ou externos. Podem ser compartilhamentos de aplicativos ou outras fontes.",
+ "Share with accounts, teams, federated cloud id" : "Compartilhar com contas, equipes, ID de nuvem federada",
+ "Share with accounts and teams" : "Compartilhar com contas e equipes",
+ "Federated cloud ID" : "ID de nuvem federada",
+ "Email, federated cloud id" : "E-mail, ID de nuvem federada",
+ "Filename must not be empty." : "O nome do arquivo não pode estar vazio."
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/pt_PT.js b/apps/files_sharing/l10n/pt_PT.js
deleted file mode 100644
index 7ac37705f8c..00000000000
--- a/apps/files_sharing/l10n/pt_PT.js
+++ /dev/null
@@ -1,169 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "error" : "erro",
- "This will stop your current uploads." : "Isto irá interromper os seus carregamentos atuais.",
- "Move or copy" : "Mover ou copiar",
- "Download" : "Transferir",
- "Delete" : "Apagar",
- "You can upload into this folder" : "Pode enviar para esta pasta",
- "Terms of service" : "Termos de serviço",
- "Show list view" : "Mostrar visualização em lista",
- "Show grid view" : "Mostrar visualização em grelha",
- "No compatible server found at {remote}" : "Nenhum servidor compatível encontrado em {remote}",
- "Invalid server URL" : "URL de servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Não foi possível adicionar a hiperligação pública ao seu Nextcloud",
- "File shares" : "Partilhas de ficheiro",
- "Downloaded via public link" : "Transferido via hiperligação pública",
- "Downloaded by {email}" : "Transferido por {email}",
- "{file} downloaded via public link" : "{file} transferido via hiperligação pública",
- "{email} downloaded {file}" : "{email} transferiu {file}",
- "Shared with group {group}" : "Partilhado com o grupo {group}",
- "Removed share for group {group}" : "Removeu a partilha para o grupo {group}",
- "{actor} shared with group {group}" : "{actor} partilhou com o grupo {group}",
- "{actor} removed share for group {group}" : "{actor} removeu a partilha para o grupo {group}",
- "You shared {file} with group {group}" : "Partilhaste {file} com o grupo {group}",
- "You removed group {group} from {file}" : "Removeste o grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} partilhou {file} com o grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} removeu o grupo {group} de {file}",
- "Shared as public link" : "Partilhado como hiperligação pública",
- "Removed public link" : "Hiperligação pública removida",
- "Public link expired" : "A hiperligação pública expirou",
- "{actor} shared as public link" : "{actor} partilhou como hiperligação pública",
- "{actor} removed public link" : "{actor} removeu a hiperligação pública",
- "Public link of {actor} expired" : "Hiperligação pública de {actor} expirou",
- "You shared {file} as public link" : "Partilhou {file} como hiperligação pública",
- "You removed public link for {file}" : "Removeu a hiperligação pública de {file}",
- "Public link expired for {file}" : "Hiperligação pública expirada para {file}",
- "{actor} shared {file} as public link" : "{actor} partilhou {file} como hiperligação pública",
- "{actor} removed public link for {file}" : "{actor} removeu a hiperligação pública de {file}",
- "Public link of {actor} for {file} expired" : "Hiperligação pública de {actor} para {file} expirou",
- "{user} accepted the remote share" : "{user} aceitou a partilha remota",
- "{user} declined the remote share" : "{user} rejeitou a partilha remota",
- "You received a new remote share {file} from {user}" : "Recebeu uma nova partilha remota {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceitou a partilha remota de {file}",
- "{user} declined the remote share of {file}" : "{user} rejeitou a partilha remota de {file}",
- "{user} unshared {file} from you" : "{user} cancelou a partilha de {file} consigo",
- "Shared with {user}" : "Partilhado com {user}",
- "Removed share for {user}" : "Partilha removida para {user}",
- "{actor} removed themselves" : "{actor} removeu eles mesmos",
- "{actor} shared with {user}" : "{actor} partilhou com {user}",
- "{actor} removed share for {user}" : "{actor} removeu partilha com {user}",
- "Shared by {actor}" : "Partilhado por {actor}",
- "{actor} removed share" : "{actor} removeu partilha",
- "You shared {file} with {user}" : "Partilhaste {file} com {user}",
- "You removed {user} from {file}" : "Removeste {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} partilhou {file} com {user}",
- "{actor} removed {user} from {file}" : "{actor} removeu {user} de {file}",
- "{actor} shared {file} with you" : "{actor} partilhou {file} consigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Um ficheiro ou pasta partilhado por e-mail ou hiperligação publica foi <strong>transferido</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Um ficheiro ou pasta foi partilhado a partir de <strong>outro servidor</strong>",
- "Files" : "Ficheiros",
- "A file or folder has been <strong>shared</strong>" : "Foi <strong>partilhado</strong> um ficheiro ou uma pasta",
- "Could not delete share" : "Não foi possível eliminar a partilha",
- "Please specify a file or folder path" : "Por favor, especifique um ficheiro ou caminho de pasta",
- "Wrong path, file/folder does not exist" : "Caminho errado, ficheiro/pasta não existe",
- "Could not create share" : "Não foi possível criar partilha",
- "Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser AAAA-MM-DD",
- "Group sharing is disabled by the administrator" : "A partilha em grupo está desativada pelo administrador",
- "Please specify a valid group" : "Por favor, especifique um grupo válido",
- "Public link sharing is disabled by the administrator" : "A partilha da hiperligação pública está desativada pelo administrador",
- "Public upload disabled by the administrator" : "Envio público desativado pelo administrador",
- "Public upload is only possible for publicly shared folders" : "O envio público só é possível para as pastas partilhadas publicamente",
- "You cannot share to a Circle if the app is not enabled" : "Não pode partilhar um Círculo se a aplicação não estiver activa",
- "Please specify a valid circle" : "Por favor especifique um círculo válido",
- "Unknown share type" : "Tipo de partilha desconhecido",
- "Not a directory" : "Não é uma diretoria",
- "Could not lock path" : "Não foi possível bloquear o caminho",
- "Wrong or no update parameter given" : "Parâmetro indicado errado ou desatualizado",
- "shared by %s" : "partilhado por %s",
- "Download all files" : "Transferir todos os ficheiros",
- "Direct link" : "Hiperligação direta",
- "Share API is disabled" : "A partilha de API está desativada",
- "File sharing" : "Partilha de ficheiro",
- "Accept" : "Aceitar",
- "Decline" : "Recusar",
- "Sharing" : "Partilha",
- "Reset" : "Reiniciar",
- "Unknown error" : "Erro desconhecido",
- "group" : "grupo",
- "conversation" : "conversação",
- "remote" : "remoto",
- "remote group" : "grupo remoto",
- "guest" : "convidado",
- "Unshare" : "Cancelar partilha",
- "Cannot copy, please copy the link manually" : "Não foi possível copiar, copie a ligação manualmente",
- "Link copied" : "Link copiado",
- "Password protection" : "Protegido por palavra-passe",
- "Enter a password" : "Insira uma palavra-passe",
- "Cancel" : "Cancelar",
- "Add another link" : "Adicionar outra hiperligação",
- "Share link" : "Share link",
- "View only" : "Visualizar apenas",
- "Can edit" : "Pode editar",
- "File drop" : "File drop",
- "No recommendations. Start typing." : "Nenhuma recomendação. Comece a escrever ",
- "Resharing is not allowed" : "Voltar a partilhar não é permitido",
- "Searching …" : "À procura …",
- "No elements found." : "Não foram encontrados elementos.",
- "Search globally" : "Procura global",
- "Guest" : "Convidado",
- "Group" : "Grupo",
- "Email" : "E-mail",
- "Allow upload and editing" : "Permtir carregamentos e edições",
- "Allow editing" : "Permitir edição",
- "Advanced settings" : "Definições avançadas",
- "Set password" : "Definir palavra-passe",
- "Password" : "Password",
- "Set expiration date" : "Definir a data de expiração",
- "Expiration date" : "Data de expiração",
- "Hide download" : "Ocultar transferência",
- "Note to recipient" : "Nota para o destinatário",
- "Read" : "Ler",
- "Create" : "Criar",
- "Edit" : "Editar",
- "Share" : "Partilhar",
- "Shared with you by {owner}" : "Partilhado consigo por {owner}",
- "Shared" : "Partilhados",
- "Shared by" : "Partilhado por",
- "Shared with" : "Partilhado com ",
- "Shared with you and the group {group} by {owner}" : "Partilhado consigo e com o grupo {group} por {owner}",
- "Shared with you and {circle} by {owner}" : "Partilhado consigo e com {circle} por {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Partilhado consigo e com a conversação {conversation} por {owner}",
- "Shared with you in a conversation by {owner}" : "Partilhado consigo numa conversação por {owner}",
- "Shares" : "Partilhas",
- "Shared with you" : "Partilhado consigo ",
- "Nothing shared with you yet" : "Ainda não foi partilhado nada consigo",
- "Shared with others" : "Partilhado com terceiros",
- "Nothing shared yet" : "Ainda não foi partilhado nada",
- "Shared by link" : "Partilhado por hiperligação",
- "No shared links" : "Sem hiperligações partilhadas",
- "Share note" : "Partilhar nota",
- "Upload files to %s" : "Enviar ficheiros para %s",
- "Note" : "Nota",
- "Select or drop files" : "Seleccione ou solte ficheiros",
- "Uploaded files:" : "Ficheiros enviados:",
- "Add to your Nextcloud" : "Adicionar à sua Nextcloud",
- "Files and folders others share with you will show up here" : "Os ficheiros e pastas que terceiros partilham consigo, serão mostrados aqui",
- "Files and folders you share will show up here" : "Os ficheiros e as pastas que partilha serão mostrados aqui",
- "Files and folders you share by link will show up here" : "Os ficheiros e as pastas que partilha por hiperligação, serão mostrados aqui",
- "Restore" : "Restaurar",
- "No expiration date set" : "Data de expiração não definida",
- "Please specify a valid user" : "Por favor, especifique um utilizador válido",
- "Read only" : "Apenas leitura",
- "File drop (upload only)" : "Pasta de carregamento apenas",
- "Upload" : "Upload",
- "Only works for users with access to this folder" : "Apenas funciona para utilizadores com acesso a esta pasta",
- "Circle" : "Círculo",
- "Update" : "Atualizar",
- "No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
- "Name" : "Nome",
- "Share time" : "Hora da Partilha",
- "Reasons might be:" : "As razões poderão ser:",
- "the item was removed" : "o item foi removido",
- "the link expired" : "a hiperligação expirou",
- "sharing is disabled" : "a partilha está desativada",
- "For more info, please ask the person who sent this link." : "Para mais informação, por favor, pergunte à pessoa que lhe enviou esta hiperligação.",
- "Share with" : "Partilhar com"
-},
-"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/pt_PT.json b/apps/files_sharing/l10n/pt_PT.json
deleted file mode 100644
index 5dd665acdcb..00000000000
--- a/apps/files_sharing/l10n/pt_PT.json
+++ /dev/null
@@ -1,167 +0,0 @@
-{ "translations": {
- "error" : "erro",
- "This will stop your current uploads." : "Isto irá interromper os seus carregamentos atuais.",
- "Move or copy" : "Mover ou copiar",
- "Download" : "Transferir",
- "Delete" : "Apagar",
- "You can upload into this folder" : "Pode enviar para esta pasta",
- "Terms of service" : "Termos de serviço",
- "Show list view" : "Mostrar visualização em lista",
- "Show grid view" : "Mostrar visualização em grelha",
- "No compatible server found at {remote}" : "Nenhum servidor compatível encontrado em {remote}",
- "Invalid server URL" : "URL de servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Não foi possível adicionar a hiperligação pública ao seu Nextcloud",
- "File shares" : "Partilhas de ficheiro",
- "Downloaded via public link" : "Transferido via hiperligação pública",
- "Downloaded by {email}" : "Transferido por {email}",
- "{file} downloaded via public link" : "{file} transferido via hiperligação pública",
- "{email} downloaded {file}" : "{email} transferiu {file}",
- "Shared with group {group}" : "Partilhado com o grupo {group}",
- "Removed share for group {group}" : "Removeu a partilha para o grupo {group}",
- "{actor} shared with group {group}" : "{actor} partilhou com o grupo {group}",
- "{actor} removed share for group {group}" : "{actor} removeu a partilha para o grupo {group}",
- "You shared {file} with group {group}" : "Partilhaste {file} com o grupo {group}",
- "You removed group {group} from {file}" : "Removeste o grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} partilhou {file} com o grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} removeu o grupo {group} de {file}",
- "Shared as public link" : "Partilhado como hiperligação pública",
- "Removed public link" : "Hiperligação pública removida",
- "Public link expired" : "A hiperligação pública expirou",
- "{actor} shared as public link" : "{actor} partilhou como hiperligação pública",
- "{actor} removed public link" : "{actor} removeu a hiperligação pública",
- "Public link of {actor} expired" : "Hiperligação pública de {actor} expirou",
- "You shared {file} as public link" : "Partilhou {file} como hiperligação pública",
- "You removed public link for {file}" : "Removeu a hiperligação pública de {file}",
- "Public link expired for {file}" : "Hiperligação pública expirada para {file}",
- "{actor} shared {file} as public link" : "{actor} partilhou {file} como hiperligação pública",
- "{actor} removed public link for {file}" : "{actor} removeu a hiperligação pública de {file}",
- "Public link of {actor} for {file} expired" : "Hiperligação pública de {actor} para {file} expirou",
- "{user} accepted the remote share" : "{user} aceitou a partilha remota",
- "{user} declined the remote share" : "{user} rejeitou a partilha remota",
- "You received a new remote share {file} from {user}" : "Recebeu uma nova partilha remota {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceitou a partilha remota de {file}",
- "{user} declined the remote share of {file}" : "{user} rejeitou a partilha remota de {file}",
- "{user} unshared {file} from you" : "{user} cancelou a partilha de {file} consigo",
- "Shared with {user}" : "Partilhado com {user}",
- "Removed share for {user}" : "Partilha removida para {user}",
- "{actor} removed themselves" : "{actor} removeu eles mesmos",
- "{actor} shared with {user}" : "{actor} partilhou com {user}",
- "{actor} removed share for {user}" : "{actor} removeu partilha com {user}",
- "Shared by {actor}" : "Partilhado por {actor}",
- "{actor} removed share" : "{actor} removeu partilha",
- "You shared {file} with {user}" : "Partilhaste {file} com {user}",
- "You removed {user} from {file}" : "Removeste {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} partilhou {file} com {user}",
- "{actor} removed {user} from {file}" : "{actor} removeu {user} de {file}",
- "{actor} shared {file} with you" : "{actor} partilhou {file} consigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Um ficheiro ou pasta partilhado por e-mail ou hiperligação publica foi <strong>transferido</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Um ficheiro ou pasta foi partilhado a partir de <strong>outro servidor</strong>",
- "Files" : "Ficheiros",
- "A file or folder has been <strong>shared</strong>" : "Foi <strong>partilhado</strong> um ficheiro ou uma pasta",
- "Could not delete share" : "Não foi possível eliminar a partilha",
- "Please specify a file or folder path" : "Por favor, especifique um ficheiro ou caminho de pasta",
- "Wrong path, file/folder does not exist" : "Caminho errado, ficheiro/pasta não existe",
- "Could not create share" : "Não foi possível criar partilha",
- "Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser AAAA-MM-DD",
- "Group sharing is disabled by the administrator" : "A partilha em grupo está desativada pelo administrador",
- "Please specify a valid group" : "Por favor, especifique um grupo válido",
- "Public link sharing is disabled by the administrator" : "A partilha da hiperligação pública está desativada pelo administrador",
- "Public upload disabled by the administrator" : "Envio público desativado pelo administrador",
- "Public upload is only possible for publicly shared folders" : "O envio público só é possível para as pastas partilhadas publicamente",
- "You cannot share to a Circle if the app is not enabled" : "Não pode partilhar um Círculo se a aplicação não estiver activa",
- "Please specify a valid circle" : "Por favor especifique um círculo válido",
- "Unknown share type" : "Tipo de partilha desconhecido",
- "Not a directory" : "Não é uma diretoria",
- "Could not lock path" : "Não foi possível bloquear o caminho",
- "Wrong or no update parameter given" : "Parâmetro indicado errado ou desatualizado",
- "shared by %s" : "partilhado por %s",
- "Download all files" : "Transferir todos os ficheiros",
- "Direct link" : "Hiperligação direta",
- "Share API is disabled" : "A partilha de API está desativada",
- "File sharing" : "Partilha de ficheiro",
- "Accept" : "Aceitar",
- "Decline" : "Recusar",
- "Sharing" : "Partilha",
- "Reset" : "Reiniciar",
- "Unknown error" : "Erro desconhecido",
- "group" : "grupo",
- "conversation" : "conversação",
- "remote" : "remoto",
- "remote group" : "grupo remoto",
- "guest" : "convidado",
- "Unshare" : "Cancelar partilha",
- "Cannot copy, please copy the link manually" : "Não foi possível copiar, copie a ligação manualmente",
- "Link copied" : "Link copiado",
- "Password protection" : "Protegido por palavra-passe",
- "Enter a password" : "Insira uma palavra-passe",
- "Cancel" : "Cancelar",
- "Add another link" : "Adicionar outra hiperligação",
- "Share link" : "Share link",
- "View only" : "Visualizar apenas",
- "Can edit" : "Pode editar",
- "File drop" : "File drop",
- "No recommendations. Start typing." : "Nenhuma recomendação. Comece a escrever ",
- "Resharing is not allowed" : "Voltar a partilhar não é permitido",
- "Searching …" : "À procura …",
- "No elements found." : "Não foram encontrados elementos.",
- "Search globally" : "Procura global",
- "Guest" : "Convidado",
- "Group" : "Grupo",
- "Email" : "E-mail",
- "Allow upload and editing" : "Permtir carregamentos e edições",
- "Allow editing" : "Permitir edição",
- "Advanced settings" : "Definições avançadas",
- "Set password" : "Definir palavra-passe",
- "Password" : "Password",
- "Set expiration date" : "Definir a data de expiração",
- "Expiration date" : "Data de expiração",
- "Hide download" : "Ocultar transferência",
- "Note to recipient" : "Nota para o destinatário",
- "Read" : "Ler",
- "Create" : "Criar",
- "Edit" : "Editar",
- "Share" : "Partilhar",
- "Shared with you by {owner}" : "Partilhado consigo por {owner}",
- "Shared" : "Partilhados",
- "Shared by" : "Partilhado por",
- "Shared with" : "Partilhado com ",
- "Shared with you and the group {group} by {owner}" : "Partilhado consigo e com o grupo {group} por {owner}",
- "Shared with you and {circle} by {owner}" : "Partilhado consigo e com {circle} por {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Partilhado consigo e com a conversação {conversation} por {owner}",
- "Shared with you in a conversation by {owner}" : "Partilhado consigo numa conversação por {owner}",
- "Shares" : "Partilhas",
- "Shared with you" : "Partilhado consigo ",
- "Nothing shared with you yet" : "Ainda não foi partilhado nada consigo",
- "Shared with others" : "Partilhado com terceiros",
- "Nothing shared yet" : "Ainda não foi partilhado nada",
- "Shared by link" : "Partilhado por hiperligação",
- "No shared links" : "Sem hiperligações partilhadas",
- "Share note" : "Partilhar nota",
- "Upload files to %s" : "Enviar ficheiros para %s",
- "Note" : "Nota",
- "Select or drop files" : "Seleccione ou solte ficheiros",
- "Uploaded files:" : "Ficheiros enviados:",
- "Add to your Nextcloud" : "Adicionar à sua Nextcloud",
- "Files and folders others share with you will show up here" : "Os ficheiros e pastas que terceiros partilham consigo, serão mostrados aqui",
- "Files and folders you share will show up here" : "Os ficheiros e as pastas que partilha serão mostrados aqui",
- "Files and folders you share by link will show up here" : "Os ficheiros e as pastas que partilha por hiperligação, serão mostrados aqui",
- "Restore" : "Restaurar",
- "No expiration date set" : "Data de expiração não definida",
- "Please specify a valid user" : "Por favor, especifique um utilizador válido",
- "Read only" : "Apenas leitura",
- "File drop (upload only)" : "Pasta de carregamento apenas",
- "Upload" : "Upload",
- "Only works for users with access to this folder" : "Apenas funciona para utilizadores com acesso a esta pasta",
- "Circle" : "Círculo",
- "Update" : "Atualizar",
- "No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
- "Name" : "Nome",
- "Share time" : "Hora da Partilha",
- "Reasons might be:" : "As razões poderão ser:",
- "the item was removed" : "o item foi removido",
- "the link expired" : "a hiperligação expirou",
- "sharing is disabled" : "a partilha está desativada",
- "For more info, please ask the person who sent this link." : "Para mais informação, por favor, pergunte à pessoa que lhe enviou esta hiperligação.",
- "Share with" : "Partilhar com"
-},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ro.js b/apps/files_sharing/l10n/ro.js
deleted file mode 100644
index 33179fe9965..00000000000
--- a/apps/files_sharing/l10n/ro.js
+++ /dev/null
@@ -1,216 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Waiting…" : "În așteptare...",
- "error" : "eroare",
- "finished" : "finalizat",
- "This will stop your current uploads." : "Asta va opri descărcările curente.",
- "Move or copy" : "Mută sau copiază",
- "Download" : "Descarcă",
- "Delete" : "Șterge",
- "You can upload into this folder" : "Poți încărca în acest director",
- "Terms of service" : "Termenii serviciului",
- "Show list view" : "Afișează vizualizarea listă",
- "Show grid view" : "Afișează vizualizarea grilă",
- "No compatible server found at {remote}" : "Niciun server compatibil nu a fost găsit la {remote}",
- "Invalid server URL" : "URL server invalid",
- "Failed to add the public link to your Nextcloud" : "Eroare la adăugarea link-ului public la Nextcloud",
- "File shares" : "Fișiere partajate",
- "Downloaded via public link" : "Descărcat prin link public",
- "Downloaded by {email}" : "Descărcat de {email}",
- "{file} downloaded via public link" : "{file} descărcat din link public",
- "{email} downloaded {file}" : "{email} a descărcat {file}",
- "Shared with group {group}" : "Partajat cu grupul {group}",
- "Removed share for group {group}" : "Elimină partajarea pentru grupul {group}",
- "{actor} shared with group {group}" : "{actor} a partajat cu grupul {group}",
- "{actor} removed share for group {group}" : "{actor} a eliminat partajarea pentru grupul {group}",
- "Share for group {group} expired" : "Partajarea pentru grupul {group} a expirat",
- "You shared {file} with group {group}" : "Ați partajat {file} cu grupul {group}",
- "You removed group {group} from {file}" : "Ați eliminat accesul grupului {group} la {file}",
- "{actor} shared {file} with group {group}" : "{actor} a partajat {file} cu grupul {group}",
- "{actor} removed group {group} from {file}" : "{actor} a eliminat accesul grupului {group} la {file}",
- "Share for file {file} with group {group} expired" : "Partajarea fișierului {file} cu grupul {group} a expirat",
- "Shared as public link" : "Partajează un link public",
- "Removed public link" : "Elimină link public",
- "Public link expired" : "Link-ul public a expirat",
- "{actor} shared as public link" : "{actor} a partajat ca link public",
- "{actor} removed public link" : "{actor} a eliminat link public",
- "Public link of {actor} expired" : "Linkul public al {actor} a expirat",
- "You shared {file} as public link" : "Ați partajat {file} ca link public",
- "You removed public link for {file}" : "Ați șters linkul public pentru {file}",
- "Public link expired for {file}" : "Linkul public pentru {file} a expirat",
- "{actor} shared {file} as public link" : "{actor} a partajat {file} ca link public",
- "{actor} removed public link for {file}" : "{actor} a șters linkul public pentru {file}",
- "Public link of {actor} for {file} expired" : "Linkul public al {actor} pentru {file} a expirat",
- "{user} accepted the remote share" : "{user} a acceptat partajarea la distanță",
- "{user} declined the remote share" : "{user} nu a acceptat partajarea la distanță",
- "You received a new remote share {file} from {user}" : "Ați primit o partajare la distanță {file} de la {user}",
- "{user} accepted the remote share of {file}" : "{user} a acceptat partajarea la distanță a {file}",
- "{user} declined the remote share of {file}" : "{user} nu a acceptat partajarea la distanță a {file}",
- "{user} unshared {file} from you" : "{user} a eliminat partajarea cu tine a {file}",
- "Shared with {user}" : "Partajat cu {user}",
- "Removed share for {user}" : "S-a eliminat partajarea pentru {user}",
- "You removed yourself" : "V-ați exclus",
- "{actor} removed themselves" : "{actor} s-au exclus",
- "{actor} shared with {user}" : "{actor} a partajat cu {user}",
- "{actor} removed share for {user}" : "{actor} a eliminat partajarea pentru {user}",
- "Shared by {actor}" : "Partajat de {actor}",
- "{actor} removed share" : "{actor} a eliminat partajarea",
- "Share for {user} expired" : "Partajarea cu {user} a expirat",
- "Share expired" : "Partajare expirată",
- "You shared {file} with {user}" : "Ați partajat {file} cu {user}",
- "You removed {user} from {file}" : "Ați eliminat pe {user} de la partajarea {file}",
- "You removed yourself from {file}" : "V-ați eliminat de la partajarea {file}",
- "{actor} removed themselves from {file}" : "{actor} s-au eliminat de la partajarea {file}",
- "{actor} shared {file} with {user}" : "{actor} a partajat {file} cu {user}",
- "{actor} removed {user} from {file}" : "{actor} a eliminat pe {user} de la partajarea {file}",
- "{actor} shared {file} with you" : "{actor} a partajat {file} cu tine",
- "{actor} removed you from the share named {file}" : "{actor} v-a eliminat de la partajarea denumită {file}",
- "Share for file {file} with {user} expired" : "Partajarea fișierului {file} cu {user} a expirat",
- "Share for file {file} expired" : "Partajarea fișierului {file} a expirat",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "A fost <strong>descărcat</strong> un fișier sau folder partajat primân email sau prin link public",
- "A file or folder was shared from <strong>another server</strong>" : "A fost partajat un fișier sau folder de la <strong>alt server</strong>",
- "Files" : "Fișiere",
- "A file or folder has been <strong>shared</strong>" : "Un fișier sau director a fost <strong>partajat</strong>",
- "Shared link" : "Link partajat",
- "Wrong share ID, share does not exist" : "ID partajare greșit, partajarea nu există",
- "Could not delete share" : "Nu s-a putut șterge elementul partajat",
- "Please specify a file or folder path" : "Specifică un fișier sau o cale către un director",
- "Wrong path, file/folder does not exist" : "Cale eronată, fișier/folder inexistent",
- "Could not create share" : "Nu s-a putut crea partajarea",
- "Invalid permissions" : "Permisiuni invalide",
- "Invalid date, date format must be YYYY-MM-DD" : "Dată invalidă, formatul trebuie să fie AAAA-LL-ZZ",
- "Group sharing is disabled by the administrator" : "Partajarea de grup este dezactivată de administrator",
- "Please specify a valid group" : "Specifică un grup valid",
- "Public link sharing is disabled by the administrator" : "Partajarea prin link public este dezactivată de administrator",
- "Public upload disabled by the administrator" : "Încărcarea publică este dezactivată de administrator",
- "Public upload is only possible for publicly shared folders" : "Încărcarea publică este posibilă doar pentru folderele partajate public",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Trimiterea de către Nextcloud Talk a parolei pentru partajarea %s a eșuat deoarece Nextcloud Talk nu este activat",
- "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Partajarea %1$s a eșuat deoarece backend-ul nu permite partajări de tipul %2$s",
- "You cannot share to a Circle if the app is not enabled" : "Nu puteți partaja cu un Cerc dacă aplicația nu este activată",
- "Please specify a valid circle" : "Specificați un cerc valid",
- "Sharing %s failed because the back end does not support room shares" : "Partajarea %s a eșuat deoarece backend-ul nu suportă partajări în săli",
- "Sharing %s failed because the back end does not support ScienceMesh shares" : "Partajarea %s a eșuat deoarece backend-ul nu suportă partajări ScienceMesh",
- "Unknown share type" : "Tip necunoscut de partajare",
- "Not a directory" : "Nu este un director",
- "Could not lock node" : "Nu s-a putut bloca nodul",
- "Could not lock path" : "Calea nu a putut fi blocată",
- "Wrong or no update parameter given" : "S-a furnizat un parametru greșit sau neactualizat",
- "Share must at least have READ or CREATE permissions" : "Partajarea trebuie să aibă cel puțin permisiunea READ sau CREATE",
- "Share must have READ permission if UPDATE or DELETE permission is set" : "Partajarea trebuie să aibă permisiunea READ dacă este setată permisiunea UPDATE sau DELETE",
- "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Trimiterea parolei de către Nextcloud Talk\" pentru partajarea unui fișier sau folder a eșuat deoarece Nextcloud Talk nu este activat.",
- "shared by %s" : "partajat de %s",
- "Download all files" : "Descarcă toate fișierele",
- "Direct link" : "Legătură directă",
- "Add to your %s" : "Adaugă la %s tău",
- "Share API is disabled" : "API-ul de partajare este dezactivat",
- "File sharing" : "Partajare fișiere",
- "Share will expire tomorrow" : "Partajarea va expira mâine",
- "Your share of {node} will expire tomorrow" : "Partajarea {node} va expira mâine",
- "You received {share} as a share by {user}" : "Aţi primit {share} ca partajare de către {user}",
- "You received {share} to group {group} as a share by {user}" : "Ați primit {share} la grupul {group} ca partajare de către {user}",
- "Accept" : "Accept",
- "Decline" : "Refuză",
- "Sharing" : "Partajare",
- "Error while toggling options" : "Eroare la comutarea opțiunilor",
- "Set default folder for accepted shares" : "Stabiliți folderul implicit pentru partajările acceptate",
- "Reset" : "Resetare",
- "Reset folder to system default" : "Resetați folderul la setările implicite de sistem",
- "Choose a default folder for accepted shares" : "Alegeți un folder implicit pentru partajările acceptate",
- "Invalid path selected" : "Calea selectată este invalidă",
- "Unknown error" : "Eroare necunoscută",
- "Open Sharing Details" : "Deschide detalii partajare",
- "group" : "grup",
- "conversation" : "conversație",
- "remote" : "de la distanță",
- "remote group" : "grup la distanță",
- "guest" : "invitat",
- "Unshare" : "Oprește partajarea",
- "Internal link" : "Link intern",
- "Link copied" : "Link copiat",
- "Password protection" : "Password protection",
- "Enter a password" : "Enter a password",
- "Enter a date" : "Introdu data",
- "Cancel" : "Anulează",
- "Add another link" : "Adaugă un alt link",
- "Share link" : "Partajează link-ul",
- "View only" : "Numai se vizualizează",
- "Can edit" : "Poate edita",
- "File drop" : "Aducere fișier",
- "Custom permissions" : "Permisiuni particularizate",
- "Resharing is not allowed" : "Repartajarea nu este permisă",
- "Searching …" : "Căutare ...",
- "Search globally" : "Caută global",
- "Guest" : "Invitat",
- "Group" : "Grup",
- "Email" : "E-mail",
- "Talk conversation" : "Conversație Talk",
- "Deck board" : "Panou Deck",
- "Allow upload and editing" : "Permite încărcarea și editarea",
- "Allow editing" : "Permite editarea",
- "Advanced settings" : "Setări avansate",
- "Password" : "Parolă",
- "Set expiration date" : "Specifică data expirării",
- "Expiration date" : "Data expirării",
- "Hide download" : "Ascunde descărcarea",
- "Note to recipient" : "Notă către destinatar",
- "Read" : "Citit",
- "Create" : "Crează",
- "Edit" : "Editează",
- "Share" : "Partajează",
- "Shared with you by {owner}" : "Partajat cu tine de {owner}",
- "Open in Files" : "Deschide în Fișiere",
- "Shared" : "Partajat",
- "Error creating the share" : "Eroare la crearea partajării",
- "Shared by" : "impartite in ",
- "Shared with" : "Partajat cu",
- "Shared with you and the group {group} by {owner}" : "Partajat cu tine si cu grupul {group} de {owner}",
- "Shared with you and {circle} by {owner}" : "Partajat cu tine și {circle} de {owner} ",
- "Shared with you and the conversation {conversation} by {owner}" : "Partajat cu tine si conversația {conversation} de {owner}",
- "Shared with you in a conversation by {owner}" : "Partajat cu tine în o conversație {owner}",
- "Shares" : "Partajări",
- "No shares" : "Nicio partajare",
- "Shared with you" : "Partajat cu tine",
- "Nothing shared with you yet" : "Nimic nu e partajat cu tine încă",
- "Shared with others" : "Partajat cu alții",
- "Nothing shared yet" : "Nimic partajat încă",
- "Shared by link" : "Partajat prin link",
- "No shared links" : "Nicio legătură partajată",
- "Deleted shares" : "Partajări șterse",
- "No deleted shares" : "Nicio partajare ștearsă",
- "Pending shares" : "Partajări în așteptare",
- "No pending shares" : "Nicio partajare în așteptare",
- "Share note" : "Partajează nota",
- "Upload files to %s" : "Încarcă fișiere la %s",
- "Note" : "Notă",
- "Select or drop files" : "Selectează sau plasează fișiere",
- "Uploaded files:" : "Fișiere încărcate:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "Prin încărcarea fișierelor ești de accord cu %1$s termenii și serviciile %2$s",
- "Files and folders others share with you will show up here" : "Fișierele și directoarele partajate cu tine vor apărea aici",
- "Files and folders you share will show up here" : "Fișierele și directoarele pe care le partajezi vor apărea aici",
- "Files and folders you share by link will show up here" : "Fișierele și directoarele pe care le partajezi prin legături vor apărea aici",
- "Shares you deleted will show up here" : "Partajările pe care le ștergi vor apărea aici",
- "Shares you have received but not confirmed will show up here" : "Partajările pe care le primești dar nu le confirmi vor apărea aici",
- "Shares will show up here" : "Partajările vor apărea aici",
- "Restore" : "Restaurare",
- "Something happened. Unable to restore the share." : "A intervenit o eroare. Partajarea nu a putut fi restabilită.",
- "Something happened. Unable to accept the share." : "A intervenit o eroare. Partajarea nu a putut fi acceptată.",
- "Something happened. Unable to reject the share." : "A intervenit o eroare. Partajarea nu a putut fi respinsă.",
- "No expiration date set" : "Data expirării nu e setată",
- "Please specify a valid user" : "Specifică un utilizator valid",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Această aplicație permite utilizatorilor să partajeze fișiere în cadrul Nextcloud. Dacă este activată, administratorul poate stabili ce grupuri pot partaja fișiere. Utilizatorii respectivi pot apoi partaja fișiere și foldere cu alți utilizatori și grupuri în cadrul Nextcloud. În plus, dacă administratorul activează funcția de partajare linkuri, atunci poate fi folosit un link extern pentru partajarea fișierelor cu alți utilizatori din afara Nextcloud. Administratorii pot de asemenea să impună parole, date de expirare și să permită partajarea server la server via linkuri partajate precum și partajarea cu dispozitivele mobile.\nDezactivând această funcționalitate, se elimină accesul la fișierele și folderele partajate de pe server pentru toți destinatarii partajărilor și de asemenea de pe clienții de sincronizare și aplicațiile mobile. Mai multe informații se pot găsi în documentația Nextcloud.",
- "Accept user and group shares by default" : "Acceptă implicit partajările cu utilizatorii și grupurile",
- "Read only" : "Doar citire",
- "File drop (upload only)" : "Aruncă fișierul (numai încărcare)",
- "Upload" : "Încărcare",
- "Bundled permissions" : "Permisiuni încorporate",
- "Circle" : "Cerc",
- "Update" : "Actualizare",
- "No entries found in this folder" : "Niciun element găsit în acest director",
- "Name" : "Nume",
- "Reasons might be:" : "Motive posibile ar fi:",
- "the item was removed" : "acest articol a fost șters",
- "the link expired" : "linkul a expirat",
- "sharing is disabled" : "Partajare este oprită"
-},
-"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/files_sharing/l10n/ro.json b/apps/files_sharing/l10n/ro.json
deleted file mode 100644
index fe636ba9da3..00000000000
--- a/apps/files_sharing/l10n/ro.json
+++ /dev/null
@@ -1,214 +0,0 @@
-{ "translations": {
- "Waiting…" : "În așteptare...",
- "error" : "eroare",
- "finished" : "finalizat",
- "This will stop your current uploads." : "Asta va opri descărcările curente.",
- "Move or copy" : "Mută sau copiază",
- "Download" : "Descarcă",
- "Delete" : "Șterge",
- "You can upload into this folder" : "Poți încărca în acest director",
- "Terms of service" : "Termenii serviciului",
- "Show list view" : "Afișează vizualizarea listă",
- "Show grid view" : "Afișează vizualizarea grilă",
- "No compatible server found at {remote}" : "Niciun server compatibil nu a fost găsit la {remote}",
- "Invalid server URL" : "URL server invalid",
- "Failed to add the public link to your Nextcloud" : "Eroare la adăugarea link-ului public la Nextcloud",
- "File shares" : "Fișiere partajate",
- "Downloaded via public link" : "Descărcat prin link public",
- "Downloaded by {email}" : "Descărcat de {email}",
- "{file} downloaded via public link" : "{file} descărcat din link public",
- "{email} downloaded {file}" : "{email} a descărcat {file}",
- "Shared with group {group}" : "Partajat cu grupul {group}",
- "Removed share for group {group}" : "Elimină partajarea pentru grupul {group}",
- "{actor} shared with group {group}" : "{actor} a partajat cu grupul {group}",
- "{actor} removed share for group {group}" : "{actor} a eliminat partajarea pentru grupul {group}",
- "Share for group {group} expired" : "Partajarea pentru grupul {group} a expirat",
- "You shared {file} with group {group}" : "Ați partajat {file} cu grupul {group}",
- "You removed group {group} from {file}" : "Ați eliminat accesul grupului {group} la {file}",
- "{actor} shared {file} with group {group}" : "{actor} a partajat {file} cu grupul {group}",
- "{actor} removed group {group} from {file}" : "{actor} a eliminat accesul grupului {group} la {file}",
- "Share for file {file} with group {group} expired" : "Partajarea fișierului {file} cu grupul {group} a expirat",
- "Shared as public link" : "Partajează un link public",
- "Removed public link" : "Elimină link public",
- "Public link expired" : "Link-ul public a expirat",
- "{actor} shared as public link" : "{actor} a partajat ca link public",
- "{actor} removed public link" : "{actor} a eliminat link public",
- "Public link of {actor} expired" : "Linkul public al {actor} a expirat",
- "You shared {file} as public link" : "Ați partajat {file} ca link public",
- "You removed public link for {file}" : "Ați șters linkul public pentru {file}",
- "Public link expired for {file}" : "Linkul public pentru {file} a expirat",
- "{actor} shared {file} as public link" : "{actor} a partajat {file} ca link public",
- "{actor} removed public link for {file}" : "{actor} a șters linkul public pentru {file}",
- "Public link of {actor} for {file} expired" : "Linkul public al {actor} pentru {file} a expirat",
- "{user} accepted the remote share" : "{user} a acceptat partajarea la distanță",
- "{user} declined the remote share" : "{user} nu a acceptat partajarea la distanță",
- "You received a new remote share {file} from {user}" : "Ați primit o partajare la distanță {file} de la {user}",
- "{user} accepted the remote share of {file}" : "{user} a acceptat partajarea la distanță a {file}",
- "{user} declined the remote share of {file}" : "{user} nu a acceptat partajarea la distanță a {file}",
- "{user} unshared {file} from you" : "{user} a eliminat partajarea cu tine a {file}",
- "Shared with {user}" : "Partajat cu {user}",
- "Removed share for {user}" : "S-a eliminat partajarea pentru {user}",
- "You removed yourself" : "V-ați exclus",
- "{actor} removed themselves" : "{actor} s-au exclus",
- "{actor} shared with {user}" : "{actor} a partajat cu {user}",
- "{actor} removed share for {user}" : "{actor} a eliminat partajarea pentru {user}",
- "Shared by {actor}" : "Partajat de {actor}",
- "{actor} removed share" : "{actor} a eliminat partajarea",
- "Share for {user} expired" : "Partajarea cu {user} a expirat",
- "Share expired" : "Partajare expirată",
- "You shared {file} with {user}" : "Ați partajat {file} cu {user}",
- "You removed {user} from {file}" : "Ați eliminat pe {user} de la partajarea {file}",
- "You removed yourself from {file}" : "V-ați eliminat de la partajarea {file}",
- "{actor} removed themselves from {file}" : "{actor} s-au eliminat de la partajarea {file}",
- "{actor} shared {file} with {user}" : "{actor} a partajat {file} cu {user}",
- "{actor} removed {user} from {file}" : "{actor} a eliminat pe {user} de la partajarea {file}",
- "{actor} shared {file} with you" : "{actor} a partajat {file} cu tine",
- "{actor} removed you from the share named {file}" : "{actor} v-a eliminat de la partajarea denumită {file}",
- "Share for file {file} with {user} expired" : "Partajarea fișierului {file} cu {user} a expirat",
- "Share for file {file} expired" : "Partajarea fișierului {file} a expirat",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "A fost <strong>descărcat</strong> un fișier sau folder partajat primân email sau prin link public",
- "A file or folder was shared from <strong>another server</strong>" : "A fost partajat un fișier sau folder de la <strong>alt server</strong>",
- "Files" : "Fișiere",
- "A file or folder has been <strong>shared</strong>" : "Un fișier sau director a fost <strong>partajat</strong>",
- "Shared link" : "Link partajat",
- "Wrong share ID, share does not exist" : "ID partajare greșit, partajarea nu există",
- "Could not delete share" : "Nu s-a putut șterge elementul partajat",
- "Please specify a file or folder path" : "Specifică un fișier sau o cale către un director",
- "Wrong path, file/folder does not exist" : "Cale eronată, fișier/folder inexistent",
- "Could not create share" : "Nu s-a putut crea partajarea",
- "Invalid permissions" : "Permisiuni invalide",
- "Invalid date, date format must be YYYY-MM-DD" : "Dată invalidă, formatul trebuie să fie AAAA-LL-ZZ",
- "Group sharing is disabled by the administrator" : "Partajarea de grup este dezactivată de administrator",
- "Please specify a valid group" : "Specifică un grup valid",
- "Public link sharing is disabled by the administrator" : "Partajarea prin link public este dezactivată de administrator",
- "Public upload disabled by the administrator" : "Încărcarea publică este dezactivată de administrator",
- "Public upload is only possible for publicly shared folders" : "Încărcarea publică este posibilă doar pentru folderele partajate public",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Trimiterea de către Nextcloud Talk a parolei pentru partajarea %s a eșuat deoarece Nextcloud Talk nu este activat",
- "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Partajarea %1$s a eșuat deoarece backend-ul nu permite partajări de tipul %2$s",
- "You cannot share to a Circle if the app is not enabled" : "Nu puteți partaja cu un Cerc dacă aplicația nu este activată",
- "Please specify a valid circle" : "Specificați un cerc valid",
- "Sharing %s failed because the back end does not support room shares" : "Partajarea %s a eșuat deoarece backend-ul nu suportă partajări în săli",
- "Sharing %s failed because the back end does not support ScienceMesh shares" : "Partajarea %s a eșuat deoarece backend-ul nu suportă partajări ScienceMesh",
- "Unknown share type" : "Tip necunoscut de partajare",
- "Not a directory" : "Nu este un director",
- "Could not lock node" : "Nu s-a putut bloca nodul",
- "Could not lock path" : "Calea nu a putut fi blocată",
- "Wrong or no update parameter given" : "S-a furnizat un parametru greșit sau neactualizat",
- "Share must at least have READ or CREATE permissions" : "Partajarea trebuie să aibă cel puțin permisiunea READ sau CREATE",
- "Share must have READ permission if UPDATE or DELETE permission is set" : "Partajarea trebuie să aibă permisiunea READ dacă este setată permisiunea UPDATE sau DELETE",
- "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Trimiterea parolei de către Nextcloud Talk\" pentru partajarea unui fișier sau folder a eșuat deoarece Nextcloud Talk nu este activat.",
- "shared by %s" : "partajat de %s",
- "Download all files" : "Descarcă toate fișierele",
- "Direct link" : "Legătură directă",
- "Add to your %s" : "Adaugă la %s tău",
- "Share API is disabled" : "API-ul de partajare este dezactivat",
- "File sharing" : "Partajare fișiere",
- "Share will expire tomorrow" : "Partajarea va expira mâine",
- "Your share of {node} will expire tomorrow" : "Partajarea {node} va expira mâine",
- "You received {share} as a share by {user}" : "Aţi primit {share} ca partajare de către {user}",
- "You received {share} to group {group} as a share by {user}" : "Ați primit {share} la grupul {group} ca partajare de către {user}",
- "Accept" : "Accept",
- "Decline" : "Refuză",
- "Sharing" : "Partajare",
- "Error while toggling options" : "Eroare la comutarea opțiunilor",
- "Set default folder for accepted shares" : "Stabiliți folderul implicit pentru partajările acceptate",
- "Reset" : "Resetare",
- "Reset folder to system default" : "Resetați folderul la setările implicite de sistem",
- "Choose a default folder for accepted shares" : "Alegeți un folder implicit pentru partajările acceptate",
- "Invalid path selected" : "Calea selectată este invalidă",
- "Unknown error" : "Eroare necunoscută",
- "Open Sharing Details" : "Deschide detalii partajare",
- "group" : "grup",
- "conversation" : "conversație",
- "remote" : "de la distanță",
- "remote group" : "grup la distanță",
- "guest" : "invitat",
- "Unshare" : "Oprește partajarea",
- "Internal link" : "Link intern",
- "Link copied" : "Link copiat",
- "Password protection" : "Password protection",
- "Enter a password" : "Enter a password",
- "Enter a date" : "Introdu data",
- "Cancel" : "Anulează",
- "Add another link" : "Adaugă un alt link",
- "Share link" : "Partajează link-ul",
- "View only" : "Numai se vizualizează",
- "Can edit" : "Poate edita",
- "File drop" : "Aducere fișier",
- "Custom permissions" : "Permisiuni particularizate",
- "Resharing is not allowed" : "Repartajarea nu este permisă",
- "Searching …" : "Căutare ...",
- "Search globally" : "Caută global",
- "Guest" : "Invitat",
- "Group" : "Grup",
- "Email" : "E-mail",
- "Talk conversation" : "Conversație Talk",
- "Deck board" : "Panou Deck",
- "Allow upload and editing" : "Permite încărcarea și editarea",
- "Allow editing" : "Permite editarea",
- "Advanced settings" : "Setări avansate",
- "Password" : "Parolă",
- "Set expiration date" : "Specifică data expirării",
- "Expiration date" : "Data expirării",
- "Hide download" : "Ascunde descărcarea",
- "Note to recipient" : "Notă către destinatar",
- "Read" : "Citit",
- "Create" : "Crează",
- "Edit" : "Editează",
- "Share" : "Partajează",
- "Shared with you by {owner}" : "Partajat cu tine de {owner}",
- "Open in Files" : "Deschide în Fișiere",
- "Shared" : "Partajat",
- "Error creating the share" : "Eroare la crearea partajării",
- "Shared by" : "impartite in ",
- "Shared with" : "Partajat cu",
- "Shared with you and the group {group} by {owner}" : "Partajat cu tine si cu grupul {group} de {owner}",
- "Shared with you and {circle} by {owner}" : "Partajat cu tine și {circle} de {owner} ",
- "Shared with you and the conversation {conversation} by {owner}" : "Partajat cu tine si conversația {conversation} de {owner}",
- "Shared with you in a conversation by {owner}" : "Partajat cu tine în o conversație {owner}",
- "Shares" : "Partajări",
- "No shares" : "Nicio partajare",
- "Shared with you" : "Partajat cu tine",
- "Nothing shared with you yet" : "Nimic nu e partajat cu tine încă",
- "Shared with others" : "Partajat cu alții",
- "Nothing shared yet" : "Nimic partajat încă",
- "Shared by link" : "Partajat prin link",
- "No shared links" : "Nicio legătură partajată",
- "Deleted shares" : "Partajări șterse",
- "No deleted shares" : "Nicio partajare ștearsă",
- "Pending shares" : "Partajări în așteptare",
- "No pending shares" : "Nicio partajare în așteptare",
- "Share note" : "Partajează nota",
- "Upload files to %s" : "Încarcă fișiere la %s",
- "Note" : "Notă",
- "Select or drop files" : "Selectează sau plasează fișiere",
- "Uploaded files:" : "Fișiere încărcate:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "Prin încărcarea fișierelor ești de accord cu %1$s termenii și serviciile %2$s",
- "Files and folders others share with you will show up here" : "Fișierele și directoarele partajate cu tine vor apărea aici",
- "Files and folders you share will show up here" : "Fișierele și directoarele pe care le partajezi vor apărea aici",
- "Files and folders you share by link will show up here" : "Fișierele și directoarele pe care le partajezi prin legături vor apărea aici",
- "Shares you deleted will show up here" : "Partajările pe care le ștergi vor apărea aici",
- "Shares you have received but not confirmed will show up here" : "Partajările pe care le primești dar nu le confirmi vor apărea aici",
- "Shares will show up here" : "Partajările vor apărea aici",
- "Restore" : "Restaurare",
- "Something happened. Unable to restore the share." : "A intervenit o eroare. Partajarea nu a putut fi restabilită.",
- "Something happened. Unable to accept the share." : "A intervenit o eroare. Partajarea nu a putut fi acceptată.",
- "Something happened. Unable to reject the share." : "A intervenit o eroare. Partajarea nu a putut fi respinsă.",
- "No expiration date set" : "Data expirării nu e setată",
- "Please specify a valid user" : "Specifică un utilizator valid",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Această aplicație permite utilizatorilor să partajeze fișiere în cadrul Nextcloud. Dacă este activată, administratorul poate stabili ce grupuri pot partaja fișiere. Utilizatorii respectivi pot apoi partaja fișiere și foldere cu alți utilizatori și grupuri în cadrul Nextcloud. În plus, dacă administratorul activează funcția de partajare linkuri, atunci poate fi folosit un link extern pentru partajarea fișierelor cu alți utilizatori din afara Nextcloud. Administratorii pot de asemenea să impună parole, date de expirare și să permită partajarea server la server via linkuri partajate precum și partajarea cu dispozitivele mobile.\nDezactivând această funcționalitate, se elimină accesul la fișierele și folderele partajate de pe server pentru toți destinatarii partajărilor și de asemenea de pe clienții de sincronizare și aplicațiile mobile. Mai multe informații se pot găsi în documentația Nextcloud.",
- "Accept user and group shares by default" : "Acceptă implicit partajările cu utilizatorii și grupurile",
- "Read only" : "Doar citire",
- "File drop (upload only)" : "Aruncă fișierul (numai încărcare)",
- "Upload" : "Încărcare",
- "Bundled permissions" : "Permisiuni încorporate",
- "Circle" : "Cerc",
- "Update" : "Actualizare",
- "No entries found in this folder" : "Niciun element găsit în acest director",
- "Name" : "Nume",
- "Reasons might be:" : "Motive posibile ar fi:",
- "the item was removed" : "acest articol a fost șters",
- "the link expired" : "linkul a expirat",
- "sharing is disabled" : "Partajare este oprită"
-},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js
index ffbb29ca17e..bf3fab838a8 100644
--- a/apps/files_sharing/l10n/ru.js
+++ b/apps/files_sharing/l10n/ru.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Ожидание…",
- "error" : "ошибка",
- "finished" : "завершено",
- "This will stop your current uploads." : "Это остановит ваши текущие загрузки.",
- "Move or copy" : "Переместить или копировать",
- "Download" : "Скачать",
- "Delete" : "Удалить",
- "You can upload into this folder" : "Вы можете загружать в этот каталог",
- "Terms of service" : "Условия использования",
- "Show list view" : "Просмотр списком",
- "Show grid view" : "Просмотр сеткой",
- "No compatible server found at {remote}" : "Не найден совместимый сервер на {remote}",
- "Invalid server URL" : "Неверный URL сервера",
- "Failed to add the public link to your Nextcloud" : "Не удалось создать общедоступную ссылку",
"File shares" : "Обмен файлами",
"Downloaded via public link" : "Скачано по общедоступной ссылке",
"Downloaded by {email}" : "Скачано {email}",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "Срок действия общего доступа к «{file}» для пользователя {user} истек",
"Share for file {file} expired" : "Срок действия общего доступа к «{file}» истек",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "<strong>Скачаны</strong> файлы или папки, доступ к которым был предоставлен по электронной почте или общедоступной ссылке",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Файлы были <strong>загружены </strong>в папку, расшаренную по почте или по публичной ссылке",
"A file or folder was shared from <strong>another server</strong>" : "Общий доступ к файлу или каталогу предоставлен <strong>с другого сервера</strong>",
- "Files" : "Файлы",
+ "Sharing" : "Общий доступ",
"A file or folder has been <strong>shared</strong>" : "Файл или каталог <strong>опубликован</strong>",
"Shared link" : "Общая ссылка",
"Wrong share ID, share does not exist" : "Неправильный идентификатор ресурса, ресурс не существует",
@@ -78,32 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "Укажите путь к файлу или каталогу",
"Wrong path, file/folder does not exist" : "Неверный путь, файл или каталог не существует",
"Could not create share" : "Не удалось создать общий ресурс",
- "Invalid permissions" : "Неверные права доступа",
- "Invalid date, date format must be YYYY-MM-DD" : "Недопустимая дата. Дата должна быть указана в формате ГГГГ-ММ-ДД",
+ "Please specify a valid account to share with" : "Пожалуйста, укажите действительную учетную запись, к которой вы хотите предоставить доступ",
"Group sharing is disabled by the administrator" : "Возможность делиться с группами отключена администратором",
"Please specify a valid group" : "Укажите верную группу",
"Public link sharing is disabled by the administrator" : "Возможность предоставления общего доступа созданием общедоступных ссылок отключена администратором",
- "Public upload disabled by the administrator" : "Выгрузка в общедоступную папку запрещена администратором",
- "Public upload is only possible for publicly shared folders" : "Общедоступная выгрузка возможна только в общедоступные папки",
+ "Please specify a valid email address" : "Пожалуйста, укажите действительный адрес электронной почты",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Не удалось отправить пароль для доступа к «%s»: приложение Nextcloud Talk отключено.",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Не удалось предоставить общий доступ к «%1$s», поскольку механизм удалённого обмена не разрешает публикации типа %2$s",
+ "Please specify a valid federated account ID" : "Пожалуйста, укажите действительный идентификатор федеративной учетной записи",
"Please specify a valid federated group ID" : "Укажите действительный идентификатор федеративной группы",
- "You cannot share to a Circle if the app is not enabled" : "Вы не можете поделиться с кругом, если приложение «Круг» не включено",
- "Please specify a valid circle" : "Укажите верный круг",
+ "You cannot share to a Team if the app is not enabled" : "Вы не сможете поделиться информацией с командой, если приложение не включено",
+ "Please specify a valid team" : "Пожалуйста, укажите действующую команду",
"Sharing %s failed because the back end does not support room shares" : "Не удалось предоставить общий доступ к «%s» поскольку механизм обмена не поддерживает общий доступ такого типа",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Не удалось предоставить общий доступ к «%s» поскольку механизм обмена не поддерживает общие ресурсы типа ScienceMesh",
"Unknown share type" : "Общий доступ неизвестного типа",
"Not a directory" : "Это не каталог",
"Could not lock node" : "Не удалось заблокировать узел",
- "Could not lock path" : "Не удалось заблокировать путь",
- "Wrong or no update parameter given" : "Параметр для изменения неправилен или не задан",
+ "Public upload is only possible for publicly shared folders" : "Общедоступная выгрузка возможна только в общедоступные папки",
"Share must at least have READ or CREATE permissions" : "Общий ресурс должен, по крайней мере, иметь разрешения READ или CREATE",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Общий ресурс должен иметь разрешение READ, если установлено разрешение UPDATE или DELETE",
+ "Public upload disabled by the administrator" : "Выгрузка в общедоступную папку запрещена администратором",
+ "Could not lock path" : "Не удалось заблокировать путь",
+ "no sharing rights on this item" : "нет прав на распространение этого элемента",
+ "You are not allowed to edit incoming shares" : "Вам не разрешается редактировать входящие общие материалы",
+ "Wrong or no update parameter given" : "Параметр для изменения неправилен или не задан",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Не удалось отправить пароль для доступа, так как приложение Nextcloud Talk отключено.",
+ "Custom share link tokens have been disabled by the administrator" : "Пользовательские токены ссылок общего доступа были отключены администратором",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Токены должны содержать не менее 1 символа и могут содержать только буквы, цифры или дефис",
+ "Invalid date. Format must be YYYY-MM-DD" : "Неверная дата. Формат должен быть ГГГГ-ММ-ДД",
+ "No sharing rights on this item" : "Нет прав на распространение этого элемента",
+ "Invalid share attributes provided: \"%s\"" : "Предоставлены недопустимые атрибуты общего доступа: \"%s\"",
+ "You are not allowed to send mail notifications" : "Вам не разрешено отправлять уведомления по почте",
+ "No mail notification configured for this share type" : "Для этого типа общего доступа не настроено почтовое уведомление",
+ "Wrong password" : "Неверный пароль",
+ "Error while sending mail notification" : "Ошибка при отправке почтового уведомления",
+ "Failed to generate a unique token" : "Не удалось сгенерировать уникальный токен",
+ "This share does not exist or is no longer available" : "Этот общий ресурс отсутствует или недоступен",
"shared by %s" : "доступ предоставлен пользователем %s",
- "Download all files" : "Скачать все файлы",
- "Direct link" : "Прямая ссылка",
+ "Download" : "Скачать",
"Add to your %s" : "Добавить в свой %s",
+ "Direct link" : "Прямая ссылка",
"Share API is disabled" : "API общего доступа отключён",
"File sharing" : "Обмен файлами",
"Share will expire tomorrow" : "Завтра истекает срок публикации",
@@ -112,131 +113,222 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Вы получили от {user} доступ к ресурсу {share}, предназначенный группе {group}",
"Accept" : "Принять",
"Decline" : "Отклонить",
- "Sharing" : "Общий доступ",
+ "Remember to upload the files to %s" : "Не забудьте загрузить файлы на %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Напоминаем вам, что вы еще не загрузили ни одного файла в общую папку.",
+ "Open \"%s\"" : "Открыть \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Это приложение позволяет пользователям обмениваться файлами в Nextcloud. Если оно включено, администратор может выбирать, какие группы могут обмениваться файлами. Соответствующие пользователи могут обмениваться файлами и папками с другими учетными записями и группами в Nextcloud. Кроме того, если администратор активирует функцию \"Поделиться ссылкой\", можно использовать внешнюю ссылку для обмена файлами с другими пользователями за пределами Nextcloud. Администраторы также могут устанавливать пароли, даты истечения срока действия и разрешать общий доступ с сервера на сервер с помощью общих ссылок, а также с мобильных устройств.\nПри отключении этой функции удаляются общие файлы и папки на сервере для всех получателей общего доступа, а также на клиентах синхронизации и в мобильных приложениях. Дополнительная информация доступна в документации Nextcloud.",
+ "People" : "Люди",
+ "Filter accounts" : "Фильтровать аккаунты",
+ "The request will expire on {date} at midnight and will be password protected." : "Срок действия запроса истекает {date} в полночь, и он будет защищен паролем.",
+ "The request will expire on {date} at midnight." : "Срок действия запроса истекает {date} в полночь.",
+ "The request will be password protected." : "Запрос будет защищен паролем.",
+ "When should the request expire?" : "Когда истекает срок действия запроса?",
+ "Set a submission expiration date" : "Установите дату истечения срока действия заявки",
+ "Expiration date" : "Срок действия",
+ "Select a date" : "Выберите дату",
+ "Your administrator has enforced a {count} days expiration policy." : "Ваш администратор ввел в действие {count} политику истечения срока действия дней.",
+ "What password should be used for the request?" : "Какой пароль следует использовать для запроса?",
+ "Set a password" : "Задать пароль",
+ "Password" : "Пароль",
+ "Enter a valid password" : "Введите действительный пароль",
+ "Generate a new password" : "Сгенерируйте новый пароль",
+ "Your administrator has enforced a password protection." : "Ваш администратор ввел в действие защиту паролем.",
+ "Automatically copying failed, please copy the share link manually" : "Не удалось выполнить автоматическое копирование, пожалуйста, скопируйте ссылку для обмена вручную",
+ "Link copied" : "Ссылка скопирована",
+ "Email already added" : "Адрес электронной почты уже добавлен",
+ "Invalid email address" : "Неверный адрес электронной почты",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Следующий адрес электронной почты недействителен: {emails}","Следующие адреса электронной почты недействительны: {emails}","Следующие адреса электронной почты недействительны: {emails}","Следующие адреса электронной почты недействительны: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : [" {count} e-mail адрес уже добавлен"," {count} e-mail адреса уже добавлено"," {count} e-mail адресов уже добавлены","{count} e-mail адресов уже добавлены"],
+ "_{count} email address added_::_{count} email addresses added_" : ["Добавлен {count} адрес электронной почты","Добавлено {count} адреса электронной почты","Добавлено {count} адресов электронной почты","Добавлено {count} адресов электронной почты"],
+ "You can now share the link below to allow people to upload files to your directory." : "Теперь вы можете поделиться приведенной ниже ссылкой, чтобы люди могли загружать файлы в ваш каталог.",
+ "Share link" : "Общий доступ по ссылке",
+ "Copy" : "Копировать",
+ "Send link via email" : "Отправить ссылку по электронной почте",
+ "Enter an email address or paste a list" : "Введите адрес электронной почты или вставьте список",
+ "Remove email" : "Удалить электронную почту",
+ "Select a destination" : "Выберите пункт назначения",
+ "Select" : "Выбрать",
+ "What are you requesting?" : "О чем вы просите?",
+ "Request subject" : "Тема запроса",
+ "Birthday party photos, History assignment…" : "Фотографии с дня рождения, задание по истории…",
+ "Where should these files go?" : "Куда должны быть отправлены эти файлы?",
+ "Upload destination" : "Пункт назначения загрузки",
+ "Revert to default" : "Вернуться к значению по умолчанию",
+ "The uploaded files are visible only to you unless you choose to share them." : "Загруженные файлы видны только вам, если вы не решите поделиться ими.",
+ "Add a note" : "Добавить заметку",
+ "Note for recipient" : "Записка для получателя",
+ "Add a note to help people understand what you are requesting." : "Добавьте примечание, чтобы помочь людям понять, о чем вы просите.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Вы можете добавить ссылки, дату или любую другую информацию, которая поможет получателю понять, что вы запрашиваете.",
+ "Close" : "Закрыть",
+ "_Send email and close_::_Send {count} emails and close_" : ["Отправить письмо и закрыть","Отправить {count} письма и закрыть","Отправить {count} писем и закрыть","Отправить {count} писем и закрыть"],
+ "Please select a folder, you cannot share the root directory." : "Пожалуйста, выберите папку, вы не можете предоставить общий доступ к корневому каталогу.",
+ "File request created" : "Создан запрос на файл",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Создан запрос файла и отправлено письмо","Создан запрос файла и отправлено {count} письма","Создан запрос файла и отправлено {count} писем","Создан запрос файла и отправлено {count} писем"],
+ "Error creating the share: {errorMessage}" : "Не удалось создать общий ресурс: {errorMessage}",
+ "Error creating the share" : "Ошибка создания общего доступа",
+ "Error sending emails: {errorMessage}" : "Ошибка при отправке электронных писем: {errorMessage}",
+ "Error sending emails" : "Ошибка при отправке электронных писем",
+ "Create a file request" : "Создать запрос на файл",
+ "Collect files from others even if they do not have an account." : "Собирайте файлы у других пользователей, даже если у них нет учетной записи.",
+ "To ensure you can receive files, verify you have enough storage available." : "Чтобы убедиться, что вы можете получать файлы, убедитесь, что у вас достаточно свободного места для хранения.",
+ "File request" : "Запрос файла",
+ "Previous step" : "Предыдущий шаг",
+ "Cancel" : "Отменить",
+ "Cancel the file request creation" : "Отменить создание запроса на файл",
+ "Close without sending emails" : "Закрыть без отправки электронных писем",
+ "Continue" : "Продолжить",
"Error while toggling options" : "Ошибка изменения параметров",
- "Set default folder for accepted shares" : "Задать папку для принятых опубликованных ресурсов",
- "Reset" : "Сброс",
- "Reset folder to system default" : "Сбросить папку к значениям по умолчанию",
+ "Accept shares from other accounts and groups by default" : "По умолчанию принимать общий доступ от других учетных записей и групп.",
"Choose a default folder for accepted shares" : "Выберите папку для принятых опубликованных ресурсов",
"Invalid path selected" : "Выбран некорректный путь",
"Unknown error" : "Неизвестная ошибка",
- "Open Sharing Details" : "Подробные сведения об общем ресурсе",
+ "Set default folder for accepted shares" : "Задать папку для принятых опубликованных ресурсов",
+ "Reset" : "Сброс",
+ "Reset folder to system default" : "Сбросить папку к значениям по умолчанию",
+ "Share expiration: {date}" : "Срок действия общего ресурса: {date}",
+ "Share Expiration" : "Срок действия общего ресурса",
"group" : "группа",
"conversation" : "беседа",
"remote" : "на другом сервере",
"remote group" : "группа на другом сервере",
"guest" : "Гость",
- "Shared with the group {user} by {owner}" : "{owner} предоставил(а) доступ группе {group}",
+ "by {initiator}" : "{initiator}",
+ "Shared with the group {user} by {owner}" : "{owner} предоставил(а) доступ группе {user}",
"Shared with the conversation {user} by {owner}" : "Пользователь {owner} предоставил(а) {user} доступ во время беседы",
"Shared with {user} by {owner}" : "{owner} предоставил(а) доступ {user} ",
+ "Open Sharing Details" : "Подробные сведения об общем ресурсе",
"Added by {initiator}" : "Добавлено пользователем {initiator}",
"Via “{folder}”" : "Через «{folder}»",
"Unshare" : "Закрыть доступ",
- "Internal link" : "Внутренняя ссылка",
"Cannot copy, please copy the link manually" : "Не удалось скопировать, выполните копирование вручную",
- "Copy internal link to clipboard" : "Скопировать внутреннюю ссылку в буфер обмена",
- "Link copied" : "Ссылка скопирована",
- "Please enter the following required information before creating the share" : "Для создания общего ресурса требуется указать следующие данные",
- "Password protection (enforced)" : "Защита паролем (требуется системной)",
- "Password protection" : "Защита паролем",
- "Enter a password" : "Введите пароль",
- "Expiration date (enforced)" : "Срок действия (требуется системой)",
- "Enter a date" : "Введите дату",
- "Create share" : "Создать общий ресурс",
- "Cancel" : "Отменить",
- "Customize link" : "Индивидуальная ссылка",
- "Add another link" : "Добавить другую ссылку",
- "Create a new share link" : "Создать ссылку доступа",
+ "Copy internal link" : "Копировать внутреннюю ссылку",
+ "Internal link" : "Внутренняя ссылка",
"{shareWith} by {initiator}" : "{shareWith} предоставлено {initiator}",
"Shared via link by {initiator}" : "{initiator} предоставил(а) доступ по ссылке",
+ "File request ({label})" : "Запрос файла ({label})",
"Mail share ({label})" : "Отправка почты ({label})",
"Share link ({label})" : "Ссылка общего доступа ({label})",
+ "Mail share" : "Общий доступ к почте",
"Share link ({index})" : "Ссылка общего доступа ({index})",
- "Share link" : "Общий доступ по ссылке",
+ "Create public link" : "Создать общедоступную ссылку",
"Actions for \"{title}\"" : "Действия над «{title}»",
- "Copy public link of \"{title}\" to clipboard" : "Скопировать общедоступную ссылку для доступа к «{title}» в буфер обмена",
"Error, please enter proper password and/or expiration date" : "Введите действительный пароль и/или дату истечения",
"Link share created" : "Ссылка создана",
"Error while creating the share" : "Не удалось создать общий ресурс",
+ "Please enter the following required information before creating the share" : "Для создания общего ресурса требуется указать следующие данные",
+ "Password protection (enforced)" : "Защита паролем (требуется системной)",
+ "Password protection" : "Защита паролем",
+ "Enter a password" : "Введите пароль",
+ "Enable link expiration (enforced)" : "Включить истечение срока действия ссылки (принудительно)",
+ "Enable link expiration" : "Включить истечение срока действия ссылки",
+ "Enter expiration date (enforced)" : "Введите дату истечения срока действия (принудительно)",
+ "Enter expiration date" : "Введите дату истечения срока действия",
+ "Create share" : "Создать общий ресурс",
+ "Customize link" : "Индивидуальная ссылка",
+ "Generate QR code" : "Сгенерировать QR-код",
+ "Add another link" : "Добавить другую ссылку",
+ "Create a new share link" : "Создать ссылку доступа",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Параметры быстрого обмена, выбранный в данный момент \"{selectedOption}\"",
"View only" : "Для просмотра",
"Can edit" : "Можно редактировать",
- "File drop" : "Принимать файлы",
"Custom permissions" : "Пользовательские права доступа",
- "Search for share recipients" : "Найти больше получателей общего ресурса",
- "No recommendations. Start typing." : "Рекомендации отсутствуют, начните вводить символы",
"Resharing is not allowed" : "Повторное открытие доступа запрещено",
"Name or email …" : "Имя или адрес эл.почты…",
"Name, email, or Federated Cloud ID …" : "Имя или ID межсерверного обмена…",
"Searching …" : "Поиск…",
"No elements found." : "Ничего не найдено.",
- "Search globally" : "Искать глобально",
+ "Search everywhere" : "Искать везде",
"Guest" : "Гость",
"Group" : "Группа",
"Email" : "Электронная почта",
+ "Team" : "Команда",
"Talk conversation" : "Название обсуждения",
"Deck board" : "Доска",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "на {server}",
+ "Enter external recipients" : "Введите внешних получателей",
+ "Search for internal recipients" : "Поиск внутренних получателей",
+ "Note from" : "Примечание от",
+ "Note:" : "Примечание:",
+ "File drop" : "Приём файлов",
+ "Upload files to {foldername}." : "Загрузка файлов в {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Загружая файлы, вы соглашаетесь с условиями обслуживания.",
+ "Successfully uploaded files" : "Файлы успешно загружены",
+ "View terms of service" : "Ознакомиться с условиями предоставления услуг",
+ "Terms of service" : "Условия использования",
+ "Share with email {email}" : "Поделитесь с помощью электронной почты",
+ "Share with group" : "Поделиться с группой",
+ "Share in conversation" : "Поделиться в чате",
+ "Share with {user} on remote server {server}" : "Поделиться с {user} на удаленном сервере {server}",
+ "Share with remote group" : "Поделиться с удалённой группой",
+ "Share with guest" : "Поделиться с гостем",
+ "Update share" : "Обновить общий ресурс",
+ "Save share" : "Сохранить общий ресурс",
+ "Read" : "Прочитать",
+ "Create" : "Создать",
+ "Edit" : "Редактировать",
+ "Share" : "Поделиться",
+ "Delete" : "Удалить",
+ "Password field cannot be empty" : "Поле пароля не может быть пустым",
+ "Replace current password" : "Заменить текущий пароль",
+ "Failed to generate a new token" : "Не удалось сгенерировать новый токен",
"Allow upload and editing" : "Разрешить приём и редактирование",
"Allow editing" : "Разрешить редактирование",
"Upload only" : "Только загружать",
"Advanced settings" : "Расширенные параметры",
"Share label" : "Метка общего доступа",
+ "Share link token" : "Токен ссылки на общий ресурс",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Установите простой для запоминания токен ссылки на общий ресурс или сгенерируйте новый. Не рекомендуется использовать легко угадываемые токены для общих ресурсов с конфиденциальной информацией.",
+ "Generating…" : "Создание…",
+ "Generate new token" : "Создать новый токен",
"Set password" : "Задать пароль",
- "Password" : "Пароль",
"Password expires {passwordExpirationTime}" : "Срок действия пароля истекает {passwordExpirationTime}",
"Password expired" : "Срок действия пароля истёк",
"Video verification" : "Подтверждение по видесвязи",
+ "Expiration date (enforced)" : "Срок действия (требуется системой)",
"Set expiration date" : "Установить срок действия",
- "Expiration date" : "Срок действия",
"Hide download" : "Скрыть загрузку",
- "Allow download" : "Разрешить скачивать",
+ "Allow download and sync" : "Разрешить загрузку и синхронизацию",
"Note to recipient" : "Примечание для получателя",
"Enter a note for the share recipient" : "Введите примечание для получателя",
- "Read" : "Прочитать",
- "Create" : "Создать",
- "Edit" : "Редактировать",
- "Share" : "Поделиться",
+ "Show files in grid view" : "Показать файлы в виде сетки",
"Delete share" : "Удалить общий ресурс",
- "Share with {userName}" : "Поделиться с {userName}",
- "Share with group" : "Поделиться с группой",
- "Share in conversation" : "Поделиться в чате",
- "Share with remote group" : "Поделиться с удалённой группой",
- "Share with guest" : "Поделиться с гостем",
- "Update share" : "Обновить общий ресурс",
- "Save share" : "Сохранить общий ресурс",
"Others with access" : "Другие пользователи, имеющие доступ",
+ "No other accounts with access found" : "Других учетных записей с доступом не найдено",
"Toggle list of others with access to this directory" : "Свернуть или развернуть список пользователей, имеющих доступ к этой папке",
"Toggle list of others with access to this file" : "Свернуть или развернуть список пользователей, имеющих доступ к этому файлу",
"Unable to fetch inherited shares" : "Невозможно получить список унаследованных общих ресурсов ",
+ "Link shares" : "Общие ссылки",
+ "Shares" : "Опубликованные ресурсы",
"Unable to load the shares list" : "Невозможно загрузить список общих ресурсов",
"Expires {relativetime}" : "Истекает {relativetime}",
"this share just expired." : "срок действия этого общего ресурса только что истёк.",
"Shared with you by {owner}" : "{owner} предоставил(а) Вам доступ",
+ "Internal shares" : "Внутренние ссылки",
+ "Internal shares explanation" : "Пояснение к внутренним общим ресурсам",
+ "External shares" : "Внешние ссылки",
+ "External shares explanation" : "Пояснение к внешним общим ресурсам",
+ "Additional shares" : "Дополнительные ссылки",
+ "Additional shares explanation" : "Пояснение к дополнительным общим ресурсам",
+ "Link to a file" : "Ссылка на файл",
"_Accept share_::_Accept shares_" : ["Принять общий ресурс","Принять общие ресурсы","Принять общие ресурсы","Принять общие ресурсы"],
"Open in Files" : "Открыть в Файлах",
"_Reject share_::_Reject shares_" : ["Отклонить общий ресурс","Отклонить общие ресурсы","Отклонить общие ресурсы","Отклонить общие ресурсы"],
"_Restore share_::_Restore shares_" : ["Восстановить общий ресурс","Восстановить общие ресурсы","Восстановить общие ресурсы","Восстановить общие ресурсы"],
"Shared" : "Опубликованное",
"Shared by {ownerDisplayName}" : "Доступно пользователю {ownerDisplayName}",
- "Show sharing options" : "Показать опции доступа",
- "Link to a file" : "Ссылка на файл",
- "Error creating the share: {errorMessage}" : "Не удалось создать общий ресурс: {errorMessage}",
- "Error creating the share" : "Ошибка создания общего доступа",
- "Error updating the share: {errorMessage}" : "Не удалось изменить общий ресурс: {errorMessage}",
- "Error updating the share" : "Ошибка изменения параметров общего доступа",
- "File \"{path}\" has been unshared" : "Закрыт общий доступ к файлу «{path}»",
- "Folder \"{path}\" has been unshared" : "Закрыт общий доступ к папке «{path}»",
- "Share {propertyName} saved" : "Общий ресурс «{propertyName}» сохранён",
- "Shared by" : "Поделился",
- "Shared with" : "Общий доступ",
- "Password created successfully" : "Пароль создан",
- "Error generating password from password policy" : "Не удалось создать пароль на основе политики",
- "Shared with you and the group {group} by {owner}" : "{owner} предоставил(а) доступ Вам и группе {group}",
- "Shared with you and {circle} by {owner}" : "{owner} предоставил(а) доступ Вам и участникам круга «{circle}»",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} предоставил(а) доступ Вам и участникам беседы «{conversation}»",
- "Shared with you in a conversation by {owner}" : "Пользователь {owner} предоставил(а) Вам доступ во время беседы",
- "Shares" : "Опубликованные ресурсы",
+ "Shared multiple times with different people" : "Делиться несколько раз с разными людьми",
+ "Shared with others" : "Доступные для других",
+ "Create file request" : "Запрос на создание файла",
+ "Upload files to {foldername}" : "Загружать файлы в {foldername}",
+ "Public file share" : "Общий доступ к файлам",
+ "Publicly shared file." : "Общедоступный файл.",
+ "No file" : "Нет файла",
+ "The file shared with you will show up here" : "Файл, которым вы поделились, появится здесь",
+ "Public share" : "Общедоступные ссылки",
+ "Publicly shared files." : "Общедоступные файлы.",
+ "No files" : "Нет файлов",
+ "Files and folders shared with you will show up here" : "Здесь будут отображаться файлы и папки, которыми с вами поделились.",
"Overview of shared files." : "Предпросмотр общих файлов.",
"No shares" : "Нет ресурсов общего доступа",
"Files and folders you shared or have been shared with you will show up here" : "Файлы и папки, которыми вы поделились или к которым Вам был предоставлен доступ, будут отображаться здесь",
@@ -244,7 +336,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Список файлов, к которым Вам был предоставлен доступ.",
"Nothing shared with you yet" : "С вами пока ничем не поделились",
"Files and folders others shared with you will show up here" : "Файлы и каталоги, к которым вам предоставят общий доступ, будут отображаться здесь",
- "Shared with others" : "Доступные для других",
"List of files that you shared with others." : "Список файлов, которыми Вы поделились.",
"Nothing shared yet" : "Пока ничего не опубликовано",
"Files and folders you shared will show up here" : "Здесь появятся файлы и каталоги, к которым вы предоставили общий доступ",
@@ -252,6 +343,10 @@ OC.L10N.register(
"List of files that are shared by link." : "Список файлов, к которым был предоставлен доступ по ссылке.",
"No shared links" : "Нет общедоступных ссылок",
"Files and folders you shared by link will show up here" : "Здесь появятся файлы и каталоги, ссылкой на которые вы поделитесь",
+ "File requests" : "Запросы файлов",
+ "List of file requests." : "Список запросов к файлам.",
+ "No file requests" : "Никаких запросов файлов",
+ "File requests you have created will show up here" : "Здесь будут отображаться созданные вами запросы на файлы",
"Deleted shares" : "Удалённые общие ресурсы",
"List of shares you left." : "Список ресурсов общего доступа от которых Вы отказались.",
"No deleted shares" : "Удалённые ресурсы отсуствуют",
@@ -260,49 +355,87 @@ OC.L10N.register(
"List of unapproved shares." : "Список ресурсов общего доступа, которые вы еще не приняли",
"No pending shares" : "Ожидающие общие ресурсы отсуствуют",
"Shares you have received but not approved will show up here" : "Здесь появятся ресурсы общего доступа, которые Вам предоставлены, но еще не подтверждены с Вашей стороны",
+ "Error deleting the share: {errorMessage}" : "Ошибка при удалении общего ресурса: {errorMessage}",
+ "Error deleting the share" : "Ошибка прекращения общего доступа",
+ "Error updating the share: {errorMessage}" : "Не удалось изменить общий ресурс: {errorMessage}",
+ "Error updating the share" : "Ошибка изменения параметров общего доступа",
+ "File \"{path}\" has been unshared" : "Закрыт общий доступ к файлу «{path}»",
+ "Folder \"{path}\" has been unshared" : "Закрыт общий доступ к папке «{path}»",
+ "Could not update share" : "Не удалось обновить общий ресурс",
+ "Share saved" : "Общий доступ сохранен",
+ "Share expiry date saved" : "Дата истечения срока общего доступа сохранена",
+ "Share hide-download state saved" : "Скрытая загрузка ссылки общего доступа сохранено",
+ "Share label saved" : "Метка общего доступа сохранена",
+ "Share note for recipient saved" : "Примечание к общему ресурсу для получателя сохранено",
+ "Share password saved" : "Пароль общего доступа сохранен",
+ "Share permissions saved" : "Разрешения общего доступа сохранены",
+ "To upload files to {folder}, you need to provide your name first." : "Чтобы загрузить файлы в {folder}, сначала укажите своё имя.",
+ "Upload files to {folder}" : "Загрузка файлов в {folder}",
+ "Please confirm your name to upload files to {folder}" : "Пожалуйста, подтвердите своё имя для загрузки файлов в {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} поделился с вами папкой.",
+ "Names must not be empty." : "Имя не может быть пустым.",
+ "Names must not start with a dot." : "Имя не должно начинаться с точки.",
+ "\"{char}\" is not allowed inside a name." : "Символ «{char}» не допускается в имени.",
+ "\"{segment}\" is a reserved name and not allowed." : "«{segment}» — зарезервированное имя и не может быть использовано.",
+ "\"{extension}\" is not an allowed name." : "«{extension}» — недопустимое имя.",
+ "Names must not end with \"{extension}\"." : "Имя не должно оканчиваться на «{extension}».",
+ "Invalid name." : "Недопустимое имя.",
+ "Shared by" : "Поделился",
+ "Shared with" : "Общий доступ",
+ "Password created successfully" : "Пароль создан",
+ "Error generating password from password policy" : "Не удалось создать пароль на основе политики",
+ "Shared with you and the group {group} by {owner}" : "{owner} предоставил(а) доступ Вам и группе {group}",
+ "Shared with you and {circle} by {owner}" : "{owner} предоставил(а) доступ Вам и участникам круга «{circle}»",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} предоставил(а) доступ Вам и участникам беседы «{conversation}»",
+ "Shared with you in a conversation by {owner}" : "Пользователь {owner} предоставил(а) Вам доступ во время беседы",
+ "Share not found" : "Ресурс с общим доступом не найден",
+ "Back to %s" : "Вернуться к %s",
+ "Add to your Nextcloud" : "Добавить в свой Nextcloud",
+ "Waiting…" : "Ожидание…",
+ "error" : "ошибка",
+ "finished" : "завершено",
+ "This will stop your current uploads." : "Это остановит ваши текущие загрузки.",
+ "Move or copy" : "Переместить или копировать",
+ "You can upload into this folder" : "Вы можете загружать в этот каталог",
+ "Show list view" : "Просмотр списком",
+ "Show grid view" : "Просмотр сеткой",
+ "No compatible server found at {remote}" : "Не найден совместимый сервер на {remote}",
+ "Invalid server URL" : "Неверный URL сервера",
+ "Failed to add the public link to your Nextcloud" : "Не удалось создать общедоступную ссылку",
+ "You are not allowed to edit link shares that you don't own" : "Вам не разрешается редактировать ссылки, которыми вы не владеете",
+ "Download all files" : "Скачать все файлы",
+ "Link copied to clipboard" : "Ссылка скопирована в буфер обмена",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Уже добавлен 1 адрес электронной почты","Уже добавлено {count} адреса электронной почты","Уже добавлено {count} адресов электронной почты","Уже добавлено {count} адресов электронной почты"],
+ "_1 email address added_::_{count} email addresses added_" : ["Добавлен 1 адрес электронной почты","Добавлено {count} адреса электронной почты","Добавлено {count} адресов электронной почты","Добавлено {count} адресов электронной почты"],
+ "Copy to clipboard" : "Копировать в буфер обмена",
+ "Copy internal link to clipboard" : "Скопировать внутреннюю ссылку в буфер обмена",
+ "Only works for people with access to this folder" : "Работает только для людей, имеющих доступ к этой папке",
+ "Only works for people with access to this file" : "Работает только для людей, имеющих доступ к этому файлу",
+ "Copy public link of \"{title}\" to clipboard" : "Скопировать общедоступную ссылку для доступа к «{title}» в буфер обмена",
+ "Search globally" : "Искать глобально",
+ "Search for share recipients" : "Найти больше получателей общего ресурса",
+ "No recommendations. Start typing." : "Рекомендации отсутствуют, начните вводить символы",
+ "To upload files, you need to provide your name first." : "Чтобы загрузить файлы, вам необходимо сначала указать свое имя.",
+ "Enter your name" : "Введите своё имя",
+ "Submit name" : "Отправить имя",
+ "Share with {userName}" : "Поделиться с {userName}",
+ "Show sharing options" : "Показать опции доступа",
"Share note" : "Комментарий к общему ресурсу",
"Upload files to %s" : "Загрузка файлов в %s",
+ "%s shared a folder with you." : "%s поделился с вами папкой.",
"Note" : "Примечание",
"Select or drop files" : "Выберите или перетащите файлы",
"Uploading files" : "Загрузка файлов",
"Uploaded files:" : "Отправленные файлы:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Передачей файлов на сервер, вы принимаете %1$sусловия обслуживания%2$s.",
- "Add to your Nextcloud" : "Добавить в свой Nextcloud",
- "Files and folders others share with you will show up here" : "Здесь появятся файлы и каталоги, к которым вам предоставят общий доступ",
- "Files and folders you share will show up here" : "Здесь появятся файлы и каталоги, к которым вы предоставили общий доступ",
- "Files and folders you share by link will show up here" : "Здесь появятся файлы и каталоги, ссылкой на которые вы поделитесь",
- "Shares you deleted will show up here" : "Здесь будут показаны удалённые вами общие ресурсы",
- "Shares you have received but not confirmed will show up here" : "Здесь появятся файлы и каталоги, ожидающие подтверждения получения с вашей стороны",
- "Shares will show up here" : "Здесь будут показаны общие ресурсы",
- "Restore" : "Восстановить",
- "Something happened. Unable to restore the share." : "Не удалось восстановить общий ресурс.",
- "Something happened. Unable to accept the share." : "Не удалось принять общий ресурс.",
- "Something happened. Unable to reject the share." : "Не удалось отклонить предложение общего ресурса.",
- "No expiration date set" : "Дата истечения не установлена",
- "Please specify a valid user" : "Укажите верного пользователя",
- "Please specify a valid federated user ID" : "Укажите действительный идентификатор федеративного пользователя",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Это приложение позволяет пользователям обмениваться файлами в Nextcloud. Если приложение включено, администратор может выбрать, какие группы пользователей могут предоставлять общий доступ к файлам, после чего такие пользователи, могут обмениваться файлами и папками с другими пользователями и группами в Nextcloud. Кроме того, если администратор задействовал модуль предоставления общего доступа, то для обмена файлами с другими пользователями, не являющимися пользователями Nextcloud может использоваться внешняя ссылка. Администраторы могут также задавать обязательное использование паролей для получения доступа к общему ресурсу, обязательное назначение срока действия ссылки, разрешать межсерверный обмен файлами с помощью ссылок и предоставление общего доступа с мобильных устройств.\nПри отключении этой функции для всех пользователей будет отключён совместный доступ к файлам и папкам на сервере, в том числе и при использовании приложений для синхронизации и мобильных приложений. Дополнительная информация доступна в документации Nextcloud.",
- "Accept user and group shares by default" : "Принимать по умолчанию общие ресурсы, предназначенные пользователю или группе",
- "Read only" : "Только для чтения",
- "File drop (upload only)" : "Хранилище (только приём файлов)",
- "Upload" : "Отправить",
- "Bundled permissions" : "Связанные права доступа",
- "Only works for users with access to this folder" : "Только для пользователей с доступом к этой папке",
- "Only works for users with access to this file" : "Только для пользователей с доступом к этому файлу",
- "Circle" : "Круг",
- "Update" : "Изменение",
- "Share with " : "Поделиться",
- "No other users with access found" : "Не найдено пользователей, имеющих доступ",
- "No entries found in this folder" : "В этой папке ничего нет",
"Name" : "Имя",
- "Share time" : "Дата публикации",
- "Sorry, this link does not seem to work anymore." : "Извините, но эта ссылка больше не работает.",
- "Reasons might be:" : "Вероятные причины этого:",
- "the item was removed" : "объект удалён",
- "the link expired" : "истёк срок действия ссылки",
- "sharing is disabled" : "закрыт общий доступ",
- "For more info, please ask the person who sent this link." : "Для получения дополнительной информации, свяжитесь с тем, кто отправил вам эту ссылку.",
- "Share with remote" : "Поделиться с удалённым",
- "Share with" : "Поделиться"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Используйте этот метод для обмена файлами с отдельными лицами или группами в вашей организации. Если получатель уже имеет доступ к ресурсу, но не может его найти, вы можете отправить ему внутреннюю ссылку на ресурс для легкого доступа.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Используйте этот метод для обмена файлами с отдельными лицами или организациями за пределами вашей организации. Файлы и папки можно делить через публичные ссылки и адреса электронной почты. Вы также можете делиться с другими учетными записями Nextcloud, размещенными на разных экземплярах, используя их идентификатор федеративного облака.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Ссылки, которые не являются частью внутренних или внешних ссылок. Это могут быть ссылки из приложений или других источников.",
+ "Share with accounts, teams, federated cloud id" : "Поделиться с учетными записями, командами, идентификатором федеративного облака",
+ "Share with accounts and teams" : "Поделиться с аккаунтами и командами",
+ "Federated cloud ID" : "Федеративный облачный ID",
+ "Email, federated cloud id" : "Электронная почта, идентификатор федеративного облака",
+ "Filename must not be empty." : "Имя файла не должно быть пустым."
},
"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json
index 5d15f24ffaf..77d75c69c67 100644
--- a/apps/files_sharing/l10n/ru.json
+++ b/apps/files_sharing/l10n/ru.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Ожидание…",
- "error" : "ошибка",
- "finished" : "завершено",
- "This will stop your current uploads." : "Это остановит ваши текущие загрузки.",
- "Move or copy" : "Переместить или копировать",
- "Download" : "Скачать",
- "Delete" : "Удалить",
- "You can upload into this folder" : "Вы можете загружать в этот каталог",
- "Terms of service" : "Условия использования",
- "Show list view" : "Просмотр списком",
- "Show grid view" : "Просмотр сеткой",
- "No compatible server found at {remote}" : "Не найден совместимый сервер на {remote}",
- "Invalid server URL" : "Неверный URL сервера",
- "Failed to add the public link to your Nextcloud" : "Не удалось создать общедоступную ссылку",
"File shares" : "Обмен файлами",
"Downloaded via public link" : "Скачано по общедоступной ссылке",
"Downloaded by {email}" : "Скачано {email}",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "Срок действия общего доступа к «{file}» для пользователя {user} истек",
"Share for file {file} expired" : "Срок действия общего доступа к «{file}» истек",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "<strong>Скачаны</strong> файлы или папки, доступ к которым был предоставлен по электронной почте или общедоступной ссылке",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Файлы были <strong>загружены </strong>в папку, расшаренную по почте или по публичной ссылке",
"A file or folder was shared from <strong>another server</strong>" : "Общий доступ к файлу или каталогу предоставлен <strong>с другого сервера</strong>",
- "Files" : "Файлы",
+ "Sharing" : "Общий доступ",
"A file or folder has been <strong>shared</strong>" : "Файл или каталог <strong>опубликован</strong>",
"Shared link" : "Общая ссылка",
"Wrong share ID, share does not exist" : "Неправильный идентификатор ресурса, ресурс не существует",
@@ -76,32 +63,46 @@
"Please specify a file or folder path" : "Укажите путь к файлу или каталогу",
"Wrong path, file/folder does not exist" : "Неверный путь, файл или каталог не существует",
"Could not create share" : "Не удалось создать общий ресурс",
- "Invalid permissions" : "Неверные права доступа",
- "Invalid date, date format must be YYYY-MM-DD" : "Недопустимая дата. Дата должна быть указана в формате ГГГГ-ММ-ДД",
+ "Please specify a valid account to share with" : "Пожалуйста, укажите действительную учетную запись, к которой вы хотите предоставить доступ",
"Group sharing is disabled by the administrator" : "Возможность делиться с группами отключена администратором",
"Please specify a valid group" : "Укажите верную группу",
"Public link sharing is disabled by the administrator" : "Возможность предоставления общего доступа созданием общедоступных ссылок отключена администратором",
- "Public upload disabled by the administrator" : "Выгрузка в общедоступную папку запрещена администратором",
- "Public upload is only possible for publicly shared folders" : "Общедоступная выгрузка возможна только в общедоступные папки",
+ "Please specify a valid email address" : "Пожалуйста, укажите действительный адрес электронной почты",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Не удалось отправить пароль для доступа к «%s»: приложение Nextcloud Talk отключено.",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Не удалось предоставить общий доступ к «%1$s», поскольку механизм удалённого обмена не разрешает публикации типа %2$s",
+ "Please specify a valid federated account ID" : "Пожалуйста, укажите действительный идентификатор федеративной учетной записи",
"Please specify a valid federated group ID" : "Укажите действительный идентификатор федеративной группы",
- "You cannot share to a Circle if the app is not enabled" : "Вы не можете поделиться с кругом, если приложение «Круг» не включено",
- "Please specify a valid circle" : "Укажите верный круг",
+ "You cannot share to a Team if the app is not enabled" : "Вы не сможете поделиться информацией с командой, если приложение не включено",
+ "Please specify a valid team" : "Пожалуйста, укажите действующую команду",
"Sharing %s failed because the back end does not support room shares" : "Не удалось предоставить общий доступ к «%s» поскольку механизм обмена не поддерживает общий доступ такого типа",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Не удалось предоставить общий доступ к «%s» поскольку механизм обмена не поддерживает общие ресурсы типа ScienceMesh",
"Unknown share type" : "Общий доступ неизвестного типа",
"Not a directory" : "Это не каталог",
"Could not lock node" : "Не удалось заблокировать узел",
- "Could not lock path" : "Не удалось заблокировать путь",
- "Wrong or no update parameter given" : "Параметр для изменения неправилен или не задан",
+ "Public upload is only possible for publicly shared folders" : "Общедоступная выгрузка возможна только в общедоступные папки",
"Share must at least have READ or CREATE permissions" : "Общий ресурс должен, по крайней мере, иметь разрешения READ или CREATE",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Общий ресурс должен иметь разрешение READ, если установлено разрешение UPDATE или DELETE",
+ "Public upload disabled by the administrator" : "Выгрузка в общедоступную папку запрещена администратором",
+ "Could not lock path" : "Не удалось заблокировать путь",
+ "no sharing rights on this item" : "нет прав на распространение этого элемента",
+ "You are not allowed to edit incoming shares" : "Вам не разрешается редактировать входящие общие материалы",
+ "Wrong or no update parameter given" : "Параметр для изменения неправилен или не задан",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Не удалось отправить пароль для доступа, так как приложение Nextcloud Talk отключено.",
+ "Custom share link tokens have been disabled by the administrator" : "Пользовательские токены ссылок общего доступа были отключены администратором",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Токены должны содержать не менее 1 символа и могут содержать только буквы, цифры или дефис",
+ "Invalid date. Format must be YYYY-MM-DD" : "Неверная дата. Формат должен быть ГГГГ-ММ-ДД",
+ "No sharing rights on this item" : "Нет прав на распространение этого элемента",
+ "Invalid share attributes provided: \"%s\"" : "Предоставлены недопустимые атрибуты общего доступа: \"%s\"",
+ "You are not allowed to send mail notifications" : "Вам не разрешено отправлять уведомления по почте",
+ "No mail notification configured for this share type" : "Для этого типа общего доступа не настроено почтовое уведомление",
+ "Wrong password" : "Неверный пароль",
+ "Error while sending mail notification" : "Ошибка при отправке почтового уведомления",
+ "Failed to generate a unique token" : "Не удалось сгенерировать уникальный токен",
+ "This share does not exist or is no longer available" : "Этот общий ресурс отсутствует или недоступен",
"shared by %s" : "доступ предоставлен пользователем %s",
- "Download all files" : "Скачать все файлы",
- "Direct link" : "Прямая ссылка",
+ "Download" : "Скачать",
"Add to your %s" : "Добавить в свой %s",
+ "Direct link" : "Прямая ссылка",
"Share API is disabled" : "API общего доступа отключён",
"File sharing" : "Обмен файлами",
"Share will expire tomorrow" : "Завтра истекает срок публикации",
@@ -110,131 +111,222 @@
"You received {share} to group {group} as a share by {user}" : "Вы получили от {user} доступ к ресурсу {share}, предназначенный группе {group}",
"Accept" : "Принять",
"Decline" : "Отклонить",
- "Sharing" : "Общий доступ",
+ "Remember to upload the files to %s" : "Не забудьте загрузить файлы на %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Напоминаем вам, что вы еще не загрузили ни одного файла в общую папку.",
+ "Open \"%s\"" : "Открыть \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Это приложение позволяет пользователям обмениваться файлами в Nextcloud. Если оно включено, администратор может выбирать, какие группы могут обмениваться файлами. Соответствующие пользователи могут обмениваться файлами и папками с другими учетными записями и группами в Nextcloud. Кроме того, если администратор активирует функцию \"Поделиться ссылкой\", можно использовать внешнюю ссылку для обмена файлами с другими пользователями за пределами Nextcloud. Администраторы также могут устанавливать пароли, даты истечения срока действия и разрешать общий доступ с сервера на сервер с помощью общих ссылок, а также с мобильных устройств.\nПри отключении этой функции удаляются общие файлы и папки на сервере для всех получателей общего доступа, а также на клиентах синхронизации и в мобильных приложениях. Дополнительная информация доступна в документации Nextcloud.",
+ "People" : "Люди",
+ "Filter accounts" : "Фильтровать аккаунты",
+ "The request will expire on {date} at midnight and will be password protected." : "Срок действия запроса истекает {date} в полночь, и он будет защищен паролем.",
+ "The request will expire on {date} at midnight." : "Срок действия запроса истекает {date} в полночь.",
+ "The request will be password protected." : "Запрос будет защищен паролем.",
+ "When should the request expire?" : "Когда истекает срок действия запроса?",
+ "Set a submission expiration date" : "Установите дату истечения срока действия заявки",
+ "Expiration date" : "Срок действия",
+ "Select a date" : "Выберите дату",
+ "Your administrator has enforced a {count} days expiration policy." : "Ваш администратор ввел в действие {count} политику истечения срока действия дней.",
+ "What password should be used for the request?" : "Какой пароль следует использовать для запроса?",
+ "Set a password" : "Задать пароль",
+ "Password" : "Пароль",
+ "Enter a valid password" : "Введите действительный пароль",
+ "Generate a new password" : "Сгенерируйте новый пароль",
+ "Your administrator has enforced a password protection." : "Ваш администратор ввел в действие защиту паролем.",
+ "Automatically copying failed, please copy the share link manually" : "Не удалось выполнить автоматическое копирование, пожалуйста, скопируйте ссылку для обмена вручную",
+ "Link copied" : "Ссылка скопирована",
+ "Email already added" : "Адрес электронной почты уже добавлен",
+ "Invalid email address" : "Неверный адрес электронной почты",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Следующий адрес электронной почты недействителен: {emails}","Следующие адреса электронной почты недействительны: {emails}","Следующие адреса электронной почты недействительны: {emails}","Следующие адреса электронной почты недействительны: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : [" {count} e-mail адрес уже добавлен"," {count} e-mail адреса уже добавлено"," {count} e-mail адресов уже добавлены","{count} e-mail адресов уже добавлены"],
+ "_{count} email address added_::_{count} email addresses added_" : ["Добавлен {count} адрес электронной почты","Добавлено {count} адреса электронной почты","Добавлено {count} адресов электронной почты","Добавлено {count} адресов электронной почты"],
+ "You can now share the link below to allow people to upload files to your directory." : "Теперь вы можете поделиться приведенной ниже ссылкой, чтобы люди могли загружать файлы в ваш каталог.",
+ "Share link" : "Общий доступ по ссылке",
+ "Copy" : "Копировать",
+ "Send link via email" : "Отправить ссылку по электронной почте",
+ "Enter an email address or paste a list" : "Введите адрес электронной почты или вставьте список",
+ "Remove email" : "Удалить электронную почту",
+ "Select a destination" : "Выберите пункт назначения",
+ "Select" : "Выбрать",
+ "What are you requesting?" : "О чем вы просите?",
+ "Request subject" : "Тема запроса",
+ "Birthday party photos, History assignment…" : "Фотографии с дня рождения, задание по истории…",
+ "Where should these files go?" : "Куда должны быть отправлены эти файлы?",
+ "Upload destination" : "Пункт назначения загрузки",
+ "Revert to default" : "Вернуться к значению по умолчанию",
+ "The uploaded files are visible only to you unless you choose to share them." : "Загруженные файлы видны только вам, если вы не решите поделиться ими.",
+ "Add a note" : "Добавить заметку",
+ "Note for recipient" : "Записка для получателя",
+ "Add a note to help people understand what you are requesting." : "Добавьте примечание, чтобы помочь людям понять, о чем вы просите.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Вы можете добавить ссылки, дату или любую другую информацию, которая поможет получателю понять, что вы запрашиваете.",
+ "Close" : "Закрыть",
+ "_Send email and close_::_Send {count} emails and close_" : ["Отправить письмо и закрыть","Отправить {count} письма и закрыть","Отправить {count} писем и закрыть","Отправить {count} писем и закрыть"],
+ "Please select a folder, you cannot share the root directory." : "Пожалуйста, выберите папку, вы не можете предоставить общий доступ к корневому каталогу.",
+ "File request created" : "Создан запрос на файл",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Создан запрос файла и отправлено письмо","Создан запрос файла и отправлено {count} письма","Создан запрос файла и отправлено {count} писем","Создан запрос файла и отправлено {count} писем"],
+ "Error creating the share: {errorMessage}" : "Не удалось создать общий ресурс: {errorMessage}",
+ "Error creating the share" : "Ошибка создания общего доступа",
+ "Error sending emails: {errorMessage}" : "Ошибка при отправке электронных писем: {errorMessage}",
+ "Error sending emails" : "Ошибка при отправке электронных писем",
+ "Create a file request" : "Создать запрос на файл",
+ "Collect files from others even if they do not have an account." : "Собирайте файлы у других пользователей, даже если у них нет учетной записи.",
+ "To ensure you can receive files, verify you have enough storage available." : "Чтобы убедиться, что вы можете получать файлы, убедитесь, что у вас достаточно свободного места для хранения.",
+ "File request" : "Запрос файла",
+ "Previous step" : "Предыдущий шаг",
+ "Cancel" : "Отменить",
+ "Cancel the file request creation" : "Отменить создание запроса на файл",
+ "Close without sending emails" : "Закрыть без отправки электронных писем",
+ "Continue" : "Продолжить",
"Error while toggling options" : "Ошибка изменения параметров",
- "Set default folder for accepted shares" : "Задать папку для принятых опубликованных ресурсов",
- "Reset" : "Сброс",
- "Reset folder to system default" : "Сбросить папку к значениям по умолчанию",
+ "Accept shares from other accounts and groups by default" : "По умолчанию принимать общий доступ от других учетных записей и групп.",
"Choose a default folder for accepted shares" : "Выберите папку для принятых опубликованных ресурсов",
"Invalid path selected" : "Выбран некорректный путь",
"Unknown error" : "Неизвестная ошибка",
- "Open Sharing Details" : "Подробные сведения об общем ресурсе",
+ "Set default folder for accepted shares" : "Задать папку для принятых опубликованных ресурсов",
+ "Reset" : "Сброс",
+ "Reset folder to system default" : "Сбросить папку к значениям по умолчанию",
+ "Share expiration: {date}" : "Срок действия общего ресурса: {date}",
+ "Share Expiration" : "Срок действия общего ресурса",
"group" : "группа",
"conversation" : "беседа",
"remote" : "на другом сервере",
"remote group" : "группа на другом сервере",
"guest" : "Гость",
- "Shared with the group {user} by {owner}" : "{owner} предоставил(а) доступ группе {group}",
+ "by {initiator}" : "{initiator}",
+ "Shared with the group {user} by {owner}" : "{owner} предоставил(а) доступ группе {user}",
"Shared with the conversation {user} by {owner}" : "Пользователь {owner} предоставил(а) {user} доступ во время беседы",
"Shared with {user} by {owner}" : "{owner} предоставил(а) доступ {user} ",
+ "Open Sharing Details" : "Подробные сведения об общем ресурсе",
"Added by {initiator}" : "Добавлено пользователем {initiator}",
"Via “{folder}”" : "Через «{folder}»",
"Unshare" : "Закрыть доступ",
- "Internal link" : "Внутренняя ссылка",
"Cannot copy, please copy the link manually" : "Не удалось скопировать, выполните копирование вручную",
- "Copy internal link to clipboard" : "Скопировать внутреннюю ссылку в буфер обмена",
- "Link copied" : "Ссылка скопирована",
- "Please enter the following required information before creating the share" : "Для создания общего ресурса требуется указать следующие данные",
- "Password protection (enforced)" : "Защита паролем (требуется системной)",
- "Password protection" : "Защита паролем",
- "Enter a password" : "Введите пароль",
- "Expiration date (enforced)" : "Срок действия (требуется системой)",
- "Enter a date" : "Введите дату",
- "Create share" : "Создать общий ресурс",
- "Cancel" : "Отменить",
- "Customize link" : "Индивидуальная ссылка",
- "Add another link" : "Добавить другую ссылку",
- "Create a new share link" : "Создать ссылку доступа",
+ "Copy internal link" : "Копировать внутреннюю ссылку",
+ "Internal link" : "Внутренняя ссылка",
"{shareWith} by {initiator}" : "{shareWith} предоставлено {initiator}",
"Shared via link by {initiator}" : "{initiator} предоставил(а) доступ по ссылке",
+ "File request ({label})" : "Запрос файла ({label})",
"Mail share ({label})" : "Отправка почты ({label})",
"Share link ({label})" : "Ссылка общего доступа ({label})",
+ "Mail share" : "Общий доступ к почте",
"Share link ({index})" : "Ссылка общего доступа ({index})",
- "Share link" : "Общий доступ по ссылке",
+ "Create public link" : "Создать общедоступную ссылку",
"Actions for \"{title}\"" : "Действия над «{title}»",
- "Copy public link of \"{title}\" to clipboard" : "Скопировать общедоступную ссылку для доступа к «{title}» в буфер обмена",
"Error, please enter proper password and/or expiration date" : "Введите действительный пароль и/или дату истечения",
"Link share created" : "Ссылка создана",
"Error while creating the share" : "Не удалось создать общий ресурс",
+ "Please enter the following required information before creating the share" : "Для создания общего ресурса требуется указать следующие данные",
+ "Password protection (enforced)" : "Защита паролем (требуется системной)",
+ "Password protection" : "Защита паролем",
+ "Enter a password" : "Введите пароль",
+ "Enable link expiration (enforced)" : "Включить истечение срока действия ссылки (принудительно)",
+ "Enable link expiration" : "Включить истечение срока действия ссылки",
+ "Enter expiration date (enforced)" : "Введите дату истечения срока действия (принудительно)",
+ "Enter expiration date" : "Введите дату истечения срока действия",
+ "Create share" : "Создать общий ресурс",
+ "Customize link" : "Индивидуальная ссылка",
+ "Generate QR code" : "Сгенерировать QR-код",
+ "Add another link" : "Добавить другую ссылку",
+ "Create a new share link" : "Создать ссылку доступа",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Параметры быстрого обмена, выбранный в данный момент \"{selectedOption}\"",
"View only" : "Для просмотра",
"Can edit" : "Можно редактировать",
- "File drop" : "Принимать файлы",
"Custom permissions" : "Пользовательские права доступа",
- "Search for share recipients" : "Найти больше получателей общего ресурса",
- "No recommendations. Start typing." : "Рекомендации отсутствуют, начните вводить символы",
"Resharing is not allowed" : "Повторное открытие доступа запрещено",
"Name or email …" : "Имя или адрес эл.почты…",
"Name, email, or Federated Cloud ID …" : "Имя или ID межсерверного обмена…",
"Searching …" : "Поиск…",
"No elements found." : "Ничего не найдено.",
- "Search globally" : "Искать глобально",
+ "Search everywhere" : "Искать везде",
"Guest" : "Гость",
"Group" : "Группа",
"Email" : "Электронная почта",
+ "Team" : "Команда",
"Talk conversation" : "Название обсуждения",
"Deck board" : "Доска",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "на {server}",
+ "Enter external recipients" : "Введите внешних получателей",
+ "Search for internal recipients" : "Поиск внутренних получателей",
+ "Note from" : "Примечание от",
+ "Note:" : "Примечание:",
+ "File drop" : "Приём файлов",
+ "Upload files to {foldername}." : "Загрузка файлов в {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Загружая файлы, вы соглашаетесь с условиями обслуживания.",
+ "Successfully uploaded files" : "Файлы успешно загружены",
+ "View terms of service" : "Ознакомиться с условиями предоставления услуг",
+ "Terms of service" : "Условия использования",
+ "Share with email {email}" : "Поделитесь с помощью электронной почты",
+ "Share with group" : "Поделиться с группой",
+ "Share in conversation" : "Поделиться в чате",
+ "Share with {user} on remote server {server}" : "Поделиться с {user} на удаленном сервере {server}",
+ "Share with remote group" : "Поделиться с удалённой группой",
+ "Share with guest" : "Поделиться с гостем",
+ "Update share" : "Обновить общий ресурс",
+ "Save share" : "Сохранить общий ресурс",
+ "Read" : "Прочитать",
+ "Create" : "Создать",
+ "Edit" : "Редактировать",
+ "Share" : "Поделиться",
+ "Delete" : "Удалить",
+ "Password field cannot be empty" : "Поле пароля не может быть пустым",
+ "Replace current password" : "Заменить текущий пароль",
+ "Failed to generate a new token" : "Не удалось сгенерировать новый токен",
"Allow upload and editing" : "Разрешить приём и редактирование",
"Allow editing" : "Разрешить редактирование",
"Upload only" : "Только загружать",
"Advanced settings" : "Расширенные параметры",
"Share label" : "Метка общего доступа",
+ "Share link token" : "Токен ссылки на общий ресурс",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Установите простой для запоминания токен ссылки на общий ресурс или сгенерируйте новый. Не рекомендуется использовать легко угадываемые токены для общих ресурсов с конфиденциальной информацией.",
+ "Generating…" : "Создание…",
+ "Generate new token" : "Создать новый токен",
"Set password" : "Задать пароль",
- "Password" : "Пароль",
"Password expires {passwordExpirationTime}" : "Срок действия пароля истекает {passwordExpirationTime}",
"Password expired" : "Срок действия пароля истёк",
"Video verification" : "Подтверждение по видесвязи",
+ "Expiration date (enforced)" : "Срок действия (требуется системой)",
"Set expiration date" : "Установить срок действия",
- "Expiration date" : "Срок действия",
"Hide download" : "Скрыть загрузку",
- "Allow download" : "Разрешить скачивать",
+ "Allow download and sync" : "Разрешить загрузку и синхронизацию",
"Note to recipient" : "Примечание для получателя",
"Enter a note for the share recipient" : "Введите примечание для получателя",
- "Read" : "Прочитать",
- "Create" : "Создать",
- "Edit" : "Редактировать",
- "Share" : "Поделиться",
+ "Show files in grid view" : "Показать файлы в виде сетки",
"Delete share" : "Удалить общий ресурс",
- "Share with {userName}" : "Поделиться с {userName}",
- "Share with group" : "Поделиться с группой",
- "Share in conversation" : "Поделиться в чате",
- "Share with remote group" : "Поделиться с удалённой группой",
- "Share with guest" : "Поделиться с гостем",
- "Update share" : "Обновить общий ресурс",
- "Save share" : "Сохранить общий ресурс",
"Others with access" : "Другие пользователи, имеющие доступ",
+ "No other accounts with access found" : "Других учетных записей с доступом не найдено",
"Toggle list of others with access to this directory" : "Свернуть или развернуть список пользователей, имеющих доступ к этой папке",
"Toggle list of others with access to this file" : "Свернуть или развернуть список пользователей, имеющих доступ к этому файлу",
"Unable to fetch inherited shares" : "Невозможно получить список унаследованных общих ресурсов ",
+ "Link shares" : "Общие ссылки",
+ "Shares" : "Опубликованные ресурсы",
"Unable to load the shares list" : "Невозможно загрузить список общих ресурсов",
"Expires {relativetime}" : "Истекает {relativetime}",
"this share just expired." : "срок действия этого общего ресурса только что истёк.",
"Shared with you by {owner}" : "{owner} предоставил(а) Вам доступ",
+ "Internal shares" : "Внутренние ссылки",
+ "Internal shares explanation" : "Пояснение к внутренним общим ресурсам",
+ "External shares" : "Внешние ссылки",
+ "External shares explanation" : "Пояснение к внешним общим ресурсам",
+ "Additional shares" : "Дополнительные ссылки",
+ "Additional shares explanation" : "Пояснение к дополнительным общим ресурсам",
+ "Link to a file" : "Ссылка на файл",
"_Accept share_::_Accept shares_" : ["Принять общий ресурс","Принять общие ресурсы","Принять общие ресурсы","Принять общие ресурсы"],
"Open in Files" : "Открыть в Файлах",
"_Reject share_::_Reject shares_" : ["Отклонить общий ресурс","Отклонить общие ресурсы","Отклонить общие ресурсы","Отклонить общие ресурсы"],
"_Restore share_::_Restore shares_" : ["Восстановить общий ресурс","Восстановить общие ресурсы","Восстановить общие ресурсы","Восстановить общие ресурсы"],
"Shared" : "Опубликованное",
"Shared by {ownerDisplayName}" : "Доступно пользователю {ownerDisplayName}",
- "Show sharing options" : "Показать опции доступа",
- "Link to a file" : "Ссылка на файл",
- "Error creating the share: {errorMessage}" : "Не удалось создать общий ресурс: {errorMessage}",
- "Error creating the share" : "Ошибка создания общего доступа",
- "Error updating the share: {errorMessage}" : "Не удалось изменить общий ресурс: {errorMessage}",
- "Error updating the share" : "Ошибка изменения параметров общего доступа",
- "File \"{path}\" has been unshared" : "Закрыт общий доступ к файлу «{path}»",
- "Folder \"{path}\" has been unshared" : "Закрыт общий доступ к папке «{path}»",
- "Share {propertyName} saved" : "Общий ресурс «{propertyName}» сохранён",
- "Shared by" : "Поделился",
- "Shared with" : "Общий доступ",
- "Password created successfully" : "Пароль создан",
- "Error generating password from password policy" : "Не удалось создать пароль на основе политики",
- "Shared with you and the group {group} by {owner}" : "{owner} предоставил(а) доступ Вам и группе {group}",
- "Shared with you and {circle} by {owner}" : "{owner} предоставил(а) доступ Вам и участникам круга «{circle}»",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} предоставил(а) доступ Вам и участникам беседы «{conversation}»",
- "Shared with you in a conversation by {owner}" : "Пользователь {owner} предоставил(а) Вам доступ во время беседы",
- "Shares" : "Опубликованные ресурсы",
+ "Shared multiple times with different people" : "Делиться несколько раз с разными людьми",
+ "Shared with others" : "Доступные для других",
+ "Create file request" : "Запрос на создание файла",
+ "Upload files to {foldername}" : "Загружать файлы в {foldername}",
+ "Public file share" : "Общий доступ к файлам",
+ "Publicly shared file." : "Общедоступный файл.",
+ "No file" : "Нет файла",
+ "The file shared with you will show up here" : "Файл, которым вы поделились, появится здесь",
+ "Public share" : "Общедоступные ссылки",
+ "Publicly shared files." : "Общедоступные файлы.",
+ "No files" : "Нет файлов",
+ "Files and folders shared with you will show up here" : "Здесь будут отображаться файлы и папки, которыми с вами поделились.",
"Overview of shared files." : "Предпросмотр общих файлов.",
"No shares" : "Нет ресурсов общего доступа",
"Files and folders you shared or have been shared with you will show up here" : "Файлы и папки, которыми вы поделились или к которым Вам был предоставлен доступ, будут отображаться здесь",
@@ -242,7 +334,6 @@
"List of files that are shared with you." : "Список файлов, к которым Вам был предоставлен доступ.",
"Nothing shared with you yet" : "С вами пока ничем не поделились",
"Files and folders others shared with you will show up here" : "Файлы и каталоги, к которым вам предоставят общий доступ, будут отображаться здесь",
- "Shared with others" : "Доступные для других",
"List of files that you shared with others." : "Список файлов, которыми Вы поделились.",
"Nothing shared yet" : "Пока ничего не опубликовано",
"Files and folders you shared will show up here" : "Здесь появятся файлы и каталоги, к которым вы предоставили общий доступ",
@@ -250,6 +341,10 @@
"List of files that are shared by link." : "Список файлов, к которым был предоставлен доступ по ссылке.",
"No shared links" : "Нет общедоступных ссылок",
"Files and folders you shared by link will show up here" : "Здесь появятся файлы и каталоги, ссылкой на которые вы поделитесь",
+ "File requests" : "Запросы файлов",
+ "List of file requests." : "Список запросов к файлам.",
+ "No file requests" : "Никаких запросов файлов",
+ "File requests you have created will show up here" : "Здесь будут отображаться созданные вами запросы на файлы",
"Deleted shares" : "Удалённые общие ресурсы",
"List of shares you left." : "Список ресурсов общего доступа от которых Вы отказались.",
"No deleted shares" : "Удалённые ресурсы отсуствуют",
@@ -258,49 +353,87 @@
"List of unapproved shares." : "Список ресурсов общего доступа, которые вы еще не приняли",
"No pending shares" : "Ожидающие общие ресурсы отсуствуют",
"Shares you have received but not approved will show up here" : "Здесь появятся ресурсы общего доступа, которые Вам предоставлены, но еще не подтверждены с Вашей стороны",
+ "Error deleting the share: {errorMessage}" : "Ошибка при удалении общего ресурса: {errorMessage}",
+ "Error deleting the share" : "Ошибка прекращения общего доступа",
+ "Error updating the share: {errorMessage}" : "Не удалось изменить общий ресурс: {errorMessage}",
+ "Error updating the share" : "Ошибка изменения параметров общего доступа",
+ "File \"{path}\" has been unshared" : "Закрыт общий доступ к файлу «{path}»",
+ "Folder \"{path}\" has been unshared" : "Закрыт общий доступ к папке «{path}»",
+ "Could not update share" : "Не удалось обновить общий ресурс",
+ "Share saved" : "Общий доступ сохранен",
+ "Share expiry date saved" : "Дата истечения срока общего доступа сохранена",
+ "Share hide-download state saved" : "Скрытая загрузка ссылки общего доступа сохранено",
+ "Share label saved" : "Метка общего доступа сохранена",
+ "Share note for recipient saved" : "Примечание к общему ресурсу для получателя сохранено",
+ "Share password saved" : "Пароль общего доступа сохранен",
+ "Share permissions saved" : "Разрешения общего доступа сохранены",
+ "To upload files to {folder}, you need to provide your name first." : "Чтобы загрузить файлы в {folder}, сначала укажите своё имя.",
+ "Upload files to {folder}" : "Загрузка файлов в {folder}",
+ "Please confirm your name to upload files to {folder}" : "Пожалуйста, подтвердите своё имя для загрузки файлов в {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} поделился с вами папкой.",
+ "Names must not be empty." : "Имя не может быть пустым.",
+ "Names must not start with a dot." : "Имя не должно начинаться с точки.",
+ "\"{char}\" is not allowed inside a name." : "Символ «{char}» не допускается в имени.",
+ "\"{segment}\" is a reserved name and not allowed." : "«{segment}» — зарезервированное имя и не может быть использовано.",
+ "\"{extension}\" is not an allowed name." : "«{extension}» — недопустимое имя.",
+ "Names must not end with \"{extension}\"." : "Имя не должно оканчиваться на «{extension}».",
+ "Invalid name." : "Недопустимое имя.",
+ "Shared by" : "Поделился",
+ "Shared with" : "Общий доступ",
+ "Password created successfully" : "Пароль создан",
+ "Error generating password from password policy" : "Не удалось создать пароль на основе политики",
+ "Shared with you and the group {group} by {owner}" : "{owner} предоставил(а) доступ Вам и группе {group}",
+ "Shared with you and {circle} by {owner}" : "{owner} предоставил(а) доступ Вам и участникам круга «{circle}»",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} предоставил(а) доступ Вам и участникам беседы «{conversation}»",
+ "Shared with you in a conversation by {owner}" : "Пользователь {owner} предоставил(а) Вам доступ во время беседы",
+ "Share not found" : "Ресурс с общим доступом не найден",
+ "Back to %s" : "Вернуться к %s",
+ "Add to your Nextcloud" : "Добавить в свой Nextcloud",
+ "Waiting…" : "Ожидание…",
+ "error" : "ошибка",
+ "finished" : "завершено",
+ "This will stop your current uploads." : "Это остановит ваши текущие загрузки.",
+ "Move or copy" : "Переместить или копировать",
+ "You can upload into this folder" : "Вы можете загружать в этот каталог",
+ "Show list view" : "Просмотр списком",
+ "Show grid view" : "Просмотр сеткой",
+ "No compatible server found at {remote}" : "Не найден совместимый сервер на {remote}",
+ "Invalid server URL" : "Неверный URL сервера",
+ "Failed to add the public link to your Nextcloud" : "Не удалось создать общедоступную ссылку",
+ "You are not allowed to edit link shares that you don't own" : "Вам не разрешается редактировать ссылки, которыми вы не владеете",
+ "Download all files" : "Скачать все файлы",
+ "Link copied to clipboard" : "Ссылка скопирована в буфер обмена",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Уже добавлен 1 адрес электронной почты","Уже добавлено {count} адреса электронной почты","Уже добавлено {count} адресов электронной почты","Уже добавлено {count} адресов электронной почты"],
+ "_1 email address added_::_{count} email addresses added_" : ["Добавлен 1 адрес электронной почты","Добавлено {count} адреса электронной почты","Добавлено {count} адресов электронной почты","Добавлено {count} адресов электронной почты"],
+ "Copy to clipboard" : "Копировать в буфер обмена",
+ "Copy internal link to clipboard" : "Скопировать внутреннюю ссылку в буфер обмена",
+ "Only works for people with access to this folder" : "Работает только для людей, имеющих доступ к этой папке",
+ "Only works for people with access to this file" : "Работает только для людей, имеющих доступ к этому файлу",
+ "Copy public link of \"{title}\" to clipboard" : "Скопировать общедоступную ссылку для доступа к «{title}» в буфер обмена",
+ "Search globally" : "Искать глобально",
+ "Search for share recipients" : "Найти больше получателей общего ресурса",
+ "No recommendations. Start typing." : "Рекомендации отсутствуют, начните вводить символы",
+ "To upload files, you need to provide your name first." : "Чтобы загрузить файлы, вам необходимо сначала указать свое имя.",
+ "Enter your name" : "Введите своё имя",
+ "Submit name" : "Отправить имя",
+ "Share with {userName}" : "Поделиться с {userName}",
+ "Show sharing options" : "Показать опции доступа",
"Share note" : "Комментарий к общему ресурсу",
"Upload files to %s" : "Загрузка файлов в %s",
+ "%s shared a folder with you." : "%s поделился с вами папкой.",
"Note" : "Примечание",
"Select or drop files" : "Выберите или перетащите файлы",
"Uploading files" : "Загрузка файлов",
"Uploaded files:" : "Отправленные файлы:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Передачей файлов на сервер, вы принимаете %1$sусловия обслуживания%2$s.",
- "Add to your Nextcloud" : "Добавить в свой Nextcloud",
- "Files and folders others share with you will show up here" : "Здесь появятся файлы и каталоги, к которым вам предоставят общий доступ",
- "Files and folders you share will show up here" : "Здесь появятся файлы и каталоги, к которым вы предоставили общий доступ",
- "Files and folders you share by link will show up here" : "Здесь появятся файлы и каталоги, ссылкой на которые вы поделитесь",
- "Shares you deleted will show up here" : "Здесь будут показаны удалённые вами общие ресурсы",
- "Shares you have received but not confirmed will show up here" : "Здесь появятся файлы и каталоги, ожидающие подтверждения получения с вашей стороны",
- "Shares will show up here" : "Здесь будут показаны общие ресурсы",
- "Restore" : "Восстановить",
- "Something happened. Unable to restore the share." : "Не удалось восстановить общий ресурс.",
- "Something happened. Unable to accept the share." : "Не удалось принять общий ресурс.",
- "Something happened. Unable to reject the share." : "Не удалось отклонить предложение общего ресурса.",
- "No expiration date set" : "Дата истечения не установлена",
- "Please specify a valid user" : "Укажите верного пользователя",
- "Please specify a valid federated user ID" : "Укажите действительный идентификатор федеративного пользователя",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Это приложение позволяет пользователям обмениваться файлами в Nextcloud. Если приложение включено, администратор может выбрать, какие группы пользователей могут предоставлять общий доступ к файлам, после чего такие пользователи, могут обмениваться файлами и папками с другими пользователями и группами в Nextcloud. Кроме того, если администратор задействовал модуль предоставления общего доступа, то для обмена файлами с другими пользователями, не являющимися пользователями Nextcloud может использоваться внешняя ссылка. Администраторы могут также задавать обязательное использование паролей для получения доступа к общему ресурсу, обязательное назначение срока действия ссылки, разрешать межсерверный обмен файлами с помощью ссылок и предоставление общего доступа с мобильных устройств.\nПри отключении этой функции для всех пользователей будет отключён совместный доступ к файлам и папкам на сервере, в том числе и при использовании приложений для синхронизации и мобильных приложений. Дополнительная информация доступна в документации Nextcloud.",
- "Accept user and group shares by default" : "Принимать по умолчанию общие ресурсы, предназначенные пользователю или группе",
- "Read only" : "Только для чтения",
- "File drop (upload only)" : "Хранилище (только приём файлов)",
- "Upload" : "Отправить",
- "Bundled permissions" : "Связанные права доступа",
- "Only works for users with access to this folder" : "Только для пользователей с доступом к этой папке",
- "Only works for users with access to this file" : "Только для пользователей с доступом к этому файлу",
- "Circle" : "Круг",
- "Update" : "Изменение",
- "Share with " : "Поделиться",
- "No other users with access found" : "Не найдено пользователей, имеющих доступ",
- "No entries found in this folder" : "В этой папке ничего нет",
"Name" : "Имя",
- "Share time" : "Дата публикации",
- "Sorry, this link does not seem to work anymore." : "Извините, но эта ссылка больше не работает.",
- "Reasons might be:" : "Вероятные причины этого:",
- "the item was removed" : "объект удалён",
- "the link expired" : "истёк срок действия ссылки",
- "sharing is disabled" : "закрыт общий доступ",
- "For more info, please ask the person who sent this link." : "Для получения дополнительной информации, свяжитесь с тем, кто отправил вам эту ссылку.",
- "Share with remote" : "Поделиться с удалённым",
- "Share with" : "Поделиться"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Используйте этот метод для обмена файлами с отдельными лицами или группами в вашей организации. Если получатель уже имеет доступ к ресурсу, но не может его найти, вы можете отправить ему внутреннюю ссылку на ресурс для легкого доступа.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Используйте этот метод для обмена файлами с отдельными лицами или организациями за пределами вашей организации. Файлы и папки можно делить через публичные ссылки и адреса электронной почты. Вы также можете делиться с другими учетными записями Nextcloud, размещенными на разных экземплярах, используя их идентификатор федеративного облака.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Ссылки, которые не являются частью внутренних или внешних ссылок. Это могут быть ссылки из приложений или других источников.",
+ "Share with accounts, teams, federated cloud id" : "Поделиться с учетными записями, командами, идентификатором федеративного облака",
+ "Share with accounts and teams" : "Поделиться с аккаунтами и командами",
+ "Federated cloud ID" : "Федеративный облачный ID",
+ "Email, federated cloud id" : "Электронная почта, идентификатор федеративного облака",
+ "Filename must not be empty." : "Имя файла не должно быть пустым."
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/sc.js b/apps/files_sharing/l10n/sc.js
index 0dd75733351..69b9983a0bd 100644
--- a/apps/files_sharing/l10n/sc.js
+++ b/apps/files_sharing/l10n/sc.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Abeta…",
- "error" : "errore",
- "finished" : "agabbadu",
- "This will stop your current uploads." : "Custu at a firmare is carrigamentos tuos atuales.",
- "Move or copy" : "Tràmuda o còpia",
- "Download" : "Iscàrriga",
- "Delete" : "Cantzella",
- "You can upload into this folder" : "Podes carrigare in custa cartella",
- "Terms of service" : "Cunditziones de servìtziu",
- "Show list view" : "Mustra sa visualizatzione de lista",
- "Show grid view" : "Mustra sa visualizatzione de mosàicu",
- "No compatible server found at {remote}" : "Perunu serbidore cumpatìbile agatadu in {remote}",
- "Invalid server URL" : "URL de su serbidore non vàlidu",
- "Failed to add the public link to your Nextcloud" : "No at fatu a agiùnghere su ligòngiu pùblicu in Nextcloud",
"File shares" : "Cumpartziduras de archìvios",
"Downloaded via public link" : "Iscarrigadu cun ligòngiu pùblicu",
"Downloaded by {email}" : "Iscarrigadu dae {email}",
@@ -70,35 +56,31 @@ OC.L10N.register(
"Share for file {file} expired" : "Cumpartzidura pro s'archìviu {file} iscadida",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un'archìviu o cartella cumpartzida tràmite posta o ligòngiu pùblicu est istada <strong>iscarrigada</strong>",
"A file or folder was shared from <strong>another server</strong>" : "<strong>Un'àteru serbidore</strong> at cumpartzidu un'archìviu o una cartella",
- "Files" : "Archìvios",
+ "Sharing" : "Cumpartzidura",
"A file or folder has been <strong>shared</strong>" : "Ant <strong>cumpartzidu</strong> un'archìviu o una cartella",
"Shared link" : "Ligòngiu cumpartzidu",
"Could not delete share" : "No at fatu a cantzellare sa cumpartzidura",
"Please specify a file or folder path" : "Ispetzìfica unu percursu de una cartella o un'archìviu",
"Could not create share" : "No at fatu a creare sa cumpartzidura",
- "Invalid permissions" : "Permissos non bàlidos",
- "Invalid date, date format must be YYYY-MM-DD" : "Data non vàlida, su formadu depet èssere YYYY-MM-DD",
"Group sharing is disabled by the administrator" : "Sa cumpartzidura de grupu est disativada dae s'amministratzione",
"Please specify a valid group" : "Ispetzìfica unu grupu bàlidu",
"Public link sharing is disabled by the administrator" : "Sa cumpartzidura de ligòngios pùblicos est disativada dae s'amministratzione",
- "Public upload disabled by the administrator" : "Su carrigamentu pùblicu est disativadu dae s'amministradore",
- "Public upload is only possible for publicly shared folders" : "Su carrigamentu pùblicu si podet fàghere isceti cun cartellas cumpartzidas pùblicas",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Sa cumpartzidura de%scun s'imbiu de sa crae dae Nextcloud Talk est faddida ca Nextcloud Talk est disativadu",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Sa cumpartzidura de %1$s est faddida ca su motore non permitit cumpartziduras de genia %2$s",
"Please specify a valid federated group ID" : "Ispetzìfica un'id de grupu federadu bàlidu",
- "You cannot share to a Circle if the app is not enabled" : "Non podes cumpartzire cun unu tzircu si s'aplicatzione est disativada",
- "Please specify a valid circle" : "Ispetzìfica unu tzircu bàlidu",
"Sharing %s failed because the back end does not support room shares" : "Sa cumpartzidura de %s est faddida ca su motore non suportat cumpartzidura de istantzas",
"Unknown share type" : "Genia de cumpartzidura disconnota",
"Not a directory" : "No est una cartella",
"Could not lock node" : "No at fatu a blocare su nodu",
+ "Public upload is only possible for publicly shared folders" : "Su carrigamentu pùblicu si podet fàghere isceti cun cartellas cumpartzidas pùblicas",
+ "Public upload disabled by the administrator" : "Su carrigamentu pùblicu est disativadu dae s'amministradore",
"Could not lock path" : "No at fatu a blocare su percursu",
"Wrong or no update parameter given" : "Su paràmetru frunidu est isballiadu o no agiornadu",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"S'imbiu de sa crae dae Nextcloud Talk\" pro cumpartzire un'archìviu o cartella est faddida ca Nextcloud Talk est disativadu.",
"shared by %s" : "cumpartzidu dae %s",
- "Download all files" : "Iscàrriga totu is archìvios",
- "Direct link" : "Ligòngiu deretu",
+ "Download" : "Iscàrriga",
"Add to your %s" : "Agiunghe a su %s tuo",
+ "Direct link" : "Ligòngiu deretu",
"Share API is disabled" : "API de cumpartzidura disativadu",
"File sharing" : "Cumpartzidura de archìvios",
"Share will expire tomorrow" : "Sa cumpartzidura at a iscadire cras",
@@ -107,10 +89,24 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "As retzidu {share} a su grupu {group} cumpartzidu dae {user}",
"Accept" : "Atzeta",
"Decline" : "Refuda",
- "Sharing" : "Cumpartzidura",
- "Reset" : "Torra a impostare",
+ "People" : "Gente",
+ "Expiration date" : "Data de iscadèntzia",
+ "Set a password" : "Cunfigura una crae",
+ "Password" : "Crae",
+ "Generate a new password" : "Gènera una crae noa",
+ "Link copied" : "Ligòngiu copiadu",
+ "Share link" : "Cumpartzi ligòngiu",
+ "Copy" : "Còpia",
+ "Select" : "Seletziona",
+ "Close" : "Serra",
+ "File request created" : "Rechesta de archìviu creada",
+ "Error creating the share: {errorMessage}" : "Errore in sa creatzione de sa cumpartzidura: {errorMessage}",
+ "Error creating the share" : "Errore in sa creatzione de sa cumpartzidura",
+ "Create a file request" : "Crea rechesta de archìviu",
+ "Cancel" : "Annulla",
"Invalid path selected" : "Percursu seletzionadu non bàlidu",
"Unknown error" : "Errore disconnotu",
+ "Reset" : "Torra a cunfigurare",
"group" : "grupu",
"conversation" : "resonada",
"remote" : "remota",
@@ -122,92 +118,122 @@ OC.L10N.register(
"Added by {initiator}" : "Agiuntu dae {initiator}",
"Via “{folder}”" : "Tràmite “{folder}”",
"Unshare" : "Annulla sa cumpartzidura",
- "Internal link" : "Ligòngiu internu",
"Cannot copy, please copy the link manually" : "No at fatu a copiare, copia su ligòngiu a manu",
- "Copy internal link to clipboard" : "Còpia su ligòngiu internu in punta de billete",
- "Link copied" : "Ligòngiu copiadu",
+ "Copy internal link" : "Còpia ligòngiu internu",
+ "Internal link" : "Ligòngiu internu",
+ "{shareWith} by {initiator}" : "{shareWith} dae {initiator}",
+ "Shared via link by {initiator}" : "Cumpartzidu cun ligòngiu dae {initiator}",
+ "Mail share ({label})" : "Cumpartzidura cun posta eletrònica ({label})",
+ "Share link ({label})" : "Cumpartzi ligòngiu ({label})",
+ "Create public link" : "Crea unu ligòngiu pùblicu",
+ "Error, please enter proper password and/or expiration date" : "Errore, inserta una crae giusta e/o sa data de iscadèntzia",
"Please enter the following required information before creating the share" : "Inserta is informatziones rechertas in fatu in antis de creare sa cumpartzidura",
"Password protection (enforced)" : "Bardiadura cun crae (posta)",
"Password protection" : "Bardiadura cun crae",
"Enter a password" : "Inserta una crae",
- "Expiration date (enforced)" : "Data de iscadèntzia (posta)",
- "Enter a date" : "Inserta una data",
"Create share" : "Crea cumpartzidura",
- "Cancel" : "Annulla",
"Customize link" : "Personaliza su ligòngiu",
+ "Generate QR code" : "Gènera unu còdighe QR",
"Add another link" : "Agiunghe un'àteru ligòngiu",
"Create a new share link" : "Crea unu ligòngiu de cumpartzidura nou",
- "{shareWith} by {initiator}" : "{shareWith} dae {initiator}",
- "Shared via link by {initiator}" : "Cumpartzidu cun ligòngiu dae {initiator}",
- "Mail share ({label})" : "Cumpartzidura cun posta eletrònica ({label})",
- "Share link ({label})" : "Cumpartzi ligòngiu ({label})",
- "Share link" : "Cumpartzi ligòngiu",
- "Error, please enter proper password and/or expiration date" : "Errore, inserta una crae giusta e/o sa data de iscadèntzia",
"View only" : "Isceti in visualizatzione",
"Can edit" : "Podet modificare",
"Custom permissions" : "Permissos personalizados",
- "No recommendations. Start typing." : "Peruna racumandatzione. Cumintza a iscrìere.",
"Resharing is not allowed" : "Non faghet a torrare a cumpartzire",
"Name or email …" : "Nùmene o indiritzu de posta ...",
"Name, email, or Federated Cloud ID …" : "Nùmene, indiritzu de posta o ID de sa nue federada ...",
"Searching …" : "Chirchende …",
"No elements found." : "Perunu elementu agatadu.",
- "Search globally" : "Chirca globale",
"Guest" : "Persone invitada",
"Group" : "Grupu",
"Email" : "Posta eletrònica",
"Talk conversation" : "Resonada de Talk",
"Deck board" : "Tabella in Deck",
"on {server}" : "in {server}",
+ "Terms of service" : "Cunditziones de servìtziu",
+ "Update share" : "Agiorna sa cumpartzidura",
+ "Read" : "Leghe",
+ "Create" : "Crea",
+ "Edit" : "Modìfica",
+ "Share" : "Cumpartzi",
+ "Delete" : "Cantzella",
"Allow upload and editing" : "Permite carrigamentu e modìficas",
"Allow editing" : "Cunsenti sa modìfica",
"Advanced settings" : "Cunfiguratziones avantzadas",
"Share label" : "Cumpartzi eticheta",
- "Set password" : "Imposta sa crae",
- "Password" : "Crae",
+ "Set password" : "Cunfigura sa crae",
"Video verification" : "Verìfica vìdeu",
- "Set expiration date" : "Imposta data de iscadèntzia",
- "Expiration date" : "Data de iscadèntzia",
+ "Expiration date (enforced)" : "Data de iscadèntzia (posta)",
+ "Set expiration date" : "Cunfigura sa data de iscadèntzia",
"Hide download" : "Cua iscarrigamentu",
"Note to recipient" : "Nota a sa persone destinatària",
"Enter a note for the share recipient" : "Inserta una nota pro sa persone destinatària",
- "Read" : "Leghe",
- "Create" : "Crea",
- "Edit" : "Modìfica",
- "Share" : "Cumpartzi",
+ "Delete share" : "Cantzella sa cumpartzidura",
"Others with access" : "Àtere cun atzessu",
+ "No other accounts with access found" : "Nissunu àteru contu cun atzessu",
"Toggle list of others with access to this directory" : "Ativa sa lista de àtere cun atzessu a custa cartella",
"Toggle list of others with access to this file" : "Ativa sa lista de àtere cun atzessu a custu archìviu",
"Unable to fetch inherited shares" : "Non faghet a recuperare is cumpartziduras eredadas",
+ "Shares" : "Cumpartziduras",
"Unable to load the shares list" : "Non faghet a carrigare sa lista de cumpartziduras",
"Expires {relativetime}" : "Iscadit {relativetime}",
"this share just expired." : "custa cumpartzidura est iscadida.",
"Shared with you by {owner}" : "Cumpartzidu cun tegus dae {owner}",
+ "Link to a file" : "Ligòngiu a archìviu",
"Open in Files" : "Aberi in Archìvios",
"Shared" : "Cumpartzidu",
- "Link to a file" : "Ligòngiu a archìviu",
- "Error creating the share: {errorMessage}" : "Errore in sa creatzione de sa cumpartzidura: {errorMessage}",
- "Error creating the share" : "Errore in sa creatzione de sa cumpartzidura",
- "Error updating the share: {errorMessage}" : "Errore in s'agiornamentu de sa cumpartzidura: {errorMessage}",
- "Error updating the share" : "Errore in s'agiornamentu de sa cumpatzidura",
- "Shared by" : "Cumpartzidu dae",
- "Shared with" : "Cumpartzidu cun",
- "Shared with you and the group {group} by {owner}" : "Cumpartzidu cun tegus e su grupu {group} dae {owner}",
- "Shared with you and {circle} by {owner}" : "Cumpartzidu cun tegus {circle} dae {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Cumpartzidu cun tegus e sa resonada {conversation} dae {owner}",
- "Shared with you in a conversation by {owner}" : "Cumpartzidu cun tegus in una resonada dae {owner}",
- "Shares" : "Cumpartziduras",
+ "Shared by {ownerDisplayName}" : "Cumpartzidu dae {ownerDisplayName}",
+ "Shared with others" : "Cumpartzidu cun àtere",
+ "Create file request" : "Crea rechesta de archìviu",
"No shares" : "Peruna cumpartzidura",
"Shared with you" : "Cumpartzidu cun tegus",
"Nothing shared with you yet" : "Ancora peruna cumpartzidura cun tegus",
- "Shared with others" : "Cumpartzidu cun àtere",
"Nothing shared yet" : "Ancora peruna cumpartzidura",
"Shared by link" : "Cumpartzidu cun ligòngiu",
+ "List of files that are shared by link." : "Lista de archìvios cumpartzidos cun ligòngiu.",
"No shared links" : "Perunu ligòngiu cumpartzidu",
+ "File requests" : "Archìvios rechestos",
+ "List of file requests." : "Lista de archìvios rechestos.",
+ "No file requests" : "Perunu archìviu rechestu",
+ "File requests you have created will show up here" : "Is rechestas de archìviu chi crees ant a èssere mustradas inoghe",
"Deleted shares" : "Cumpartziduras cantzelladas",
"No deleted shares" : "Peruna cumpartzidura cantzellada",
"Pending shares" : "Cumpartziduras in suspesu",
"No pending shares" : "Peruna cumpartzidura in suspesu",
+ "Error updating the share: {errorMessage}" : "Errore in s'agiornamentu de sa cumpartzidura: {errorMessage}",
+ "Error updating the share" : "Errore in s'agiornamentu de sa cumpatzidura",
+ "Could not update share" : "No at fatu a agiornare sa cumpartzidura",
+ "Shared by" : "Cumpartzidu dae",
+ "Shared with" : "Cumpartzidu cun",
+ "Shared with you and the group {group} by {owner}" : "Cumpartzidu cun tegus e su grupu {group} dae {owner}",
+ "Shared with you and {circle} by {owner}" : "Cumpartzidu cun tegus {circle} dae {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Cumpartzidu cun tegus e sa resonada {conversation} dae {owner}",
+ "Shared with you in a conversation by {owner}" : "Cumpartzidu cun tegus in una resonada dae {owner}",
+ "Share not found" : "Cumpartzidura no agatada",
+ "Back to %s" : "Torra a %s",
+ "Add to your Nextcloud" : "Agiunghe a su Nextcloud tuo",
+ "Waiting…" : "Abeta…",
+ "error" : "errore",
+ "finished" : "agabbadu",
+ "This will stop your current uploads." : "Custu at a firmare is carrigamentos tuos atuales.",
+ "Move or copy" : "Tràmuda o còpia",
+ "You can upload into this folder" : "Podes carrigare in custa cartella",
+ "Show list view" : "Mustra sa visualizatzione de lista",
+ "Show grid view" : "Mustra sa visualizatzione de mosàicu",
+ "No compatible server found at {remote}" : "Perunu serbidore cumpatìbile agatadu in {remote}",
+ "Invalid server URL" : "URL de su serbidore non vàlidu",
+ "Failed to add the public link to your Nextcloud" : "No at fatu a agiùnghere su ligòngiu pùblicu in Nextcloud",
+ "Download all files" : "Iscàrriga totu is archìvios",
+ "Link copied to clipboard" : "Ligòngiu copiadu in punta de billete",
+ "Copy to clipboard" : "Còpia in is punta de billete",
+ "Copy internal link to clipboard" : "Còpia su ligòngiu internu in punta de billete",
+ "Only works for people with access to this folder" : "Funtzionat isceti pro gente cun atzessu a custa cartella",
+ "Only works for people with access to this file" : "Funtzionat isceti pro gente cun atzessu a custu archìviu",
+ "Copy public link of \"{title}\" to clipboard" : "Còpia in punta de billete su ligòngiu pùblicu pro: \"{title}\"",
+ "Search globally" : "Chirca globale",
+ "Search for share recipients" : "Chirca destinatàrios de cumpartziduras",
+ "No recommendations. Start typing." : "Peruna racumandatzione. Cumintza a iscrìere.",
+ "Enter your name" : "Inserta•nche su nùmene tuo",
"Share note" : "Cumpartzi sa nota",
"Upload files to %s" : "Càrriga archìvios in %s",
"Note" : "Nota",
@@ -215,37 +241,6 @@ OC.L10N.register(
"Uploading files" : "Carrighende archìvios",
"Uploaded files:" : "Archìvios carrigados:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Carrighende is archìvios, cuncordas cun is %1$scunditziones de servìtziu%2$s.",
- "Add to your Nextcloud" : "Agiunghe a su Nextcloud tuo",
- "Files and folders others share with you will show up here" : "Archìvios e cartellas cumpartzidas dae àtere ant a aparèssere inoghe",
- "Files and folders you share will show up here" : "Is cartellas e is archìvios chi cumpartzis ant a aparèssere inoghe",
- "Files and folders you share by link will show up here" : "Is cartellas e is archìvios chi cumpartzis cun ligòngiu ant a aparèssere inoghe",
- "Shares you deleted will show up here" : "Is cumpartziduras chi has cantzelladu ant a aparèssere inoghe",
- "Shares you have received but not confirmed will show up here" : "Is cumpartziduras retzidas e non cunfirmadas ant a aparèssere inoghe",
- "Shares will show up here" : "Is cumpartziduras ant a aparèssere inoghe",
- "Restore" : "Riprìstina",
- "Something happened. Unable to restore the share." : "Non faghet a ripristinare sa cumpartzidura.",
- "Something happened. Unable to accept the share." : "Non faghet a atzetare sa cumpartzidura.",
- "Something happened. Unable to reject the share." : "Non faghet a refudare sa cumpartzidura.",
- "No expiration date set" : "Peruna data de iscadèntzia impostada",
- "Please specify a valid user" : "Ispetzìfica un'utèntzia bàlida",
- "Please specify a valid federated user ID" : "Ispetzìfica un'id de utente federadu bàlidu",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Custa aplicatzione permitit a is utentes de cumpartzire archìvios in Nextcloud. Si ativada, s'amministratzione podet seberare cales grupos podent cumpartzire archìvios. Is utèntzias seberadas podent cumpartzire archìvios e cartellas cun àteras utèntzias e grupos de Nextcloud. In prus, si s'amministratzione ativat sa funtzionalidade de is ligòngios de cumpartzidura, faghet a impreare unu ligòngiu esternu pro cumpartzire archìvios cun àtere in foras dae Nextcloud. S'amministratzione podet puru afortigare craes, datas de iscadèntzia, e ativare sa cumpartzidura intre serbidores tràmite ligòngios de cumpartzidura, e fintzas sa cumpartzidura dae dispositivos mòbiles.\nDisativende sa funtzionalidade s'ant a bogare archìvios e is cartellas cumpartzidas in su serbidore pro totu is persones retzidoras de sa cumpartzidura, e puru in is clientes de sincronizatzione e in is aplicatziones mòbiles. Àteras informatziones a disponimentu in sa documentatzione de Nextcloud.",
- "Accept user and group shares by default" : "Atzeta is cumpartziduras de utentes e grupos comente modalidade predefinida",
- "Read only" : "Isceti letura",
- "File drop (upload only)" : "Trìsina documentu (isceti pro carrigare)",
- "Upload" : "Càrriga",
- "Only works for users with access to this folder" : "Funtzionat isceti pro utentes cun atzessu a custa cartella",
- "Only works for users with access to this file" : "Funtzionat isceti pro utentes cun atzessu a custu archìviu",
- "Circle" : "Giru",
- "Update" : "Agiorna",
- "No other users with access found" : "Peruna utèntzia cun atzessu agatada",
- "No entries found in this folder" : "Perunu elementu agatadu in custa cartella",
- "Name" : "Nùmene",
- "Share time" : "Ora de cumpartzidura",
- "Reasons might be:" : "Is resones diant pòdere èssere:",
- "the item was removed" : "ant bogadu s'elementu",
- "the link expired" : "est iscadidu su ligòngiu",
- "sharing is disabled" : "sa cumpartzidura no est ativa",
- "For more info, please ask the person who sent this link." : "Pro nde ischire de prus, dimanda a chie at imbiadu custu ligòngiu."
+ "Name" : "Nùmene"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/sc.json b/apps/files_sharing/l10n/sc.json
index 62c9b2ad8d2..ea350b100c3 100644
--- a/apps/files_sharing/l10n/sc.json
+++ b/apps/files_sharing/l10n/sc.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Abeta…",
- "error" : "errore",
- "finished" : "agabbadu",
- "This will stop your current uploads." : "Custu at a firmare is carrigamentos tuos atuales.",
- "Move or copy" : "Tràmuda o còpia",
- "Download" : "Iscàrriga",
- "Delete" : "Cantzella",
- "You can upload into this folder" : "Podes carrigare in custa cartella",
- "Terms of service" : "Cunditziones de servìtziu",
- "Show list view" : "Mustra sa visualizatzione de lista",
- "Show grid view" : "Mustra sa visualizatzione de mosàicu",
- "No compatible server found at {remote}" : "Perunu serbidore cumpatìbile agatadu in {remote}",
- "Invalid server URL" : "URL de su serbidore non vàlidu",
- "Failed to add the public link to your Nextcloud" : "No at fatu a agiùnghere su ligòngiu pùblicu in Nextcloud",
"File shares" : "Cumpartziduras de archìvios",
"Downloaded via public link" : "Iscarrigadu cun ligòngiu pùblicu",
"Downloaded by {email}" : "Iscarrigadu dae {email}",
@@ -68,35 +54,31 @@
"Share for file {file} expired" : "Cumpartzidura pro s'archìviu {file} iscadida",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un'archìviu o cartella cumpartzida tràmite posta o ligòngiu pùblicu est istada <strong>iscarrigada</strong>",
"A file or folder was shared from <strong>another server</strong>" : "<strong>Un'àteru serbidore</strong> at cumpartzidu un'archìviu o una cartella",
- "Files" : "Archìvios",
+ "Sharing" : "Cumpartzidura",
"A file or folder has been <strong>shared</strong>" : "Ant <strong>cumpartzidu</strong> un'archìviu o una cartella",
"Shared link" : "Ligòngiu cumpartzidu",
"Could not delete share" : "No at fatu a cantzellare sa cumpartzidura",
"Please specify a file or folder path" : "Ispetzìfica unu percursu de una cartella o un'archìviu",
"Could not create share" : "No at fatu a creare sa cumpartzidura",
- "Invalid permissions" : "Permissos non bàlidos",
- "Invalid date, date format must be YYYY-MM-DD" : "Data non vàlida, su formadu depet èssere YYYY-MM-DD",
"Group sharing is disabled by the administrator" : "Sa cumpartzidura de grupu est disativada dae s'amministratzione",
"Please specify a valid group" : "Ispetzìfica unu grupu bàlidu",
"Public link sharing is disabled by the administrator" : "Sa cumpartzidura de ligòngios pùblicos est disativada dae s'amministratzione",
- "Public upload disabled by the administrator" : "Su carrigamentu pùblicu est disativadu dae s'amministradore",
- "Public upload is only possible for publicly shared folders" : "Su carrigamentu pùblicu si podet fàghere isceti cun cartellas cumpartzidas pùblicas",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Sa cumpartzidura de%scun s'imbiu de sa crae dae Nextcloud Talk est faddida ca Nextcloud Talk est disativadu",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Sa cumpartzidura de %1$s est faddida ca su motore non permitit cumpartziduras de genia %2$s",
"Please specify a valid federated group ID" : "Ispetzìfica un'id de grupu federadu bàlidu",
- "You cannot share to a Circle if the app is not enabled" : "Non podes cumpartzire cun unu tzircu si s'aplicatzione est disativada",
- "Please specify a valid circle" : "Ispetzìfica unu tzircu bàlidu",
"Sharing %s failed because the back end does not support room shares" : "Sa cumpartzidura de %s est faddida ca su motore non suportat cumpartzidura de istantzas",
"Unknown share type" : "Genia de cumpartzidura disconnota",
"Not a directory" : "No est una cartella",
"Could not lock node" : "No at fatu a blocare su nodu",
+ "Public upload is only possible for publicly shared folders" : "Su carrigamentu pùblicu si podet fàghere isceti cun cartellas cumpartzidas pùblicas",
+ "Public upload disabled by the administrator" : "Su carrigamentu pùblicu est disativadu dae s'amministradore",
"Could not lock path" : "No at fatu a blocare su percursu",
"Wrong or no update parameter given" : "Su paràmetru frunidu est isballiadu o no agiornadu",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"S'imbiu de sa crae dae Nextcloud Talk\" pro cumpartzire un'archìviu o cartella est faddida ca Nextcloud Talk est disativadu.",
"shared by %s" : "cumpartzidu dae %s",
- "Download all files" : "Iscàrriga totu is archìvios",
- "Direct link" : "Ligòngiu deretu",
+ "Download" : "Iscàrriga",
"Add to your %s" : "Agiunghe a su %s tuo",
+ "Direct link" : "Ligòngiu deretu",
"Share API is disabled" : "API de cumpartzidura disativadu",
"File sharing" : "Cumpartzidura de archìvios",
"Share will expire tomorrow" : "Sa cumpartzidura at a iscadire cras",
@@ -105,10 +87,24 @@
"You received {share} to group {group} as a share by {user}" : "As retzidu {share} a su grupu {group} cumpartzidu dae {user}",
"Accept" : "Atzeta",
"Decline" : "Refuda",
- "Sharing" : "Cumpartzidura",
- "Reset" : "Torra a impostare",
+ "People" : "Gente",
+ "Expiration date" : "Data de iscadèntzia",
+ "Set a password" : "Cunfigura una crae",
+ "Password" : "Crae",
+ "Generate a new password" : "Gènera una crae noa",
+ "Link copied" : "Ligòngiu copiadu",
+ "Share link" : "Cumpartzi ligòngiu",
+ "Copy" : "Còpia",
+ "Select" : "Seletziona",
+ "Close" : "Serra",
+ "File request created" : "Rechesta de archìviu creada",
+ "Error creating the share: {errorMessage}" : "Errore in sa creatzione de sa cumpartzidura: {errorMessage}",
+ "Error creating the share" : "Errore in sa creatzione de sa cumpartzidura",
+ "Create a file request" : "Crea rechesta de archìviu",
+ "Cancel" : "Annulla",
"Invalid path selected" : "Percursu seletzionadu non bàlidu",
"Unknown error" : "Errore disconnotu",
+ "Reset" : "Torra a cunfigurare",
"group" : "grupu",
"conversation" : "resonada",
"remote" : "remota",
@@ -120,92 +116,122 @@
"Added by {initiator}" : "Agiuntu dae {initiator}",
"Via “{folder}”" : "Tràmite “{folder}”",
"Unshare" : "Annulla sa cumpartzidura",
- "Internal link" : "Ligòngiu internu",
"Cannot copy, please copy the link manually" : "No at fatu a copiare, copia su ligòngiu a manu",
- "Copy internal link to clipboard" : "Còpia su ligòngiu internu in punta de billete",
- "Link copied" : "Ligòngiu copiadu",
+ "Copy internal link" : "Còpia ligòngiu internu",
+ "Internal link" : "Ligòngiu internu",
+ "{shareWith} by {initiator}" : "{shareWith} dae {initiator}",
+ "Shared via link by {initiator}" : "Cumpartzidu cun ligòngiu dae {initiator}",
+ "Mail share ({label})" : "Cumpartzidura cun posta eletrònica ({label})",
+ "Share link ({label})" : "Cumpartzi ligòngiu ({label})",
+ "Create public link" : "Crea unu ligòngiu pùblicu",
+ "Error, please enter proper password and/or expiration date" : "Errore, inserta una crae giusta e/o sa data de iscadèntzia",
"Please enter the following required information before creating the share" : "Inserta is informatziones rechertas in fatu in antis de creare sa cumpartzidura",
"Password protection (enforced)" : "Bardiadura cun crae (posta)",
"Password protection" : "Bardiadura cun crae",
"Enter a password" : "Inserta una crae",
- "Expiration date (enforced)" : "Data de iscadèntzia (posta)",
- "Enter a date" : "Inserta una data",
"Create share" : "Crea cumpartzidura",
- "Cancel" : "Annulla",
"Customize link" : "Personaliza su ligòngiu",
+ "Generate QR code" : "Gènera unu còdighe QR",
"Add another link" : "Agiunghe un'àteru ligòngiu",
"Create a new share link" : "Crea unu ligòngiu de cumpartzidura nou",
- "{shareWith} by {initiator}" : "{shareWith} dae {initiator}",
- "Shared via link by {initiator}" : "Cumpartzidu cun ligòngiu dae {initiator}",
- "Mail share ({label})" : "Cumpartzidura cun posta eletrònica ({label})",
- "Share link ({label})" : "Cumpartzi ligòngiu ({label})",
- "Share link" : "Cumpartzi ligòngiu",
- "Error, please enter proper password and/or expiration date" : "Errore, inserta una crae giusta e/o sa data de iscadèntzia",
"View only" : "Isceti in visualizatzione",
"Can edit" : "Podet modificare",
"Custom permissions" : "Permissos personalizados",
- "No recommendations. Start typing." : "Peruna racumandatzione. Cumintza a iscrìere.",
"Resharing is not allowed" : "Non faghet a torrare a cumpartzire",
"Name or email …" : "Nùmene o indiritzu de posta ...",
"Name, email, or Federated Cloud ID …" : "Nùmene, indiritzu de posta o ID de sa nue federada ...",
"Searching …" : "Chirchende …",
"No elements found." : "Perunu elementu agatadu.",
- "Search globally" : "Chirca globale",
"Guest" : "Persone invitada",
"Group" : "Grupu",
"Email" : "Posta eletrònica",
"Talk conversation" : "Resonada de Talk",
"Deck board" : "Tabella in Deck",
"on {server}" : "in {server}",
+ "Terms of service" : "Cunditziones de servìtziu",
+ "Update share" : "Agiorna sa cumpartzidura",
+ "Read" : "Leghe",
+ "Create" : "Crea",
+ "Edit" : "Modìfica",
+ "Share" : "Cumpartzi",
+ "Delete" : "Cantzella",
"Allow upload and editing" : "Permite carrigamentu e modìficas",
"Allow editing" : "Cunsenti sa modìfica",
"Advanced settings" : "Cunfiguratziones avantzadas",
"Share label" : "Cumpartzi eticheta",
- "Set password" : "Imposta sa crae",
- "Password" : "Crae",
+ "Set password" : "Cunfigura sa crae",
"Video verification" : "Verìfica vìdeu",
- "Set expiration date" : "Imposta data de iscadèntzia",
- "Expiration date" : "Data de iscadèntzia",
+ "Expiration date (enforced)" : "Data de iscadèntzia (posta)",
+ "Set expiration date" : "Cunfigura sa data de iscadèntzia",
"Hide download" : "Cua iscarrigamentu",
"Note to recipient" : "Nota a sa persone destinatària",
"Enter a note for the share recipient" : "Inserta una nota pro sa persone destinatària",
- "Read" : "Leghe",
- "Create" : "Crea",
- "Edit" : "Modìfica",
- "Share" : "Cumpartzi",
+ "Delete share" : "Cantzella sa cumpartzidura",
"Others with access" : "Àtere cun atzessu",
+ "No other accounts with access found" : "Nissunu àteru contu cun atzessu",
"Toggle list of others with access to this directory" : "Ativa sa lista de àtere cun atzessu a custa cartella",
"Toggle list of others with access to this file" : "Ativa sa lista de àtere cun atzessu a custu archìviu",
"Unable to fetch inherited shares" : "Non faghet a recuperare is cumpartziduras eredadas",
+ "Shares" : "Cumpartziduras",
"Unable to load the shares list" : "Non faghet a carrigare sa lista de cumpartziduras",
"Expires {relativetime}" : "Iscadit {relativetime}",
"this share just expired." : "custa cumpartzidura est iscadida.",
"Shared with you by {owner}" : "Cumpartzidu cun tegus dae {owner}",
+ "Link to a file" : "Ligòngiu a archìviu",
"Open in Files" : "Aberi in Archìvios",
"Shared" : "Cumpartzidu",
- "Link to a file" : "Ligòngiu a archìviu",
- "Error creating the share: {errorMessage}" : "Errore in sa creatzione de sa cumpartzidura: {errorMessage}",
- "Error creating the share" : "Errore in sa creatzione de sa cumpartzidura",
- "Error updating the share: {errorMessage}" : "Errore in s'agiornamentu de sa cumpartzidura: {errorMessage}",
- "Error updating the share" : "Errore in s'agiornamentu de sa cumpatzidura",
- "Shared by" : "Cumpartzidu dae",
- "Shared with" : "Cumpartzidu cun",
- "Shared with you and the group {group} by {owner}" : "Cumpartzidu cun tegus e su grupu {group} dae {owner}",
- "Shared with you and {circle} by {owner}" : "Cumpartzidu cun tegus {circle} dae {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Cumpartzidu cun tegus e sa resonada {conversation} dae {owner}",
- "Shared with you in a conversation by {owner}" : "Cumpartzidu cun tegus in una resonada dae {owner}",
- "Shares" : "Cumpartziduras",
+ "Shared by {ownerDisplayName}" : "Cumpartzidu dae {ownerDisplayName}",
+ "Shared with others" : "Cumpartzidu cun àtere",
+ "Create file request" : "Crea rechesta de archìviu",
"No shares" : "Peruna cumpartzidura",
"Shared with you" : "Cumpartzidu cun tegus",
"Nothing shared with you yet" : "Ancora peruna cumpartzidura cun tegus",
- "Shared with others" : "Cumpartzidu cun àtere",
"Nothing shared yet" : "Ancora peruna cumpartzidura",
"Shared by link" : "Cumpartzidu cun ligòngiu",
+ "List of files that are shared by link." : "Lista de archìvios cumpartzidos cun ligòngiu.",
"No shared links" : "Perunu ligòngiu cumpartzidu",
+ "File requests" : "Archìvios rechestos",
+ "List of file requests." : "Lista de archìvios rechestos.",
+ "No file requests" : "Perunu archìviu rechestu",
+ "File requests you have created will show up here" : "Is rechestas de archìviu chi crees ant a èssere mustradas inoghe",
"Deleted shares" : "Cumpartziduras cantzelladas",
"No deleted shares" : "Peruna cumpartzidura cantzellada",
"Pending shares" : "Cumpartziduras in suspesu",
"No pending shares" : "Peruna cumpartzidura in suspesu",
+ "Error updating the share: {errorMessage}" : "Errore in s'agiornamentu de sa cumpartzidura: {errorMessage}",
+ "Error updating the share" : "Errore in s'agiornamentu de sa cumpatzidura",
+ "Could not update share" : "No at fatu a agiornare sa cumpartzidura",
+ "Shared by" : "Cumpartzidu dae",
+ "Shared with" : "Cumpartzidu cun",
+ "Shared with you and the group {group} by {owner}" : "Cumpartzidu cun tegus e su grupu {group} dae {owner}",
+ "Shared with you and {circle} by {owner}" : "Cumpartzidu cun tegus {circle} dae {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Cumpartzidu cun tegus e sa resonada {conversation} dae {owner}",
+ "Shared with you in a conversation by {owner}" : "Cumpartzidu cun tegus in una resonada dae {owner}",
+ "Share not found" : "Cumpartzidura no agatada",
+ "Back to %s" : "Torra a %s",
+ "Add to your Nextcloud" : "Agiunghe a su Nextcloud tuo",
+ "Waiting…" : "Abeta…",
+ "error" : "errore",
+ "finished" : "agabbadu",
+ "This will stop your current uploads." : "Custu at a firmare is carrigamentos tuos atuales.",
+ "Move or copy" : "Tràmuda o còpia",
+ "You can upload into this folder" : "Podes carrigare in custa cartella",
+ "Show list view" : "Mustra sa visualizatzione de lista",
+ "Show grid view" : "Mustra sa visualizatzione de mosàicu",
+ "No compatible server found at {remote}" : "Perunu serbidore cumpatìbile agatadu in {remote}",
+ "Invalid server URL" : "URL de su serbidore non vàlidu",
+ "Failed to add the public link to your Nextcloud" : "No at fatu a agiùnghere su ligòngiu pùblicu in Nextcloud",
+ "Download all files" : "Iscàrriga totu is archìvios",
+ "Link copied to clipboard" : "Ligòngiu copiadu in punta de billete",
+ "Copy to clipboard" : "Còpia in is punta de billete",
+ "Copy internal link to clipboard" : "Còpia su ligòngiu internu in punta de billete",
+ "Only works for people with access to this folder" : "Funtzionat isceti pro gente cun atzessu a custa cartella",
+ "Only works for people with access to this file" : "Funtzionat isceti pro gente cun atzessu a custu archìviu",
+ "Copy public link of \"{title}\" to clipboard" : "Còpia in punta de billete su ligòngiu pùblicu pro: \"{title}\"",
+ "Search globally" : "Chirca globale",
+ "Search for share recipients" : "Chirca destinatàrios de cumpartziduras",
+ "No recommendations. Start typing." : "Peruna racumandatzione. Cumintza a iscrìere.",
+ "Enter your name" : "Inserta•nche su nùmene tuo",
"Share note" : "Cumpartzi sa nota",
"Upload files to %s" : "Càrriga archìvios in %s",
"Note" : "Nota",
@@ -213,37 +239,6 @@
"Uploading files" : "Carrighende archìvios",
"Uploaded files:" : "Archìvios carrigados:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Carrighende is archìvios, cuncordas cun is %1$scunditziones de servìtziu%2$s.",
- "Add to your Nextcloud" : "Agiunghe a su Nextcloud tuo",
- "Files and folders others share with you will show up here" : "Archìvios e cartellas cumpartzidas dae àtere ant a aparèssere inoghe",
- "Files and folders you share will show up here" : "Is cartellas e is archìvios chi cumpartzis ant a aparèssere inoghe",
- "Files and folders you share by link will show up here" : "Is cartellas e is archìvios chi cumpartzis cun ligòngiu ant a aparèssere inoghe",
- "Shares you deleted will show up here" : "Is cumpartziduras chi has cantzelladu ant a aparèssere inoghe",
- "Shares you have received but not confirmed will show up here" : "Is cumpartziduras retzidas e non cunfirmadas ant a aparèssere inoghe",
- "Shares will show up here" : "Is cumpartziduras ant a aparèssere inoghe",
- "Restore" : "Riprìstina",
- "Something happened. Unable to restore the share." : "Non faghet a ripristinare sa cumpartzidura.",
- "Something happened. Unable to accept the share." : "Non faghet a atzetare sa cumpartzidura.",
- "Something happened. Unable to reject the share." : "Non faghet a refudare sa cumpartzidura.",
- "No expiration date set" : "Peruna data de iscadèntzia impostada",
- "Please specify a valid user" : "Ispetzìfica un'utèntzia bàlida",
- "Please specify a valid federated user ID" : "Ispetzìfica un'id de utente federadu bàlidu",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Custa aplicatzione permitit a is utentes de cumpartzire archìvios in Nextcloud. Si ativada, s'amministratzione podet seberare cales grupos podent cumpartzire archìvios. Is utèntzias seberadas podent cumpartzire archìvios e cartellas cun àteras utèntzias e grupos de Nextcloud. In prus, si s'amministratzione ativat sa funtzionalidade de is ligòngios de cumpartzidura, faghet a impreare unu ligòngiu esternu pro cumpartzire archìvios cun àtere in foras dae Nextcloud. S'amministratzione podet puru afortigare craes, datas de iscadèntzia, e ativare sa cumpartzidura intre serbidores tràmite ligòngios de cumpartzidura, e fintzas sa cumpartzidura dae dispositivos mòbiles.\nDisativende sa funtzionalidade s'ant a bogare archìvios e is cartellas cumpartzidas in su serbidore pro totu is persones retzidoras de sa cumpartzidura, e puru in is clientes de sincronizatzione e in is aplicatziones mòbiles. Àteras informatziones a disponimentu in sa documentatzione de Nextcloud.",
- "Accept user and group shares by default" : "Atzeta is cumpartziduras de utentes e grupos comente modalidade predefinida",
- "Read only" : "Isceti letura",
- "File drop (upload only)" : "Trìsina documentu (isceti pro carrigare)",
- "Upload" : "Càrriga",
- "Only works for users with access to this folder" : "Funtzionat isceti pro utentes cun atzessu a custa cartella",
- "Only works for users with access to this file" : "Funtzionat isceti pro utentes cun atzessu a custu archìviu",
- "Circle" : "Giru",
- "Update" : "Agiorna",
- "No other users with access found" : "Peruna utèntzia cun atzessu agatada",
- "No entries found in this folder" : "Perunu elementu agatadu in custa cartella",
- "Name" : "Nùmene",
- "Share time" : "Ora de cumpartzidura",
- "Reasons might be:" : "Is resones diant pòdere èssere:",
- "the item was removed" : "ant bogadu s'elementu",
- "the link expired" : "est iscadidu su ligòngiu",
- "sharing is disabled" : "sa cumpartzidura no est ativa",
- "For more info, please ask the person who sent this link." : "Pro nde ischire de prus, dimanda a chie at imbiadu custu ligòngiu."
+ "Name" : "Nùmene"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/sk.js b/apps/files_sharing/l10n/sk.js
index 31e12e6ea9b..700d5e5fc05 100644
--- a/apps/files_sharing/l10n/sk.js
+++ b/apps/files_sharing/l10n/sk.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Čaká sa…",
- "error" : "chyba",
- "finished" : "dokončené",
- "This will stop your current uploads." : "Toto zastaví práve prebiehajúce nahrávania.",
- "Move or copy" : "Presunúť alebo kopírovať",
- "Download" : "Stiahnuť",
- "Delete" : "Zmazať",
- "You can upload into this folder" : "Môžete nahrávať do tohto priečinka",
- "Terms of service" : "Všeobecné podmienky",
- "Show list view" : "Zobraziť ako zoznam",
- "Show grid view" : "Zobraziť v mriežke",
- "No compatible server found at {remote}" : "Nebol nájdený kompatibilný server na adrese {remote}",
- "Invalid server URL" : "Neplatná URL servera",
- "Failed to add the public link to your Nextcloud" : "Pridanie verejne dostupného odkazu do vášho Nextcloud zlyhalo",
"File shares" : "Zdieľané súbory",
"Downloaded via public link" : "Stiahnuté prostredníctvom verejného odkazu",
"Downloaded by {email}" : "Stiahnuté prostredníctvom {email}",
@@ -26,7 +12,7 @@ OC.L10N.register(
"{actor} removed share for group {group}" : "{actor} zrušil zdieľanie pre skupinu {group}",
"Share for group {group} expired" : "Zdieľanie pre skupinu {group} vypršalo",
"You shared {file} with group {group}" : "Sprístupnili ste {file} skupine {group}",
- "You removed group {group} from {file}" : "Zrušili ste sprístupnenie súboru {file} skupine {group}",
+ "You removed group {group} from {file}" : "Zrušili ste zdieľanie súboru {file} skupine {group}",
"{actor} shared {file} with group {group}" : "{actor} zdieľa {file} skupine {group}",
"{actor} removed group {group} from {file}" : "{actor} zrušil zdieľanie súboru {file} skupine {group}",
"Share for file {file} with group {group} expired" : "Zdieľanie súboru {file} so skupinou {group} vypršalo",
@@ -42,142 +28,215 @@ OC.L10N.register(
"{actor} shared {file} as public link" : "{actor} sprístupnil {file} ako verejný odkaz",
"{actor} removed public link for {file}" : "{actor} odstránil verejný odkaz pre {file}",
"Public link of {actor} for {file} expired" : "Verejný odkaz používateľa {actor} pre {file} vypršal",
- "{user} accepted the remote share" : "používateľ {user} prijal vzdialené sprístupnenie",
- "{user} declined the remote share" : "používateľ {user} odmietol vzdialené sprístupnenie",
+ "{user} accepted the remote share" : "používateľ {user} prijal vzdialené zdieľanie",
+ "{user} declined the remote share" : "používateľ {user} odmietol vzdialené zdieľanie",
"You received a new remote share {file} from {user}" : "Obdržali ste nové vzdialené zdieľanie súboru {file} používateľom {user}",
- "{user} accepted the remote share of {file}" : "používateľ {user} prijal vzdialené sprístupnenie súboru {file}",
+ "{user} accepted the remote share of {file}" : "používateľ {user} prijal vzdialené zdieľanie súboru {file}",
"{user} declined the remote share of {file}" : "používateľ {user} odmietol vzdialené spristupnenie súboru {file} ",
"{user} unshared {file} from you" : "používateľ {user} vám už nesprístupňuje súbor {file}",
"Shared with {user}" : "Zdieľané s {user}",
- "Removed share for {user}" : "Odstránené sprístupnenie pre používateľa {user}",
+ "Removed share for {user}" : "Odstránené zdieľanie pre používateľa {user}",
"You removed yourself" : "Odobrali ste sami seba",
"{actor} removed themselves" : "{actor} odobral(a) sám seba",
"{actor} shared with {user}" : "{actor} zdieľal s {user}",
- "{actor} removed share for {user}" : "{actor} odstránil sprístupnenie pre používateľa {user}",
+ "{actor} removed share for {user}" : "{actor} odstránil zdieľanie pre používateľa {user}",
"Shared by {actor}" : "Sprístupnil {actor}",
- "{actor} removed share" : "{actor} zrušil sprístupnenie",
+ "{actor} removed share" : "{actor} zrušil zdieľanie",
"Share for {user} expired" : "Zdieľanie pre používateľa {user} vypršalo",
"Share expired" : "Zdieľanie vypršalo",
"You shared {file} with {user}" : "Sprístupnili ste {file} používateľovi {user}",
- "You removed {user} from {file}" : "Zrušili ste sprístupnenie {file} používateľovi {user} ",
+ "You removed {user} from {file}" : "Zrušili ste zdieľanie {file} používateľovi {user} ",
"You removed yourself from {file}" : "Odobrali ste sami seba z {file}",
"{actor} removed themselves from {file}" : "{actor} odobral(a) sám seba z {file}",
"{actor} shared {file} with {user}" : "{actor} sprístupnil {file} používateľovi {user}",
- "{actor} removed {user} from {file}" : "{actor} zrušil sprístupnenie {file} pre používateľa {user}",
+ "{actor} removed {user} from {file}" : "{actor} zrušil zdieľanie {file} pre používateľa {user}",
"{actor} shared {file} with you" : "{actor} vám sprístupnil {file}",
"{actor} removed you from the share named {file}" : "{actor} vás odstránil z prístupu k {file} ",
"Share for file {file} with {user} expired" : "Zdieľanie súboru {file} s používateľom {user} vypršalo",
"Share for file {file} expired" : "Zdieľanie súboru {file} vypršalo",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Súbor alebo adresár zdieľaný cez email alebo verejný odkaz bol <strong>stiahnutý</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Súbory boli <strong>nahrané</strong> do adresára zdieľaného e-mailom alebo verejným odkazom",
"A file or folder was shared from <strong>another server</strong>" : "Súbor alebo priečinok bol sprístupnený z <strong>iného servera</strong>",
- "Files" : "Súbory",
+ "Sharing" : "Zdieľanie",
"A file or folder has been <strong>shared</strong>" : "Súbor alebo priečinok bol <strong>sprístupnený</strong>",
"Shared link" : "Zdieľaný odkaz",
"Wrong share ID, share does not exist" : "Neplatné ID zdieľania, zdieľanie neexistuje",
- "Could not delete share" : "Nie je možné zmazať sprístupnenie",
+ "Could not delete share" : "Nie je možné zmazať zdieľanie",
"Please specify a file or folder path" : "Zvoľte prosím súbor alebo cestu k priečinku",
"Wrong path, file/folder does not exist" : "Neplatná cesta, súbor alebo priečinok neexistuje",
"Could not create share" : "Nie je možné sprístupniť",
- "Invalid permissions" : "Neplatné oprávnenia",
- "Invalid date, date format must be YYYY-MM-DD" : "Neplatný dátum, formát musí byť v tvare YYYY-MM-DD",
"Please specify a valid account to share with" : "Prosím, uveďte platný účet, s ktorým chcete zdieľať",
"Group sharing is disabled by the administrator" : "Skupinové zdieľanie je zakázané administrátorom",
"Please specify a valid group" : "Zvoľte prosím platnú skupinu",
- "Public link sharing is disabled by the administrator" : "Sprístupnenie pomocou verejných odkazov je zakázané administrátorom",
- "Public upload disabled by the administrator" : "Verejné nahrávanie je zakázané administrátorom",
- "Public upload is only possible for publicly shared folders" : "Verejné nahrávanie je možné len do verejne sprístupnených priečinkov",
+ "Public link sharing is disabled by the administrator" : "Zdieľanie pomocou verejných odkazov je zakázané administrátorom",
+ "Please specify a valid email address" : "Prosím, zadajte platnú emailovú adresu",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Zdieľanie %s odoslaním hesla cez Nextcloud Talk /Rozhovor/ zlyhalo, pretože Nextcloud Rozhovor nie je zapnutý",
- "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Sprístupnenie %1$s zlyhalo, backend nepodporuje typ sprístupnenia %2$s",
+ "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Zdieľanie %1$s zlyhalo, backend nepodporuje typ zdieľania %2$s",
"Please specify a valid federated account ID" : "Prosím zvoľte platné ID združeného účtu.",
"Please specify a valid federated group ID" : "Prosím zvoľte platné ID združenej skupiny",
- "You cannot share to a Circle if the app is not enabled" : "Ak aplikácia nie je povolená, nemôžete ju zdieľať s Kruhom",
- "Please specify a valid circle" : "Zadajte platný kruh",
+ "You cannot share to a Team if the app is not enabled" : "Nemôžete zdieľat do aplikácie Team, keď nie je povolená",
+ "Please specify a valid team" : "Zadajte platný tím",
"Sharing %s failed because the back end does not support room shares" : "Zdieľanie %s sa nepodarilo, pretože backend nepodporuje zdieľanie miestností",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Zdieľanie %s sa nepodarilo, pretože backend nepodporuje zdieľanie ScienceMesh miestností.",
"Unknown share type" : "Neplatný typ sprístupnenia",
"Not a directory" : "Nie je priečinok",
"Could not lock node" : "Uzol sa nedarí uzamknúť",
- "Could not lock path" : "Nie je možné uzamknúť cestu",
- "Wrong or no update parameter given" : "Zlý alebo žiadny zadaný parameter aktualizácie",
+ "Public upload is only possible for publicly shared folders" : "Verejné nahrávanie je možné len do verejne sprístupnených priečinkov",
"Share must at least have READ or CREATE permissions" : "Zdieľanie musí mať aspoň povolenia READ alebo CREATE",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Ak je nastavené oprávnenie UPDATE alebo DELETE, zdieľanie musí mať povolenie READ.",
+ "Public upload disabled by the administrator" : "Verejné nahrávanie je zakázané administrátorom",
+ "Could not lock path" : "Nie je možné uzamknúť cestu",
+ "no sharing rights on this item" : "žiadne práva pre zdieľanie tejto položky",
+ "You are not allowed to edit incoming shares" : "Nemáte práva pre úpravu príchodzích zdieľaní",
+ "Wrong or no update parameter given" : "Zlý alebo žiadny zadaný parameter aktualizácie",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Odoslanie hesla cez Nextcloud Talk / Rozhovor/\" pre zdieľanie súboru alebo priečinka zlyhalo, pretože Nextcloud Talk /Rozhovor/ nie je zapnutý.",
+ "Custom share link tokens have been disabled by the administrator" : "Správca zakázal vlastné tokeny zdieľania",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tokeny musia obsahovať aspoň 1 znak a môžu obsahovať iba písmená, čísla alebo spojovník",
+ "Invalid date. Format must be YYYY-MM-DD" : "Neplatný dátum. Formát musí byť YYYY-MM-DD",
+ "No sharing rights on this item" : "Žiadne práva pre zdieľanie tejto položky",
+ "Invalid share attributes provided: \"%s\"" : "Boli zadané neplatné atribúty zdieľania: \"%s\"",
+ "You are not allowed to send mail notifications" : "Nemáte povolené odosielať e-mailové upozornenia",
+ "No mail notification configured for this share type" : "Pre tento typ zdieľania nie je nakonfigurované žiadne e-mailové upozornenie",
+ "Wrong password" : "Nesprávne heslo",
+ "Error while sending mail notification" : "Chyba pri odosielaní notifikácie e-mailom",
+ "Failed to generate a unique token" : "Chyba pri generovaní unikátneho tokenu",
+ "This share does not exist or is no longer available" : "Toto zdieľanie neexistuje alebo už nie je dostupné",
"shared by %s" : "Sprístupnil %s",
- "Download all files" : "Stiahnuť všetky súbory",
- "Direct link" : "Priama linka",
+ "Download" : "Stiahnuť",
"Add to your %s" : "Pridať do vášho %s",
- "Share API is disabled" : "API pre sprístupňovanie je zakázané",
- "File sharing" : "Sprístupnenie súborov",
+ "Direct link" : "Priama linka",
+ "Share API is disabled" : "API pre zdieľanie je zakázané",
+ "File sharing" : "Zdieľanie súborov",
"Share will expire tomorrow" : "Platnosť sprístupnenia skončí zajtra",
"Your share of {node} will expire tomorrow" : "Vášmu zdieľaniu {node} zajtra skončí platnosť",
"You received {share} as a share by {user}" : "Od {user} ste obdržali zdieľanie {share}",
"You received {share} to group {group} as a share by {user}" : "Od {user} ste pre skupinu {group} obdržali zdieľanie {share}",
"Accept" : "Prijať",
"Decline" : "Zahodiť",
- "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Táto aplikácia umožňuje ľuďom si navzájom sprístupňovať súbory v rámci Nextcloud. Ak je zapnutá, správca môže zvoliť, ktoré skupiny môžu súbory sprístupňovať ostatným. Príslušní ľudia potom môžu tieto súbory a priečinky sprístupňovať ostatným účtom a skupinám v rámci Nextcloud. Navyše, ak správca zapne funkciu sprístupňovania pomocou odkazu, je možné súbory sprístupňovať aj mimo Nextcloud a to pomocou externého odkazu (linku). Správcovia tiež môžu vynútiť používanie hesiel, dátumov expirácie a povoliť sprístupňovanie server-server pomocou zdieľaných odkazov, ako aj sprístupňovanie z mobilných zariadení.\nVypnutím tejto funkcie odoberie sprístupnené súbory a priečinky na serveri pre všetkých príjemcov sprístupnenia, a taktiež aj na synchronizačných klientoch a mobilných aplikáciách. Viac informácií je k dispozícii v dokumentácii Nextcloud.",
- "Sharing" : "Sprístupnenie",
- "Accept shares from other accounts and groups by default" : "Predvolene prijať sprístupnené položky z iných účtov a skupín.",
+ "Remember to upload the files to %s" : "Nezabudnite nahrať súbory do %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Radi by sme vám pripomenuli, že ste do zdieľaného adresára ešte nenahrali žiadne súbory.",
+ "Open \"%s\"" : "Otvoriť \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Táto aplikácia umožňuje ľuďom si navzájom zdieľať súbory v rámci Nextcloud. Ak je zapnutá, správca môže zvoliť, ktoré skupiny môžu súbory zdieľať ostatným. Príslušní ľudia potom môžu tieto súbory a priečinky zdieľať ostatným účtom a skupinám v rámci Nextcloud. Navyše, ak správca zapne funkciu zdieľať pomocou odkazu, je možné súbory zdieľať aj mimo Nextcloud a to pomocou externého odkazu (linku). Správcovia tiež môžu vynútiť používanie hesiel, dátumov expirácie a povoliť zdielanie server-server pomocou zdieľaných odkazov, ako aj zdielanie z mobilných zariadení.\nVypnutím tejto funkcie odoberie zdielané súbory a priečinky na serveri pre všetkých príjemcov zdieľania, a taktiež aj na synchronizačných klientoch a mobilných aplikáciách. Viac informácií je k dispozícii v dokumentácii Nextcloud.",
+ "People" : "Ľudia",
+ "Filter accounts" : "Filtrovať účty",
+ "The request will expire on {date} at midnight and will be password protected." : "Platnosť žiadosti vyprší {date} o polnoci a bude chránená heslom.",
+ "The request will expire on {date} at midnight." : "Platnosť žiadosti vyprší {date} o polnoci.",
+ "The request will be password protected." : "Žiadosť bude chránená heslom.",
+ "When should the request expire?" : "Kedy by mala žiadosť vypršať?",
+ "Set a submission expiration date" : "Nastaviť dátum vypršania platnosti odoslania",
+ "Expiration date" : "Dátum vypršania",
+ "Select a date" : "Vybrať dátum",
+ "Your administrator has enforced a {count} days expiration policy." : "Váš správca presadil pravidlá uplynutia platnosti na {count} dní.",
+ "What password should be used for the request?" : "Aké heslo by sa malo použiť pre žiadosť?",
+ "Set a password" : "Nastavte si heslo",
+ "Password" : "Heslo",
+ "Enter a valid password" : "Vložte platné heslo",
+ "Generate a new password" : "Vygenerovať nové heslo",
+ "Your administrator has enforced a password protection." : "Váš administrátor vynútil ochranu heslom.",
+ "Automatically copying failed, please copy the share link manually" : "Automatické kopírovanie zlyhalo, skopírujte odkaz na zdieľanie manuálne",
+ "Link copied" : "Odkaz bol skopírovaný",
+ "Email already added" : "Tento email už bol pridaný",
+ "Invalid email address" : "Neplatná emailová adresa",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Nasledujúce e-mailové adresý nie sú platné: {emails}","Nasledujúce e-mailové adresý nie sú platné: {emails}","Nasledujúce e-mailové adresý nie sú platné: {emails}","Nasledujúce e-mailové adresý nie sú platné: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} e-mailová adriesa už bola pridaná","{count} e-mailové adriesy už boli pridané","{count} e-mailových adries už bolo pridaných","{count} e-mailových adries už bolo pridaných"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} e-mailová adriesa bola pridaná","{count} pridané e-mailové adriesy","{count} pridaných e-mailových adries","{count} pridaných e-mailových adries"],
+ "You can now share the link below to allow people to upload files to your directory." : "Teraz môžete zdieľať odkaz nižšie, aby ste ľuďom umožnili nahrávať súbory do vášho adresára.",
+ "Share link" : "Sprístupniť odkaz",
+ "Copy" : "Kopírovať",
+ "Send link via email" : "Poslať odkaz emailom",
+ "Enter an email address or paste a list" : "Vložte emailovú adresu alebo vložte zoznam",
+ "Remove email" : "Odobrať email",
+ "Select a destination" : "Vybrať cieľ",
+ "Select" : "Vybrať",
+ "What are you requesting?" : "Čo požadujete?",
+ "Request subject" : "Vyžiadať predmet",
+ "Birthday party photos, History assignment…" : "Fotky s narodeninových party, Historické aktivity...",
+ "Where should these files go?" : "Kam tieto súbory pôjdu?",
+ "Upload destination" : "Cieľ pre nahranie",
+ "Revert to default" : "Vrátiť na predvolené",
+ "The uploaded files are visible only to you unless you choose to share them." : "Nahrané súbory sú viditeľné iba pre vás, pokiaľ sa ich nerozhodnete zdieľať.",
+ "Add a note" : "Pridať poznámku",
+ "Note for recipient" : "Poznámka pre príjemcu",
+ "Add a note to help people understand what you are requesting." : "Pridajte poznámku, aby ľudia pochopili, čo požadujete.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Môžete pridať odkazy, dátum alebo akékoľvek iné informácie, ktoré príjemcovi pomôžu pochopiť, čo požadujete.",
+ "Close" : "Zatvoriť",
+ "_Send email and close_::_Send {count} emails and close_" : ["Odoslať e-mail a zavrieť","Odoslať {count} e-maily a zavrieť","Odoslať {count} e-mailov a zavrieť","Odoslať {count} e-mailov a zavrieť"],
+ "Please select a folder, you cannot share the root directory." : "Vyberte adresár, nemôžete zdieľať koreňový adresár.",
+ "File request created" : "Žiadosť o súbor vytvorená",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Požiadavka na súbor bola vytvorená a bol odslaný e-mail","Požiadavka na súbor bola vytvorená a bolo odslané {count} e-maily","Požiadavka na súbor bola vytvorená a bolo odslaných {count} e-mailov","Požiadavka na súbor bola vytvorená a bolo odslaných {count} e-mailov"],
+ "Error creating the share: {errorMessage}" : "Chyba pri vytváraní zdieľania: {errorMessage}",
+ "Error creating the share" : "Chyba pri vytváraní zdieľania",
+ "Error sending emails: {errorMessage}" : "Chyba pri posielaní emailov: {errorMessage}",
+ "Error sending emails" : "Chyba pri posielaní emailov",
+ "Create a file request" : "Vytvoriť žiadosť o súbor",
+ "Collect files from others even if they do not have an account." : "Zbierajte súbory od ostatných, aj keď nemajú účet.",
+ "To ensure you can receive files, verify you have enough storage available." : "Ak sa chcete ujistiť, že môžete prijímať súbory, skontrolujte, či máte k dispozícii dostatok voľného miesta.",
+ "File request" : "Žiadosť o súbor",
+ "Previous step" : "Predchodzí krok",
+ "Cancel" : "Zrušiť",
+ "Cancel the file request creation" : "Zrušiť vytváranie žiadosti o súbor",
+ "Close without sending emails" : "Zatvoriť bez odoslania emailov",
+ "Continue" : "Pokračovať",
"Error while toggling options" : "Chyba pri prepínaní možností",
- "Set default folder for accepted shares" : "Nastaviť predvolený priečinok pre prijaté zdieľania",
- "Reset" : "Resetovať",
- "Reset folder to system default" : "Obnoviť priečinok na predvolené hodnoty systému",
+ "Accept shares from other accounts and groups by default" : "Predvolene prijať sprístupnené položky z iných účtov a skupín.",
"Choose a default folder for accepted shares" : "Nastaviť predvolený priečinok pre prijaté zdieľania",
"Invalid path selected" : "Bola vybraná neplatná cesta",
"Unknown error" : "Neznáma chyba",
- "Open Sharing Details" : " Otvoriť podrobnosti zdieľania",
+ "Set default folder for accepted shares" : "Nastaviť predvolený priečinok pre prijaté zdieľania",
+ "Reset" : "Resetovať",
+ "Reset folder to system default" : "Obnoviť priečinok na predvolené hodnoty systému",
+ "Share Expiration" : "Vypršanie platnosti zdieľania",
"group" : "skupina",
"conversation" : "rozhovor",
"remote" : "vzdialený",
"remote group" : "vzdialená skupina",
"guest" : "hosť",
+ "by {initiator}" : "od {initiator}",
"Shared with the group {user} by {owner}" : "Sprístupnil(a) {owner} skupine {user}",
"Shared with the conversation {user} by {owner}" : "{owner} zdieľa konverzáciu {user}",
"Shared with {user} by {owner}" : "{owner} zdieľa s {user}",
+ "Open Sharing Details" : " Otvoriť podrobnosti zdieľania",
"Added by {initiator}" : "Pridal(a) {initiator}",
"Via “{folder}”" : "Prostredníctvom „{folder}“",
"Unshare" : "Zneprístupniť",
- "Internal link" : "Interný odkaz",
"Cannot copy, please copy the link manually" : "Nedarí sa skopírovať, skopírujte prosím ručne.",
- "Copy internal link to clipboard" : "Skopírovať interný odkaz do schránky",
- "Only works for people with access to this folder" : "Funguje len pre používateľov s prístupom k tomuto priečinku",
- "Only works for people with access to this file" : "Funguje len pre používateľov s prístupom k tomuto súboru",
- "Link copied" : "Odkaz skopírovaný",
- "Please enter the following required information before creating the share" : "Pred vytvorením zdieľania zadajte následujúce potrebné informácie",
- "Password protection (enforced)" : "Ochrana heslom (vynúttená)",
- "Password protection" : "Ochrana heslom",
- "Enter a password" : "Zadajte heslo",
- "Expiration date (enforced)" : "Dátum ukončenia platnosti (vynútené)",
- "Enter a date" : "Zadajte dátum",
- "Create share" : "Vytvoriť sprístupnenie",
- "Cancel" : "Zrušiť",
- "Customize link" : "Prispôsobiť odkaz",
- "Generate QR code" : "Vygenerovať QR kód",
- "Add another link" : "Pridať ďalší odkaz",
- "Create a new share link" : "Vytvoriť nový odkaz pre zdieľanie",
+ "Copy internal link" : "Kopírovať interný odkaz",
+ "Internal link" : "Interný odkaz",
"{shareWith} by {initiator}" : "{shareWith} od {initiator}",
"Shared via link by {initiator}" : "{initiator} zdieľa odkazom",
+ "File request ({label})" : "Žiadosť o súbor ({label})",
"Mail share ({label})" : "Zdieľanie mailu ({label})",
"Share link ({label})" : "Odkaz na zdieľanie ({label})",
+ "Mail share" : "Zdieľanie emailu",
"Share link ({index})" : "Zdieľať odkaz ({index})",
- "Share link" : "Sprístupniť odkaz",
+ "Create public link" : "Vytvoriť verejný odkaz",
"Actions for \"{title}\"" : "Akcie pre \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Kopírovať verejný odkaz \"{title}\" do schránky",
"Error, please enter proper password and/or expiration date" : "Chyba, zadajte správne heslo a/alebo dátum ukončenia platnosti",
"Link share created" : "Odkaz na zdieľanie vytvorený",
"Error while creating the share" : "Chyba pri vytváraní zdieľania",
+ "Please enter the following required information before creating the share" : "Pred vytvorením zdieľania zadajte následujúce potrebné informácie",
+ "Password protection (enforced)" : "Ochrana heslom (vynúttená)",
+ "Password protection" : "Ochrana heslom",
+ "Enter a password" : "Zadajte heslo",
+ "Enable link expiration (enforced)" : "Povoliť expiráciu odkazu (vyžadované)",
+ "Enable link expiration" : "Povoliť expiráciu odkazu",
+ "Enter expiration date (enforced)" : "Vložte dátum expirácie (vyžadované)",
+ "Enter expiration date" : "Vložte dátum expirácie",
+ "Create share" : "Vytvoriť zdieľanie",
+ "Customize link" : "Prispôsobiť odkaz",
+ "Generate QR code" : "Vygenerovať QR kód",
+ "Add another link" : "Pridať ďalší odkaz",
+ "Create a new share link" : "Vytvoriť nový odkaz pre zdieľanie",
"Quick share options, the current selected is \"{selectedOption}\"" : "Rýchle možnosti zdieľania, aktuálne je vybrané \"{selectedOption}\"",
"View only" : "Iba pre čítanie",
"Can edit" : "Môže upravovať",
- "File drop" : "Vložiť súbor",
"Custom permissions" : "Vlastné oprávnenia",
- "Search for share recipients" : "Vyhľadanie ďalších účastníkov zdieľania",
- "No recommendations. Start typing." : "Žiadne odporúčania. Píšte.",
- "Resharing is not allowed" : "Opätovné sprístupňovanie nie je povolené",
+ "Resharing is not allowed" : "Opätovné zdieľanie nie je povolené",
"Name or email …" : "Meno alebo e-mail …",
"Name, email, or Federated Cloud ID …" : "Meno, e-mail alebo ID združeného cloudu …",
"Searching …" : "Hľadá sa …",
"No elements found." : "Nenájdené žiadne prvky.",
- "Search globally" : "Hľadať globálne",
+ "Search everywhere" : "Hľadať všade",
"Guest" : "Hosť",
"Group" : "Skupina",
"Email" : "E-mail",
@@ -186,68 +245,89 @@ OC.L10N.register(
"Deck board" : "Palubná doska",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "na {server}",
+ "Enter external recipients" : "Zadajte externých príjemcov",
+ "Search for internal recipients" : "Hľadať interných príjemcov",
+ "Note from" : "Poznámka od",
+ "Note:" : "Poznámka:",
+ "File drop" : "Vložiť súbor",
+ "Upload files to {foldername}." : "Nahrať súbory do {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Nahraním súborov vyjadrujete súhlas s podmienkami služby.",
+ "View terms of service" : "Zobraziť podmienky používania",
+ "Terms of service" : "Všeobecné podmienky",
+ "Share with email {email}" : "Zdieľať s emailom {email}",
+ "Share with group" : "Zdieľať so skupinou",
+ "Share in conversation" : "Zdieľať v rozhovore",
+ "Share with {user} on remote server {server}" : "Sprístupniť s {user} na vzdialenom servery {server}",
+ "Share with remote group" : "Zdieľať so vzdialenou skupinou",
+ "Share with guest" : "Zdiľať s hosťom",
+ "Update share" : "Aktualizovať zdieľanie",
+ "Save share" : "Uložiť zdieľanie",
+ "Read" : "Čítať",
+ "Create" : "Vytvoriť",
+ "Edit" : "Upraviť",
+ "Share" : "Sprístupniť",
+ "Delete" : "Zmazať",
+ "Password field cannot be empty" : "Pole hesla nemôže byť prázdne",
+ "Replace current password" : "Nahradiť aktuálne heslo",
+ "Failed to generate a new token" : "Nepodarilo sa vygenerovať nový token",
"Allow upload and editing" : "Povoliť nahrávanie a úpravy",
"Allow editing" : "Povoliť úpravy",
"Upload only" : "Iba nahrávať",
"Advanced settings" : "Rozšírené nastavenia",
"Share label" : "Štítok zdieľania",
+ "Share link token" : "Zdieľať token pre odkaz",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Nastavte token odkazu pre verejné zdieľanie na niečo, čo sa ľahko zapamätá, alebo vygenerujte nový token. Neodporúča sa používať uhádnuteľný token pre zdieľania, ktoré obsahujú citlivé informácie.",
+ "Generating…" : "Generuje sa...",
+ "Generate new token" : "Vygenerovať nový token",
"Set password" : "Nastaviť heslo",
- "Password" : "Heslo",
"Password expires {passwordExpirationTime}" : "Heslo expiruje za {passwordExpirationTime}",
"Password expired" : "Heslo expirovalo",
"Video verification" : "Overovanie pomocou videa",
+ "Expiration date (enforced)" : "Dátum ukončenia platnosti (vynútené)",
"Set expiration date" : "Nastaviť dátum expirácie",
- "Expiration date" : "Dátum vypršania",
"Hide download" : "Skryť sťahovanie",
- "Allow download" : "Povoliť sťahovanie",
+ "Allow download and sync" : "Povoliť sťahovanie a synchronizáciu",
"Note to recipient" : "Poznámka pre príjemcu",
"Enter a note for the share recipient" : "Zadajte poznámku pre príjemcu zdieľania",
- "Read" : "Čítať",
- "Create" : "Vytvoriť",
- "Edit" : "Upraviť",
- "Share" : "Sprístupniť",
+ "Show files in grid view" : "Zobraziť zobrazenie súborov v mriežke",
"Delete share" : "Odstrániť zdieľanie",
- "Share with {userName}" : "Zdiľať s {userName}",
- "Share with group" : "Zdieľať so skupinou",
- "Share in conversation" : "Zdieľať v rozhovore",
- "Share with remote group" : "Zdieľať so vzdialenou skupinou",
- "Share with guest" : "Zdiľať s hosťom",
- "Update share" : "Aktualizovať zdieľanie",
- "Save share" : "Uložiť zdieľanie",
"Others with access" : "Ďalší, ktorí majú prístup",
"No other accounts with access found" : "Neboli nájdené žiadne ďalšie účty s prístupom",
"Toggle list of others with access to this directory" : "Vypnutie/zapnutie zoznamu ostatných s prístupom k tomuto priečinku",
"Toggle list of others with access to this file" : "Vypnutie/zapnutie zoznamu ostatných s prístupom k tomuto súboru",
"Unable to fetch inherited shares" : "Nedarí sa získať prevzaté zdieľania",
+ "Link shares" : "Zdieľané odkazy",
+ "Shares" : "Sprístupnené položky",
"Unable to load the shares list" : "Nedarí sa načítať zoznam zdieľaní",
"Expires {relativetime}" : "Platnosť končí {relativetime}",
"this share just expired." : "platnosť tohto zdieľania práve skončila.",
"Shared with you by {owner}" : "Zdieľané s vami používateľom {owner}",
+ "Internal shares" : "Interné zdieľania",
+ "Internal shares explanation" : "Vysvetlenie interných zdieľaní",
+ "External shares" : "Externé zdieľania",
+ "External shares explanation" : "Vysvetlenie externých zdieľaní",
+ "Additional shares" : "Ďalšie zdieľania",
+ "Additional shares explanation" : "Vysvetlenie ďalších zdieľaní",
+ "Link to a file" : "Odkaz na súbor",
"_Accept share_::_Accept shares_" : ["Prijať sprístupnenú položku","Prijať sprístupnené položky","Prijať sprístupnené položky","Prijať sprístupnené položky"],
"Open in Files" : "Otvoriť v súboroch",
"_Reject share_::_Reject shares_" : ["Odmietnuť zdieľanie","Odmietnuť zdieľania","Odmietnuť zdieľaní","Odmietnuť zdieľania"],
"_Restore share_::_Restore shares_" : ["Obnoviť sprístupnenú položku","Obnoviť sprístupnené položky","Obnoviť sprístupnené položky","Obnoviť sprístupnené položky"],
"Shared" : "Sprístupnené",
- "Shared multiple times with different people" : "Zdieľané viackrát rôznymi ľuďmi",
"Shared by {ownerDisplayName}" : "Zdiľané od {ownerDisplayName}",
- "Show sharing options" : "Zobraziť možnosti zdieľania",
- "Link to a file" : "Odkaz na súbor",
- "Error creating the share: {errorMessage}" : "Chyba pri vytváraní zdieľania: {errorMessage}",
- "Error creating the share" : "Chyba pri vytváraní zdieľania",
- "Error updating the share: {errorMessage}" : "Chyba pri úprave zdieľania: {errorMessage}",
- "Error updating the share" : "Pri aktualizácii zdieľania sa vyskytla chyba",
- "File \"{path}\" has been unshared" : "Pre súbor \"{path}\" bolo zrušené zdieľanie.",
- "Folder \"{path}\" has been unshared" : "Pre adresár \"{path}\" bolo zrušený zdieľanie.",
- "Share {propertyName} saved" : "Zdieľanie {propertyName} bolo uložené",
- "Shared by" : "Zdieľané od",
- "Shared with" : "Sprístupnené používateľovi",
- "Password created successfully" : "Heslo úspešne vytvorené.",
- "Error generating password from password policy" : "Chyba pri generovaní hesla podľa bezpečnostnej politiky",
- "Shared with you and the group {group} by {owner}" : "Zdieľané s vami a so skupinou {group} používateľom {owner}",
- "Shared with you and {circle} by {owner}" : "Sprístupnené vám a {circle} od {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Sprístupnené vám a rozhovoru {conversation} od {owner}",
- "Shared with you in a conversation by {owner}" : "Sprístupnené vám vrámci rozhovoru s {owner}",
- "Shares" : "Sprístupnené položky",
+ "Shared multiple times with different people" : "Zdieľané viackrát rôznymi ľuďmi",
+ "Sharing options" : "Možnosti zdieľania",
+ "Shared with others" : "Sprístupnené ostatným",
+ "Create file request" : "Vytvoriť žiadosť o súbor",
+ "Upload files to {foldername}" : "Nahrať súbory do {foldername}",
+ "Public file share" : "Verejné zdieľanie súborov",
+ "Publicly shared file." : "Verejne zdieľaný súbor.",
+ "No file" : "Žiadny súbor",
+ "The file shared with you will show up here" : "Tu budú zobrazené súbory zdieľané s vami",
+ "Public share" : "Verejné zdieľanie",
+ "Publicly shared files." : "Verejne zdieľané súbory.",
+ "No files" : "Žiadne súbory",
+ "Files and folders shared with you will show up here" : "Tu budú zobrazené súbory a adresáre zdieľané s vami",
"Overview of shared files." : "Prehľad zdieľaných súborov.",
"No shares" : "Žiadne sprístupnené položky",
"Files and folders you shared or have been shared with you will show up here" : "Súbory a priečinky, ktoré ste zdieľali alebo vám boli zdieľané, sa tu zobrazia.",
@@ -255,7 +335,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Zoznam súborov, ktoré sú zdiľané s vami.",
"Nothing shared with you yet" : "Zatiaľ vám nikto nič nesprístupnil",
"Files and folders others shared with you will show up here" : "Tu budú zobrazené súbory a adresáre, ktoré vám ostatní nazdieľali",
- "Shared with others" : "Sprístupnené ostatným",
"List of files that you shared with others." : "Zoznam súborov, ktoré zdieľate s ostatnými.",
"Nothing shared yet" : "Zatiaľ ste nič nesprístupnili",
"Files and folders you shared will show up here" : "Tu sa zobrazia súbory a adresáre, ktoré ste sprístupnili.",
@@ -263,6 +342,10 @@ OC.L10N.register(
"List of files that are shared by link." : "Zoznam súborov, ktoré sú zdieľané pomocou odkazu.",
"No shared links" : "Žiadne sprístupnené odkazy",
"Files and folders you shared by link will show up here" : "Tu sú zobrazené súbory a adresáre, ktoré ste zdieľali prostredníctvom odkazov.",
+ "File requests" : "Žiadosti o súbor",
+ "List of file requests." : "Zoznam žiadostí o súbor.",
+ "No file requests" : "Žiadne žiadosti o súbor",
+ "File requests you have created will show up here" : "Žiadosti o súbor ktoré ste vytvorili sa zobrazia tu",
"Deleted shares" : "Odstrániť sprístupnenia",
"List of shares you left." : "Zoznam zdieľaných, ktoré ste opustili.",
"No deleted shares" : "Žiadne odstránené sprístupnené položky",
@@ -271,49 +354,75 @@ OC.L10N.register(
"List of unapproved shares." : "Zoznam neschválených zdieľaní.",
"No pending shares" : "Žiadne čakajúce zdieľania",
"Shares you have received but not approved will show up here" : "Tu sa zobrazia zdieľania, ktoré ste obdržali, ale nepotvrdili",
+ "Error deleting the share" : "Pri odstraňovaní zdieľania sa vyskytla chyba",
+ "Error updating the share: {errorMessage}" : "Chyba pri úprave zdieľania: {errorMessage}",
+ "Error updating the share" : "Pri aktualizácii zdieľania sa vyskytla chyba",
+ "File \"{path}\" has been unshared" : "Pre súbor \"{path}\" bolo zrušené zdieľanie.",
+ "Folder \"{path}\" has been unshared" : "Pre adresár \"{path}\" bolo zrušený zdieľanie.",
+ "Could not update share" : "Nie je možné aktualizovať zdieľanie",
+ "Share saved" : "Zdieľanie uložené",
+ "Share expiry date saved" : "Dátum expirácie zdieľania bolo uložené",
+ "Share hide-download state saved" : "Stav skryť sťahovanie zdieľania bol uložený",
+ "Share label saved" : "Štítok zdieľania bol uložený",
+ "Share note for recipient saved" : "Poznámka pre príjemcu zdieľania bola uložená",
+ "Share password saved" : "Heslo zdieľania bolo uložené",
+ "Share permissions saved" : "Práva zdieľania boli uložené",
+ "Upload files to {folder}" : "Nahrať súbory do {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} pre vás zdieľal adresár",
+ "Shared by" : "Zdieľané od",
+ "Shared with" : "Sprístupnené používateľovi",
+ "Password created successfully" : "Heslo úspešne vytvorené.",
+ "Error generating password from password policy" : "Chyba pri generovaní hesla podľa bezpečnostnej politiky",
+ "Shared with you and the group {group} by {owner}" : "Zdieľané s vami a so skupinou {group} používateľom {owner}",
+ "Shared with you and {circle} by {owner}" : "Sprístupnené vám a {circle} od {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Sprístupnené vám a rozhovoru {conversation} od {owner}",
+ "Shared with you in a conversation by {owner}" : "Sprístupnené vám vrámci rozhovoru s {owner}",
+ "Share not found" : "Zdieľanie sa nenašlo",
+ "Back to %s" : "Späť na %s",
+ "Add to your Nextcloud" : "Pridať do svojho Nextcloud",
+ "Waiting…" : "Čaká sa…",
+ "error" : "chyba",
+ "finished" : "dokončené",
+ "This will stop your current uploads." : "Toto zastaví práve prebiehajúce nahrávania.",
+ "Move or copy" : "Presunúť alebo kopírovať",
+ "You can upload into this folder" : "Môžete nahrávať do tohto priečinka",
+ "Show list view" : "Zobraziť ako zoznam",
+ "Show grid view" : "Zobraziť v mriežke",
+ "No compatible server found at {remote}" : "Nebol nájdený kompatibilný server na adrese {remote}",
+ "Invalid server URL" : "Neplatná URL servera",
+ "Failed to add the public link to your Nextcloud" : "Pridanie verejne dostupného odkazu do vášho Nextcloud zlyhalo",
+ "You are not allowed to edit link shares that you don't own" : "Nemáte povolenie upravovať zdieľania odkazov, ktoré nevlastníte",
+ "Download all files" : "Stiahnuť všetky súbory",
+ "Link copied to clipboard" : "Odkaz bol skopírovaný do schránky",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailová adriesa už bola pridaná","{count} e-mailové adriesy už boli pridané","{count} e-mailových adries už bolo pridaných","{count} e-mailových adries už bolo pridaných"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 pridaná e-mailová adresa","{count} pridané e-mailové adriesy","{count} pridaných e-mailových adries","{count} pridaných e-mailových adries"],
+ "Copy to clipboard" : "Skopírovať do schránky",
+ "Copy internal link to clipboard" : "Skopírovať interný odkaz do schránky",
+ "Only works for people with access to this folder" : "Funguje len pre používateľov s prístupom k tomuto priečinku",
+ "Only works for people with access to this file" : "Funguje len pre používateľov s prístupom k tomuto súboru",
+ "Copy public link of \"{title}\" to clipboard" : "Kopírovať verejný odkaz \"{title}\" do schránky",
+ "Search globally" : "Hľadať globálne",
+ "Search for share recipients" : "Vyhľadanie ďalších účastníkov zdieľania",
+ "No recommendations. Start typing." : "Žiadne odporúčania. Píšte.",
+ "To upload files, you need to provide your name first." : "Pre nahranie súborov, musíte najprv zdať svoje meno.",
+ "Enter your name" : "Zadajte svoje meno",
+ "Submit name" : "Odoslať meno",
+ "Share with {userName}" : "Zdiľať s {userName}",
+ "Show sharing options" : "Zobraziť možnosti zdieľania",
"Share note" : "Poznámka k zdieľaniu",
"Upload files to %s" : "Nahrať súbory do %s",
+ "%s shared a folder with you." : "%s vám zozdieľal adresár.",
"Note" : "Poznámka",
"Select or drop files" : "Vyberte alebo položte súbory",
"Uploading files" : "Nahrávanie súborov",
"Uploaded files:" : "Nahrané súbory...",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Nahraním súborov vyjadrujete súhlas so všeobecnými podmienkami %1$s %2$s.",
- "Add to your Nextcloud" : "Pridať do svojho Nextcloud",
- "Files and folders others share with you will show up here" : "Tu budú zobrazené súbory a priečinky, ktoré vám ostatní sprístupnili",
- "Files and folders you share will show up here" : "Tu sú zobrazené súbory a priečinky, ktoré ste sprístupnili",
- "Files and folders you share by link will show up here" : "Tu sú zobrazené súbory a priečinky, ktoré ste sprístupnili prostredníctvom odkazov",
- "Shares you deleted will show up here" : "Tu sa zobrazia sprístupnené položky, ktoré ste odstránili",
- "Shares you have received but not confirmed will show up here" : "Tu sa zobrazia zdieľania, ktoré ste obdržali, ale nepotvrdili",
- "Shares will show up here" : "Tu sa zobrazia sprístupnené položky",
- "Restore" : "Obnoviť",
- "Something happened. Unable to restore the share." : "Niečo sa udialo. Nedarí sa obnoviť sprístupnenú položku.",
- "Something happened. Unable to accept the share." : "Niečo sa stalo. Nedarí sa prijať zdieľanie.",
- "Something happened. Unable to reject the share." : "Niečo sa stalo. Nedarí sa odmietnuť zdieľanie.",
- "No expiration date set" : "Dátum exspirácie nenastavený",
- "Please specify a valid user" : "Zvoľte prosím platného používateľa",
- "Please specify a valid federated user ID" : "Prosím zvoľte platné ID združeného používateľa",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Táto aplikácia umožňuje používateľom si navzájom sprístupňovať súbory v rámci Nextcloud. Ak je zapnutá, správca môže zvoliť, ktoré skupiny môžu súbory sprístupňovať ostatným. Poverení používatelia potom môžu tieto súbory sprístupňovať ostatným používateľom a skupinám v rámci Nextcloud. Navyše, ak správca zapne funkciu sprístupňovania pomocou odkazu, je možné súbory sprístupňovať aj mimo Nextcloud a to pomocou externého odkazu (linku). Správci tiež môžu vynútiť používanie hesiel, dátumov exspirácie a zapnúť sprístupňovanie server-server pomocou zdieľaných odkazov. Rovnako aj sprístupňovanie z mobilných zariadení.\nVypnutím tejto funkcie odoberie sprístupnené súbory a priečinky na serveri pre všetkých príjemcov sprístupnenia a taktiež aj na synchronizovaných klientoch (napr. počítačová aplikácia Nextcloud) a mobilných aplikáciách. Viac informácií je k dispozícii v dokumentácii Nextcloud.",
- "Accept user and group shares by default" : "Vždy prijímať zdieľania od používateľov a skupín",
- "Read only" : "Iba na čítanie",
- "File drop (upload only)" : "Odovzdávanie súborov (len nahrávanie)",
- "Upload" : "Nahrať",
- "Bundled permissions" : "Združené práva",
- "Only works for users with access to this folder" : "Funguje len pre používateľov s prístupom k tomuto priečinku",
- "Only works for users with access to this file" : "Funguje iba pre pužívateľov, ktorí majú prístup k tomuto súboru",
- "Circle" : "Kruh",
- "Update" : "Aktualizovať",
- "Share with " : "Zdieľať s ",
- "No other users with access found" : "Neboli nájdení ďalší používatelia s prístupom",
- "No entries found in this folder" : "V tomto priečinku nebolo nič nájdené",
"Name" : "Názov",
- "Share time" : "Čas sprístupnenia",
- "Sorry, this link does not seem to work anymore." : "Ľutujem, tento odkaz už nevyzerá byť funkčný.",
- "Reasons might be:" : "Možné dôvody:",
- "the item was removed" : "položka bola presunutá",
- "the link expired" : "linke vypršala platnosť",
- "sharing is disabled" : "sprístupňovanie je zakázané",
- "For more info, please ask the person who sent this link." : "Pre viac informácií kontaktujte osobu, ktorá vám poslala tento odkaz.",
- "Share with remote" : "Zdieľať so vzdialeným",
- "Share with" : "Zdieľať s"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Túto metódu použite na zdieľanie súborov s jednotlivcami alebo tímami v rámci vašej organizácie. Ak príjemca už má prístup k zdieľanej zložke, ale nemôže ju nájsť, môžete mu poslať interný odkaz na zdieľanie, aby k nemu mal jednoduchý prístup.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Túto metódu použite na zdieľanie súborov s jednotlivcami alebo organizáciami mimo vašej organizácie. Súbory a priečinky je možné zdieľať prostredníctvom verejných zdieľaných odkazov a e-mailových adries. Môžete tiež zdieľať s inými účtami Nextcloud hosťovanými v rôznych inštanciách pomocou ich federatívneho cloudového ID.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Akcie, ktoré nie sú súčasťou interných alebo externých akcií. Môžu to byť zdieľania z aplikácií alebo iných zdrojov.",
+ "Share with accounts and teams" : "Zdieľať s účtami a tímami",
+ "Email, federated cloud id" : "E-mail, id federovaného cloudu",
+ "Filename must not be empty." : "Názov súboru nesmie byť prázdny."
},
"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);");
diff --git a/apps/files_sharing/l10n/sk.json b/apps/files_sharing/l10n/sk.json
index c7e830b5df8..8de88f7ce9a 100644
--- a/apps/files_sharing/l10n/sk.json
+++ b/apps/files_sharing/l10n/sk.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Čaká sa…",
- "error" : "chyba",
- "finished" : "dokončené",
- "This will stop your current uploads." : "Toto zastaví práve prebiehajúce nahrávania.",
- "Move or copy" : "Presunúť alebo kopírovať",
- "Download" : "Stiahnuť",
- "Delete" : "Zmazať",
- "You can upload into this folder" : "Môžete nahrávať do tohto priečinka",
- "Terms of service" : "Všeobecné podmienky",
- "Show list view" : "Zobraziť ako zoznam",
- "Show grid view" : "Zobraziť v mriežke",
- "No compatible server found at {remote}" : "Nebol nájdený kompatibilný server na adrese {remote}",
- "Invalid server URL" : "Neplatná URL servera",
- "Failed to add the public link to your Nextcloud" : "Pridanie verejne dostupného odkazu do vášho Nextcloud zlyhalo",
"File shares" : "Zdieľané súbory",
"Downloaded via public link" : "Stiahnuté prostredníctvom verejného odkazu",
"Downloaded by {email}" : "Stiahnuté prostredníctvom {email}",
@@ -24,7 +10,7 @@
"{actor} removed share for group {group}" : "{actor} zrušil zdieľanie pre skupinu {group}",
"Share for group {group} expired" : "Zdieľanie pre skupinu {group} vypršalo",
"You shared {file} with group {group}" : "Sprístupnili ste {file} skupine {group}",
- "You removed group {group} from {file}" : "Zrušili ste sprístupnenie súboru {file} skupine {group}",
+ "You removed group {group} from {file}" : "Zrušili ste zdieľanie súboru {file} skupine {group}",
"{actor} shared {file} with group {group}" : "{actor} zdieľa {file} skupine {group}",
"{actor} removed group {group} from {file}" : "{actor} zrušil zdieľanie súboru {file} skupine {group}",
"Share for file {file} with group {group} expired" : "Zdieľanie súboru {file} so skupinou {group} vypršalo",
@@ -40,142 +26,215 @@
"{actor} shared {file} as public link" : "{actor} sprístupnil {file} ako verejný odkaz",
"{actor} removed public link for {file}" : "{actor} odstránil verejný odkaz pre {file}",
"Public link of {actor} for {file} expired" : "Verejný odkaz používateľa {actor} pre {file} vypršal",
- "{user} accepted the remote share" : "používateľ {user} prijal vzdialené sprístupnenie",
- "{user} declined the remote share" : "používateľ {user} odmietol vzdialené sprístupnenie",
+ "{user} accepted the remote share" : "používateľ {user} prijal vzdialené zdieľanie",
+ "{user} declined the remote share" : "používateľ {user} odmietol vzdialené zdieľanie",
"You received a new remote share {file} from {user}" : "Obdržali ste nové vzdialené zdieľanie súboru {file} používateľom {user}",
- "{user} accepted the remote share of {file}" : "používateľ {user} prijal vzdialené sprístupnenie súboru {file}",
+ "{user} accepted the remote share of {file}" : "používateľ {user} prijal vzdialené zdieľanie súboru {file}",
"{user} declined the remote share of {file}" : "používateľ {user} odmietol vzdialené spristupnenie súboru {file} ",
"{user} unshared {file} from you" : "používateľ {user} vám už nesprístupňuje súbor {file}",
"Shared with {user}" : "Zdieľané s {user}",
- "Removed share for {user}" : "Odstránené sprístupnenie pre používateľa {user}",
+ "Removed share for {user}" : "Odstránené zdieľanie pre používateľa {user}",
"You removed yourself" : "Odobrali ste sami seba",
"{actor} removed themselves" : "{actor} odobral(a) sám seba",
"{actor} shared with {user}" : "{actor} zdieľal s {user}",
- "{actor} removed share for {user}" : "{actor} odstránil sprístupnenie pre používateľa {user}",
+ "{actor} removed share for {user}" : "{actor} odstránil zdieľanie pre používateľa {user}",
"Shared by {actor}" : "Sprístupnil {actor}",
- "{actor} removed share" : "{actor} zrušil sprístupnenie",
+ "{actor} removed share" : "{actor} zrušil zdieľanie",
"Share for {user} expired" : "Zdieľanie pre používateľa {user} vypršalo",
"Share expired" : "Zdieľanie vypršalo",
"You shared {file} with {user}" : "Sprístupnili ste {file} používateľovi {user}",
- "You removed {user} from {file}" : "Zrušili ste sprístupnenie {file} používateľovi {user} ",
+ "You removed {user} from {file}" : "Zrušili ste zdieľanie {file} používateľovi {user} ",
"You removed yourself from {file}" : "Odobrali ste sami seba z {file}",
"{actor} removed themselves from {file}" : "{actor} odobral(a) sám seba z {file}",
"{actor} shared {file} with {user}" : "{actor} sprístupnil {file} používateľovi {user}",
- "{actor} removed {user} from {file}" : "{actor} zrušil sprístupnenie {file} pre používateľa {user}",
+ "{actor} removed {user} from {file}" : "{actor} zrušil zdieľanie {file} pre používateľa {user}",
"{actor} shared {file} with you" : "{actor} vám sprístupnil {file}",
"{actor} removed you from the share named {file}" : "{actor} vás odstránil z prístupu k {file} ",
"Share for file {file} with {user} expired" : "Zdieľanie súboru {file} s používateľom {user} vypršalo",
"Share for file {file} expired" : "Zdieľanie súboru {file} vypršalo",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Súbor alebo adresár zdieľaný cez email alebo verejný odkaz bol <strong>stiahnutý</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Súbory boli <strong>nahrané</strong> do adresára zdieľaného e-mailom alebo verejným odkazom",
"A file or folder was shared from <strong>another server</strong>" : "Súbor alebo priečinok bol sprístupnený z <strong>iného servera</strong>",
- "Files" : "Súbory",
+ "Sharing" : "Zdieľanie",
"A file or folder has been <strong>shared</strong>" : "Súbor alebo priečinok bol <strong>sprístupnený</strong>",
"Shared link" : "Zdieľaný odkaz",
"Wrong share ID, share does not exist" : "Neplatné ID zdieľania, zdieľanie neexistuje",
- "Could not delete share" : "Nie je možné zmazať sprístupnenie",
+ "Could not delete share" : "Nie je možné zmazať zdieľanie",
"Please specify a file or folder path" : "Zvoľte prosím súbor alebo cestu k priečinku",
"Wrong path, file/folder does not exist" : "Neplatná cesta, súbor alebo priečinok neexistuje",
"Could not create share" : "Nie je možné sprístupniť",
- "Invalid permissions" : "Neplatné oprávnenia",
- "Invalid date, date format must be YYYY-MM-DD" : "Neplatný dátum, formát musí byť v tvare YYYY-MM-DD",
"Please specify a valid account to share with" : "Prosím, uveďte platný účet, s ktorým chcete zdieľať",
"Group sharing is disabled by the administrator" : "Skupinové zdieľanie je zakázané administrátorom",
"Please specify a valid group" : "Zvoľte prosím platnú skupinu",
- "Public link sharing is disabled by the administrator" : "Sprístupnenie pomocou verejných odkazov je zakázané administrátorom",
- "Public upload disabled by the administrator" : "Verejné nahrávanie je zakázané administrátorom",
- "Public upload is only possible for publicly shared folders" : "Verejné nahrávanie je možné len do verejne sprístupnených priečinkov",
+ "Public link sharing is disabled by the administrator" : "Zdieľanie pomocou verejných odkazov je zakázané administrátorom",
+ "Please specify a valid email address" : "Prosím, zadajte platnú emailovú adresu",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Zdieľanie %s odoslaním hesla cez Nextcloud Talk /Rozhovor/ zlyhalo, pretože Nextcloud Rozhovor nie je zapnutý",
- "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Sprístupnenie %1$s zlyhalo, backend nepodporuje typ sprístupnenia %2$s",
+ "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Zdieľanie %1$s zlyhalo, backend nepodporuje typ zdieľania %2$s",
"Please specify a valid federated account ID" : "Prosím zvoľte platné ID združeného účtu.",
"Please specify a valid federated group ID" : "Prosím zvoľte platné ID združenej skupiny",
- "You cannot share to a Circle if the app is not enabled" : "Ak aplikácia nie je povolená, nemôžete ju zdieľať s Kruhom",
- "Please specify a valid circle" : "Zadajte platný kruh",
+ "You cannot share to a Team if the app is not enabled" : "Nemôžete zdieľat do aplikácie Team, keď nie je povolená",
+ "Please specify a valid team" : "Zadajte platný tím",
"Sharing %s failed because the back end does not support room shares" : "Zdieľanie %s sa nepodarilo, pretože backend nepodporuje zdieľanie miestností",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Zdieľanie %s sa nepodarilo, pretože backend nepodporuje zdieľanie ScienceMesh miestností.",
"Unknown share type" : "Neplatný typ sprístupnenia",
"Not a directory" : "Nie je priečinok",
"Could not lock node" : "Uzol sa nedarí uzamknúť",
- "Could not lock path" : "Nie je možné uzamknúť cestu",
- "Wrong or no update parameter given" : "Zlý alebo žiadny zadaný parameter aktualizácie",
+ "Public upload is only possible for publicly shared folders" : "Verejné nahrávanie je možné len do verejne sprístupnených priečinkov",
"Share must at least have READ or CREATE permissions" : "Zdieľanie musí mať aspoň povolenia READ alebo CREATE",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Ak je nastavené oprávnenie UPDATE alebo DELETE, zdieľanie musí mať povolenie READ.",
+ "Public upload disabled by the administrator" : "Verejné nahrávanie je zakázané administrátorom",
+ "Could not lock path" : "Nie je možné uzamknúť cestu",
+ "no sharing rights on this item" : "žiadne práva pre zdieľanie tejto položky",
+ "You are not allowed to edit incoming shares" : "Nemáte práva pre úpravu príchodzích zdieľaní",
+ "Wrong or no update parameter given" : "Zlý alebo žiadny zadaný parameter aktualizácie",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Odoslanie hesla cez Nextcloud Talk / Rozhovor/\" pre zdieľanie súboru alebo priečinka zlyhalo, pretože Nextcloud Talk /Rozhovor/ nie je zapnutý.",
+ "Custom share link tokens have been disabled by the administrator" : "Správca zakázal vlastné tokeny zdieľania",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tokeny musia obsahovať aspoň 1 znak a môžu obsahovať iba písmená, čísla alebo spojovník",
+ "Invalid date. Format must be YYYY-MM-DD" : "Neplatný dátum. Formát musí byť YYYY-MM-DD",
+ "No sharing rights on this item" : "Žiadne práva pre zdieľanie tejto položky",
+ "Invalid share attributes provided: \"%s\"" : "Boli zadané neplatné atribúty zdieľania: \"%s\"",
+ "You are not allowed to send mail notifications" : "Nemáte povolené odosielať e-mailové upozornenia",
+ "No mail notification configured for this share type" : "Pre tento typ zdieľania nie je nakonfigurované žiadne e-mailové upozornenie",
+ "Wrong password" : "Nesprávne heslo",
+ "Error while sending mail notification" : "Chyba pri odosielaní notifikácie e-mailom",
+ "Failed to generate a unique token" : "Chyba pri generovaní unikátneho tokenu",
+ "This share does not exist or is no longer available" : "Toto zdieľanie neexistuje alebo už nie je dostupné",
"shared by %s" : "Sprístupnil %s",
- "Download all files" : "Stiahnuť všetky súbory",
- "Direct link" : "Priama linka",
+ "Download" : "Stiahnuť",
"Add to your %s" : "Pridať do vášho %s",
- "Share API is disabled" : "API pre sprístupňovanie je zakázané",
- "File sharing" : "Sprístupnenie súborov",
+ "Direct link" : "Priama linka",
+ "Share API is disabled" : "API pre zdieľanie je zakázané",
+ "File sharing" : "Zdieľanie súborov",
"Share will expire tomorrow" : "Platnosť sprístupnenia skončí zajtra",
"Your share of {node} will expire tomorrow" : "Vášmu zdieľaniu {node} zajtra skončí platnosť",
"You received {share} as a share by {user}" : "Od {user} ste obdržali zdieľanie {share}",
"You received {share} to group {group} as a share by {user}" : "Od {user} ste pre skupinu {group} obdržali zdieľanie {share}",
"Accept" : "Prijať",
"Decline" : "Zahodiť",
- "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Táto aplikácia umožňuje ľuďom si navzájom sprístupňovať súbory v rámci Nextcloud. Ak je zapnutá, správca môže zvoliť, ktoré skupiny môžu súbory sprístupňovať ostatným. Príslušní ľudia potom môžu tieto súbory a priečinky sprístupňovať ostatným účtom a skupinám v rámci Nextcloud. Navyše, ak správca zapne funkciu sprístupňovania pomocou odkazu, je možné súbory sprístupňovať aj mimo Nextcloud a to pomocou externého odkazu (linku). Správcovia tiež môžu vynútiť používanie hesiel, dátumov expirácie a povoliť sprístupňovanie server-server pomocou zdieľaných odkazov, ako aj sprístupňovanie z mobilných zariadení.\nVypnutím tejto funkcie odoberie sprístupnené súbory a priečinky na serveri pre všetkých príjemcov sprístupnenia, a taktiež aj na synchronizačných klientoch a mobilných aplikáciách. Viac informácií je k dispozícii v dokumentácii Nextcloud.",
- "Sharing" : "Sprístupnenie",
- "Accept shares from other accounts and groups by default" : "Predvolene prijať sprístupnené položky z iných účtov a skupín.",
+ "Remember to upload the files to %s" : "Nezabudnite nahrať súbory do %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Radi by sme vám pripomenuli, že ste do zdieľaného adresára ešte nenahrali žiadne súbory.",
+ "Open \"%s\"" : "Otvoriť \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Táto aplikácia umožňuje ľuďom si navzájom zdieľať súbory v rámci Nextcloud. Ak je zapnutá, správca môže zvoliť, ktoré skupiny môžu súbory zdieľať ostatným. Príslušní ľudia potom môžu tieto súbory a priečinky zdieľať ostatným účtom a skupinám v rámci Nextcloud. Navyše, ak správca zapne funkciu zdieľať pomocou odkazu, je možné súbory zdieľať aj mimo Nextcloud a to pomocou externého odkazu (linku). Správcovia tiež môžu vynútiť používanie hesiel, dátumov expirácie a povoliť zdielanie server-server pomocou zdieľaných odkazov, ako aj zdielanie z mobilných zariadení.\nVypnutím tejto funkcie odoberie zdielané súbory a priečinky na serveri pre všetkých príjemcov zdieľania, a taktiež aj na synchronizačných klientoch a mobilných aplikáciách. Viac informácií je k dispozícii v dokumentácii Nextcloud.",
+ "People" : "Ľudia",
+ "Filter accounts" : "Filtrovať účty",
+ "The request will expire on {date} at midnight and will be password protected." : "Platnosť žiadosti vyprší {date} o polnoci a bude chránená heslom.",
+ "The request will expire on {date} at midnight." : "Platnosť žiadosti vyprší {date} o polnoci.",
+ "The request will be password protected." : "Žiadosť bude chránená heslom.",
+ "When should the request expire?" : "Kedy by mala žiadosť vypršať?",
+ "Set a submission expiration date" : "Nastaviť dátum vypršania platnosti odoslania",
+ "Expiration date" : "Dátum vypršania",
+ "Select a date" : "Vybrať dátum",
+ "Your administrator has enforced a {count} days expiration policy." : "Váš správca presadil pravidlá uplynutia platnosti na {count} dní.",
+ "What password should be used for the request?" : "Aké heslo by sa malo použiť pre žiadosť?",
+ "Set a password" : "Nastavte si heslo",
+ "Password" : "Heslo",
+ "Enter a valid password" : "Vložte platné heslo",
+ "Generate a new password" : "Vygenerovať nové heslo",
+ "Your administrator has enforced a password protection." : "Váš administrátor vynútil ochranu heslom.",
+ "Automatically copying failed, please copy the share link manually" : "Automatické kopírovanie zlyhalo, skopírujte odkaz na zdieľanie manuálne",
+ "Link copied" : "Odkaz bol skopírovaný",
+ "Email already added" : "Tento email už bol pridaný",
+ "Invalid email address" : "Neplatná emailová adresa",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Nasledujúce e-mailové adresý nie sú platné: {emails}","Nasledujúce e-mailové adresý nie sú platné: {emails}","Nasledujúce e-mailové adresý nie sú platné: {emails}","Nasledujúce e-mailové adresý nie sú platné: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} e-mailová adriesa už bola pridaná","{count} e-mailové adriesy už boli pridané","{count} e-mailových adries už bolo pridaných","{count} e-mailových adries už bolo pridaných"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} e-mailová adriesa bola pridaná","{count} pridané e-mailové adriesy","{count} pridaných e-mailových adries","{count} pridaných e-mailových adries"],
+ "You can now share the link below to allow people to upload files to your directory." : "Teraz môžete zdieľať odkaz nižšie, aby ste ľuďom umožnili nahrávať súbory do vášho adresára.",
+ "Share link" : "Sprístupniť odkaz",
+ "Copy" : "Kopírovať",
+ "Send link via email" : "Poslať odkaz emailom",
+ "Enter an email address or paste a list" : "Vložte emailovú adresu alebo vložte zoznam",
+ "Remove email" : "Odobrať email",
+ "Select a destination" : "Vybrať cieľ",
+ "Select" : "Vybrať",
+ "What are you requesting?" : "Čo požadujete?",
+ "Request subject" : "Vyžiadať predmet",
+ "Birthday party photos, History assignment…" : "Fotky s narodeninových party, Historické aktivity...",
+ "Where should these files go?" : "Kam tieto súbory pôjdu?",
+ "Upload destination" : "Cieľ pre nahranie",
+ "Revert to default" : "Vrátiť na predvolené",
+ "The uploaded files are visible only to you unless you choose to share them." : "Nahrané súbory sú viditeľné iba pre vás, pokiaľ sa ich nerozhodnete zdieľať.",
+ "Add a note" : "Pridať poznámku",
+ "Note for recipient" : "Poznámka pre príjemcu",
+ "Add a note to help people understand what you are requesting." : "Pridajte poznámku, aby ľudia pochopili, čo požadujete.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Môžete pridať odkazy, dátum alebo akékoľvek iné informácie, ktoré príjemcovi pomôžu pochopiť, čo požadujete.",
+ "Close" : "Zatvoriť",
+ "_Send email and close_::_Send {count} emails and close_" : ["Odoslať e-mail a zavrieť","Odoslať {count} e-maily a zavrieť","Odoslať {count} e-mailov a zavrieť","Odoslať {count} e-mailov a zavrieť"],
+ "Please select a folder, you cannot share the root directory." : "Vyberte adresár, nemôžete zdieľať koreňový adresár.",
+ "File request created" : "Žiadosť o súbor vytvorená",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Požiadavka na súbor bola vytvorená a bol odslaný e-mail","Požiadavka na súbor bola vytvorená a bolo odslané {count} e-maily","Požiadavka na súbor bola vytvorená a bolo odslaných {count} e-mailov","Požiadavka na súbor bola vytvorená a bolo odslaných {count} e-mailov"],
+ "Error creating the share: {errorMessage}" : "Chyba pri vytváraní zdieľania: {errorMessage}",
+ "Error creating the share" : "Chyba pri vytváraní zdieľania",
+ "Error sending emails: {errorMessage}" : "Chyba pri posielaní emailov: {errorMessage}",
+ "Error sending emails" : "Chyba pri posielaní emailov",
+ "Create a file request" : "Vytvoriť žiadosť o súbor",
+ "Collect files from others even if they do not have an account." : "Zbierajte súbory od ostatných, aj keď nemajú účet.",
+ "To ensure you can receive files, verify you have enough storage available." : "Ak sa chcete ujistiť, že môžete prijímať súbory, skontrolujte, či máte k dispozícii dostatok voľného miesta.",
+ "File request" : "Žiadosť o súbor",
+ "Previous step" : "Predchodzí krok",
+ "Cancel" : "Zrušiť",
+ "Cancel the file request creation" : "Zrušiť vytváranie žiadosti o súbor",
+ "Close without sending emails" : "Zatvoriť bez odoslania emailov",
+ "Continue" : "Pokračovať",
"Error while toggling options" : "Chyba pri prepínaní možností",
- "Set default folder for accepted shares" : "Nastaviť predvolený priečinok pre prijaté zdieľania",
- "Reset" : "Resetovať",
- "Reset folder to system default" : "Obnoviť priečinok na predvolené hodnoty systému",
+ "Accept shares from other accounts and groups by default" : "Predvolene prijať sprístupnené položky z iných účtov a skupín.",
"Choose a default folder for accepted shares" : "Nastaviť predvolený priečinok pre prijaté zdieľania",
"Invalid path selected" : "Bola vybraná neplatná cesta",
"Unknown error" : "Neznáma chyba",
- "Open Sharing Details" : " Otvoriť podrobnosti zdieľania",
+ "Set default folder for accepted shares" : "Nastaviť predvolený priečinok pre prijaté zdieľania",
+ "Reset" : "Resetovať",
+ "Reset folder to system default" : "Obnoviť priečinok na predvolené hodnoty systému",
+ "Share Expiration" : "Vypršanie platnosti zdieľania",
"group" : "skupina",
"conversation" : "rozhovor",
"remote" : "vzdialený",
"remote group" : "vzdialená skupina",
"guest" : "hosť",
+ "by {initiator}" : "od {initiator}",
"Shared with the group {user} by {owner}" : "Sprístupnil(a) {owner} skupine {user}",
"Shared with the conversation {user} by {owner}" : "{owner} zdieľa konverzáciu {user}",
"Shared with {user} by {owner}" : "{owner} zdieľa s {user}",
+ "Open Sharing Details" : " Otvoriť podrobnosti zdieľania",
"Added by {initiator}" : "Pridal(a) {initiator}",
"Via “{folder}”" : "Prostredníctvom „{folder}“",
"Unshare" : "Zneprístupniť",
- "Internal link" : "Interný odkaz",
"Cannot copy, please copy the link manually" : "Nedarí sa skopírovať, skopírujte prosím ručne.",
- "Copy internal link to clipboard" : "Skopírovať interný odkaz do schránky",
- "Only works for people with access to this folder" : "Funguje len pre používateľov s prístupom k tomuto priečinku",
- "Only works for people with access to this file" : "Funguje len pre používateľov s prístupom k tomuto súboru",
- "Link copied" : "Odkaz skopírovaný",
- "Please enter the following required information before creating the share" : "Pred vytvorením zdieľania zadajte následujúce potrebné informácie",
- "Password protection (enforced)" : "Ochrana heslom (vynúttená)",
- "Password protection" : "Ochrana heslom",
- "Enter a password" : "Zadajte heslo",
- "Expiration date (enforced)" : "Dátum ukončenia platnosti (vynútené)",
- "Enter a date" : "Zadajte dátum",
- "Create share" : "Vytvoriť sprístupnenie",
- "Cancel" : "Zrušiť",
- "Customize link" : "Prispôsobiť odkaz",
- "Generate QR code" : "Vygenerovať QR kód",
- "Add another link" : "Pridať ďalší odkaz",
- "Create a new share link" : "Vytvoriť nový odkaz pre zdieľanie",
+ "Copy internal link" : "Kopírovať interný odkaz",
+ "Internal link" : "Interný odkaz",
"{shareWith} by {initiator}" : "{shareWith} od {initiator}",
"Shared via link by {initiator}" : "{initiator} zdieľa odkazom",
+ "File request ({label})" : "Žiadosť o súbor ({label})",
"Mail share ({label})" : "Zdieľanie mailu ({label})",
"Share link ({label})" : "Odkaz na zdieľanie ({label})",
+ "Mail share" : "Zdieľanie emailu",
"Share link ({index})" : "Zdieľať odkaz ({index})",
- "Share link" : "Sprístupniť odkaz",
+ "Create public link" : "Vytvoriť verejný odkaz",
"Actions for \"{title}\"" : "Akcie pre \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Kopírovať verejný odkaz \"{title}\" do schránky",
"Error, please enter proper password and/or expiration date" : "Chyba, zadajte správne heslo a/alebo dátum ukončenia platnosti",
"Link share created" : "Odkaz na zdieľanie vytvorený",
"Error while creating the share" : "Chyba pri vytváraní zdieľania",
+ "Please enter the following required information before creating the share" : "Pred vytvorením zdieľania zadajte následujúce potrebné informácie",
+ "Password protection (enforced)" : "Ochrana heslom (vynúttená)",
+ "Password protection" : "Ochrana heslom",
+ "Enter a password" : "Zadajte heslo",
+ "Enable link expiration (enforced)" : "Povoliť expiráciu odkazu (vyžadované)",
+ "Enable link expiration" : "Povoliť expiráciu odkazu",
+ "Enter expiration date (enforced)" : "Vložte dátum expirácie (vyžadované)",
+ "Enter expiration date" : "Vložte dátum expirácie",
+ "Create share" : "Vytvoriť zdieľanie",
+ "Customize link" : "Prispôsobiť odkaz",
+ "Generate QR code" : "Vygenerovať QR kód",
+ "Add another link" : "Pridať ďalší odkaz",
+ "Create a new share link" : "Vytvoriť nový odkaz pre zdieľanie",
"Quick share options, the current selected is \"{selectedOption}\"" : "Rýchle možnosti zdieľania, aktuálne je vybrané \"{selectedOption}\"",
"View only" : "Iba pre čítanie",
"Can edit" : "Môže upravovať",
- "File drop" : "Vložiť súbor",
"Custom permissions" : "Vlastné oprávnenia",
- "Search for share recipients" : "Vyhľadanie ďalších účastníkov zdieľania",
- "No recommendations. Start typing." : "Žiadne odporúčania. Píšte.",
- "Resharing is not allowed" : "Opätovné sprístupňovanie nie je povolené",
+ "Resharing is not allowed" : "Opätovné zdieľanie nie je povolené",
"Name or email …" : "Meno alebo e-mail …",
"Name, email, or Federated Cloud ID …" : "Meno, e-mail alebo ID združeného cloudu …",
"Searching …" : "Hľadá sa …",
"No elements found." : "Nenájdené žiadne prvky.",
- "Search globally" : "Hľadať globálne",
+ "Search everywhere" : "Hľadať všade",
"Guest" : "Hosť",
"Group" : "Skupina",
"Email" : "E-mail",
@@ -184,68 +243,89 @@
"Deck board" : "Palubná doska",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "na {server}",
+ "Enter external recipients" : "Zadajte externých príjemcov",
+ "Search for internal recipients" : "Hľadať interných príjemcov",
+ "Note from" : "Poznámka od",
+ "Note:" : "Poznámka:",
+ "File drop" : "Vložiť súbor",
+ "Upload files to {foldername}." : "Nahrať súbory do {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Nahraním súborov vyjadrujete súhlas s podmienkami služby.",
+ "View terms of service" : "Zobraziť podmienky používania",
+ "Terms of service" : "Všeobecné podmienky",
+ "Share with email {email}" : "Zdieľať s emailom {email}",
+ "Share with group" : "Zdieľať so skupinou",
+ "Share in conversation" : "Zdieľať v rozhovore",
+ "Share with {user} on remote server {server}" : "Sprístupniť s {user} na vzdialenom servery {server}",
+ "Share with remote group" : "Zdieľať so vzdialenou skupinou",
+ "Share with guest" : "Zdiľať s hosťom",
+ "Update share" : "Aktualizovať zdieľanie",
+ "Save share" : "Uložiť zdieľanie",
+ "Read" : "Čítať",
+ "Create" : "Vytvoriť",
+ "Edit" : "Upraviť",
+ "Share" : "Sprístupniť",
+ "Delete" : "Zmazať",
+ "Password field cannot be empty" : "Pole hesla nemôže byť prázdne",
+ "Replace current password" : "Nahradiť aktuálne heslo",
+ "Failed to generate a new token" : "Nepodarilo sa vygenerovať nový token",
"Allow upload and editing" : "Povoliť nahrávanie a úpravy",
"Allow editing" : "Povoliť úpravy",
"Upload only" : "Iba nahrávať",
"Advanced settings" : "Rozšírené nastavenia",
"Share label" : "Štítok zdieľania",
+ "Share link token" : "Zdieľať token pre odkaz",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Nastavte token odkazu pre verejné zdieľanie na niečo, čo sa ľahko zapamätá, alebo vygenerujte nový token. Neodporúča sa používať uhádnuteľný token pre zdieľania, ktoré obsahujú citlivé informácie.",
+ "Generating…" : "Generuje sa...",
+ "Generate new token" : "Vygenerovať nový token",
"Set password" : "Nastaviť heslo",
- "Password" : "Heslo",
"Password expires {passwordExpirationTime}" : "Heslo expiruje za {passwordExpirationTime}",
"Password expired" : "Heslo expirovalo",
"Video verification" : "Overovanie pomocou videa",
+ "Expiration date (enforced)" : "Dátum ukončenia platnosti (vynútené)",
"Set expiration date" : "Nastaviť dátum expirácie",
- "Expiration date" : "Dátum vypršania",
"Hide download" : "Skryť sťahovanie",
- "Allow download" : "Povoliť sťahovanie",
+ "Allow download and sync" : "Povoliť sťahovanie a synchronizáciu",
"Note to recipient" : "Poznámka pre príjemcu",
"Enter a note for the share recipient" : "Zadajte poznámku pre príjemcu zdieľania",
- "Read" : "Čítať",
- "Create" : "Vytvoriť",
- "Edit" : "Upraviť",
- "Share" : "Sprístupniť",
+ "Show files in grid view" : "Zobraziť zobrazenie súborov v mriežke",
"Delete share" : "Odstrániť zdieľanie",
- "Share with {userName}" : "Zdiľať s {userName}",
- "Share with group" : "Zdieľať so skupinou",
- "Share in conversation" : "Zdieľať v rozhovore",
- "Share with remote group" : "Zdieľať so vzdialenou skupinou",
- "Share with guest" : "Zdiľať s hosťom",
- "Update share" : "Aktualizovať zdieľanie",
- "Save share" : "Uložiť zdieľanie",
"Others with access" : "Ďalší, ktorí majú prístup",
"No other accounts with access found" : "Neboli nájdené žiadne ďalšie účty s prístupom",
"Toggle list of others with access to this directory" : "Vypnutie/zapnutie zoznamu ostatných s prístupom k tomuto priečinku",
"Toggle list of others with access to this file" : "Vypnutie/zapnutie zoznamu ostatných s prístupom k tomuto súboru",
"Unable to fetch inherited shares" : "Nedarí sa získať prevzaté zdieľania",
+ "Link shares" : "Zdieľané odkazy",
+ "Shares" : "Sprístupnené položky",
"Unable to load the shares list" : "Nedarí sa načítať zoznam zdieľaní",
"Expires {relativetime}" : "Platnosť končí {relativetime}",
"this share just expired." : "platnosť tohto zdieľania práve skončila.",
"Shared with you by {owner}" : "Zdieľané s vami používateľom {owner}",
+ "Internal shares" : "Interné zdieľania",
+ "Internal shares explanation" : "Vysvetlenie interných zdieľaní",
+ "External shares" : "Externé zdieľania",
+ "External shares explanation" : "Vysvetlenie externých zdieľaní",
+ "Additional shares" : "Ďalšie zdieľania",
+ "Additional shares explanation" : "Vysvetlenie ďalších zdieľaní",
+ "Link to a file" : "Odkaz na súbor",
"_Accept share_::_Accept shares_" : ["Prijať sprístupnenú položku","Prijať sprístupnené položky","Prijať sprístupnené položky","Prijať sprístupnené položky"],
"Open in Files" : "Otvoriť v súboroch",
"_Reject share_::_Reject shares_" : ["Odmietnuť zdieľanie","Odmietnuť zdieľania","Odmietnuť zdieľaní","Odmietnuť zdieľania"],
"_Restore share_::_Restore shares_" : ["Obnoviť sprístupnenú položku","Obnoviť sprístupnené položky","Obnoviť sprístupnené položky","Obnoviť sprístupnené položky"],
"Shared" : "Sprístupnené",
- "Shared multiple times with different people" : "Zdieľané viackrát rôznymi ľuďmi",
"Shared by {ownerDisplayName}" : "Zdiľané od {ownerDisplayName}",
- "Show sharing options" : "Zobraziť možnosti zdieľania",
- "Link to a file" : "Odkaz na súbor",
- "Error creating the share: {errorMessage}" : "Chyba pri vytváraní zdieľania: {errorMessage}",
- "Error creating the share" : "Chyba pri vytváraní zdieľania",
- "Error updating the share: {errorMessage}" : "Chyba pri úprave zdieľania: {errorMessage}",
- "Error updating the share" : "Pri aktualizácii zdieľania sa vyskytla chyba",
- "File \"{path}\" has been unshared" : "Pre súbor \"{path}\" bolo zrušené zdieľanie.",
- "Folder \"{path}\" has been unshared" : "Pre adresár \"{path}\" bolo zrušený zdieľanie.",
- "Share {propertyName} saved" : "Zdieľanie {propertyName} bolo uložené",
- "Shared by" : "Zdieľané od",
- "Shared with" : "Sprístupnené používateľovi",
- "Password created successfully" : "Heslo úspešne vytvorené.",
- "Error generating password from password policy" : "Chyba pri generovaní hesla podľa bezpečnostnej politiky",
- "Shared with you and the group {group} by {owner}" : "Zdieľané s vami a so skupinou {group} používateľom {owner}",
- "Shared with you and {circle} by {owner}" : "Sprístupnené vám a {circle} od {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Sprístupnené vám a rozhovoru {conversation} od {owner}",
- "Shared with you in a conversation by {owner}" : "Sprístupnené vám vrámci rozhovoru s {owner}",
- "Shares" : "Sprístupnené položky",
+ "Shared multiple times with different people" : "Zdieľané viackrát rôznymi ľuďmi",
+ "Sharing options" : "Možnosti zdieľania",
+ "Shared with others" : "Sprístupnené ostatným",
+ "Create file request" : "Vytvoriť žiadosť o súbor",
+ "Upload files to {foldername}" : "Nahrať súbory do {foldername}",
+ "Public file share" : "Verejné zdieľanie súborov",
+ "Publicly shared file." : "Verejne zdieľaný súbor.",
+ "No file" : "Žiadny súbor",
+ "The file shared with you will show up here" : "Tu budú zobrazené súbory zdieľané s vami",
+ "Public share" : "Verejné zdieľanie",
+ "Publicly shared files." : "Verejne zdieľané súbory.",
+ "No files" : "Žiadne súbory",
+ "Files and folders shared with you will show up here" : "Tu budú zobrazené súbory a adresáre zdieľané s vami",
"Overview of shared files." : "Prehľad zdieľaných súborov.",
"No shares" : "Žiadne sprístupnené položky",
"Files and folders you shared or have been shared with you will show up here" : "Súbory a priečinky, ktoré ste zdieľali alebo vám boli zdieľané, sa tu zobrazia.",
@@ -253,7 +333,6 @@
"List of files that are shared with you." : "Zoznam súborov, ktoré sú zdiľané s vami.",
"Nothing shared with you yet" : "Zatiaľ vám nikto nič nesprístupnil",
"Files and folders others shared with you will show up here" : "Tu budú zobrazené súbory a adresáre, ktoré vám ostatní nazdieľali",
- "Shared with others" : "Sprístupnené ostatným",
"List of files that you shared with others." : "Zoznam súborov, ktoré zdieľate s ostatnými.",
"Nothing shared yet" : "Zatiaľ ste nič nesprístupnili",
"Files and folders you shared will show up here" : "Tu sa zobrazia súbory a adresáre, ktoré ste sprístupnili.",
@@ -261,6 +340,10 @@
"List of files that are shared by link." : "Zoznam súborov, ktoré sú zdieľané pomocou odkazu.",
"No shared links" : "Žiadne sprístupnené odkazy",
"Files and folders you shared by link will show up here" : "Tu sú zobrazené súbory a adresáre, ktoré ste zdieľali prostredníctvom odkazov.",
+ "File requests" : "Žiadosti o súbor",
+ "List of file requests." : "Zoznam žiadostí o súbor.",
+ "No file requests" : "Žiadne žiadosti o súbor",
+ "File requests you have created will show up here" : "Žiadosti o súbor ktoré ste vytvorili sa zobrazia tu",
"Deleted shares" : "Odstrániť sprístupnenia",
"List of shares you left." : "Zoznam zdieľaných, ktoré ste opustili.",
"No deleted shares" : "Žiadne odstránené sprístupnené položky",
@@ -269,49 +352,75 @@
"List of unapproved shares." : "Zoznam neschválených zdieľaní.",
"No pending shares" : "Žiadne čakajúce zdieľania",
"Shares you have received but not approved will show up here" : "Tu sa zobrazia zdieľania, ktoré ste obdržali, ale nepotvrdili",
+ "Error deleting the share" : "Pri odstraňovaní zdieľania sa vyskytla chyba",
+ "Error updating the share: {errorMessage}" : "Chyba pri úprave zdieľania: {errorMessage}",
+ "Error updating the share" : "Pri aktualizácii zdieľania sa vyskytla chyba",
+ "File \"{path}\" has been unshared" : "Pre súbor \"{path}\" bolo zrušené zdieľanie.",
+ "Folder \"{path}\" has been unshared" : "Pre adresár \"{path}\" bolo zrušený zdieľanie.",
+ "Could not update share" : "Nie je možné aktualizovať zdieľanie",
+ "Share saved" : "Zdieľanie uložené",
+ "Share expiry date saved" : "Dátum expirácie zdieľania bolo uložené",
+ "Share hide-download state saved" : "Stav skryť sťahovanie zdieľania bol uložený",
+ "Share label saved" : "Štítok zdieľania bol uložený",
+ "Share note for recipient saved" : "Poznámka pre príjemcu zdieľania bola uložená",
+ "Share password saved" : "Heslo zdieľania bolo uložené",
+ "Share permissions saved" : "Práva zdieľania boli uložené",
+ "Upload files to {folder}" : "Nahrať súbory do {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} pre vás zdieľal adresár",
+ "Shared by" : "Zdieľané od",
+ "Shared with" : "Sprístupnené používateľovi",
+ "Password created successfully" : "Heslo úspešne vytvorené.",
+ "Error generating password from password policy" : "Chyba pri generovaní hesla podľa bezpečnostnej politiky",
+ "Shared with you and the group {group} by {owner}" : "Zdieľané s vami a so skupinou {group} používateľom {owner}",
+ "Shared with you and {circle} by {owner}" : "Sprístupnené vám a {circle} od {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Sprístupnené vám a rozhovoru {conversation} od {owner}",
+ "Shared with you in a conversation by {owner}" : "Sprístupnené vám vrámci rozhovoru s {owner}",
+ "Share not found" : "Zdieľanie sa nenašlo",
+ "Back to %s" : "Späť na %s",
+ "Add to your Nextcloud" : "Pridať do svojho Nextcloud",
+ "Waiting…" : "Čaká sa…",
+ "error" : "chyba",
+ "finished" : "dokončené",
+ "This will stop your current uploads." : "Toto zastaví práve prebiehajúce nahrávania.",
+ "Move or copy" : "Presunúť alebo kopírovať",
+ "You can upload into this folder" : "Môžete nahrávať do tohto priečinka",
+ "Show list view" : "Zobraziť ako zoznam",
+ "Show grid view" : "Zobraziť v mriežke",
+ "No compatible server found at {remote}" : "Nebol nájdený kompatibilný server na adrese {remote}",
+ "Invalid server URL" : "Neplatná URL servera",
+ "Failed to add the public link to your Nextcloud" : "Pridanie verejne dostupného odkazu do vášho Nextcloud zlyhalo",
+ "You are not allowed to edit link shares that you don't own" : "Nemáte povolenie upravovať zdieľania odkazov, ktoré nevlastníte",
+ "Download all files" : "Stiahnuť všetky súbory",
+ "Link copied to clipboard" : "Odkaz bol skopírovaný do schránky",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailová adriesa už bola pridaná","{count} e-mailové adriesy už boli pridané","{count} e-mailových adries už bolo pridaných","{count} e-mailových adries už bolo pridaných"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 pridaná e-mailová adresa","{count} pridané e-mailové adriesy","{count} pridaných e-mailových adries","{count} pridaných e-mailových adries"],
+ "Copy to clipboard" : "Skopírovať do schránky",
+ "Copy internal link to clipboard" : "Skopírovať interný odkaz do schránky",
+ "Only works for people with access to this folder" : "Funguje len pre používateľov s prístupom k tomuto priečinku",
+ "Only works for people with access to this file" : "Funguje len pre používateľov s prístupom k tomuto súboru",
+ "Copy public link of \"{title}\" to clipboard" : "Kopírovať verejný odkaz \"{title}\" do schránky",
+ "Search globally" : "Hľadať globálne",
+ "Search for share recipients" : "Vyhľadanie ďalších účastníkov zdieľania",
+ "No recommendations. Start typing." : "Žiadne odporúčania. Píšte.",
+ "To upload files, you need to provide your name first." : "Pre nahranie súborov, musíte najprv zdať svoje meno.",
+ "Enter your name" : "Zadajte svoje meno",
+ "Submit name" : "Odoslať meno",
+ "Share with {userName}" : "Zdiľať s {userName}",
+ "Show sharing options" : "Zobraziť možnosti zdieľania",
"Share note" : "Poznámka k zdieľaniu",
"Upload files to %s" : "Nahrať súbory do %s",
+ "%s shared a folder with you." : "%s vám zozdieľal adresár.",
"Note" : "Poznámka",
"Select or drop files" : "Vyberte alebo položte súbory",
"Uploading files" : "Nahrávanie súborov",
"Uploaded files:" : "Nahrané súbory...",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Nahraním súborov vyjadrujete súhlas so všeobecnými podmienkami %1$s %2$s.",
- "Add to your Nextcloud" : "Pridať do svojho Nextcloud",
- "Files and folders others share with you will show up here" : "Tu budú zobrazené súbory a priečinky, ktoré vám ostatní sprístupnili",
- "Files and folders you share will show up here" : "Tu sú zobrazené súbory a priečinky, ktoré ste sprístupnili",
- "Files and folders you share by link will show up here" : "Tu sú zobrazené súbory a priečinky, ktoré ste sprístupnili prostredníctvom odkazov",
- "Shares you deleted will show up here" : "Tu sa zobrazia sprístupnené položky, ktoré ste odstránili",
- "Shares you have received but not confirmed will show up here" : "Tu sa zobrazia zdieľania, ktoré ste obdržali, ale nepotvrdili",
- "Shares will show up here" : "Tu sa zobrazia sprístupnené položky",
- "Restore" : "Obnoviť",
- "Something happened. Unable to restore the share." : "Niečo sa udialo. Nedarí sa obnoviť sprístupnenú položku.",
- "Something happened. Unable to accept the share." : "Niečo sa stalo. Nedarí sa prijať zdieľanie.",
- "Something happened. Unable to reject the share." : "Niečo sa stalo. Nedarí sa odmietnuť zdieľanie.",
- "No expiration date set" : "Dátum exspirácie nenastavený",
- "Please specify a valid user" : "Zvoľte prosím platného používateľa",
- "Please specify a valid federated user ID" : "Prosím zvoľte platné ID združeného používateľa",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Táto aplikácia umožňuje používateľom si navzájom sprístupňovať súbory v rámci Nextcloud. Ak je zapnutá, správca môže zvoliť, ktoré skupiny môžu súbory sprístupňovať ostatným. Poverení používatelia potom môžu tieto súbory sprístupňovať ostatným používateľom a skupinám v rámci Nextcloud. Navyše, ak správca zapne funkciu sprístupňovania pomocou odkazu, je možné súbory sprístupňovať aj mimo Nextcloud a to pomocou externého odkazu (linku). Správci tiež môžu vynútiť používanie hesiel, dátumov exspirácie a zapnúť sprístupňovanie server-server pomocou zdieľaných odkazov. Rovnako aj sprístupňovanie z mobilných zariadení.\nVypnutím tejto funkcie odoberie sprístupnené súbory a priečinky na serveri pre všetkých príjemcov sprístupnenia a taktiež aj na synchronizovaných klientoch (napr. počítačová aplikácia Nextcloud) a mobilných aplikáciách. Viac informácií je k dispozícii v dokumentácii Nextcloud.",
- "Accept user and group shares by default" : "Vždy prijímať zdieľania od používateľov a skupín",
- "Read only" : "Iba na čítanie",
- "File drop (upload only)" : "Odovzdávanie súborov (len nahrávanie)",
- "Upload" : "Nahrať",
- "Bundled permissions" : "Združené práva",
- "Only works for users with access to this folder" : "Funguje len pre používateľov s prístupom k tomuto priečinku",
- "Only works for users with access to this file" : "Funguje iba pre pužívateľov, ktorí majú prístup k tomuto súboru",
- "Circle" : "Kruh",
- "Update" : "Aktualizovať",
- "Share with " : "Zdieľať s ",
- "No other users with access found" : "Neboli nájdení ďalší používatelia s prístupom",
- "No entries found in this folder" : "V tomto priečinku nebolo nič nájdené",
"Name" : "Názov",
- "Share time" : "Čas sprístupnenia",
- "Sorry, this link does not seem to work anymore." : "Ľutujem, tento odkaz už nevyzerá byť funkčný.",
- "Reasons might be:" : "Možné dôvody:",
- "the item was removed" : "položka bola presunutá",
- "the link expired" : "linke vypršala platnosť",
- "sharing is disabled" : "sprístupňovanie je zakázané",
- "For more info, please ask the person who sent this link." : "Pre viac informácií kontaktujte osobu, ktorá vám poslala tento odkaz.",
- "Share with remote" : "Zdieľať so vzdialeným",
- "Share with" : "Zdieľať s"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Túto metódu použite na zdieľanie súborov s jednotlivcami alebo tímami v rámci vašej organizácie. Ak príjemca už má prístup k zdieľanej zložke, ale nemôže ju nájsť, môžete mu poslať interný odkaz na zdieľanie, aby k nemu mal jednoduchý prístup.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Túto metódu použite na zdieľanie súborov s jednotlivcami alebo organizáciami mimo vašej organizácie. Súbory a priečinky je možné zdieľať prostredníctvom verejných zdieľaných odkazov a e-mailových adries. Môžete tiež zdieľať s inými účtami Nextcloud hosťovanými v rôznych inštanciách pomocou ich federatívneho cloudového ID.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Akcie, ktoré nie sú súčasťou interných alebo externých akcií. Môžu to byť zdieľania z aplikácií alebo iných zdrojov.",
+ "Share with accounts and teams" : "Zdieľať s účtami a tímami",
+ "Email, federated cloud id" : "E-mail, id federovaného cloudu",
+ "Filename must not be empty." : "Názov súboru nesmie byť prázdny."
},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/sl.js b/apps/files_sharing/l10n/sl.js
index f0ea70fd9c2..d703f3bd8e6 100644
--- a/apps/files_sharing/l10n/sl.js
+++ b/apps/files_sharing/l10n/sl.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Čakanje na povezavo ...",
- "error" : "napaka",
- "finished" : "končano",
- "This will stop your current uploads." : "S tem bodo zaustavljena vsa pošiljanja v oblak.",
- "Move or copy" : "Premakni ali kopiraj",
- "Download" : "Prejmi",
- "Delete" : "Izbriši",
- "You can upload into this folder" : "V to mapo je dovoljeno pošiljati datoteke",
- "Terms of service" : "Pogoji uporabe storitve",
- "Show list view" : "Pokaži seznamski pogled",
- "Show grid view" : "Pokaži mrežni pogled",
- "No compatible server found at {remote}" : "Skladnega strežnika na {remote} ni mogoče najti",
- "Invalid server URL" : "Neveljaven naslov URL strežnika",
- "Failed to add the public link to your Nextcloud" : "Dodajanje javne povezave v oblak je spodletelo.",
"File shares" : "Datoteke v souporabi",
"Downloaded via public link" : "Prejeto po javni povezavi",
"Downloaded by {email}" : "Prejeto po {email}",
@@ -70,7 +56,7 @@ OC.L10N.register(
"Share for file {file} expired" : "Souporaba datoteke {file} je potekla",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Datoteko oziroma mapo v souporabi po elektronski pošti oziroma javni povezavi je uporabnik <strong>prejel na svoj krajevni disk</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Datoteka ali mapa je bila dodana v souporabo na <strong>drugem strežniku</strong>",
- "Files" : "Datoteke",
+ "Sharing" : "Souporaba",
"A file or folder has been <strong>shared</strong>" : "Za datoteko ali mapo je omogočena <strong>souporaba</strong>",
"Shared link" : "Povezava do mesta souporabe",
"Wrong share ID, share does not exist" : "Napačen ID mesta souporabe; mesto ne obstaja!",
@@ -78,30 +64,31 @@ OC.L10N.register(
"Please specify a file or folder path" : "Določiti je treba datoteko ali pot do mape",
"Wrong path, file/folder does not exist" : "Napačna pot; datoteka ali mapa ne obstaja",
"Could not create share" : "Mesta souporabe ni mogoče ustvariti",
- "Invalid permissions" : "Neustrezna dovoljenja",
- "Invalid date, date format must be YYYY-MM-DD" : "Neveljaven zapis časa; biti mora v zapisu YYYY-MM-DD",
+ "Please specify a valid account to share with" : "Navesti je treba veljaven račun za omogočanje souporabe",
"Group sharing is disabled by the administrator" : "Skupinska souporaba je skrbniško onemogočena",
"Please specify a valid group" : "Navesti je treba veljavno skupino",
"Public link sharing is disabled by the administrator" : "Souporaba z uporabo javne povezave je skrbniško onemogočena",
- "Public upload disabled by the administrator" : "Javno pošiljanje v oblak je skrbniško onemogočeno",
- "Public upload is only possible for publicly shared folders" : "Javno pošiljanje v oblak je mogoče le za mape v javni skupni rabi.",
+ "Please specify a valid email address" : "Navesti je treba veljaven elektronski naslov",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Souporaba %s s pošiljanjem gesla prek programa Nextcloud Talk je spodletela, ker program Talk ni omogočen.",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Souporaba %1$s je spodletela, ker ozadnji program ne omogoča souporabe prek vrste %2$s.",
+ "Please specify a valid federated account ID" : "Navesti je treba veljaven ID zveznega računa",
"Please specify a valid federated group ID" : "Navesti je treba veljaven ID zvezne skupine",
- "You cannot share to a Circle if the app is not enabled" : "Ni mogoče odobriti souporabe s Krogom, če program ni omogočen",
- "Please specify a valid circle" : "Določite veljaven krog",
"Sharing %s failed because the back end does not support room shares" : "Souporaba %s je spodletela, ker sistem ne dovoli souporabe znotraj posameznih sob",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Souporaba %s je spodletela, ker sistem ne podpira souporabe ScienceMesh",
"Unknown share type" : "Neznana vrsta mesta souporabe",
"Not a directory" : "Predmet ni mapa",
"Could not lock node" : "Vozlišča ni mogoče zakleniti",
+ "Public upload is only possible for publicly shared folders" : "Javno pošiljanje v oblak je mogoče le za mape v javni skupni rabi.",
+ "Share must at least have READ or CREATE permissions" : "Mestu souporabe mora biti dodeljeno vsaj dovoljenje BRANJE in USTVARJANJE",
+ "Public upload disabled by the administrator" : "Javno pošiljanje v oblak je skrbniško onemogočeno",
"Could not lock path" : "Poti ni mogoče zakleniti",
+ "You are not allowed to edit incoming shares" : "Ni ustreznih dovoljenj za urejanje dodeljenih mest souporabe",
"Wrong or no update parameter given" : "Parameter posodobitve ni podan, ali pa je navedena napačna vrednost",
- "Share must at least have READ or CREATE permissions" : "Mestu souporabe mora biti dodeljeno vsaj dovoljenje BRANJE in USTVARJANJE",
+ "Wrong password" : "Napačno geslo",
"shared by %s" : "souporaba: %s",
- "Download all files" : "Prejmi vse datoteke",
- "Direct link" : "Neposredna povezava",
+ "Download" : "Prejmi",
"Add to your %s" : "Dodaj v %s",
+ "Direct link" : "Neposredna povezava",
"Share API is disabled" : "Vmesnik API za souporabo je onemogočen",
"File sharing" : "Souporaba datotek",
"Share will expire tomorrow" : "Souporaba bo jutri pretekla",
@@ -110,14 +97,46 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "{user} vam omogoča souporabo {share} prek skupine {group}",
"Accept" : "Sprejmi",
"Decline" : "Zavrni",
- "Sharing" : "Souporaba",
+ "People" : "Osebe",
+ "Expiration date" : "Datum preteka",
+ "Select a date" : "Izbor datuma",
+ "Set a password" : "Nastavi geslo",
+ "Password" : "Geslo",
+ "Enter a valid password" : "Vpisati je treba veljavno geslo",
+ "Generate a new password" : "Ustvari novo geslo",
+ "Your administrator has enforced a password protection." : "Skrbnik zahteva uporabo zaščite z geslom.",
+ "Link copied" : "Povezava je kopirana",
+ "Email already added" : "Elektronski naslov je že dodan",
+ "Invalid email address" : "Vpisan je neveljaven elektronski naslov",
+ "Share link" : "Povezava za souporabo",
+ "Copy" : "Kopiraj",
+ "Send link via email" : "Pošlji povezavo po elektronski pošti",
+ "Remove email" : "Odstrani elektronski naslov",
+ "Select a destination" : "Izbor cilja",
+ "Select" : "Izbor",
+ "Where should these files go?" : "Kam želite poslati te datoteke?",
+ "Upload destination" : "Mesto pošiljanja",
+ "Revert to default" : "Povrni na privzeto",
+ "The uploaded files are visible only to you unless you choose to share them." : "V oblak poslane datoteke so vidne le vam, dokler jih ne omogočite v souporabo.",
+ "Add a note" : "Dodaj opombo",
+ "Note for recipient" : "Opomba za prejemnika",
+ "Add a note to help people understand what you are requesting." : "Dodajte opombo, ki bo prejemnikom pomagala razumeti, kaj od njih zahtevate.",
+ "Close" : "Zapri",
+ "File request created" : "Zahteva za datoteko je ustvarjena",
+ "Error creating the share: {errorMessage}" : "Napaka pri ustvarjanju mesta souporabe: {errorMessage}",
+ "Error creating the share" : "Napaka ustvarjanja mesta souporabe",
+ "Error sending emails" : "Prišlo je do napake med pošiljanjem elektronskih sporočil",
+ "Create a file request" : "Ustvari zahtevo za datoteko",
+ "Previous step" : "Predhodni korak",
+ "Cancel" : "Prekliči",
+ "Continue" : "Nadaljuj",
"Error while toggling options" : "Prišlo je do napake med preklapljanjem možnosti",
- "Set default folder for accepted shares" : "Izbor privzete mape za sprejemanje map v souporabi",
- "Reset" : "Ponastavi",
- "Reset folder to system default" : "Ponastavi mapo na privzete sistemske vrednosti",
"Choose a default folder for accepted shares" : "Izbor privzete mape za sprejemanje map v souporabi",
"Invalid path selected" : "Izbrana je neveljavna pot",
"Unknown error" : "Neznana napaka",
+ "Set default folder for accepted shares" : "Izbor privzete mape za sprejemanje map v souporabi",
+ "Reset" : "Ponastavi",
+ "Reset folder to system default" : "Ponastavi mapo na privzete sistemske vrednosti",
"group" : "skupina",
"conversation" : "pogovor",
"remote" : "oddaljeno",
@@ -129,105 +148,130 @@ OC.L10N.register(
"Added by {initiator}" : "Dodano: {initiator}",
"Via “{folder}”" : "Prek mape »{folder}«",
"Unshare" : "Prekini souporabo",
- "Internal link" : "Notranja povezava",
"Cannot copy, please copy the link manually" : "Povezave ni mogoče kopirati. Storite to ročno.",
- "Copy internal link to clipboard" : "Kopiraj notranjo povezavo v odložišče",
- "Link copied" : "Povezava je kopirana",
- "Please enter the following required information before creating the share" : "Vpisati je treba nekatere podrobnosti, preden je mogoče ustvariti mesto souporabe",
- "Password protection (enforced)" : "Zaščita z geslom (vsiljena)",
- "Password protection" : "Zaščita z geslom",
- "Enter a password" : "Vpis gesla",
- "Expiration date (enforced)" : "Datum preteka (vsiljeno)",
- "Enter a date" : "Vpis datuma ...",
- "Create share" : "Ustvari predmet souporabe",
- "Cancel" : "Prekliči",
- "Add another link" : "Dodaj novo povezavo",
- "Create a new share link" : "Ustvari novo povezavo za souporabo",
+ "Copy internal link" : "Kopiraj krajevno povezavo",
+ "Internal link" : "Notranja povezava",
"Shared via link by {initiator}" : "{initiator} omogoči souporabo prek povezave",
"Mail share ({label})" : "Souporaba prek elektronske pošte ({label})",
"Share link ({label})" : "Souporaba povezave ({label})",
"Share link ({index})" : "Souporaba povezave ({index})",
- "Share link" : "Povezava za souporabo",
+ "Create public link" : "Ustvari javno povezavo",
"Actions for \"{title}\"" : "Dejanja za »{title}«",
- "Copy public link of \"{title}\" to clipboard" : "Kopiraj javno povezavo do mape »{title}« v odložišče",
"Error, please enter proper password and/or expiration date" : "Napaka. Vpisati je treba pravo geslo ali datum preteka",
"Link share created" : "Povezava do mesta souporabe je ustvarjena",
"Error while creating the share" : "Napaka ustvarjanja mesta souporabe",
+ "Please enter the following required information before creating the share" : "Vpisati je treba nekatere podrobnosti, preden je mogoče ustvariti mesto souporabe",
+ "Password protection (enforced)" : "Zaščita z geslom (vsiljena)",
+ "Password protection" : "Zaščita z geslom",
+ "Enter a password" : "Vpis gesla",
+ "Create share" : "Ustvari predmet souporabe",
+ "Customize link" : "Prilagodi povezavo",
+ "Generate QR code" : "Ustvari kodo QR",
+ "Add another link" : "Dodaj novo povezavo",
+ "Create a new share link" : "Ustvari novo povezavo za souporabo",
"View only" : "Le ogled",
"Can edit" : "Lahko ureja",
- "File drop" : "Poteg datotek",
"Custom permissions" : "Dovoljenja po meri",
- "Search for share recipients" : "Iskanje prejemnikov mesta souporabe",
- "No recommendations. Start typing." : "Ni priporočil; začnite vpisovati",
"Resharing is not allowed" : "Nadaljnja souporaba ni dovoljena",
"Name or email …" : "Ime ali elektronski naslov ...",
"Name, email, or Federated Cloud ID …" : "Ime, elektronski naslov, ali ID zveznega oblaka ...",
"Searching …" : "Poteka iskanje ...",
"No elements found." : "Ni najdenih predmetov",
- "Search globally" : "Splošno iskanje",
+ "Search everywhere" : "Išči povsod",
"Guest" : "Gost",
"Group" : "Skupina",
"Email" : "Elektronski naslov",
+ "Team" : "Skupina",
"Talk conversation" : "Pogovor Talk",
"Deck board" : "Zbirka Deck",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "na strežniku {server}",
+ "Note:" : "Opomba:",
+ "File drop" : "Poteg datotek v mapo",
+ "Terms of service" : "Pogoji uporabe storitve",
+ "Read" : "Branje",
+ "Create" : "Ustvari",
+ "Edit" : "Uredi",
+ "Share" : "Souporaba",
+ "Delete" : "Izbriši",
"Allow upload and editing" : "Dovoli pošiljanje in urejanje",
"Allow editing" : "Dovoli urejanje",
+ "Upload only" : "Le pošiljanje",
"Advanced settings" : "Napredne nastavitve",
"Share label" : "Naziv mesta souporabe",
- "Password" : "Geslo",
+ "Set password" : "Nastavi geslo",
"Password expires {passwordExpirationTime}" : "Geslo preteče {passwordExpirationTime}",
"Password expired" : "Geslo je preteklo",
"Video verification" : "Video overitev",
+ "Expiration date (enforced)" : "Datum preteka (vsiljeno)",
"Set expiration date" : "Nastavi datum preteka",
- "Expiration date" : "Datum preteka",
"Hide download" : "Skrij prejem",
- "Allow download" : "Dovoli prejem datotek",
"Note to recipient" : "Sporočilo za prejemnika",
"Enter a note for the share recipient" : "Vpišite opombo za prejemnika",
- "Read" : "Branje",
- "Create" : "Ustvari",
- "Edit" : "Uredi",
- "Share" : "·Souporaba·",
+ "Delete share" : "Izbriši mesto souporabe",
"Others with access" : "Drugi z dostopom",
"Toggle list of others with access to this directory" : "Preklopi seznam drugih z dostopom do te mape",
"Toggle list of others with access to this file" : "Preklopi seznam drugih z dostopom do te datoteke",
"Unable to fetch inherited shares" : "Ni mogoče pridobiti podedovanih mest souporabe",
+ "Shares" : "V souporabi",
"Unable to load the shares list" : "Ni mogoče naložiti seznama predmetov v souporabi",
"Expires {relativetime}" : "Preteče {relativetime}",
"this share just expired." : "to mesto souporabe je ravnokar preteklo.",
"Shared with you by {owner}" : "Souporabo omogoča {owner}",
+ "Link to a file" : "Povezava do datoteke",
"Open in Files" : "Odpri v mapi",
"Shared" : "V souporabi",
- "Link to a file" : "Povezava do datoteke",
- "Error creating the share: {errorMessage}" : "Napaka pri ustvarjanju mesta souporabe: {errorMessage}",
- "Error creating the share" : "Napaka ustvarjanja mesta souporabe",
+ "Shared multiple times with different people" : "V več souporabah z različnimi uporabniki",
+ "Sharing options" : "Možnosti souporabe",
+ "Shared with others" : "V souporabi z drugimi",
+ "Public share" : "Javna objava",
+ "No shares" : "Ni še vpisanih mest souporabe",
+ "Shared with you" : "V souporabi z vami",
+ "Nothing shared with you yet" : "Datotek drugih uporabnikov še ni v souporabi",
+ "Nothing shared yet" : "Souporabe datotek še niste omogočili",
+ "Shared by link" : "V souporabi s povezavo",
+ "No shared links" : "Ni povezav za souporabo",
+ "Deleted shares" : "Izbrisana mesta souporabe",
+ "No deleted shares" : "Ni izbrisanih povezav za souporabo.",
+ "Pending shares" : "Predmeti za souporabo na čakanju",
+ "No pending shares" : "Ni nobenega predmeta za souporabo na čakanju",
+ "Error deleting the share" : " Napaka brisanja mesta souporabe",
"Error updating the share: {errorMessage}" : "Napaka pri posodabljanju mesta souporabe: {errorMessage}",
"Error updating the share" : "Napaka posodabljanja mesta souporabe",
"File \"{path}\" has been unshared" : "Souporaba datoteke »{path}« je odstranjena",
"Folder \"{path}\" has been unshared" : "Souporaba mape »{path}« je odstranjena",
- "Share {propertyName} saved" : "Lastnost mesta souporabe {propertyName} je shranjena",
"Shared by" : "Souporabo omogoča",
"Shared with" : "V skupni rabi z uporabnikom",
"Password created successfully" : "Geslo je uspešno ustvarjeno",
"Error generating password from password policy" : "Napaka ustvarjanja gesla po določenih varnostnih pravilih",
- "Shared with you and the group {group} by {owner}" : "{user} omogoča vam in skupini {group} souporabo",
+ "Shared with you and the group {group} by {owner}" : "{owner} omogoča vam in skupini {group} souporabo",
"Shared with you and {circle} by {owner}" : "{owner} omogoči souporabo vam in članom kroga {circle}.",
"Shared with you and the conversation {conversation} by {owner}" : "{owner} omogoči souporabo vam in udeležencem pogovora {conversation}.",
"Shared with you in a conversation by {owner}" : "{owner} vam omogoči souporabo v pogovoru.",
- "Shares" : "‧ V Souporabi",
- "No shares" : "Ni še vpisanih mest souporabe",
- "Shared with you" : "V souporabi z vami",
- "Nothing shared with you yet" : "Datotek drugih uporabnikov še ni v souporabi",
- "Shared with others" : "V souporabi z drugimi",
- "Nothing shared yet" : "Souporabe datotek še niste omogočili",
- "Shared by link" : "V souporabi s povezavo",
- "No shared links" : "Ni povezav za souporabo",
- "Deleted shares" : "Izbrisana mesta souporabe",
- "No deleted shares" : "Ni izbrisanih povezav za souporabo.",
- "Pending shares" : "Predmeti za souporabo na čakanju",
- "No pending shares" : "Ni nobenega predmeta za souporabo na čakanju",
+ "Share not found" : "Mesta souporabe ni mogoče najti.",
+ "Back to %s" : "Nazaj na %s",
+ "Add to your Nextcloud" : "Dodaj v oblak Nextcloud",
+ "Waiting…" : "Čakanje na povezavo ...",
+ "error" : "napaka",
+ "finished" : "končano",
+ "This will stop your current uploads." : "S tem bodo zaustavljena vsa pošiljanja v oblak.",
+ "Move or copy" : "Premakni ali kopiraj",
+ "You can upload into this folder" : "V to mapo je dovoljeno pošiljati datoteke",
+ "Show list view" : "Pokaži seznamski pogled",
+ "Show grid view" : "Pokaži mrežni pogled",
+ "No compatible server found at {remote}" : "Skladnega strežnika na {remote} ni mogoče najti",
+ "Invalid server URL" : "Neveljaven naslov URL strežnika",
+ "Failed to add the public link to your Nextcloud" : "Dodajanje javne povezave v oblak je spodletelo.",
+ "Download all files" : "Prejmi vse datoteke",
+ "Link copied to clipboard" : "Povezava je kopirana v odložišče",
+ "_1 email address already added_::_{count} email addresses already added_" : ["{count} elektronski naslov je že dodan","{count} elektronska naslova sta že dodana","{count} elektronski naslovi so že dodani","{count} elektronskih naslovov je že dodanih"],
+ "Copy to clipboard" : "Kopiraj v odložišče",
+ "Copy internal link to clipboard" : "Kopiraj notranjo povezavo v odložišče",
+ "Copy public link of \"{title}\" to clipboard" : "Kopiraj javno povezavo do mape »{title}« v odložišče",
+ "Search globally" : "Splošno iskanje",
+ "Search for share recipients" : "Iskanje prejemnikov mesta souporabe",
+ "No recommendations. Start typing." : "Ni priporočil; začnite vpisovati",
+ "Enter your name" : "Vpišite ime",
"Share note" : "Omogoči souporabo zabeležke",
"Upload files to %s" : "Pošlji datoteke v račun %s",
"Note" : "Opomba",
@@ -235,40 +279,7 @@ OC.L10N.register(
"Uploading files" : "Pošiljanje datotek",
"Uploaded files:" : "Poslane datoteke:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "S pošiljanjem datotek v oblak sprejemate tudi %1$spogoje uporabe storitve%2$s.",
- "Add to your Nextcloud" : "Dodaj v oblak Nextcloud",
- "Files and folders others share with you will show up here" : "Datoteke in mape, katerih souporabo z vami omogočijo drugi, bodo zbrane na tem mestu.",
- "Files and folders you share will show up here" : "Datoteke in mape, ki ste jih označili za souporabo z drugimi, bodo zbrane na tem mestu.",
- "Files and folders you share by link will show up here" : "Datoteke in mape, ki ste jih označili za souporabo po povezavi, bodo zbrane na tem mestu.",
- "Shares you deleted will show up here" : "Izbrisana mesta souporabe prikazana na tem mestu.",
- "Shares you have received but not confirmed will show up here" : "To so mape in datoteke, ki ste jih že prejeli v souporabo, vendar ne tudi potrdili.",
- "Shares will show up here" : "Predmeti v souporabi bodo prikazani na tem mestu.",
- "Restore" : "Obnovi",
- "Something happened. Unable to restore the share." : "Prišlo je do napake. Ni mogoče obnoviti mesta souporabe.",
- "Something happened. Unable to accept the share." : "Prišlo je do napake. Ni mogoče sprejeti mesta souporabe.",
- "Something happened. Unable to reject the share." : "Prišlo je do napake. Ni mogoče zavrniti mesta souporabe.",
- "No expiration date set" : "Datum preteka ni določen",
- "Please specify a valid user" : "Navesti je treba veljavnega uporabnika.",
- "Please specify a valid federated user ID" : "Navesti je treba veljaven ID zveznega uporabnika",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Program omogoča uporabnikom souporabo in izmenjavo datotek v oblaku Nextcloud. Izbrana možnost omogoča skrbnikom izbor skupin, ki imajo dovoljenja za omogočanje souporabe znotraj oblaka. Če je omogočena tudi možnost souporabe prek povezave, je na voljo tudi zunanja povezava za zunanje uporabnike. Skrbniki lahko omogočijo tudi gesla, pretek povezave in objavljanje prek mobilnih naprav.\nOnemogočanje storitve odstrani vse datoteke in mape v souporabi, prav tako programe za usklajevanje in mobilne naprave. Več podrobnosti je na voljo v dokumentaciji Nextcloud.",
- "Accept user and group shares by default" : "Privzeto sprejmi uporabniško in skupinsko souporabo predmetov",
- "Read only" : "Le za branje",
- "File drop (upload only)" : "Povleci datoteke (samo nalaganje)",
- "Upload" : "Pošlji",
- "Bundled permissions" : "Paket dovoljenj",
- "Only works for users with access to this folder" : "Možnost deluje le za uporabnike, ki imajo dostop do te mape",
- "Only works for users with access to this file" : "Deluje le za uporabnike z dostopom do te datoteke",
- "Circle" : "Krog",
- "Update" : "Posodobi",
- "No other users with access found" : "Ni najdenih drugih uporabnikov z dostopom",
- "No entries found in this folder" : "V tej mapi ni najdenih predmetov.",
- "Name" : "Ime",
- "Share time" : "Čas souporabe",
- "Sorry, this link does not seem to work anymore." : "Kaže, da povezava ni več dejavna.",
- "Reasons might be:" : "Vzrok je lahko:",
- "the item was removed" : "predmet je odstranjen,",
- "the link expired" : "povezava je pretekla",
- "sharing is disabled" : "souporaba je onemogočena.",
- "For more info, please ask the person who sent this link." : "Za več podrobnosti stopite v stik s pošiljateljem te povezave.",
- "Share with" : "Omogoči souporabo …"
+ "Name" : "Ime podpisnika",
+ "Filename must not be empty." : "Ime datoteke ne sme biti prazno."
},
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/files_sharing/l10n/sl.json b/apps/files_sharing/l10n/sl.json
index 5a61e427a1b..f3314df7f03 100644
--- a/apps/files_sharing/l10n/sl.json
+++ b/apps/files_sharing/l10n/sl.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Čakanje na povezavo ...",
- "error" : "napaka",
- "finished" : "končano",
- "This will stop your current uploads." : "S tem bodo zaustavljena vsa pošiljanja v oblak.",
- "Move or copy" : "Premakni ali kopiraj",
- "Download" : "Prejmi",
- "Delete" : "Izbriši",
- "You can upload into this folder" : "V to mapo je dovoljeno pošiljati datoteke",
- "Terms of service" : "Pogoji uporabe storitve",
- "Show list view" : "Pokaži seznamski pogled",
- "Show grid view" : "Pokaži mrežni pogled",
- "No compatible server found at {remote}" : "Skladnega strežnika na {remote} ni mogoče najti",
- "Invalid server URL" : "Neveljaven naslov URL strežnika",
- "Failed to add the public link to your Nextcloud" : "Dodajanje javne povezave v oblak je spodletelo.",
"File shares" : "Datoteke v souporabi",
"Downloaded via public link" : "Prejeto po javni povezavi",
"Downloaded by {email}" : "Prejeto po {email}",
@@ -68,7 +54,7 @@
"Share for file {file} expired" : "Souporaba datoteke {file} je potekla",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Datoteko oziroma mapo v souporabi po elektronski pošti oziroma javni povezavi je uporabnik <strong>prejel na svoj krajevni disk</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Datoteka ali mapa je bila dodana v souporabo na <strong>drugem strežniku</strong>",
- "Files" : "Datoteke",
+ "Sharing" : "Souporaba",
"A file or folder has been <strong>shared</strong>" : "Za datoteko ali mapo je omogočena <strong>souporaba</strong>",
"Shared link" : "Povezava do mesta souporabe",
"Wrong share ID, share does not exist" : "Napačen ID mesta souporabe; mesto ne obstaja!",
@@ -76,30 +62,31 @@
"Please specify a file or folder path" : "Določiti je treba datoteko ali pot do mape",
"Wrong path, file/folder does not exist" : "Napačna pot; datoteka ali mapa ne obstaja",
"Could not create share" : "Mesta souporabe ni mogoče ustvariti",
- "Invalid permissions" : "Neustrezna dovoljenja",
- "Invalid date, date format must be YYYY-MM-DD" : "Neveljaven zapis časa; biti mora v zapisu YYYY-MM-DD",
+ "Please specify a valid account to share with" : "Navesti je treba veljaven račun za omogočanje souporabe",
"Group sharing is disabled by the administrator" : "Skupinska souporaba je skrbniško onemogočena",
"Please specify a valid group" : "Navesti je treba veljavno skupino",
"Public link sharing is disabled by the administrator" : "Souporaba z uporabo javne povezave je skrbniško onemogočena",
- "Public upload disabled by the administrator" : "Javno pošiljanje v oblak je skrbniško onemogočeno",
- "Public upload is only possible for publicly shared folders" : "Javno pošiljanje v oblak je mogoče le za mape v javni skupni rabi.",
+ "Please specify a valid email address" : "Navesti je treba veljaven elektronski naslov",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Souporaba %s s pošiljanjem gesla prek programa Nextcloud Talk je spodletela, ker program Talk ni omogočen.",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Souporaba %1$s je spodletela, ker ozadnji program ne omogoča souporabe prek vrste %2$s.",
+ "Please specify a valid federated account ID" : "Navesti je treba veljaven ID zveznega računa",
"Please specify a valid federated group ID" : "Navesti je treba veljaven ID zvezne skupine",
- "You cannot share to a Circle if the app is not enabled" : "Ni mogoče odobriti souporabe s Krogom, če program ni omogočen",
- "Please specify a valid circle" : "Določite veljaven krog",
"Sharing %s failed because the back end does not support room shares" : "Souporaba %s je spodletela, ker sistem ne dovoli souporabe znotraj posameznih sob",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Souporaba %s je spodletela, ker sistem ne podpira souporabe ScienceMesh",
"Unknown share type" : "Neznana vrsta mesta souporabe",
"Not a directory" : "Predmet ni mapa",
"Could not lock node" : "Vozlišča ni mogoče zakleniti",
+ "Public upload is only possible for publicly shared folders" : "Javno pošiljanje v oblak je mogoče le za mape v javni skupni rabi.",
+ "Share must at least have READ or CREATE permissions" : "Mestu souporabe mora biti dodeljeno vsaj dovoljenje BRANJE in USTVARJANJE",
+ "Public upload disabled by the administrator" : "Javno pošiljanje v oblak je skrbniško onemogočeno",
"Could not lock path" : "Poti ni mogoče zakleniti",
+ "You are not allowed to edit incoming shares" : "Ni ustreznih dovoljenj za urejanje dodeljenih mest souporabe",
"Wrong or no update parameter given" : "Parameter posodobitve ni podan, ali pa je navedena napačna vrednost",
- "Share must at least have READ or CREATE permissions" : "Mestu souporabe mora biti dodeljeno vsaj dovoljenje BRANJE in USTVARJANJE",
+ "Wrong password" : "Napačno geslo",
"shared by %s" : "souporaba: %s",
- "Download all files" : "Prejmi vse datoteke",
- "Direct link" : "Neposredna povezava",
+ "Download" : "Prejmi",
"Add to your %s" : "Dodaj v %s",
+ "Direct link" : "Neposredna povezava",
"Share API is disabled" : "Vmesnik API za souporabo je onemogočen",
"File sharing" : "Souporaba datotek",
"Share will expire tomorrow" : "Souporaba bo jutri pretekla",
@@ -108,14 +95,46 @@
"You received {share} to group {group} as a share by {user}" : "{user} vam omogoča souporabo {share} prek skupine {group}",
"Accept" : "Sprejmi",
"Decline" : "Zavrni",
- "Sharing" : "Souporaba",
+ "People" : "Osebe",
+ "Expiration date" : "Datum preteka",
+ "Select a date" : "Izbor datuma",
+ "Set a password" : "Nastavi geslo",
+ "Password" : "Geslo",
+ "Enter a valid password" : "Vpisati je treba veljavno geslo",
+ "Generate a new password" : "Ustvari novo geslo",
+ "Your administrator has enforced a password protection." : "Skrbnik zahteva uporabo zaščite z geslom.",
+ "Link copied" : "Povezava je kopirana",
+ "Email already added" : "Elektronski naslov je že dodan",
+ "Invalid email address" : "Vpisan je neveljaven elektronski naslov",
+ "Share link" : "Povezava za souporabo",
+ "Copy" : "Kopiraj",
+ "Send link via email" : "Pošlji povezavo po elektronski pošti",
+ "Remove email" : "Odstrani elektronski naslov",
+ "Select a destination" : "Izbor cilja",
+ "Select" : "Izbor",
+ "Where should these files go?" : "Kam želite poslati te datoteke?",
+ "Upload destination" : "Mesto pošiljanja",
+ "Revert to default" : "Povrni na privzeto",
+ "The uploaded files are visible only to you unless you choose to share them." : "V oblak poslane datoteke so vidne le vam, dokler jih ne omogočite v souporabo.",
+ "Add a note" : "Dodaj opombo",
+ "Note for recipient" : "Opomba za prejemnika",
+ "Add a note to help people understand what you are requesting." : "Dodajte opombo, ki bo prejemnikom pomagala razumeti, kaj od njih zahtevate.",
+ "Close" : "Zapri",
+ "File request created" : "Zahteva za datoteko je ustvarjena",
+ "Error creating the share: {errorMessage}" : "Napaka pri ustvarjanju mesta souporabe: {errorMessage}",
+ "Error creating the share" : "Napaka ustvarjanja mesta souporabe",
+ "Error sending emails" : "Prišlo je do napake med pošiljanjem elektronskih sporočil",
+ "Create a file request" : "Ustvari zahtevo za datoteko",
+ "Previous step" : "Predhodni korak",
+ "Cancel" : "Prekliči",
+ "Continue" : "Nadaljuj",
"Error while toggling options" : "Prišlo je do napake med preklapljanjem možnosti",
- "Set default folder for accepted shares" : "Izbor privzete mape za sprejemanje map v souporabi",
- "Reset" : "Ponastavi",
- "Reset folder to system default" : "Ponastavi mapo na privzete sistemske vrednosti",
"Choose a default folder for accepted shares" : "Izbor privzete mape za sprejemanje map v souporabi",
"Invalid path selected" : "Izbrana je neveljavna pot",
"Unknown error" : "Neznana napaka",
+ "Set default folder for accepted shares" : "Izbor privzete mape za sprejemanje map v souporabi",
+ "Reset" : "Ponastavi",
+ "Reset folder to system default" : "Ponastavi mapo na privzete sistemske vrednosti",
"group" : "skupina",
"conversation" : "pogovor",
"remote" : "oddaljeno",
@@ -127,105 +146,130 @@
"Added by {initiator}" : "Dodano: {initiator}",
"Via “{folder}”" : "Prek mape »{folder}«",
"Unshare" : "Prekini souporabo",
- "Internal link" : "Notranja povezava",
"Cannot copy, please copy the link manually" : "Povezave ni mogoče kopirati. Storite to ročno.",
- "Copy internal link to clipboard" : "Kopiraj notranjo povezavo v odložišče",
- "Link copied" : "Povezava je kopirana",
- "Please enter the following required information before creating the share" : "Vpisati je treba nekatere podrobnosti, preden je mogoče ustvariti mesto souporabe",
- "Password protection (enforced)" : "Zaščita z geslom (vsiljena)",
- "Password protection" : "Zaščita z geslom",
- "Enter a password" : "Vpis gesla",
- "Expiration date (enforced)" : "Datum preteka (vsiljeno)",
- "Enter a date" : "Vpis datuma ...",
- "Create share" : "Ustvari predmet souporabe",
- "Cancel" : "Prekliči",
- "Add another link" : "Dodaj novo povezavo",
- "Create a new share link" : "Ustvari novo povezavo za souporabo",
+ "Copy internal link" : "Kopiraj krajevno povezavo",
+ "Internal link" : "Notranja povezava",
"Shared via link by {initiator}" : "{initiator} omogoči souporabo prek povezave",
"Mail share ({label})" : "Souporaba prek elektronske pošte ({label})",
"Share link ({label})" : "Souporaba povezave ({label})",
"Share link ({index})" : "Souporaba povezave ({index})",
- "Share link" : "Povezava za souporabo",
+ "Create public link" : "Ustvari javno povezavo",
"Actions for \"{title}\"" : "Dejanja za »{title}«",
- "Copy public link of \"{title}\" to clipboard" : "Kopiraj javno povezavo do mape »{title}« v odložišče",
"Error, please enter proper password and/or expiration date" : "Napaka. Vpisati je treba pravo geslo ali datum preteka",
"Link share created" : "Povezava do mesta souporabe je ustvarjena",
"Error while creating the share" : "Napaka ustvarjanja mesta souporabe",
+ "Please enter the following required information before creating the share" : "Vpisati je treba nekatere podrobnosti, preden je mogoče ustvariti mesto souporabe",
+ "Password protection (enforced)" : "Zaščita z geslom (vsiljena)",
+ "Password protection" : "Zaščita z geslom",
+ "Enter a password" : "Vpis gesla",
+ "Create share" : "Ustvari predmet souporabe",
+ "Customize link" : "Prilagodi povezavo",
+ "Generate QR code" : "Ustvari kodo QR",
+ "Add another link" : "Dodaj novo povezavo",
+ "Create a new share link" : "Ustvari novo povezavo za souporabo",
"View only" : "Le ogled",
"Can edit" : "Lahko ureja",
- "File drop" : "Poteg datotek",
"Custom permissions" : "Dovoljenja po meri",
- "Search for share recipients" : "Iskanje prejemnikov mesta souporabe",
- "No recommendations. Start typing." : "Ni priporočil; začnite vpisovati",
"Resharing is not allowed" : "Nadaljnja souporaba ni dovoljena",
"Name or email …" : "Ime ali elektronski naslov ...",
"Name, email, or Federated Cloud ID …" : "Ime, elektronski naslov, ali ID zveznega oblaka ...",
"Searching …" : "Poteka iskanje ...",
"No elements found." : "Ni najdenih predmetov",
- "Search globally" : "Splošno iskanje",
+ "Search everywhere" : "Išči povsod",
"Guest" : "Gost",
"Group" : "Skupina",
"Email" : "Elektronski naslov",
+ "Team" : "Skupina",
"Talk conversation" : "Pogovor Talk",
"Deck board" : "Zbirka Deck",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "na strežniku {server}",
+ "Note:" : "Opomba:",
+ "File drop" : "Poteg datotek v mapo",
+ "Terms of service" : "Pogoji uporabe storitve",
+ "Read" : "Branje",
+ "Create" : "Ustvari",
+ "Edit" : "Uredi",
+ "Share" : "Souporaba",
+ "Delete" : "Izbriši",
"Allow upload and editing" : "Dovoli pošiljanje in urejanje",
"Allow editing" : "Dovoli urejanje",
+ "Upload only" : "Le pošiljanje",
"Advanced settings" : "Napredne nastavitve",
"Share label" : "Naziv mesta souporabe",
- "Password" : "Geslo",
+ "Set password" : "Nastavi geslo",
"Password expires {passwordExpirationTime}" : "Geslo preteče {passwordExpirationTime}",
"Password expired" : "Geslo je preteklo",
"Video verification" : "Video overitev",
+ "Expiration date (enforced)" : "Datum preteka (vsiljeno)",
"Set expiration date" : "Nastavi datum preteka",
- "Expiration date" : "Datum preteka",
"Hide download" : "Skrij prejem",
- "Allow download" : "Dovoli prejem datotek",
"Note to recipient" : "Sporočilo za prejemnika",
"Enter a note for the share recipient" : "Vpišite opombo za prejemnika",
- "Read" : "Branje",
- "Create" : "Ustvari",
- "Edit" : "Uredi",
- "Share" : "·Souporaba·",
+ "Delete share" : "Izbriši mesto souporabe",
"Others with access" : "Drugi z dostopom",
"Toggle list of others with access to this directory" : "Preklopi seznam drugih z dostopom do te mape",
"Toggle list of others with access to this file" : "Preklopi seznam drugih z dostopom do te datoteke",
"Unable to fetch inherited shares" : "Ni mogoče pridobiti podedovanih mest souporabe",
+ "Shares" : "V souporabi",
"Unable to load the shares list" : "Ni mogoče naložiti seznama predmetov v souporabi",
"Expires {relativetime}" : "Preteče {relativetime}",
"this share just expired." : "to mesto souporabe je ravnokar preteklo.",
"Shared with you by {owner}" : "Souporabo omogoča {owner}",
+ "Link to a file" : "Povezava do datoteke",
"Open in Files" : "Odpri v mapi",
"Shared" : "V souporabi",
- "Link to a file" : "Povezava do datoteke",
- "Error creating the share: {errorMessage}" : "Napaka pri ustvarjanju mesta souporabe: {errorMessage}",
- "Error creating the share" : "Napaka ustvarjanja mesta souporabe",
+ "Shared multiple times with different people" : "V več souporabah z različnimi uporabniki",
+ "Sharing options" : "Možnosti souporabe",
+ "Shared with others" : "V souporabi z drugimi",
+ "Public share" : "Javna objava",
+ "No shares" : "Ni še vpisanih mest souporabe",
+ "Shared with you" : "V souporabi z vami",
+ "Nothing shared with you yet" : "Datotek drugih uporabnikov še ni v souporabi",
+ "Nothing shared yet" : "Souporabe datotek še niste omogočili",
+ "Shared by link" : "V souporabi s povezavo",
+ "No shared links" : "Ni povezav za souporabo",
+ "Deleted shares" : "Izbrisana mesta souporabe",
+ "No deleted shares" : "Ni izbrisanih povezav za souporabo.",
+ "Pending shares" : "Predmeti za souporabo na čakanju",
+ "No pending shares" : "Ni nobenega predmeta za souporabo na čakanju",
+ "Error deleting the share" : " Napaka brisanja mesta souporabe",
"Error updating the share: {errorMessage}" : "Napaka pri posodabljanju mesta souporabe: {errorMessage}",
"Error updating the share" : "Napaka posodabljanja mesta souporabe",
"File \"{path}\" has been unshared" : "Souporaba datoteke »{path}« je odstranjena",
"Folder \"{path}\" has been unshared" : "Souporaba mape »{path}« je odstranjena",
- "Share {propertyName} saved" : "Lastnost mesta souporabe {propertyName} je shranjena",
"Shared by" : "Souporabo omogoča",
"Shared with" : "V skupni rabi z uporabnikom",
"Password created successfully" : "Geslo je uspešno ustvarjeno",
"Error generating password from password policy" : "Napaka ustvarjanja gesla po določenih varnostnih pravilih",
- "Shared with you and the group {group} by {owner}" : "{user} omogoča vam in skupini {group} souporabo",
+ "Shared with you and the group {group} by {owner}" : "{owner} omogoča vam in skupini {group} souporabo",
"Shared with you and {circle} by {owner}" : "{owner} omogoči souporabo vam in članom kroga {circle}.",
"Shared with you and the conversation {conversation} by {owner}" : "{owner} omogoči souporabo vam in udeležencem pogovora {conversation}.",
"Shared with you in a conversation by {owner}" : "{owner} vam omogoči souporabo v pogovoru.",
- "Shares" : "‧ V Souporabi",
- "No shares" : "Ni še vpisanih mest souporabe",
- "Shared with you" : "V souporabi z vami",
- "Nothing shared with you yet" : "Datotek drugih uporabnikov še ni v souporabi",
- "Shared with others" : "V souporabi z drugimi",
- "Nothing shared yet" : "Souporabe datotek še niste omogočili",
- "Shared by link" : "V souporabi s povezavo",
- "No shared links" : "Ni povezav za souporabo",
- "Deleted shares" : "Izbrisana mesta souporabe",
- "No deleted shares" : "Ni izbrisanih povezav za souporabo.",
- "Pending shares" : "Predmeti za souporabo na čakanju",
- "No pending shares" : "Ni nobenega predmeta za souporabo na čakanju",
+ "Share not found" : "Mesta souporabe ni mogoče najti.",
+ "Back to %s" : "Nazaj na %s",
+ "Add to your Nextcloud" : "Dodaj v oblak Nextcloud",
+ "Waiting…" : "Čakanje na povezavo ...",
+ "error" : "napaka",
+ "finished" : "končano",
+ "This will stop your current uploads." : "S tem bodo zaustavljena vsa pošiljanja v oblak.",
+ "Move or copy" : "Premakni ali kopiraj",
+ "You can upload into this folder" : "V to mapo je dovoljeno pošiljati datoteke",
+ "Show list view" : "Pokaži seznamski pogled",
+ "Show grid view" : "Pokaži mrežni pogled",
+ "No compatible server found at {remote}" : "Skladnega strežnika na {remote} ni mogoče najti",
+ "Invalid server URL" : "Neveljaven naslov URL strežnika",
+ "Failed to add the public link to your Nextcloud" : "Dodajanje javne povezave v oblak je spodletelo.",
+ "Download all files" : "Prejmi vse datoteke",
+ "Link copied to clipboard" : "Povezava je kopirana v odložišče",
+ "_1 email address already added_::_{count} email addresses already added_" : ["{count} elektronski naslov je že dodan","{count} elektronska naslova sta že dodana","{count} elektronski naslovi so že dodani","{count} elektronskih naslovov je že dodanih"],
+ "Copy to clipboard" : "Kopiraj v odložišče",
+ "Copy internal link to clipboard" : "Kopiraj notranjo povezavo v odložišče",
+ "Copy public link of \"{title}\" to clipboard" : "Kopiraj javno povezavo do mape »{title}« v odložišče",
+ "Search globally" : "Splošno iskanje",
+ "Search for share recipients" : "Iskanje prejemnikov mesta souporabe",
+ "No recommendations. Start typing." : "Ni priporočil; začnite vpisovati",
+ "Enter your name" : "Vpišite ime",
"Share note" : "Omogoči souporabo zabeležke",
"Upload files to %s" : "Pošlji datoteke v račun %s",
"Note" : "Opomba",
@@ -233,40 +277,7 @@
"Uploading files" : "Pošiljanje datotek",
"Uploaded files:" : "Poslane datoteke:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "S pošiljanjem datotek v oblak sprejemate tudi %1$spogoje uporabe storitve%2$s.",
- "Add to your Nextcloud" : "Dodaj v oblak Nextcloud",
- "Files and folders others share with you will show up here" : "Datoteke in mape, katerih souporabo z vami omogočijo drugi, bodo zbrane na tem mestu.",
- "Files and folders you share will show up here" : "Datoteke in mape, ki ste jih označili za souporabo z drugimi, bodo zbrane na tem mestu.",
- "Files and folders you share by link will show up here" : "Datoteke in mape, ki ste jih označili za souporabo po povezavi, bodo zbrane na tem mestu.",
- "Shares you deleted will show up here" : "Izbrisana mesta souporabe prikazana na tem mestu.",
- "Shares you have received but not confirmed will show up here" : "To so mape in datoteke, ki ste jih že prejeli v souporabo, vendar ne tudi potrdili.",
- "Shares will show up here" : "Predmeti v souporabi bodo prikazani na tem mestu.",
- "Restore" : "Obnovi",
- "Something happened. Unable to restore the share." : "Prišlo je do napake. Ni mogoče obnoviti mesta souporabe.",
- "Something happened. Unable to accept the share." : "Prišlo je do napake. Ni mogoče sprejeti mesta souporabe.",
- "Something happened. Unable to reject the share." : "Prišlo je do napake. Ni mogoče zavrniti mesta souporabe.",
- "No expiration date set" : "Datum preteka ni določen",
- "Please specify a valid user" : "Navesti je treba veljavnega uporabnika.",
- "Please specify a valid federated user ID" : "Navesti je treba veljaven ID zveznega uporabnika",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Program omogoča uporabnikom souporabo in izmenjavo datotek v oblaku Nextcloud. Izbrana možnost omogoča skrbnikom izbor skupin, ki imajo dovoljenja za omogočanje souporabe znotraj oblaka. Če je omogočena tudi možnost souporabe prek povezave, je na voljo tudi zunanja povezava za zunanje uporabnike. Skrbniki lahko omogočijo tudi gesla, pretek povezave in objavljanje prek mobilnih naprav.\nOnemogočanje storitve odstrani vse datoteke in mape v souporabi, prav tako programe za usklajevanje in mobilne naprave. Več podrobnosti je na voljo v dokumentaciji Nextcloud.",
- "Accept user and group shares by default" : "Privzeto sprejmi uporabniško in skupinsko souporabo predmetov",
- "Read only" : "Le za branje",
- "File drop (upload only)" : "Povleci datoteke (samo nalaganje)",
- "Upload" : "Pošlji",
- "Bundled permissions" : "Paket dovoljenj",
- "Only works for users with access to this folder" : "Možnost deluje le za uporabnike, ki imajo dostop do te mape",
- "Only works for users with access to this file" : "Deluje le za uporabnike z dostopom do te datoteke",
- "Circle" : "Krog",
- "Update" : "Posodobi",
- "No other users with access found" : "Ni najdenih drugih uporabnikov z dostopom",
- "No entries found in this folder" : "V tej mapi ni najdenih predmetov.",
- "Name" : "Ime",
- "Share time" : "Čas souporabe",
- "Sorry, this link does not seem to work anymore." : "Kaže, da povezava ni več dejavna.",
- "Reasons might be:" : "Vzrok je lahko:",
- "the item was removed" : "predmet je odstranjen,",
- "the link expired" : "povezava je pretekla",
- "sharing is disabled" : "souporaba je onemogočena.",
- "For more info, please ask the person who sent this link." : "Za več podrobnosti stopite v stik s pošiljateljem te povezave.",
- "Share with" : "Omogoči souporabo …"
+ "Name" : "Ime podpisnika",
+ "Filename must not be empty." : "Ime datoteke ne sme biti prazno."
},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/sq.js b/apps/files_sharing/l10n/sq.js
deleted file mode 100644
index c56e46415d3..00000000000
--- a/apps/files_sharing/l10n/sq.js
+++ /dev/null
@@ -1,144 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Të ndara me ju",
- "Nothing shared with you yet" : "Ende pa ndarë gjë me ju",
- "Files and folders others share with you will show up here" : "Këtu do të shfaqen kartelat dhe dosjet që të jerët ndajnë me ju",
- "Shared with others" : "Të ndara me të tjerët",
- "Nothing shared yet" : "Ende pa ndarë gjë",
- "Files and folders you share will show up here" : "Këtu do të shfaqen kartelat dhe dosjet që ndani me të tjerët",
- "Shared by link" : "Të ndara me lidhje",
- "No shared links" : "Pa lidhje ndarjesh",
- "Files and folders you share by link will show up here" : "Këtu do të shfaqen kartelat dhe dosjet që ndani përmes lidhjesh",
- "Deleted shares" : "Fshi shpërndarjet",
- "Shares" : "Shpërndarje",
- "Restore" : "Rikthe",
- "error" : "gabim",
- "Download" : "Shkarko",
- "Delete" : "Delete",
- "You can upload into this folder" : "Mund të ngarkoni te kjo dosje",
- "Terms of service" : "Termat e shërbimit",
- "No compatible server found at {remote}" : "Asnjë server i pajtueshëm nuk është gjetur tek { }",
- "Invalid server URL" : "Server i pavlefshëm URL",
- "Failed to add the public link to your Nextcloud" : "Nuk arritët të shtoni ndërlidhjen publike tek Nextcloud juaj",
- "No expiration date set" : "Nuk është vendosur data e përfundimit",
- "Shared by" : "Ndarë nga",
- "File shares" : "Ndarja e skedarëve",
- "Downloaded via public link" : "Shkarkuar nga një link publik",
- "Downloaded by {email}" : "Shkarkuar nga {email}",
- "{file} downloaded via public link" : "{file} shkarkuar përmes një lidhjeje publike",
- "{email} downloaded {file}" : "{email} shkarkoi {file}",
- "Shared with group {group}" : "U nda me grupin {group}",
- "Removed share for group {group}" : "Hoqi ndarjen për grupin {group}",
- "{actor} shared with group {group}" : "{actor} u nda me grupin {group}",
- "{actor} removed share for group {group}" : "{actor} hoqi ndarjen për grupin {group}",
- "You shared {file} with group {group}" : "Ndatë {file} me grupin {group}",
- "You removed group {group} from {file}" : "Hoqët grupin {group} nga {file}",
- "{actor} shared {file} with group {group}" : "{actor} ndau {file} me grupin {group}",
- "{actor} removed group {group} from {file}" : "{actor} hoqi grupin {group} nga {file}",
- "Shared as public link" : "U nda si një lidhje publike",
- "Removed public link" : "Hoqi lidhje publike",
- "Public link expired" : "Lidhja publike skadoi",
- "{actor} shared as public link" : "{actor} u nda si një lidhje publike",
- "{actor} removed public link" : "{actor} hoqi lidhje publike",
- "Public link of {actor} expired" : "Lidhja publike e {actor} skadoi",
- "You shared {file} as public link" : "Ndatë {file} si një lidhje publike",
- "You removed public link for {file}" : "Hoqët lidhje publike për {file}",
- "Public link expired for {file}" : "Lidhja publike skadoi për {file}",
- "{actor} shared {file} as public link" : "{actor} u nda {file} si një lidhje publike",
- "{actor} removed public link for {file}" : "{actor} hoqi lidhje publike për {file}",
- "Public link of {actor} for {file} expired" : "Lidhja publike e {actor} për {file} ka skaduar",
- "{user} accepted the remote share" : "{user} pranoi ndarjen e largët",
- "{user} declined the remote share" : "{user} hodhi tej ndarjen e largët",
- "You received a new remote share {file} from {user}" : "Morët një ndarje të largët {file} nga {user}",
- "{user} accepted the remote share of {file}" : "{user} pranoi ndarjen e largët të {file}",
- "{user} declined the remote share of {file}" : "{user} hodhi tej ndarjen e largët të {file}",
- "{user} unshared {file} from you" : "{user} nuk ndau {file} nga ju",
- "Shared with {user}" : "Ndarë me {user}",
- "Removed share for {user}" : "Hoqi ndarjen për {user}",
- "{actor} shared with {user}" : "{aktori} ndau me {përdoruesin}",
- "{actor} removed share for {user}" : "{actor} hoqi ndarjen për {user}",
- "Shared by {actor}" : "U nda nga {actor}",
- "{actor} removed share" : "{actor} hoqi ndarjen",
- "You shared {file} with {user}" : "Ndatë {file} me {user}",
- "You removed {user} from {file}" : "Hoqët {user} nga {file}",
- "{actor} shared {file} with {user}" : "{aktori} ndau {skedarë} me {përdoruesin}",
- "{actor} removed {user} from {file}" : "{actor} hoqi {user} nga {file}",
- "{actor} shared {file} with you" : "{actor} ndau {skedarë} me ju",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Një skedar ose dosje e ndarë nga posta ose lidhja publike ishte <strong> shkarkuar</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Një kartelë ose dosje u nda prej një <strong>shërbyesi tjetër</strong>",
- "Files" : "Skedarët",
- "A file or folder has been <strong>shared</strong>" : "U <strong>nda me të tjerë</strong> një kartelë ose dosje",
- "Could not delete share" : "Ndarja s’u fshi dot",
- "Please specify a file or folder path" : "Ju lutemi, tregoni një shteg kartele ose dosjeje",
- "Could not create share" : "Ndarja nuk u krijua dot",
- "Please specify a valid user" : "Ju lutemi, tregoni një përdorues të vlefshëm",
- "Group sharing is disabled by the administrator" : "Ndarja në grup është çaktivizuar nga përgjegjësi",
- "Please specify a valid group" : "Ju lutemi, tregoni një grup të vlefshëm",
- "Public link sharing is disabled by the administrator" : "Ndarja e lidhjeve publike është çaktivizuar nga përgjegjësi",
- "Public upload disabled by the administrator" : "Ngarkimi publik është çaktivizuar nga përgjegjësi",
- "Public upload is only possible for publicly shared folders" : "Ngarkimi publik është i mundshëm vetëm për dosje të ndara publikisht",
- "Invalid date, date format must be YYYY-MM-DD" : "Datë e pavlefshme, formati i datës duhet të jetë VVVV-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "Nuk mund të shpërndani në një rreth nëse aplikacioni nuk është i aktivizuar",
- "Please specify a valid circle" : "Ju lutem specifikoni një rreth i vlefshëm",
- "Unknown share type" : "Lloj i panjohur ndarjesh",
- "Not a directory" : "S’është drejtori",
- "Could not lock path" : "S’u kyç dot shtegu",
- "Wrong or no update parameter given" : "Ose u dha parametër i gabuar përditësimesh, pse s’u dha fare ",
- "shared by %s" : "ndarë nga %s",
- "Direct link" : "Lidhje e drejtpërdrejtë",
- "Share API is disabled" : "API i ndarjeve është çaktivizuar",
- "File sharing" : "Shpërndarja e skedarëve",
- "Accept" : "Prano",
- "Sharing" : "Ndarje",
- "Reset" : "Rivendos",
- "Unknown error" : "Gabim i panjohur",
- "Allow editing" : "Lejo redaktimin",
- "Read only" : "Vetëm i lexueshëm",
- "Allow upload and editing" : "Lejo ngarkim dhe editim",
- "File drop (upload only)" : "Lësho skedar (vetëm ngarkim)",
- "Read" : "Lexoni",
- "Upload" : "Ngarkoni",
- "Edit" : "Përpuno",
- "Allow resharing" : "Lejo rindarje",
- "Set expiration date" : "Caktoni datë skadimi",
- "Note to recipient" : "Shënim për marrësin",
- "Unshare" : "Hiqe ndarjen",
- "group" : "grup",
- "conversation" : "bisedë",
- "remote" : "i largët",
- "guest" : "vizitor",
- "Only works for users with access to this folder" : "Punon vetëm për përdoruesit që kanë qasje në këtë dosje",
- "Link copied" : "Linku u kopjua",
- "Password protection" : "Password protection",
- "Enter a password" : "Fusni një fjalëkalim",
- "Cancel" : "Anullo",
- "Hide download" : "Fshih shkarkimin",
- "Password protect" : "Mbroje me fjalëkalim",
- "Share link" : "Share link",
- "Resharing is not allowed" : "Nuk lejohet rishperndarja",
- "Guest" : "I ftuar",
- "Group" : "Grup",
- "Email" : "Emaili",
- "Circle" : "Rreth",
- "Shared with you by {owner}" : "Ndarë me ju nga {owner}",
- "Shared" : "Ndarë",
- "Share" : "shpërndaj",
- "Shared with" : "Ndarë me",
- "Shared with you and the group {group} by {owner}" : "Ndarë me ju dhe me grupin {group} nga {owner}",
- "No entries found in this folder" : "S’u gjetën zëra në këtë dosje",
- "Name" : "Emër",
- "Share time" : "Kohë ndarjeje",
- "Expiration date" : "Datë skadimi",
- "Reasons might be:" : "Arsyet mund të jenë:",
- "the item was removed" : "objekti është hequr",
- "the link expired" : "lidhja ka skaduar",
- "sharing is disabled" : "ndarjet janë çaktivizuar",
- "For more info, please ask the person who sent this link." : "Për më shumë të dhëna, ju lutemi, pyetni personin që ju dërgoi këtë lidhje.",
- "Upload files to %s" : "Ngrako skedarët tek %s",
- "Note" : "Shënim",
- "Select or drop files" : "Përzgjidh ose hiq skedarët",
- "Uploaded files:" : "Skedarët e ngarkuar:",
- "Add to your Nextcloud" : "Shtojeni tek Nextcloud-i juaj"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/sq.json b/apps/files_sharing/l10n/sq.json
deleted file mode 100644
index 4dda374ab87..00000000000
--- a/apps/files_sharing/l10n/sq.json
+++ /dev/null
@@ -1,142 +0,0 @@
-{ "translations": {
- "Shared with you" : "Të ndara me ju",
- "Nothing shared with you yet" : "Ende pa ndarë gjë me ju",
- "Files and folders others share with you will show up here" : "Këtu do të shfaqen kartelat dhe dosjet që të jerët ndajnë me ju",
- "Shared with others" : "Të ndara me të tjerët",
- "Nothing shared yet" : "Ende pa ndarë gjë",
- "Files and folders you share will show up here" : "Këtu do të shfaqen kartelat dhe dosjet që ndani me të tjerët",
- "Shared by link" : "Të ndara me lidhje",
- "No shared links" : "Pa lidhje ndarjesh",
- "Files and folders you share by link will show up here" : "Këtu do të shfaqen kartelat dhe dosjet që ndani përmes lidhjesh",
- "Deleted shares" : "Fshi shpërndarjet",
- "Shares" : "Shpërndarje",
- "Restore" : "Rikthe",
- "error" : "gabim",
- "Download" : "Shkarko",
- "Delete" : "Delete",
- "You can upload into this folder" : "Mund të ngarkoni te kjo dosje",
- "Terms of service" : "Termat e shërbimit",
- "No compatible server found at {remote}" : "Asnjë server i pajtueshëm nuk është gjetur tek { }",
- "Invalid server URL" : "Server i pavlefshëm URL",
- "Failed to add the public link to your Nextcloud" : "Nuk arritët të shtoni ndërlidhjen publike tek Nextcloud juaj",
- "No expiration date set" : "Nuk është vendosur data e përfundimit",
- "Shared by" : "Ndarë nga",
- "File shares" : "Ndarja e skedarëve",
- "Downloaded via public link" : "Shkarkuar nga një link publik",
- "Downloaded by {email}" : "Shkarkuar nga {email}",
- "{file} downloaded via public link" : "{file} shkarkuar përmes një lidhjeje publike",
- "{email} downloaded {file}" : "{email} shkarkoi {file}",
- "Shared with group {group}" : "U nda me grupin {group}",
- "Removed share for group {group}" : "Hoqi ndarjen për grupin {group}",
- "{actor} shared with group {group}" : "{actor} u nda me grupin {group}",
- "{actor} removed share for group {group}" : "{actor} hoqi ndarjen për grupin {group}",
- "You shared {file} with group {group}" : "Ndatë {file} me grupin {group}",
- "You removed group {group} from {file}" : "Hoqët grupin {group} nga {file}",
- "{actor} shared {file} with group {group}" : "{actor} ndau {file} me grupin {group}",
- "{actor} removed group {group} from {file}" : "{actor} hoqi grupin {group} nga {file}",
- "Shared as public link" : "U nda si një lidhje publike",
- "Removed public link" : "Hoqi lidhje publike",
- "Public link expired" : "Lidhja publike skadoi",
- "{actor} shared as public link" : "{actor} u nda si një lidhje publike",
- "{actor} removed public link" : "{actor} hoqi lidhje publike",
- "Public link of {actor} expired" : "Lidhja publike e {actor} skadoi",
- "You shared {file} as public link" : "Ndatë {file} si një lidhje publike",
- "You removed public link for {file}" : "Hoqët lidhje publike për {file}",
- "Public link expired for {file}" : "Lidhja publike skadoi për {file}",
- "{actor} shared {file} as public link" : "{actor} u nda {file} si një lidhje publike",
- "{actor} removed public link for {file}" : "{actor} hoqi lidhje publike për {file}",
- "Public link of {actor} for {file} expired" : "Lidhja publike e {actor} për {file} ka skaduar",
- "{user} accepted the remote share" : "{user} pranoi ndarjen e largët",
- "{user} declined the remote share" : "{user} hodhi tej ndarjen e largët",
- "You received a new remote share {file} from {user}" : "Morët një ndarje të largët {file} nga {user}",
- "{user} accepted the remote share of {file}" : "{user} pranoi ndarjen e largët të {file}",
- "{user} declined the remote share of {file}" : "{user} hodhi tej ndarjen e largët të {file}",
- "{user} unshared {file} from you" : "{user} nuk ndau {file} nga ju",
- "Shared with {user}" : "Ndarë me {user}",
- "Removed share for {user}" : "Hoqi ndarjen për {user}",
- "{actor} shared with {user}" : "{aktori} ndau me {përdoruesin}",
- "{actor} removed share for {user}" : "{actor} hoqi ndarjen për {user}",
- "Shared by {actor}" : "U nda nga {actor}",
- "{actor} removed share" : "{actor} hoqi ndarjen",
- "You shared {file} with {user}" : "Ndatë {file} me {user}",
- "You removed {user} from {file}" : "Hoqët {user} nga {file}",
- "{actor} shared {file} with {user}" : "{aktori} ndau {skedarë} me {përdoruesin}",
- "{actor} removed {user} from {file}" : "{actor} hoqi {user} nga {file}",
- "{actor} shared {file} with you" : "{actor} ndau {skedarë} me ju",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Një skedar ose dosje e ndarë nga posta ose lidhja publike ishte <strong> shkarkuar</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Një kartelë ose dosje u nda prej një <strong>shërbyesi tjetër</strong>",
- "Files" : "Skedarët",
- "A file or folder has been <strong>shared</strong>" : "U <strong>nda me të tjerë</strong> një kartelë ose dosje",
- "Could not delete share" : "Ndarja s’u fshi dot",
- "Please specify a file or folder path" : "Ju lutemi, tregoni një shteg kartele ose dosjeje",
- "Could not create share" : "Ndarja nuk u krijua dot",
- "Please specify a valid user" : "Ju lutemi, tregoni një përdorues të vlefshëm",
- "Group sharing is disabled by the administrator" : "Ndarja në grup është çaktivizuar nga përgjegjësi",
- "Please specify a valid group" : "Ju lutemi, tregoni një grup të vlefshëm",
- "Public link sharing is disabled by the administrator" : "Ndarja e lidhjeve publike është çaktivizuar nga përgjegjësi",
- "Public upload disabled by the administrator" : "Ngarkimi publik është çaktivizuar nga përgjegjësi",
- "Public upload is only possible for publicly shared folders" : "Ngarkimi publik është i mundshëm vetëm për dosje të ndara publikisht",
- "Invalid date, date format must be YYYY-MM-DD" : "Datë e pavlefshme, formati i datës duhet të jetë VVVV-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "Nuk mund të shpërndani në një rreth nëse aplikacioni nuk është i aktivizuar",
- "Please specify a valid circle" : "Ju lutem specifikoni një rreth i vlefshëm",
- "Unknown share type" : "Lloj i panjohur ndarjesh",
- "Not a directory" : "S’është drejtori",
- "Could not lock path" : "S’u kyç dot shtegu",
- "Wrong or no update parameter given" : "Ose u dha parametër i gabuar përditësimesh, pse s’u dha fare ",
- "shared by %s" : "ndarë nga %s",
- "Direct link" : "Lidhje e drejtpërdrejtë",
- "Share API is disabled" : "API i ndarjeve është çaktivizuar",
- "File sharing" : "Shpërndarja e skedarëve",
- "Accept" : "Prano",
- "Sharing" : "Ndarje",
- "Reset" : "Rivendos",
- "Unknown error" : "Gabim i panjohur",
- "Allow editing" : "Lejo redaktimin",
- "Read only" : "Vetëm i lexueshëm",
- "Allow upload and editing" : "Lejo ngarkim dhe editim",
- "File drop (upload only)" : "Lësho skedar (vetëm ngarkim)",
- "Read" : "Lexoni",
- "Upload" : "Ngarkoni",
- "Edit" : "Përpuno",
- "Allow resharing" : "Lejo rindarje",
- "Set expiration date" : "Caktoni datë skadimi",
- "Note to recipient" : "Shënim për marrësin",
- "Unshare" : "Hiqe ndarjen",
- "group" : "grup",
- "conversation" : "bisedë",
- "remote" : "i largët",
- "guest" : "vizitor",
- "Only works for users with access to this folder" : "Punon vetëm për përdoruesit që kanë qasje në këtë dosje",
- "Link copied" : "Linku u kopjua",
- "Password protection" : "Password protection",
- "Enter a password" : "Fusni një fjalëkalim",
- "Cancel" : "Anullo",
- "Hide download" : "Fshih shkarkimin",
- "Password protect" : "Mbroje me fjalëkalim",
- "Share link" : "Share link",
- "Resharing is not allowed" : "Nuk lejohet rishperndarja",
- "Guest" : "I ftuar",
- "Group" : "Grup",
- "Email" : "Emaili",
- "Circle" : "Rreth",
- "Shared with you by {owner}" : "Ndarë me ju nga {owner}",
- "Shared" : "Ndarë",
- "Share" : "shpërndaj",
- "Shared with" : "Ndarë me",
- "Shared with you and the group {group} by {owner}" : "Ndarë me ju dhe me grupin {group} nga {owner}",
- "No entries found in this folder" : "S’u gjetën zëra në këtë dosje",
- "Name" : "Emër",
- "Share time" : "Kohë ndarjeje",
- "Expiration date" : "Datë skadimi",
- "Reasons might be:" : "Arsyet mund të jenë:",
- "the item was removed" : "objekti është hequr",
- "the link expired" : "lidhja ka skaduar",
- "sharing is disabled" : "ndarjet janë çaktivizuar",
- "For more info, please ask the person who sent this link." : "Për më shumë të dhëna, ju lutemi, pyetni personin që ju dërgoi këtë lidhje.",
- "Upload files to %s" : "Ngrako skedarët tek %s",
- "Note" : "Shënim",
- "Select or drop files" : "Përzgjidh ose hiq skedarët",
- "Uploaded files:" : "Skedarët e ngarkuar:",
- "Add to your Nextcloud" : "Shtojeni tek Nextcloud-i juaj"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/sr.js b/apps/files_sharing/l10n/sr.js
index 615f396ba9c..a32961e5ab2 100644
--- a/apps/files_sharing/l10n/sr.js
+++ b/apps/files_sharing/l10n/sr.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Чекам…",
- "error" : "грешка",
- "finished" : "завршено",
- "This will stop your current uploads." : "Ово ће да прекине тренутна отпремања.",
- "Move or copy" : "Помери или копирај",
- "Download" : "Преузми",
- "Delete" : "Избриши",
- "You can upload into this folder" : "Можете да отпремате у ову фасциклу",
- "Terms of service" : "Услови коришћења",
- "Show list view" : "Prikaži prikaz liste",
- "Show grid view" : "Prikaži prikaz mreže",
- "No compatible server found at {remote}" : "Нема компатибилног сервера на {remote}",
- "Invalid server URL" : "Неисправна адреса сервера",
- "Failed to add the public link to your Nextcloud" : "Неуспело додавање јавне везе ка Вашем Некстклауду",
"File shares" : "Дељења фајлова",
"Downloaded via public link" : "Скинуто преко јавне везе",
"Downloaded by {email}" : "Скинуо {email}",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "Дељење фајла {file} са корисником {user} је истекло",
"Share for file {file} expired" : "Дељење фајла {file} је истекло",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Фајл или фасцикла подељена е-поштом су <strong>преузети</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Фајлови су <strong>отпремљени</strong> у фолдер подељен мејлом или јавним линком",
"A file or folder was shared from <strong>another server</strong>" : "Фајл или фасцикла су дељени са <strong>другог сервера</strong>",
- "Files" : "Фајлови",
+ "Sharing" : "Дељење",
"A file or folder has been <strong>shared</strong>" : "Фајл или фасцикла је <strong>дељен</strong>",
"Shared link" : "Подељена веза",
"Wrong share ID, share does not exist" : "Погрешан ID дељења, дељење не постоји",
@@ -78,34 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "Молимо одаберите путању до фајла или фасцикле",
"Wrong path, file/folder does not exist" : "Погрешна путања, фајл/фолдер не постоји",
"Could not create share" : "Не могу да направим дељење",
- "Invalid permissions" : "Неисправне дозволе",
- "Invalid date, date format must be YYYY-MM-DD" : "Неисправан датим, формат датума мора бити ГГГГ-ММ-ДД",
"Please specify a valid account to share with" : "Молимо вас да наведете исправни налог којем се дели",
"Group sharing is disabled by the administrator" : "Администратор је забранио дељење са групом",
"Please specify a valid group" : "Одаберите исправну групу",
"Public link sharing is disabled by the administrator" : "Администратор је забранио дељење јавном везом",
- "Public upload disabled by the administrator" : "Администратор је забранио отпремања са јавним приступом",
- "Public upload is only possible for publicly shared folders" : "Отпремања са јавним приступом су могућа само за јавно дељене фасцикле",
+ "Please specify a valid email address" : "Наведите исправну и-мејл адресу",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Дељење %s слањем лозинке преко Nextcloud Talk-а није успело пошто Nextcloud Talk није укључен",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Дељење %1$s није успело зато што позадина не дозвољава дељење које је типа %2$s",
"Please specify a valid federated account ID" : "Молимо вас да наведете исправни ID федерисаног налога",
"Please specify a valid federated group ID" : "Молимо вас да наведете исправни ID федерисане групе",
- "You cannot share to a Circle if the app is not enabled" : "Не можете делити са Круговима ако та апликација није укључена",
- "Please specify a valid circle" : "Одаберите исправан круг",
+ "You cannot share to a Team if the app is not enabled" : "Не можете делити са Тимом ако та апликација није укључена",
+ "Please specify a valid team" : "Изаберите исправни тим",
"Sharing %s failed because the back end does not support room shares" : "Није успело дељење %s зато што позадински мотор дељења не подржава дељења у соби",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Дељење %s није успело јер позадински механизам не подржава ScienceMesh дељења",
"Unknown share type" : "Непознат тип дељења",
"Not a directory" : "Није фасцикла",
"Could not lock node" : "Не могу да закључам чвор",
- "Could not lock path" : "Не могу да закључам путању",
- "Wrong or no update parameter given" : "Погрешан или ненаведен параметер",
+ "Public upload is only possible for publicly shared folders" : "Отпремања са јавним приступом су могућа само за јавно дељене фасцикле",
"Share must at least have READ or CREATE permissions" : "Deljenje mora da ima bar dozvole ČITANJE ili KREIRANJE",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Deljenje mora da ima dozvolu za ČITANJE ako je podešena dozvola UPDATE ili DELETE",
+ "Public upload disabled by the administrator" : "Администратор је забранио отпремања са јавним приступом",
+ "Could not lock path" : "Не могу да закључам путању",
+ "no sharing rights on this item" : "нема права за дељење ове ставке",
+ "You are not allowed to edit incoming shares" : "Није вам дозвољено да уређујете долазна дељења",
+ "Wrong or no update parameter given" : "Погрешан или ненаведен параметер",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "„Slanje lozinke putem Nextcloud Talk-a“ za deljenje datoteke ili fascikle nije uspelo jer Nextcloud Talk nije omogućen.",
+ "Custom share link tokens have been disabled by the administrator" : "Администратор је забранио произвољне жетоне линка дељења",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Жетони морају да садрже бар један карактер и смеју да садрже само слова, бројеве или цртицу",
+ "Invalid date. Format must be YYYY-MM-DD" : "Неисправан датум. Формат датума мора да буде ГГГГ-ММ-ДД",
+ "No sharing rights on this item" : "Нема права за дељење ове ставке",
+ "Invalid share attributes provided: \"%s\"" : "Наведени су неисправни атрибути дељења: „%s”",
+ "You are not allowed to send mail notifications" : "Није вам дозвољено да шаљете обавештења поштом",
+ "No mail notification configured for this share type" : "За овај тип дељења није подешено слање обавештења поштом",
+ "Wrong password" : "Погрешна лозинка",
+ "Error while sending mail notification" : "Грешка приликом слања обавештења поштом",
+ "Failed to generate a unique token" : "Није успело генерисање јединственог жетона",
+ "This share does not exist or is no longer available" : "Ово дељење не постоји или више није доступно",
"shared by %s" : "поделио %s",
- "Download all files" : "Преузми све фајлове",
- "Direct link" : "Директна веза",
+ "Download" : "Преузми",
"Add to your %s" : "Dodajte u svoj %s",
+ "Direct link" : "Директна веза",
"Share API is disabled" : "API за дељене је искључен",
"File sharing" : "Дељења фајлова",
"Share will expire tomorrow" : "Дељење истиче сутра",
@@ -114,70 +113,132 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Примили сте {share} за групу {group} као дељење од {user}",
"Accept" : "Прихвати",
"Decline" : "Одбиј",
+ "Remember to upload the files to %s" : "Не заборавите да отпремите фајлове на %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Подсећамо вас да још увек нисте отпремили ниједан фајл у дељени фолдер.",
+ "Open \"%s\"" : "Отвори „%s”",
"This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Ова апликација омогућава људима да деле фајлове унутар Nextcloud инстанце. Када се укључи, админ може да одабере које групе могу да деле фајлове. Ти људи затим могу да деле фолдере и фајлове са осталим налозима и групама унутар Nextcloud инстанце. Уз то, ако админ укључи и могућност дељења линка, за дељење са корисницима ван Nextcloud инстанце може да се употреби спољни линк. Админи такође могу да форсирају лозинке, датум истека и да омогуће дељење између сервера преко линкова дељења, као и дељење са мобилних уређаја.\nИскључивањем ове могућности искључује се дељење фајлова и фолдера и на серверу са свим примаоцима дељења, као и на клијентима за синхорнизацију и мобилним апликацијама. Више информација можете наћи у Nextcloud документацији.",
- "Sharing" : "Дељење",
- "Accept shares from other accounts and groups by default" : "Подразумевано прихвати дељења са осталих налога и група",
+ "People" : "Људи",
+ "Filter accounts" : "Филтрирај налоге",
+ "The request will expire on {date} at midnight and will be password protected." : "Захтев ће истећи дана {date} у поноћ и биће заштићен лозинком.",
+ "The request will expire on {date} at midnight." : "Захтев ће истећи дана {date} у поноћ.",
+ "The request will be password protected." : "Захтев ће бити заштићен лозинком.",
+ "When should the request expire?" : "Када би захтев требало да истекне?",
+ "Set a submission expiration date" : "Постави датум истека за поднесак",
+ "Expiration date" : "Датум истека",
+ "Select a date" : "Изаберите датум",
+ "Your administrator has enforced a {count} days expiration policy." : "Ваш администратор је поставио полису за {count} дана до престанка важења.",
+ "What password should be used for the request?" : "Која лозинка би требало да се употреби за захтев?",
+ "Set a password" : "Постави лозинку",
+ "Password" : "Лозинка",
+ "Enter a valid password" : "Унесите исправну лозинку",
+ "Generate a new password" : "Генериши нову лозинку",
+ "Your administrator has enforced a password protection." : "Ваш администратор је поставио обавезну заштиту лозинком",
+ "Automatically copying failed, please copy the share link manually" : "Није успело аутоматско копирање. молимо вас да линк копирате ручно",
+ "Link copied" : "Веза ископирана",
+ "Email already added" : "И-мејл је већ додат",
+ "Invalid email address" : "Неисправна и-мејл адреса",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Следећа и-мејл адреса није исправна: {emails}","Следеће и-мејл адресе нису исправне: {emails}","Следеће и-мејл адресе нису исправне: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} и-мејл адреса је већ додата","{count} и-мејл адресе су већ додате","{count} и-мејл адреса је већ додато"],
+ "_{count} email address added_::_{count} email addresses added_" : ["Додата је {count} и-мејл адреса","Додате су {count} и-мејл адресе","Додато је {count} и-мејл адреса"],
+ "You can now share the link below to allow people to upload files to your directory." : "Сада линк приказан испод можете да поделите људима и они ће моћи да отпреме фајлове у ваш директоријум.",
+ "Share link" : "Веза дељења",
+ "Copy" : "Копирај",
+ "Send link via email" : "Пошаљи линк и-мејлом",
+ "Enter an email address or paste a list" : "Унесите и-мејл адресу или налепите листу",
+ "Remove email" : "Уклони и-мејл",
+ "Select a destination" : "Изаберите одредиште",
+ "Select" : "Обележи",
+ "What are you requesting?" : "Шта захтевате?",
+ "Request subject" : "Тема захтева",
+ "Birthday party photos, History assignment…" : "Слике за рођенданске забаве, рад из историје…",
+ "Where should these files go?" : "Где би ови фајлови требало да иду?",
+ "Upload destination" : "Одредиште отпремања",
+ "Revert to default" : "Ресетуј на подразумевано",
+ "The uploaded files are visible only to you unless you choose to share them." : "Отпремљене фајлове можете да видите само ви, осим ако не одлучите да их поделите.",
+ "Add a note" : "Додај напомену",
+ "Note for recipient" : "Напомена за примаоца",
+ "Add a note to help people understand what you are requesting." : "Додајте напомену како би људи схватили шта захтевате.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Можете да додате линкове, датум или било које друге информације које ће примаоцима помоћи да схвате шта тражите.",
+ "Close" : "Затвори",
+ "_Send email and close_::_Send {count} emails and close_" : ["Пошаљи е-мејл и затвори","Пошаљи {count} е-мејла и затвори","Пошаљи {count}е-мејлова и затвори"],
+ "Please select a folder, you cannot share the root directory." : "Молимо вас да изаберете фолдер, не можете да поделите корени директоријум.",
+ "File request created" : "Креиран је захтев за фајл",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Креиран је захтев за фајл и послата је и-мејл порука","Креиран је захтев за фајл и послате су {count} и-мејл поруке","Креиран је захтев за фајл и послато је {count} и-мејл порука"],
+ "Error creating the share: {errorMessage}" : "Greška pri pravljenju deljenja: {errorMessage}",
+ "Error creating the share" : "Грешка при прављењу дељења",
+ "Error sending emails: {errorMessage}" : "Грешка приликом слања и-мејл порука: {errorMessage}",
+ "Error sending emails" : "Грешка приликом слања и-мејл порука",
+ "Create a file request" : "Креирај захтев за фајл",
+ "Collect files from others even if they do not have an account." : "Прикупи фајлове од осталих чак и ако немају налог.",
+ "To ensure you can receive files, verify you have enough storage available." : "Да би били сигурни да можете примити фајлове, проверите да ли имате довољно празног простора.",
+ "File request" : "Захтев за фајл",
+ "Previous step" : "Претходни корак",
+ "Cancel" : "Одустани",
+ "Cancel the file request creation" : "Откажи креирање захтева за фајл",
+ "Close without sending emails" : "Затвори без слања и-мејл порука",
+ "Continue" : "Настави",
"Error while toggling options" : "Greška pri prebacivanju opcija",
- "Set default folder for accepted shares" : "Подесите подразумевани фолдер за прихваћена дељења",
- "Reset" : "Ресетуј",
- "Reset folder to system default" : "Vratite fasciklu na podrazumevane vrednosti sistema",
+ "Accept shares from other accounts and groups by default" : "Подразумевано прихвати дељења са осталих налога и група",
"Choose a default folder for accepted shares" : "Izaberite podrazumevani folder za prihvaćena deljenja",
"Invalid path selected" : "Одабрана неисправна путања",
"Unknown error" : "Непозната грешка",
- "Open Sharing Details" : "Отвори детаље дељења",
+ "Set default folder for accepted shares" : "Подесите подразумевани фолдер за прихваћена дељења",
+ "Reset" : "Ресетуј",
+ "Reset folder to system default" : "Vratite fasciklu na podrazumevane vrednosti sistema",
+ "Share expiration: {date}" : "Дељење истиче: {date} ",
+ "Share Expiration" : "Истицање дељења",
"group" : "група",
"conversation" : "разговор",
"remote" : "удаљени",
"remote group" : "удаљена група",
"guest" : "гост",
+ "by {initiator}" : "од {initiator}",
"Shared with the group {user} by {owner}" : "{owner} поделио са групом {user}",
"Shared with the conversation {user} by {owner}" : "{owner} поделио са разговором {user}",
"Shared with {user} by {owner}" : "{owner} поделио са корисником {user}",
+ "Open Sharing Details" : "Отвори детаље дељења",
"Added by {initiator}" : "Додао {initiator}",
"Via “{folder}”" : "Преко „{folder}“",
"Unshare" : "Укини дељење",
- "Internal link" : "Интерна веза",
"Cannot copy, please copy the link manually" : "Не могу да копирам, копирајте везу ручно",
- "Copy internal link to clipboard" : "Копирај интерни линк у клипборд",
- "Only works for people with access to this folder" : "Функсионише само за особе које имају приступ овом фолдеру",
- "Only works for people with access to this file" : "Функсионише само за особе које имају приступ овом фајлу",
- "Link copied" : "Веза ископирана",
- "Please enter the following required information before creating the share" : "Молимо унесите ове неопходне информације пре креирања дељења",
- "Password protection (enforced)" : "Захтевана заштита лозинком",
- "Password protection" : "Заштита лозинком",
- "Enter a password" : "Унесите лозинку",
- "Expiration date (enforced)" : "Захтевано постављање датума истека",
- "Enter a date" : "Унеси датум",
- "Create share" : "Kreirajte deljenje",
- "Cancel" : "Одустани",
- "Customize link" : "Прилагоди линк",
- "Generate QR code" : "Генериши QR кôд",
- "Add another link" : "Додај још једну везу",
- "Create a new share link" : "Направи нову везу дељења",
+ "Copy internal link" : "Копирај интерну везу",
+ "For people who already have access" : "Особе које већ имају приступ",
+ "Internal link" : "Интерна веза",
"{shareWith} by {initiator}" : "{shareWith} od {initiator}",
"Shared via link by {initiator}" : "{initiator} поделио преко везе",
+ "File request ({label})" : "Захтев за фајл ({label})",
"Mail share ({label})" : "Deljenje pošte ({label})",
"Share link ({label})" : "Подели везу ({label})",
+ "Mail share" : "Дељење и-мејлом",
"Share link ({index})" : "Дели линк ({index})",
- "Share link" : "Веза дељења",
+ "Create public link" : "Направи јавну везу",
"Actions for \"{title}\"" : "Акције за „{title}",
- "Copy public link of \"{title}\" to clipboard" : "Копирај јавни линк за „{title}” у клипборд",
"Error, please enter proper password and/or expiration date" : "Грешка, унесите исправну лозинку и/или датум истицања",
"Link share created" : "Креиран је линк за дељење",
"Error while creating the share" : "Грешка приликом креирања дељења",
+ "Please enter the following required information before creating the share" : "Молимо унесите ове неопходне информације пре креирања дељења",
+ "Password protection (enforced)" : "Захтевана заштита лозинком",
+ "Password protection" : "Заштита лозинком",
+ "Enter a password" : "Унесите лозинку",
+ "Enable link expiration (enforced)" : "Укључи рок важења линка (форсирано)",
+ "Enable link expiration" : "Укључи рок важења линка",
+ "Enter expiration date (enforced)" : "Унеси рок важења линка (форсирано)",
+ "Enter expiration date" : "Унеси датум истека",
+ "Create share" : "Kreirajte deljenje",
+ "Customize link" : "Прилагоди линк",
+ "Generate QR code" : "Генериши QR кôд",
+ "Add another link" : "Додај још једну везу",
+ "Create a new share link" : "Направи нову везу дељења",
"Quick share options, the current selected is \"{selectedOption}\"" : "Брзе опције дељења, тренутно је изабрана „{selectedOption}”",
"View only" : "Само преглед",
"Can edit" : "Може да уређује",
- "File drop" : "Место за упуштање фајлова",
"Custom permissions" : "Произвољне дозволе",
- "Search for share recipients" : "Претрага прималаца дељења",
- "No recommendations. Start typing." : "Нема препорука. Започните куцање.",
"Resharing is not allowed" : "Дељење даље није дозвољено",
"Name or email …" : "Име или адреса е-поште…",
"Name, email, or Federated Cloud ID …" : "Ime, imejl ili ID u federalnom oblaku…",
"Searching …" : "Тражим…",
"No elements found." : "Нема нађених елемената.",
- "Search globally" : "Претражите глобално",
+ "Search everywhere" : "Претражи свуда",
"Guest" : "Гост",
"Group" : "Група",
"Email" : "Е-пошта",
@@ -186,70 +247,89 @@ OC.L10N.register(
"Deck board" : "Табла Шпила",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "на серверу {server}",
+ "Enter external recipients" : "Унесите спољне примаоце",
+ "Search for internal recipients" : "Претрага спољних примаоца",
+ "Note from" : "Напомена од",
+ "Note:" : "Белешка:",
+ "File drop" : "Место за упуштање фајлова",
+ "Upload files to {foldername}." : "Отпреми фајлове у {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Отпремањем фајлова, слажете се са условима коришћења.",
+ "Successfully uploaded files" : "Фајлови су успешно отпремљени",
+ "View terms of service" : "Прикажи услове коришћења",
+ "Terms of service" : "Услови коришћења",
+ "Share with email {email}" : "Подели и-мејлом {email}",
+ "Share with group" : "Подели са групом",
+ "Share in conversation" : "Подели у разговор",
+ "Share with {user} on remote server {server}" : "Дели са {user} на удаљеном серверу {server}",
+ "Share with remote group" : "Подели са удаљеном групом",
+ "Share with guest" : "Подели са гостом",
+ "Update share" : "Ажурирај дељење",
+ "Save share" : "Сачувај дељење",
+ "Read" : "Читање",
+ "Create" : "Креирање",
+ "Edit" : "Измени",
+ "Share" : "Подели",
+ "Delete" : "Избриши",
+ "Password field cannot be empty" : "Поље лозинке не може да буде празно",
+ "Replace current password" : "Замени текућу лозинку",
+ "Failed to generate a new token" : "Није успело генерисање новог жетона",
"Allow upload and editing" : "Дозволи отпремање и уређивање",
"Allow editing" : "Дозволи уређивање",
"Upload only" : "Само отпремање",
"Advanced settings" : "Напредне поставке",
"Share label" : "Подели ознаки",
+ "Share link token" : "Жетон линка дељења",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Поставља жетон јавног линка дељења на нешто што се лако памти или генерише нови жетон. За дељења која садрже осетљиве информације се не препоручује употреба жетона који се лако погађа.",
+ "Generating…" : "Генерише се…",
+ "Generate new token" : "Генериши нови жетон",
"Set password" : "Постави лозинку",
- "Password" : "Лозинка",
- "Password expires {passwordExpirationTime}" : "Lozinka ističe {passvordEkpirationTime}",
+ "Password expires {passwordExpirationTime}" : "Lozinka ističe {passwordExpirationTime}",
"Password expired" : "Lozinka istekla",
"Video verification" : "Видео потврда",
+ "Expiration date (enforced)" : "Захтевано постављање датума истека",
"Set expiration date" : "Постави датум истека",
- "Expiration date" : "Датум истека",
"Hide download" : "Сакриј преузимање",
- "Allow download" : "Дозволи преузимање",
+ "Allow download and sync" : "Дозволи преузимање и сихронизацију",
"Note to recipient" : "Белешка примаоцу",
"Enter a note for the share recipient" : "Унесите белешку примаоцу дељења",
- "Read" : "Читање",
- "Create" : "Креирање",
- "Edit" : "Измени",
- "Share" : "Подели",
+ "Show files in grid view" : "Прикажи фајлове у погледу мреже",
"Delete share" : "Обриши дељење",
- "Share with {userName}" : "Подели са {userName}",
- "Share with email {email}" : "Подели и-мејлом {email}",
- "Share with group" : "Подели са групом",
- "Share in conversation" : "Подели у разговор",
- "Share with {user} on remote server {server}" : "Дели са {user} на удаљеном серверу {server}",
- "Share with remote group" : "Подели са удаљеном групом",
- "Share with guest" : "Подели са гостом",
- "Update share" : "Ажурирај дељење",
- "Save share" : "Сачувај дељење",
"Others with access" : "Остали са приступом",
"No other accounts with access found" : "Није пронађен ниједан други налог са приступом",
"Toggle list of others with access to this directory" : "Укључи/искључи списак осталих са приступом овом директоријуму",
"Toggle list of others with access to this file" : "Укључи/искључи списак осталих са приступом овом фајлу",
"Unable to fetch inherited shares" : "Не могу да дохватим наслеђена дељења",
+ "Link shares" : "Дељења линком",
+ "Shares" : "Дељења",
"Unable to load the shares list" : "Неуспело учитавање листе дељења",
"Expires {relativetime}" : "Истиче {relativetime}",
"this share just expired." : "ово дељење је управо истекло.",
"Shared with you by {owner}" : "{owner} је поделио са Вама",
+ "Internal shares" : "Интерна дељења",
+ "Internal shares explanation" : "Објашњење интерних дељења",
+ "External shares" : "Спољна дељења",
+ "External shares explanation" : "Објашњење спољних дељења",
+ "Additional shares" : "Додатна дељења",
+ "Additional shares explanation" : "Објашњење додатних дељења",
+ "Link to a file" : "Веза ка фајлу",
"_Accept share_::_Accept shares_" : ["Прихвати дељење","Прихвати дељењa","Прихвати дељењa"],
"Open in Files" : "Отвори у Фајловима",
"_Reject share_::_Reject shares_" : ["Одбиј дељење","Одбиј дељења","Одбиј дељења"],
"_Restore share_::_Restore shares_" : ["Обнови дељење","Обнови дељења","Обнови дељења"],
"Shared" : "Подељено",
- "Shared multiple times with different people" : "Дељено више пута са разним људима",
"Shared by {ownerDisplayName}" : "Поделио {ownerDisplayName}",
- "Show sharing options" : "Прикажи опције дељења",
- "Link to a file" : "Веза ка фајлу",
- "Error creating the share: {errorMessage}" : "Greška pri pravljenju deljenja: {errorMessage}",
- "Error creating the share" : "Грешка при прављењу дељења",
- "Error updating the share: {errorMessage}" : "Greška pri ažuriranju deljenja: {errorMessage}",
- "Error updating the share" : "Грешка при ажурирању дељења",
- "File \"{path}\" has been unshared" : "Фајл „{path}” се више не дели",
- "Folder \"{path}\" has been unshared" : "Фолдер „{path}” се више не дели",
- "Share {propertyName} saved" : "Сачувано је дељење {propertyName}",
- "Shared by" : "Поделио",
- "Shared with" : "Подељено са",
- "Password created successfully" : "Лозинка је успешно креирана",
- "Error generating password from password policy" : "Грешка приликом креирања лозинке из полисе за лозинке",
- "Shared with you and the group {group} by {owner}" : "{owner} је поделио са вама и са групом {group}",
- "Shared with you and {circle} by {owner}" : "{owner} је поделио са Вама и кругом {circle}",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} је поделио са Вама и разговором {conversation}",
- "Shared with you in a conversation by {owner}" : "{owner} је поделио са Вама у разговору",
- "Shares" : "Дељења",
+ "Shared multiple times with different people" : "Дељено више пута са разним људима",
+ "Shared with others" : "Дељено са осталима",
+ "Create file request" : "Креирај захтев за фајл",
+ "Upload files to {foldername}" : "Отпреми фајлове у {foldername}",
+ "Public file share" : "Јавно дељење фајла",
+ "Publicly shared file." : "Јавно подељени фајл.",
+ "No file" : "Нема фајла",
+ "The file shared with you will show up here" : "Овде ће се појавити фајл који је подељен са вама",
+ "Public share" : "Јавни дељење",
+ "Publicly shared files." : "Јавно подељени фајлови.",
+ "No files" : "Нема фајлова",
+ "Files and folders shared with you will show up here" : "Овде ће се појавити фајлови и фолдери које су подељени са вама",
"Overview of shared files." : "Преглед дељених фајлова.",
"No shares" : "Нема дељења",
"Files and folders you shared or have been shared with you will show up here" : "Овде ће се појавити фајлови и фолдери које сте ви поделили или које други деле са вама",
@@ -257,7 +337,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Листа фајлова који су подељени са вама.",
"Nothing shared with you yet" : "Још увек се ништа не дели са Вама",
"Files and folders others shared with you will show up here" : "Овде ће се појавити фајлови и фолдери које су други поделили са вама",
- "Shared with others" : "Дељено са осталима",
"List of files that you shared with others." : "Листа фајлова које сте поделили другима.",
"Nothing shared yet" : "Још се ништа не дели",
"Files and folders you shared will show up here" : "Овде ће се појавити фајлови и фолдери које сте поделили",
@@ -265,6 +344,10 @@ OC.L10N.register(
"List of files that are shared by link." : "Листа фајлова који су подељени линком.",
"No shared links" : "Нема веза за дељење",
"Files and folders you shared by link will show up here" : "Овде ће се појавити фајлови и фолдери које сте поделили линком",
+ "File requests" : "Захтеви за фајл",
+ "List of file requests." : "Листа захтева за фајл",
+ "No file requests" : "Нема захтева за фајл",
+ "File requests you have created will show up here" : "Овде ће се појавити захтеви за фајл које сте креирали",
"Deleted shares" : "Обрисана дељења",
"List of shares you left." : "Листа дељења која сте напустили.",
"No deleted shares" : "Нема обрисаних дељења",
@@ -273,49 +356,87 @@ OC.L10N.register(
"List of unapproved shares." : "Листа дељења која нису одобрена.",
"No pending shares" : "Нема дељења на чекању",
"Shares you have received but not approved will show up here" : "Овде ће се појавити дељења која сте прилмили, али нисте одобрили",
+ "Error deleting the share: {errorMessage}" : "Грешка при брисању дељења: {errorMessage}",
+ "Error deleting the share" : "Грешка при брисању дељења",
+ "Error updating the share: {errorMessage}" : "Грешка при ажурирању дељења: {errorMessage}",
+ "Error updating the share" : "Грешка при ажурирању дељења",
+ "File \"{path}\" has been unshared" : "Фајл „{path}” се више не дели",
+ "Folder \"{path}\" has been unshared" : "Фолдер „{path}” се више не дели",
+ "Could not update share" : "Не може да се ажурира дељење",
+ "Share saved" : "Дељење је сачувано",
+ "Share expiry date saved" : "Сачуван је датум истека дељења",
+ "Share hide-download state saved" : "Сачувано је стање сакриј-преузми дељења ",
+ "Share label saved" : "Сачувана је ознака дељења",
+ "Share note for recipient saved" : "Сачувана је напомена за примаоца дељења",
+ "Share password saved" : "Сачувана је лозинка дељења",
+ "Share permissions saved" : "Сачуване су дозволе дељења",
+ "To upload files to {folder}, you need to provide your name first." : "Да бисте могли да отпремите фајлове у фолдер {folder}, најпре наведите своје име.",
+ "Upload files to {folder}" : "Отпреми фајлове у {folder}",
+ "Please confirm your name to upload files to {folder}" : "Потврдите своје име да бисте отпремили фајлове у {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} је са вама поделио фолдер.",
+ "Names must not be empty." : "Имена не смеју остати празна.",
+ "Names must not start with a dot." : "Имена не смеју да се почну тачком.",
+ "\"{char}\" is not allowed inside a name." : "„{char}” није дозвољен карактер у имену.",
+ "\"{segment}\" is a reserved name and not allowed." : "„{segment}” је резервисано име и не сме се користити.",
+ "\"{extension}\" is not an allowed name." : "„{extension}” није дозвољено име.",
+ "Names must not end with \"{extension}\"." : "Имена не смеју да се завршавају са „{extension}”.",
+ "Invalid name." : "Неисправно име.",
+ "Shared by" : "Поделио",
+ "Shared with" : "Подељено са",
+ "Password created successfully" : "Лозинка је успешно креирана",
+ "Error generating password from password policy" : "Грешка приликом креирања лозинке из полисе за лозинке",
+ "Shared with you and the group {group} by {owner}" : "{owner} је поделио са вама и са групом {group}",
+ "Shared with you and {circle} by {owner}" : "{owner} је поделио са Вама и кругом {circle}",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} је поделио са Вама и разговором {conversation}",
+ "Shared with you in a conversation by {owner}" : "{owner} је поделио са Вама у разговору",
+ "Share not found" : "Дељење није нађено",
+ "Back to %s" : "Назад на %s",
+ "Add to your Nextcloud" : "Додајте у свој облак",
+ "Waiting…" : "Чекам…",
+ "error" : "грешка",
+ "finished" : "завршено",
+ "This will stop your current uploads." : "Ово ће да прекине тренутна отпремања.",
+ "Move or copy" : "Помери или копирај",
+ "You can upload into this folder" : "Можете да отпремате у ову фасциклу",
+ "Show list view" : "Prikaži prikaz liste",
+ "Show grid view" : "Prikaži prikaz mreže",
+ "No compatible server found at {remote}" : "Нема компатибилног сервера на {remote}",
+ "Invalid server URL" : "Неисправна адреса сервера",
+ "Failed to add the public link to your Nextcloud" : "Неуспело додавање јавне везе ка Вашем Некстклауду",
+ "You are not allowed to edit link shares that you don't own" : "Није вам дозвољено да уређујете дељења линком која нису ваше власништво",
+ "Download all files" : "Преузми све фајлове",
+ "Link copied to clipboard" : "Веза копирана у оставу",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 и-мејл адреса је већ додата","{count} и-мејл адресе су већ додате","{count} и-мејл адреса је већ додато"],
+ "_1 email address added_::_{count} email addresses added_" : ["Додата је 1 и-мејл адреса","Додате су {count} и-мејл адресе","Додато је {count} и-мејл адреса"],
+ "Copy to clipboard" : "Копирај у оставу",
+ "Copy internal link to clipboard" : "Копирај интерни линк у клипборд",
+ "Only works for people with access to this folder" : "Функсионише само за особе које имају приступ овом фолдеру",
+ "Only works for people with access to this file" : "Функсионише само за особе које имају приступ овом фајлу",
+ "Copy public link of \"{title}\" to clipboard" : "Копирај јавни линк за „{title}” у клипборд",
+ "Search globally" : "Претражите глобално",
+ "Search for share recipients" : "Претрага прималаца дељења",
+ "No recommendations. Start typing." : "Нема препорука. Започните куцање.",
+ "To upload files, you need to provide your name first." : "Да бисте могли да отпремите фајлове, најпре наведите своје име.",
+ "Enter your name" : "Унесите Ваше име",
+ "Submit name" : "Поднеси име",
+ "Share with {userName}" : "Подели са {userName}",
+ "Show sharing options" : "Прикажи опције дељења",
"Share note" : "Белешка дељења",
"Upload files to %s" : "Отпремите фајлове на%s",
+ "%s shared a folder with you." : "%s је са вама поделио фолдер.",
"Note" : "Белешка",
"Select or drop files" : "Одаберите или превуците фајлове",
"Uploading files" : "Отпремам фајлове",
"Uploaded files:" : "Отпремљени фајлови:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Отпремањем фајлова, слажете се са %1$sусловима коришћења%2$s.",
- "Add to your Nextcloud" : "Додајте у свој облак",
- "Files and folders others share with you will show up here" : "Фајлови и фасцикле које други деле са вама појавиће се овде",
- "Files and folders you share will show up here" : "Фајлови и фасцикле које делите појавиће се овде",
- "Files and folders you share by link will show up here" : "Фајлови и фасцикле које делите путем везе појавиће се овде",
- "Shares you deleted will show up here" : "Дељења која обришете ће се појавити овде",
- "Shares you have received but not confirmed will show up here" : "Дељања која сте добили, а још нису потврђена ће се појавити овде",
- "Shares will show up here" : "Дељења ће се појавити овде",
- "Restore" : "Врати",
- "Something happened. Unable to restore the share." : "Нешто чудно се десило. Дељење не може да се поврати.",
- "Something happened. Unable to accept the share." : "Нешто се десило. Не могу да прихватим дељење.",
- "Something happened. Unable to reject the share." : "Нешто се десило. Не могу да одбијем дељење.",
- "No expiration date set" : "Није постављен датум истека",
- "Please specify a valid user" : "Одаберите исправног корисника",
- "Please specify a valid federated user ID" : "Navedite važeći federalni korisnički ID",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Ова апликација омогућава корисницима да деле фајлове унутар Некстклауда. Када се укључи, администратор може да одабере које групе могу да деле фајлове. Такви корисници затим могу да деле фасцикле и фајлове са осталим корисницима и групама унутар Некстклауда. Додатно, ако администратор укључи и могућност за дељење везе, може се користити и спољна веза за дељење са корисницима ван Некстклауда. Администратори такође могу да захтевају лозинке, датум истека и да омогуће дељење између сервера преко веза дељења, као и дељење са мобилних уређаја.\nИскључивањем ове могућности искључује дељене фасцикле и фајлове на серверу за све дељенике, као и на синхронизованим клијентима и мобилним апликацијама. Више информација можете наћи у Некстклауд документацији.",
- "Accept user and group shares by default" : "Подразумевано прихвати дељења корисника и група",
- "Read only" : "Само за читање",
- "File drop (upload only)" : "Превлачење фајлова (само за отпремање)",
- "Upload" : "Отпреми",
- "Bundled permissions" : "Прикупљене дозволе",
- "Only works for users with access to this folder" : "Радиће само за кориснике са приступом овој фасцикли",
- "Only works for users with access to this file" : "Радиће само за кориснике са приступом овом фајлу",
- "Circle" : "Круг",
- "Update" : "Ажурирај",
- "Share with " : "Подели са",
- "No other users with access found" : "Нису нађени други корисници са приступом",
- "No entries found in this folder" : "Нема ничега у овој фасцикли",
- "Name" : "Назив",
- "Share time" : "Време дељења",
- "Sorry, this link does not seem to work anymore." : "Žao nam je, izgleda da ova veza više ne radi.",
- "Reasons might be:" : "Разлози могу бити:",
- "the item was removed" : "ставка је уклоњена",
- "the link expired" : "веза је истекла",
- "sharing is disabled" : "дељење је искључено",
- "For more info, please ask the person who sent this link." : "За више информација, питајте особу која вам је послала везу.",
- "Share with remote" : "Подели са удаљеним",
- "Share with" : "Подели са"
+ "Name" : "Име",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Употребите ову методу да фајлове делите да појединцима или тимовима унутар своје организације. Ако прималац већ има приступ дељењу, али не може да га лоцира, можете му послати интерни линк дељења тако да може лако да му приступи.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Употребите ову методу да фајлове делите са појединцима или организацијама ван своје организације. Фајлови и фолдери могу да се деле путем јавних линкова дељења и и-мејл адресама. Такође можете да делите осталим Nextcloud налозима који се хостују на другим инстанцама користећи њихов ID здруженог облака.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Дељења која нису део интерних или спољних дељења. Ово могу бити дељења из апликација или осталих извора.",
+ "Share with accounts, teams, federated cloud id" : "Дели са налозима, тимовима, id здруженог облака",
+ "Share with accounts and teams" : "Дељење са налозима и тимовима",
+ "Federated cloud ID" : "ИД Здруженог облака",
+ "Email, federated cloud id" : "И-мејл, ID здруженог облака",
+ "Filename must not be empty." : "Назив фајла не може бити празан."
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_sharing/l10n/sr.json b/apps/files_sharing/l10n/sr.json
index 1777ab3a5a7..af0e916dc89 100644
--- a/apps/files_sharing/l10n/sr.json
+++ b/apps/files_sharing/l10n/sr.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Чекам…",
- "error" : "грешка",
- "finished" : "завршено",
- "This will stop your current uploads." : "Ово ће да прекине тренутна отпремања.",
- "Move or copy" : "Помери или копирај",
- "Download" : "Преузми",
- "Delete" : "Избриши",
- "You can upload into this folder" : "Можете да отпремате у ову фасциклу",
- "Terms of service" : "Услови коришћења",
- "Show list view" : "Prikaži prikaz liste",
- "Show grid view" : "Prikaži prikaz mreže",
- "No compatible server found at {remote}" : "Нема компатибилног сервера на {remote}",
- "Invalid server URL" : "Неисправна адреса сервера",
- "Failed to add the public link to your Nextcloud" : "Неуспело додавање јавне везе ка Вашем Некстклауду",
"File shares" : "Дељења фајлова",
"Downloaded via public link" : "Скинуто преко јавне везе",
"Downloaded by {email}" : "Скинуо {email}",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "Дељење фајла {file} са корисником {user} је истекло",
"Share for file {file} expired" : "Дељење фајла {file} је истекло",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Фајл или фасцикла подељена е-поштом су <strong>преузети</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Фајлови су <strong>отпремљени</strong> у фолдер подељен мејлом или јавним линком",
"A file or folder was shared from <strong>another server</strong>" : "Фајл или фасцикла су дељени са <strong>другог сервера</strong>",
- "Files" : "Фајлови",
+ "Sharing" : "Дељење",
"A file or folder has been <strong>shared</strong>" : "Фајл или фасцикла је <strong>дељен</strong>",
"Shared link" : "Подељена веза",
"Wrong share ID, share does not exist" : "Погрешан ID дељења, дељење не постоји",
@@ -76,34 +63,46 @@
"Please specify a file or folder path" : "Молимо одаберите путању до фајла или фасцикле",
"Wrong path, file/folder does not exist" : "Погрешна путања, фајл/фолдер не постоји",
"Could not create share" : "Не могу да направим дељење",
- "Invalid permissions" : "Неисправне дозволе",
- "Invalid date, date format must be YYYY-MM-DD" : "Неисправан датим, формат датума мора бити ГГГГ-ММ-ДД",
"Please specify a valid account to share with" : "Молимо вас да наведете исправни налог којем се дели",
"Group sharing is disabled by the administrator" : "Администратор је забранио дељење са групом",
"Please specify a valid group" : "Одаберите исправну групу",
"Public link sharing is disabled by the administrator" : "Администратор је забранио дељење јавном везом",
- "Public upload disabled by the administrator" : "Администратор је забранио отпремања са јавним приступом",
- "Public upload is only possible for publicly shared folders" : "Отпремања са јавним приступом су могућа само за јавно дељене фасцикле",
+ "Please specify a valid email address" : "Наведите исправну и-мејл адресу",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Дељење %s слањем лозинке преко Nextcloud Talk-а није успело пошто Nextcloud Talk није укључен",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Дељење %1$s није успело зато што позадина не дозвољава дељење које је типа %2$s",
"Please specify a valid federated account ID" : "Молимо вас да наведете исправни ID федерисаног налога",
"Please specify a valid federated group ID" : "Молимо вас да наведете исправни ID федерисане групе",
- "You cannot share to a Circle if the app is not enabled" : "Не можете делити са Круговима ако та апликација није укључена",
- "Please specify a valid circle" : "Одаберите исправан круг",
+ "You cannot share to a Team if the app is not enabled" : "Не можете делити са Тимом ако та апликација није укључена",
+ "Please specify a valid team" : "Изаберите исправни тим",
"Sharing %s failed because the back end does not support room shares" : "Није успело дељење %s зато што позадински мотор дељења не подржава дељења у соби",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Дељење %s није успело јер позадински механизам не подржава ScienceMesh дељења",
"Unknown share type" : "Непознат тип дељења",
"Not a directory" : "Није фасцикла",
"Could not lock node" : "Не могу да закључам чвор",
- "Could not lock path" : "Не могу да закључам путању",
- "Wrong or no update parameter given" : "Погрешан или ненаведен параметер",
+ "Public upload is only possible for publicly shared folders" : "Отпремања са јавним приступом су могућа само за јавно дељене фасцикле",
"Share must at least have READ or CREATE permissions" : "Deljenje mora da ima bar dozvole ČITANJE ili KREIRANJE",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Deljenje mora da ima dozvolu za ČITANJE ako je podešena dozvola UPDATE ili DELETE",
+ "Public upload disabled by the administrator" : "Администратор је забранио отпремања са јавним приступом",
+ "Could not lock path" : "Не могу да закључам путању",
+ "no sharing rights on this item" : "нема права за дељење ове ставке",
+ "You are not allowed to edit incoming shares" : "Није вам дозвољено да уређујете долазна дељења",
+ "Wrong or no update parameter given" : "Погрешан или ненаведен параметер",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "„Slanje lozinke putem Nextcloud Talk-a“ za deljenje datoteke ili fascikle nije uspelo jer Nextcloud Talk nije omogućen.",
+ "Custom share link tokens have been disabled by the administrator" : "Администратор је забранио произвољне жетоне линка дељења",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Жетони морају да садрже бар један карактер и смеју да садрже само слова, бројеве или цртицу",
+ "Invalid date. Format must be YYYY-MM-DD" : "Неисправан датум. Формат датума мора да буде ГГГГ-ММ-ДД",
+ "No sharing rights on this item" : "Нема права за дељење ове ставке",
+ "Invalid share attributes provided: \"%s\"" : "Наведени су неисправни атрибути дељења: „%s”",
+ "You are not allowed to send mail notifications" : "Није вам дозвољено да шаљете обавештења поштом",
+ "No mail notification configured for this share type" : "За овај тип дељења није подешено слање обавештења поштом",
+ "Wrong password" : "Погрешна лозинка",
+ "Error while sending mail notification" : "Грешка приликом слања обавештења поштом",
+ "Failed to generate a unique token" : "Није успело генерисање јединственог жетона",
+ "This share does not exist or is no longer available" : "Ово дељење не постоји или више није доступно",
"shared by %s" : "поделио %s",
- "Download all files" : "Преузми све фајлове",
- "Direct link" : "Директна веза",
+ "Download" : "Преузми",
"Add to your %s" : "Dodajte u svoj %s",
+ "Direct link" : "Директна веза",
"Share API is disabled" : "API за дељене је искључен",
"File sharing" : "Дељења фајлова",
"Share will expire tomorrow" : "Дељење истиче сутра",
@@ -112,70 +111,132 @@
"You received {share} to group {group} as a share by {user}" : "Примили сте {share} за групу {group} као дељење од {user}",
"Accept" : "Прихвати",
"Decline" : "Одбиј",
+ "Remember to upload the files to %s" : "Не заборавите да отпремите фајлове на %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Подсећамо вас да још увек нисте отпремили ниједан фајл у дељени фолдер.",
+ "Open \"%s\"" : "Отвори „%s”",
"This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Ова апликација омогућава људима да деле фајлове унутар Nextcloud инстанце. Када се укључи, админ може да одабере које групе могу да деле фајлове. Ти људи затим могу да деле фолдере и фајлове са осталим налозима и групама унутар Nextcloud инстанце. Уз то, ако админ укључи и могућност дељења линка, за дељење са корисницима ван Nextcloud инстанце може да се употреби спољни линк. Админи такође могу да форсирају лозинке, датум истека и да омогуће дељење између сервера преко линкова дељења, као и дељење са мобилних уређаја.\nИскључивањем ове могућности искључује се дељење фајлова и фолдера и на серверу са свим примаоцима дељења, као и на клијентима за синхорнизацију и мобилним апликацијама. Више информација можете наћи у Nextcloud документацији.",
- "Sharing" : "Дељење",
- "Accept shares from other accounts and groups by default" : "Подразумевано прихвати дељења са осталих налога и група",
+ "People" : "Људи",
+ "Filter accounts" : "Филтрирај налоге",
+ "The request will expire on {date} at midnight and will be password protected." : "Захтев ће истећи дана {date} у поноћ и биће заштићен лозинком.",
+ "The request will expire on {date} at midnight." : "Захтев ће истећи дана {date} у поноћ.",
+ "The request will be password protected." : "Захтев ће бити заштићен лозинком.",
+ "When should the request expire?" : "Када би захтев требало да истекне?",
+ "Set a submission expiration date" : "Постави датум истека за поднесак",
+ "Expiration date" : "Датум истека",
+ "Select a date" : "Изаберите датум",
+ "Your administrator has enforced a {count} days expiration policy." : "Ваш администратор је поставио полису за {count} дана до престанка важења.",
+ "What password should be used for the request?" : "Која лозинка би требало да се употреби за захтев?",
+ "Set a password" : "Постави лозинку",
+ "Password" : "Лозинка",
+ "Enter a valid password" : "Унесите исправну лозинку",
+ "Generate a new password" : "Генериши нову лозинку",
+ "Your administrator has enforced a password protection." : "Ваш администратор је поставио обавезну заштиту лозинком",
+ "Automatically copying failed, please copy the share link manually" : "Није успело аутоматско копирање. молимо вас да линк копирате ручно",
+ "Link copied" : "Веза ископирана",
+ "Email already added" : "И-мејл је већ додат",
+ "Invalid email address" : "Неисправна и-мејл адреса",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Следећа и-мејл адреса није исправна: {emails}","Следеће и-мејл адресе нису исправне: {emails}","Следеће и-мејл адресе нису исправне: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} и-мејл адреса је већ додата","{count} и-мејл адресе су већ додате","{count} и-мејл адреса је већ додато"],
+ "_{count} email address added_::_{count} email addresses added_" : ["Додата је {count} и-мејл адреса","Додате су {count} и-мејл адресе","Додато је {count} и-мејл адреса"],
+ "You can now share the link below to allow people to upload files to your directory." : "Сада линк приказан испод можете да поделите људима и они ће моћи да отпреме фајлове у ваш директоријум.",
+ "Share link" : "Веза дељења",
+ "Copy" : "Копирај",
+ "Send link via email" : "Пошаљи линк и-мејлом",
+ "Enter an email address or paste a list" : "Унесите и-мејл адресу или налепите листу",
+ "Remove email" : "Уклони и-мејл",
+ "Select a destination" : "Изаберите одредиште",
+ "Select" : "Обележи",
+ "What are you requesting?" : "Шта захтевате?",
+ "Request subject" : "Тема захтева",
+ "Birthday party photos, History assignment…" : "Слике за рођенданске забаве, рад из историје…",
+ "Where should these files go?" : "Где би ови фајлови требало да иду?",
+ "Upload destination" : "Одредиште отпремања",
+ "Revert to default" : "Ресетуј на подразумевано",
+ "The uploaded files are visible only to you unless you choose to share them." : "Отпремљене фајлове можете да видите само ви, осим ако не одлучите да их поделите.",
+ "Add a note" : "Додај напомену",
+ "Note for recipient" : "Напомена за примаоца",
+ "Add a note to help people understand what you are requesting." : "Додајте напомену како би људи схватили шта захтевате.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Можете да додате линкове, датум или било које друге информације које ће примаоцима помоћи да схвате шта тражите.",
+ "Close" : "Затвори",
+ "_Send email and close_::_Send {count} emails and close_" : ["Пошаљи е-мејл и затвори","Пошаљи {count} е-мејла и затвори","Пошаљи {count}е-мејлова и затвори"],
+ "Please select a folder, you cannot share the root directory." : "Молимо вас да изаберете фолдер, не можете да поделите корени директоријум.",
+ "File request created" : "Креиран је захтев за фајл",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Креиран је захтев за фајл и послата је и-мејл порука","Креиран је захтев за фајл и послате су {count} и-мејл поруке","Креиран је захтев за фајл и послато је {count} и-мејл порука"],
+ "Error creating the share: {errorMessage}" : "Greška pri pravljenju deljenja: {errorMessage}",
+ "Error creating the share" : "Грешка при прављењу дељења",
+ "Error sending emails: {errorMessage}" : "Грешка приликом слања и-мејл порука: {errorMessage}",
+ "Error sending emails" : "Грешка приликом слања и-мејл порука",
+ "Create a file request" : "Креирај захтев за фајл",
+ "Collect files from others even if they do not have an account." : "Прикупи фајлове од осталих чак и ако немају налог.",
+ "To ensure you can receive files, verify you have enough storage available." : "Да би били сигурни да можете примити фајлове, проверите да ли имате довољно празног простора.",
+ "File request" : "Захтев за фајл",
+ "Previous step" : "Претходни корак",
+ "Cancel" : "Одустани",
+ "Cancel the file request creation" : "Откажи креирање захтева за фајл",
+ "Close without sending emails" : "Затвори без слања и-мејл порука",
+ "Continue" : "Настави",
"Error while toggling options" : "Greška pri prebacivanju opcija",
- "Set default folder for accepted shares" : "Подесите подразумевани фолдер за прихваћена дељења",
- "Reset" : "Ресетуј",
- "Reset folder to system default" : "Vratite fasciklu na podrazumevane vrednosti sistema",
+ "Accept shares from other accounts and groups by default" : "Подразумевано прихвати дељења са осталих налога и група",
"Choose a default folder for accepted shares" : "Izaberite podrazumevani folder za prihvaćena deljenja",
"Invalid path selected" : "Одабрана неисправна путања",
"Unknown error" : "Непозната грешка",
- "Open Sharing Details" : "Отвори детаље дељења",
+ "Set default folder for accepted shares" : "Подесите подразумевани фолдер за прихваћена дељења",
+ "Reset" : "Ресетуј",
+ "Reset folder to system default" : "Vratite fasciklu na podrazumevane vrednosti sistema",
+ "Share expiration: {date}" : "Дељење истиче: {date} ",
+ "Share Expiration" : "Истицање дељења",
"group" : "група",
"conversation" : "разговор",
"remote" : "удаљени",
"remote group" : "удаљена група",
"guest" : "гост",
+ "by {initiator}" : "од {initiator}",
"Shared with the group {user} by {owner}" : "{owner} поделио са групом {user}",
"Shared with the conversation {user} by {owner}" : "{owner} поделио са разговором {user}",
"Shared with {user} by {owner}" : "{owner} поделио са корисником {user}",
+ "Open Sharing Details" : "Отвори детаље дељења",
"Added by {initiator}" : "Додао {initiator}",
"Via “{folder}”" : "Преко „{folder}“",
"Unshare" : "Укини дељење",
- "Internal link" : "Интерна веза",
"Cannot copy, please copy the link manually" : "Не могу да копирам, копирајте везу ручно",
- "Copy internal link to clipboard" : "Копирај интерни линк у клипборд",
- "Only works for people with access to this folder" : "Функсионише само за особе које имају приступ овом фолдеру",
- "Only works for people with access to this file" : "Функсионише само за особе које имају приступ овом фајлу",
- "Link copied" : "Веза ископирана",
- "Please enter the following required information before creating the share" : "Молимо унесите ове неопходне информације пре креирања дељења",
- "Password protection (enforced)" : "Захтевана заштита лозинком",
- "Password protection" : "Заштита лозинком",
- "Enter a password" : "Унесите лозинку",
- "Expiration date (enforced)" : "Захтевано постављање датума истека",
- "Enter a date" : "Унеси датум",
- "Create share" : "Kreirajte deljenje",
- "Cancel" : "Одустани",
- "Customize link" : "Прилагоди линк",
- "Generate QR code" : "Генериши QR кôд",
- "Add another link" : "Додај још једну везу",
- "Create a new share link" : "Направи нову везу дељења",
+ "Copy internal link" : "Копирај интерну везу",
+ "For people who already have access" : "Особе које већ имају приступ",
+ "Internal link" : "Интерна веза",
"{shareWith} by {initiator}" : "{shareWith} od {initiator}",
"Shared via link by {initiator}" : "{initiator} поделио преко везе",
+ "File request ({label})" : "Захтев за фајл ({label})",
"Mail share ({label})" : "Deljenje pošte ({label})",
"Share link ({label})" : "Подели везу ({label})",
+ "Mail share" : "Дељење и-мејлом",
"Share link ({index})" : "Дели линк ({index})",
- "Share link" : "Веза дељења",
+ "Create public link" : "Направи јавну везу",
"Actions for \"{title}\"" : "Акције за „{title}",
- "Copy public link of \"{title}\" to clipboard" : "Копирај јавни линк за „{title}” у клипборд",
"Error, please enter proper password and/or expiration date" : "Грешка, унесите исправну лозинку и/или датум истицања",
"Link share created" : "Креиран је линк за дељење",
"Error while creating the share" : "Грешка приликом креирања дељења",
+ "Please enter the following required information before creating the share" : "Молимо унесите ове неопходне информације пре креирања дељења",
+ "Password protection (enforced)" : "Захтевана заштита лозинком",
+ "Password protection" : "Заштита лозинком",
+ "Enter a password" : "Унесите лозинку",
+ "Enable link expiration (enforced)" : "Укључи рок важења линка (форсирано)",
+ "Enable link expiration" : "Укључи рок важења линка",
+ "Enter expiration date (enforced)" : "Унеси рок важења линка (форсирано)",
+ "Enter expiration date" : "Унеси датум истека",
+ "Create share" : "Kreirajte deljenje",
+ "Customize link" : "Прилагоди линк",
+ "Generate QR code" : "Генериши QR кôд",
+ "Add another link" : "Додај још једну везу",
+ "Create a new share link" : "Направи нову везу дељења",
"Quick share options, the current selected is \"{selectedOption}\"" : "Брзе опције дељења, тренутно је изабрана „{selectedOption}”",
"View only" : "Само преглед",
"Can edit" : "Може да уређује",
- "File drop" : "Место за упуштање фајлова",
"Custom permissions" : "Произвољне дозволе",
- "Search for share recipients" : "Претрага прималаца дељења",
- "No recommendations. Start typing." : "Нема препорука. Започните куцање.",
"Resharing is not allowed" : "Дељење даље није дозвољено",
"Name or email …" : "Име или адреса е-поште…",
"Name, email, or Federated Cloud ID …" : "Ime, imejl ili ID u federalnom oblaku…",
"Searching …" : "Тражим…",
"No elements found." : "Нема нађених елемената.",
- "Search globally" : "Претражите глобално",
+ "Search everywhere" : "Претражи свуда",
"Guest" : "Гост",
"Group" : "Група",
"Email" : "Е-пошта",
@@ -184,70 +245,89 @@
"Deck board" : "Табла Шпила",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "на серверу {server}",
+ "Enter external recipients" : "Унесите спољне примаоце",
+ "Search for internal recipients" : "Претрага спољних примаоца",
+ "Note from" : "Напомена од",
+ "Note:" : "Белешка:",
+ "File drop" : "Место за упуштање фајлова",
+ "Upload files to {foldername}." : "Отпреми фајлове у {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Отпремањем фајлова, слажете се са условима коришћења.",
+ "Successfully uploaded files" : "Фајлови су успешно отпремљени",
+ "View terms of service" : "Прикажи услове коришћења",
+ "Terms of service" : "Услови коришћења",
+ "Share with email {email}" : "Подели и-мејлом {email}",
+ "Share with group" : "Подели са групом",
+ "Share in conversation" : "Подели у разговор",
+ "Share with {user} on remote server {server}" : "Дели са {user} на удаљеном серверу {server}",
+ "Share with remote group" : "Подели са удаљеном групом",
+ "Share with guest" : "Подели са гостом",
+ "Update share" : "Ажурирај дељење",
+ "Save share" : "Сачувај дељење",
+ "Read" : "Читање",
+ "Create" : "Креирање",
+ "Edit" : "Измени",
+ "Share" : "Подели",
+ "Delete" : "Избриши",
+ "Password field cannot be empty" : "Поље лозинке не може да буде празно",
+ "Replace current password" : "Замени текућу лозинку",
+ "Failed to generate a new token" : "Није успело генерисање новог жетона",
"Allow upload and editing" : "Дозволи отпремање и уређивање",
"Allow editing" : "Дозволи уређивање",
"Upload only" : "Само отпремање",
"Advanced settings" : "Напредне поставке",
"Share label" : "Подели ознаки",
+ "Share link token" : "Жетон линка дељења",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Поставља жетон јавног линка дељења на нешто што се лако памти или генерише нови жетон. За дељења која садрже осетљиве информације се не препоручује употреба жетона који се лако погађа.",
+ "Generating…" : "Генерише се…",
+ "Generate new token" : "Генериши нови жетон",
"Set password" : "Постави лозинку",
- "Password" : "Лозинка",
- "Password expires {passwordExpirationTime}" : "Lozinka ističe {passvordEkpirationTime}",
+ "Password expires {passwordExpirationTime}" : "Lozinka ističe {passwordExpirationTime}",
"Password expired" : "Lozinka istekla",
"Video verification" : "Видео потврда",
+ "Expiration date (enforced)" : "Захтевано постављање датума истека",
"Set expiration date" : "Постави датум истека",
- "Expiration date" : "Датум истека",
"Hide download" : "Сакриј преузимање",
- "Allow download" : "Дозволи преузимање",
+ "Allow download and sync" : "Дозволи преузимање и сихронизацију",
"Note to recipient" : "Белешка примаоцу",
"Enter a note for the share recipient" : "Унесите белешку примаоцу дељења",
- "Read" : "Читање",
- "Create" : "Креирање",
- "Edit" : "Измени",
- "Share" : "Подели",
+ "Show files in grid view" : "Прикажи фајлове у погледу мреже",
"Delete share" : "Обриши дељење",
- "Share with {userName}" : "Подели са {userName}",
- "Share with email {email}" : "Подели и-мејлом {email}",
- "Share with group" : "Подели са групом",
- "Share in conversation" : "Подели у разговор",
- "Share with {user} on remote server {server}" : "Дели са {user} на удаљеном серверу {server}",
- "Share with remote group" : "Подели са удаљеном групом",
- "Share with guest" : "Подели са гостом",
- "Update share" : "Ажурирај дељење",
- "Save share" : "Сачувај дељење",
"Others with access" : "Остали са приступом",
"No other accounts with access found" : "Није пронађен ниједан други налог са приступом",
"Toggle list of others with access to this directory" : "Укључи/искључи списак осталих са приступом овом директоријуму",
"Toggle list of others with access to this file" : "Укључи/искључи списак осталих са приступом овом фајлу",
"Unable to fetch inherited shares" : "Не могу да дохватим наслеђена дељења",
+ "Link shares" : "Дељења линком",
+ "Shares" : "Дељења",
"Unable to load the shares list" : "Неуспело учитавање листе дељења",
"Expires {relativetime}" : "Истиче {relativetime}",
"this share just expired." : "ово дељење је управо истекло.",
"Shared with you by {owner}" : "{owner} је поделио са Вама",
+ "Internal shares" : "Интерна дељења",
+ "Internal shares explanation" : "Објашњење интерних дељења",
+ "External shares" : "Спољна дељења",
+ "External shares explanation" : "Објашњење спољних дељења",
+ "Additional shares" : "Додатна дељења",
+ "Additional shares explanation" : "Објашњење додатних дељења",
+ "Link to a file" : "Веза ка фајлу",
"_Accept share_::_Accept shares_" : ["Прихвати дељење","Прихвати дељењa","Прихвати дељењa"],
"Open in Files" : "Отвори у Фајловима",
"_Reject share_::_Reject shares_" : ["Одбиј дељење","Одбиј дељења","Одбиј дељења"],
"_Restore share_::_Restore shares_" : ["Обнови дељење","Обнови дељења","Обнови дељења"],
"Shared" : "Подељено",
- "Shared multiple times with different people" : "Дељено више пута са разним људима",
"Shared by {ownerDisplayName}" : "Поделио {ownerDisplayName}",
- "Show sharing options" : "Прикажи опције дељења",
- "Link to a file" : "Веза ка фајлу",
- "Error creating the share: {errorMessage}" : "Greška pri pravljenju deljenja: {errorMessage}",
- "Error creating the share" : "Грешка при прављењу дељења",
- "Error updating the share: {errorMessage}" : "Greška pri ažuriranju deljenja: {errorMessage}",
- "Error updating the share" : "Грешка при ажурирању дељења",
- "File \"{path}\" has been unshared" : "Фајл „{path}” се више не дели",
- "Folder \"{path}\" has been unshared" : "Фолдер „{path}” се више не дели",
- "Share {propertyName} saved" : "Сачувано је дељење {propertyName}",
- "Shared by" : "Поделио",
- "Shared with" : "Подељено са",
- "Password created successfully" : "Лозинка је успешно креирана",
- "Error generating password from password policy" : "Грешка приликом креирања лозинке из полисе за лозинке",
- "Shared with you and the group {group} by {owner}" : "{owner} је поделио са вама и са групом {group}",
- "Shared with you and {circle} by {owner}" : "{owner} је поделио са Вама и кругом {circle}",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} је поделио са Вама и разговором {conversation}",
- "Shared with you in a conversation by {owner}" : "{owner} је поделио са Вама у разговору",
- "Shares" : "Дељења",
+ "Shared multiple times with different people" : "Дељено више пута са разним људима",
+ "Shared with others" : "Дељено са осталима",
+ "Create file request" : "Креирај захтев за фајл",
+ "Upload files to {foldername}" : "Отпреми фајлове у {foldername}",
+ "Public file share" : "Јавно дељење фајла",
+ "Publicly shared file." : "Јавно подељени фајл.",
+ "No file" : "Нема фајла",
+ "The file shared with you will show up here" : "Овде ће се појавити фајл који је подељен са вама",
+ "Public share" : "Јавни дељење",
+ "Publicly shared files." : "Јавно подељени фајлови.",
+ "No files" : "Нема фајлова",
+ "Files and folders shared with you will show up here" : "Овде ће се појавити фајлови и фолдери које су подељени са вама",
"Overview of shared files." : "Преглед дељених фајлова.",
"No shares" : "Нема дељења",
"Files and folders you shared or have been shared with you will show up here" : "Овде ће се појавити фајлови и фолдери које сте ви поделили или које други деле са вама",
@@ -255,7 +335,6 @@
"List of files that are shared with you." : "Листа фајлова који су подељени са вама.",
"Nothing shared with you yet" : "Још увек се ништа не дели са Вама",
"Files and folders others shared with you will show up here" : "Овде ће се појавити фајлови и фолдери које су други поделили са вама",
- "Shared with others" : "Дељено са осталима",
"List of files that you shared with others." : "Листа фајлова које сте поделили другима.",
"Nothing shared yet" : "Још се ништа не дели",
"Files and folders you shared will show up here" : "Овде ће се појавити фајлови и фолдери које сте поделили",
@@ -263,6 +342,10 @@
"List of files that are shared by link." : "Листа фајлова који су подељени линком.",
"No shared links" : "Нема веза за дељење",
"Files and folders you shared by link will show up here" : "Овде ће се појавити фајлови и фолдери које сте поделили линком",
+ "File requests" : "Захтеви за фајл",
+ "List of file requests." : "Листа захтева за фајл",
+ "No file requests" : "Нема захтева за фајл",
+ "File requests you have created will show up here" : "Овде ће се појавити захтеви за фајл које сте креирали",
"Deleted shares" : "Обрисана дељења",
"List of shares you left." : "Листа дељења која сте напустили.",
"No deleted shares" : "Нема обрисаних дељења",
@@ -271,49 +354,87 @@
"List of unapproved shares." : "Листа дељења која нису одобрена.",
"No pending shares" : "Нема дељења на чекању",
"Shares you have received but not approved will show up here" : "Овде ће се појавити дељења која сте прилмили, али нисте одобрили",
+ "Error deleting the share: {errorMessage}" : "Грешка при брисању дељења: {errorMessage}",
+ "Error deleting the share" : "Грешка при брисању дељења",
+ "Error updating the share: {errorMessage}" : "Грешка при ажурирању дељења: {errorMessage}",
+ "Error updating the share" : "Грешка при ажурирању дељења",
+ "File \"{path}\" has been unshared" : "Фајл „{path}” се више не дели",
+ "Folder \"{path}\" has been unshared" : "Фолдер „{path}” се више не дели",
+ "Could not update share" : "Не може да се ажурира дељење",
+ "Share saved" : "Дељење је сачувано",
+ "Share expiry date saved" : "Сачуван је датум истека дељења",
+ "Share hide-download state saved" : "Сачувано је стање сакриј-преузми дељења ",
+ "Share label saved" : "Сачувана је ознака дељења",
+ "Share note for recipient saved" : "Сачувана је напомена за примаоца дељења",
+ "Share password saved" : "Сачувана је лозинка дељења",
+ "Share permissions saved" : "Сачуване су дозволе дељења",
+ "To upload files to {folder}, you need to provide your name first." : "Да бисте могли да отпремите фајлове у фолдер {folder}, најпре наведите своје име.",
+ "Upload files to {folder}" : "Отпреми фајлове у {folder}",
+ "Please confirm your name to upload files to {folder}" : "Потврдите своје име да бисте отпремили фајлове у {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} је са вама поделио фолдер.",
+ "Names must not be empty." : "Имена не смеју остати празна.",
+ "Names must not start with a dot." : "Имена не смеју да се почну тачком.",
+ "\"{char}\" is not allowed inside a name." : "„{char}” није дозвољен карактер у имену.",
+ "\"{segment}\" is a reserved name and not allowed." : "„{segment}” је резервисано име и не сме се користити.",
+ "\"{extension}\" is not an allowed name." : "„{extension}” није дозвољено име.",
+ "Names must not end with \"{extension}\"." : "Имена не смеју да се завршавају са „{extension}”.",
+ "Invalid name." : "Неисправно име.",
+ "Shared by" : "Поделио",
+ "Shared with" : "Подељено са",
+ "Password created successfully" : "Лозинка је успешно креирана",
+ "Error generating password from password policy" : "Грешка приликом креирања лозинке из полисе за лозинке",
+ "Shared with you and the group {group} by {owner}" : "{owner} је поделио са вама и са групом {group}",
+ "Shared with you and {circle} by {owner}" : "{owner} је поделио са Вама и кругом {circle}",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} је поделио са Вама и разговором {conversation}",
+ "Shared with you in a conversation by {owner}" : "{owner} је поделио са Вама у разговору",
+ "Share not found" : "Дељење није нађено",
+ "Back to %s" : "Назад на %s",
+ "Add to your Nextcloud" : "Додајте у свој облак",
+ "Waiting…" : "Чекам…",
+ "error" : "грешка",
+ "finished" : "завршено",
+ "This will stop your current uploads." : "Ово ће да прекине тренутна отпремања.",
+ "Move or copy" : "Помери или копирај",
+ "You can upload into this folder" : "Можете да отпремате у ову фасциклу",
+ "Show list view" : "Prikaži prikaz liste",
+ "Show grid view" : "Prikaži prikaz mreže",
+ "No compatible server found at {remote}" : "Нема компатибилног сервера на {remote}",
+ "Invalid server URL" : "Неисправна адреса сервера",
+ "Failed to add the public link to your Nextcloud" : "Неуспело додавање јавне везе ка Вашем Некстклауду",
+ "You are not allowed to edit link shares that you don't own" : "Није вам дозвољено да уређујете дељења линком која нису ваше власништво",
+ "Download all files" : "Преузми све фајлове",
+ "Link copied to clipboard" : "Веза копирана у оставу",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 и-мејл адреса је већ додата","{count} и-мејл адресе су већ додате","{count} и-мејл адреса је већ додато"],
+ "_1 email address added_::_{count} email addresses added_" : ["Додата је 1 и-мејл адреса","Додате су {count} и-мејл адресе","Додато је {count} и-мејл адреса"],
+ "Copy to clipboard" : "Копирај у оставу",
+ "Copy internal link to clipboard" : "Копирај интерни линк у клипборд",
+ "Only works for people with access to this folder" : "Функсионише само за особе које имају приступ овом фолдеру",
+ "Only works for people with access to this file" : "Функсионише само за особе које имају приступ овом фајлу",
+ "Copy public link of \"{title}\" to clipboard" : "Копирај јавни линк за „{title}” у клипборд",
+ "Search globally" : "Претражите глобално",
+ "Search for share recipients" : "Претрага прималаца дељења",
+ "No recommendations. Start typing." : "Нема препорука. Започните куцање.",
+ "To upload files, you need to provide your name first." : "Да бисте могли да отпремите фајлове, најпре наведите своје име.",
+ "Enter your name" : "Унесите Ваше име",
+ "Submit name" : "Поднеси име",
+ "Share with {userName}" : "Подели са {userName}",
+ "Show sharing options" : "Прикажи опције дељења",
"Share note" : "Белешка дељења",
"Upload files to %s" : "Отпремите фајлове на%s",
+ "%s shared a folder with you." : "%s је са вама поделио фолдер.",
"Note" : "Белешка",
"Select or drop files" : "Одаберите или превуците фајлове",
"Uploading files" : "Отпремам фајлове",
"Uploaded files:" : "Отпремљени фајлови:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Отпремањем фајлова, слажете се са %1$sусловима коришћења%2$s.",
- "Add to your Nextcloud" : "Додајте у свој облак",
- "Files and folders others share with you will show up here" : "Фајлови и фасцикле које други деле са вама појавиће се овде",
- "Files and folders you share will show up here" : "Фајлови и фасцикле које делите појавиће се овде",
- "Files and folders you share by link will show up here" : "Фајлови и фасцикле које делите путем везе појавиће се овде",
- "Shares you deleted will show up here" : "Дељења која обришете ће се појавити овде",
- "Shares you have received but not confirmed will show up here" : "Дељања која сте добили, а још нису потврђена ће се појавити овде",
- "Shares will show up here" : "Дељења ће се појавити овде",
- "Restore" : "Врати",
- "Something happened. Unable to restore the share." : "Нешто чудно се десило. Дељење не може да се поврати.",
- "Something happened. Unable to accept the share." : "Нешто се десило. Не могу да прихватим дељење.",
- "Something happened. Unable to reject the share." : "Нешто се десило. Не могу да одбијем дељење.",
- "No expiration date set" : "Није постављен датум истека",
- "Please specify a valid user" : "Одаберите исправног корисника",
- "Please specify a valid federated user ID" : "Navedite važeći federalni korisnički ID",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Ова апликација омогућава корисницима да деле фајлове унутар Некстклауда. Када се укључи, администратор може да одабере које групе могу да деле фајлове. Такви корисници затим могу да деле фасцикле и фајлове са осталим корисницима и групама унутар Некстклауда. Додатно, ако администратор укључи и могућност за дељење везе, може се користити и спољна веза за дељење са корисницима ван Некстклауда. Администратори такође могу да захтевају лозинке, датум истека и да омогуће дељење између сервера преко веза дељења, као и дељење са мобилних уређаја.\nИскључивањем ове могућности искључује дељене фасцикле и фајлове на серверу за све дељенике, као и на синхронизованим клијентима и мобилним апликацијама. Више информација можете наћи у Некстклауд документацији.",
- "Accept user and group shares by default" : "Подразумевано прихвати дељења корисника и група",
- "Read only" : "Само за читање",
- "File drop (upload only)" : "Превлачење фајлова (само за отпремање)",
- "Upload" : "Отпреми",
- "Bundled permissions" : "Прикупљене дозволе",
- "Only works for users with access to this folder" : "Радиће само за кориснике са приступом овој фасцикли",
- "Only works for users with access to this file" : "Радиће само за кориснике са приступом овом фајлу",
- "Circle" : "Круг",
- "Update" : "Ажурирај",
- "Share with " : "Подели са",
- "No other users with access found" : "Нису нађени други корисници са приступом",
- "No entries found in this folder" : "Нема ничега у овој фасцикли",
- "Name" : "Назив",
- "Share time" : "Време дељења",
- "Sorry, this link does not seem to work anymore." : "Žao nam je, izgleda da ova veza više ne radi.",
- "Reasons might be:" : "Разлози могу бити:",
- "the item was removed" : "ставка је уклоњена",
- "the link expired" : "веза је истекла",
- "sharing is disabled" : "дељење је искључено",
- "For more info, please ask the person who sent this link." : "За више информација, питајте особу која вам је послала везу.",
- "Share with remote" : "Подели са удаљеним",
- "Share with" : "Подели са"
+ "Name" : "Име",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Употребите ову методу да фајлове делите да појединцима или тимовима унутар своје организације. Ако прималац већ има приступ дељењу, али не може да га лоцира, можете му послати интерни линк дељења тако да може лако да му приступи.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Употребите ову методу да фајлове делите са појединцима или организацијама ван своје организације. Фајлови и фолдери могу да се деле путем јавних линкова дељења и и-мејл адресама. Такође можете да делите осталим Nextcloud налозима који се хостују на другим инстанцама користећи њихов ID здруженог облака.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Дељења која нису део интерних или спољних дељења. Ово могу бити дељења из апликација или осталих извора.",
+ "Share with accounts, teams, federated cloud id" : "Дели са налозима, тимовима, id здруженог облака",
+ "Share with accounts and teams" : "Дељење са налозима и тимовима",
+ "Federated cloud ID" : "ИД Здруженог облака",
+ "Email, federated cloud id" : "И-мејл, ID здруженог облака",
+ "Filename must not be empty." : "Назив фајла не може бити празан."
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/sr@latin.js b/apps/files_sharing/l10n/sr@latin.js
deleted file mode 100644
index e044946e117..00000000000
--- a/apps/files_sharing/l10n/sr@latin.js
+++ /dev/null
@@ -1,56 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Server to server sharing is not enabled on this server" : "Deljenje od servera do servera nije omogućeno na ovom serveru.",
- "The mountpoint name contains invalid characters." : "Ime tačke za montiranje sadrži neispravne karaktere.",
- "Invalid or untrusted SSL certificate" : "Nevažeći SSL sertifikat ili SSL sertifikat koji nije od poverenja.",
- "Couldn't add remote share" : "Nemoguće dodavanje udaljenog deljenog direktorijuma",
- "Shared with you" : "Deljeno sa Vama",
- "Shared with others" : "Deljeno sa ostalima",
- "Shared by link" : "Deljeno pomoću prečice",
- "Nothing shared with you yet" : "Još ništa nije deljeno sa Vama",
- "Files and folders others share with you will show up here" : "Fajlovi i direktorijumi koji drugi dele sa Vama će se pojaviti ovde",
- "Nothing shared yet" : "Još ništa nije deljeno",
- "Files and folders you share will show up here" : "Fajlovi i direktorijumi koje vi delite će se pojaviti ovde",
- "No shared links" : "Nema deljenih prečica",
- "Files and folders you share by link will show up here" : "Fajlovi i direktorijumi koje delite putem prečice će se pojaviti ovde",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Da li želite da dodate udaljeni deljeni resurs {name} od {owner}@{remote}?",
- "Remote share" : "Udaljeni deljeni resurs",
- "Remote share password" : "Lozinka za udaljeni deljeni resurs",
- "Cancel" : "Otkaži",
- "Add remote share" : "Dodaj udaljeni deljeni resurs",
- "No ownCloud installation (7 or higher) found at {remote}" : "Nije pronađena ownCloud instalacija (7 ili noviji) na {remote}",
- "Invalid ownCloud url" : "Neispravan ownCloud url",
- "Shared by" : "Deljeno od strane",
- "A file or folder has been <strong>shared</strong>" : "Fijl ili direktorijum je <strong>podeljen</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Fajl ili direktorijum je deljen sa <strong>drugog servera</strong>",
- "A public shared file or folder was <strong>downloaded</strong>" : "Javni deljeni fajl ili direktorijum je <strong>preuzet</strong>",
- "You received a new remote share from %s" : "Primili ste novi udaljeni deljeni resurs od %s",
- "%1$s accepted remote share %2$s" : "%1$s je prihvatio udaljeni deljeni resurs %2$s",
- "%1$s declined remote share %2$s" : "%1$s je odbio %2$s",
- "%1$s unshared %2$s from you" : "%1$s je prekinuo deljenje %2$s sa Vama",
- "Public shared folder %1$s was downloaded" : "Javni deljeni direktorijum %1$s je preuzet",
- "Public shared file %1$s was downloaded" : "Javni deljeni fajl %1$s je preuzet",
- "You shared %1$s with %2$s" : "Delili ste %1$s sa %2$s",
- "You shared %1$s with group %2$s" : "Delili ste %1$s sa grupom %2$s",
- "You shared %1$s via link" : "Delili ste %1$s pomoću prečice",
- "%2$s shared %1$s with you" : "%2$s je delio %1$s sa Vama",
- "Shares" : "Deljenja",
- "This share is password-protected" : "Ovaj deljeni resurs je zaštićen lozinkom",
- "The password is wrong. Try again." : "Lozinka je netačna. Pokušajte ponovo.",
- "Password" : "Lozinka",
- "No entries found in this folder" : "Nema unosa u ovom direktorijumu",
- "Name" : "Ime",
- "Share time" : "Vreme deljenja",
- "Sorry, this link doesn’t seem to work anymore." : "Žao nam je, ali ova prečica više ne radi.",
- "Reasons might be:" : "Razlozi mogu biti:",
- "the item was removed" : "stavka je uklonjena",
- "the link expired" : "prečica je istekla",
- "sharing is disabled" : "deljenje je onemogućeno",
- "For more info, please ask the person who sent this link." : "Za više informacija, molimo Vas da se obratite osobi koja je poslala prečicu.",
- "Add to your ownCloud" : "Dodaj na svoj ownCloud",
- "Download" : "Preuzmi",
- "Download %s" : "Preuzmi %s",
- "Direct link" : "Direktna prečica"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_sharing/l10n/sr@latin.json b/apps/files_sharing/l10n/sr@latin.json
deleted file mode 100644
index f4942a0dfa9..00000000000
--- a/apps/files_sharing/l10n/sr@latin.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{ "translations": {
- "Server to server sharing is not enabled on this server" : "Deljenje od servera do servera nije omogućeno na ovom serveru.",
- "The mountpoint name contains invalid characters." : "Ime tačke za montiranje sadrži neispravne karaktere.",
- "Invalid or untrusted SSL certificate" : "Nevažeći SSL sertifikat ili SSL sertifikat koji nije od poverenja.",
- "Couldn't add remote share" : "Nemoguće dodavanje udaljenog deljenog direktorijuma",
- "Shared with you" : "Deljeno sa Vama",
- "Shared with others" : "Deljeno sa ostalima",
- "Shared by link" : "Deljeno pomoću prečice",
- "Nothing shared with you yet" : "Još ništa nije deljeno sa Vama",
- "Files and folders others share with you will show up here" : "Fajlovi i direktorijumi koji drugi dele sa Vama će se pojaviti ovde",
- "Nothing shared yet" : "Još ništa nije deljeno",
- "Files and folders you share will show up here" : "Fajlovi i direktorijumi koje vi delite će se pojaviti ovde",
- "No shared links" : "Nema deljenih prečica",
- "Files and folders you share by link will show up here" : "Fajlovi i direktorijumi koje delite putem prečice će se pojaviti ovde",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Da li želite da dodate udaljeni deljeni resurs {name} od {owner}@{remote}?",
- "Remote share" : "Udaljeni deljeni resurs",
- "Remote share password" : "Lozinka za udaljeni deljeni resurs",
- "Cancel" : "Otkaži",
- "Add remote share" : "Dodaj udaljeni deljeni resurs",
- "No ownCloud installation (7 or higher) found at {remote}" : "Nije pronađena ownCloud instalacija (7 ili noviji) na {remote}",
- "Invalid ownCloud url" : "Neispravan ownCloud url",
- "Shared by" : "Deljeno od strane",
- "A file or folder has been <strong>shared</strong>" : "Fijl ili direktorijum je <strong>podeljen</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Fajl ili direktorijum je deljen sa <strong>drugog servera</strong>",
- "A public shared file or folder was <strong>downloaded</strong>" : "Javni deljeni fajl ili direktorijum je <strong>preuzet</strong>",
- "You received a new remote share from %s" : "Primili ste novi udaljeni deljeni resurs od %s",
- "%1$s accepted remote share %2$s" : "%1$s je prihvatio udaljeni deljeni resurs %2$s",
- "%1$s declined remote share %2$s" : "%1$s je odbio %2$s",
- "%1$s unshared %2$s from you" : "%1$s je prekinuo deljenje %2$s sa Vama",
- "Public shared folder %1$s was downloaded" : "Javni deljeni direktorijum %1$s je preuzet",
- "Public shared file %1$s was downloaded" : "Javni deljeni fajl %1$s je preuzet",
- "You shared %1$s with %2$s" : "Delili ste %1$s sa %2$s",
- "You shared %1$s with group %2$s" : "Delili ste %1$s sa grupom %2$s",
- "You shared %1$s via link" : "Delili ste %1$s pomoću prečice",
- "%2$s shared %1$s with you" : "%2$s je delio %1$s sa Vama",
- "Shares" : "Deljenja",
- "This share is password-protected" : "Ovaj deljeni resurs je zaštićen lozinkom",
- "The password is wrong. Try again." : "Lozinka je netačna. Pokušajte ponovo.",
- "Password" : "Lozinka",
- "No entries found in this folder" : "Nema unosa u ovom direktorijumu",
- "Name" : "Ime",
- "Share time" : "Vreme deljenja",
- "Sorry, this link doesn’t seem to work anymore." : "Žao nam je, ali ova prečica više ne radi.",
- "Reasons might be:" : "Razlozi mogu biti:",
- "the item was removed" : "stavka je uklonjena",
- "the link expired" : "prečica je istekla",
- "sharing is disabled" : "deljenje je onemogućeno",
- "For more info, please ask the person who sent this link." : "Za više informacija, molimo Vas da se obratite osobi koja je poslala prečicu.",
- "Add to your ownCloud" : "Dodaj na svoj ownCloud",
- "Download" : "Preuzmi",
- "Download %s" : "Preuzmi %s",
- "Direct link" : "Direktna prečica"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/sv.js b/apps/files_sharing/l10n/sv.js
index fe89969d59e..c668d504574 100644
--- a/apps/files_sharing/l10n/sv.js
+++ b/apps/files_sharing/l10n/sv.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Väntar...",
- "error" : "fel",
- "finished" : "klar",
- "This will stop your current uploads." : "Detta kommer att stoppa nuvarande uppladdningar.",
- "Move or copy" : "Flytta eller kopiera",
- "Download" : "Hämta",
- "Delete" : "Ta bort",
- "You can upload into this folder" : "Du kan ladda upp i denna mapp",
- "Terms of service" : "Användarvilkor",
- "Show list view" : "Visa listvy",
- "Show grid view" : "Visa rutnätsvy",
- "No compatible server found at {remote}" : "Ingen kompatibel server hittad på {remote}",
- "Invalid server URL" : "Ogiltig serverwebbadress",
- "Failed to add the public link to your Nextcloud" : "Misslyckades skapa den offentliga delningslänken till ditt moln",
"File shares" : "Fildelningar",
"Downloaded via public link" : "Hämtad via offentlig länk",
"Downloaded by {email}" : "Hämtad av {email}",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "Delning för fil {file} med {user} har gått ut",
"Share for file {file} expired" : "Delning för fil {file} har gått ut",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "En fil eller mapp som delats via e-post eller offentlig länk har blivit <strong>hämtad</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Filer har <strong>laddats upp</strong> till en mapp som delas via e-post eller via offentlig länk",
"A file or folder was shared from <strong>another server</strong>" : "En fil eller mapp delades från <strong>en annan server</strong>",
- "Files" : "Filer",
+ "Sharing" : "Delning",
"A file or folder has been <strong>shared</strong>" : "En fil eller mapp har <strong>delats</strong>",
"Shared link" : "Delad länk",
"Wrong share ID, share does not exist" : "Fel delnings-ID, delningen finns inte",
@@ -78,34 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "Ange sökväg till filen eller mappen",
"Wrong path, file/folder does not exist" : "Fel sökväg, fil/mapp finns inte",
"Could not create share" : "Kunde inte skapa delning",
- "Invalid permissions" : "Ogiltiga behörigheter",
- "Invalid date, date format must be YYYY-MM-DD" : "Ogiltigt datum, måste anges: ÅÅÅÅ-MM-DD",
"Please specify a valid account to share with" : "Ange ett giltigt konto att dela med",
"Group sharing is disabled by the administrator" : "Gruppdelning är avstängt",
"Please specify a valid group" : "Ange en giltig grupp",
"Public link sharing is disabled by the administrator" : "Offentlig delningslänk är avstängt",
- "Public upload disabled by the administrator" : "Offentlig uppladdning är avstängt",
- "Public upload is only possible for publicly shared folders" : "Offentlig uppladdning fungerar endast i offentligt delade mappar",
+ "Please specify a valid email address" : "Ange en giltig e-postadress",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Dela %s och skicka lösenordet via Nextcloud Talk går inte eftersom Nextcloud Talk är inte aktiverad",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Delning av %1$s misslyckades för att det inte är tillåtet med delningar från typ %2$s",
"Please specify a valid federated account ID" : "Ange ett giltigt federerat konto-ID",
"Please specify a valid federated group ID" : "Vänligen ange ett giltigt federerat grupp-id.",
- "You cannot share to a Circle if the app is not enabled" : "Du kan inte dela till en cirkel om appen inte är aktiverad",
- "Please specify a valid circle" : "Vänligen ange en giltig cirkel",
+ "You cannot share to a Team if the app is not enabled" : "Du kan inte dela med ett team om appen inte är aktiverad",
+ "Please specify a valid team" : "Ange ett giltigt team",
"Sharing %s failed because the back end does not support room shares" : "Delning av %s misslyckades eftersom systemet inte stödjer rum-delningar",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Delning av %s misslyckades eftersom servern inte stödjer ScienceMesh-delningar",
"Unknown share type" : "Ogiltig delningstyp",
"Not a directory" : "Inte en mapp",
"Could not lock node" : "Kunde inte låsa nod",
- "Could not lock path" : "Kunde inte låsa sökvägen",
- "Wrong or no update parameter given" : "Fel eller ingen uppdateringsparameter angiven",
+ "Public upload is only possible for publicly shared folders" : "Offentlig uppladdning fungerar endast i offentligt delade mappar",
"Share must at least have READ or CREATE permissions" : "Delningen måste åtminstone ha LÄS- eller SKAPA-behörighet",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Delningen måste ha LÄS-behörighet om ÄNDRA- eller RADERA-behörighet är inställd",
+ "Public upload disabled by the administrator" : "Offentlig uppladdning är avstängt",
+ "Could not lock path" : "Kunde inte låsa sökvägen",
+ "no sharing rights on this item" : "inga delningsrättigheter för detta objekt",
+ "You are not allowed to edit incoming shares" : "Du får inte redigera inkommande delningar",
+ "Wrong or no update parameter given" : "Fel eller ingen uppdateringsparameter angiven",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Skicka lösenord via Nextcloud Talk\" för att dela en fil eller mapp misslyckades eftersom Nextcloud Talk inte är aktiverat.",
+ "Custom share link tokens have been disabled by the administrator" : "Anpassade tokens för delningslänkar har inaktiverats av administratören",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Token måste innehålla minst 1 tecken och får endast innehålla bokstäver, siffror eller bindestreck",
+ "Invalid date. Format must be YYYY-MM-DD" : "Ogiltigt datum. Formatet måste vara ÅÅÅÅ-MM-DD",
+ "No sharing rights on this item" : "Inga delningsrättigheter för detta objekt",
+ "Invalid share attributes provided: \"%s\"" : "Ogiltiga delningsattribut har angetts: \"%s\"",
+ "You are not allowed to send mail notifications" : "Du får inte skicka e-postaviseringar",
+ "No mail notification configured for this share type" : "Ingen e-postavisering har konfigurerats för denna delningstyp",
+ "Wrong password" : "Fel lösenord",
+ "Error while sending mail notification" : "Fel vid sändning av e-postavisering",
+ "Failed to generate a unique token" : "Kunde inte generera en unik token",
+ "This share does not exist or is no longer available" : "Den här delningen finns inte eller är inte längre tillgänglig",
"shared by %s" : "delad av %s",
- "Download all files" : "Hämta alla filer",
- "Direct link" : "Direktlänk",
+ "Download" : "Hämta",
"Add to your %s" : "Lägg till i din %s",
+ "Direct link" : "Direktlänk",
"Share API is disabled" : "Delning av API är inaktiverad",
"File sharing" : "Fildelning",
"Share will expire tomorrow" : "Delningen upphör imorgon",
@@ -114,142 +113,222 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Du tog emot {share} till gruppen {group} som en delning från {user}",
"Accept" : "Acceptera",
"Decline" : "Avböj",
+ "Remember to upload the files to %s" : "Kom ihåg att ladda upp filerna till %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Vi vill påminna dig om att du ännu inte har laddat upp några filer till den delade mappen.",
+ "Open \"%s\"" : "Öppna \"%s\"",
"This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Denna applikation gör det möjligt för användare att dela filer inom Nextcloud. Om aktiverad kan administratören välja vilka grupper som kan dela filer. De tillämpliga användarna kan sedan dela filer och mappar med andra användare och grupper inom Nextcloud. Dessutom, om administratören aktiverar funktionen dela länk, kan en extern länk användas för att dela filer med andra användare utanför Nextcloud. Administratörer kan också tvinga lösenord, utgångsdatum och aktivera server till serverdelning via delningslänkar samt dela från mobila enheter.\nOm du stänger av funktionen tar du bort delade filer och mappar på servern för alla delmottagare och även på synkroniseringsklienterna och mobilapparna. Mer information finns i dokumentationen för Nextcloud.",
- "Sharing" : "Delning",
- "Accept shares from other accounts and groups by default" : "Acceptera delningar från andra konton och grupper som standard",
+ "People" : "Personer",
+ "Filter accounts" : "Filtrera konton",
+ "The request will expire on {date} at midnight and will be password protected." : "Begäran upphör att gälla den {date} vid midnatt och kommer att vara lösenordsskyddad.",
+ "The request will expire on {date} at midnight." : "Begäran upphör att gälla den {date} vid midnatt.",
+ "The request will be password protected." : "Begäran kommer att vara lösenordsskyddad.",
+ "When should the request expire?" : "När ska begäran löpa ut?",
+ "Set a submission expiration date" : "Ställ in utgångsdatum för inlämning",
+ "Expiration date" : "Utgångsdatum",
+ "Select a date" : "Välj ett datum",
+ "Your administrator has enforced a {count} days expiration policy." : "Din administratör har tillämpat en {count} dagars utgångspolicy.",
+ "What password should be used for the request?" : "Vilket lösenord ska användas för begäran?",
+ "Set a password" : "Sätt ett lösenord",
+ "Password" : "Lösenord",
+ "Enter a valid password" : "Ange ett giltigt lösenord",
+ "Generate a new password" : "Skapa ett nytt lösenord",
+ "Your administrator has enforced a password protection." : "Din administratör har tillämpat ett lösenordsskydd.",
+ "Automatically copying failed, please copy the share link manually" : "Automatisk kopiering misslyckades, kopiera delningslänken manuellt",
+ "Link copied" : "Länk kopierad",
+ "Email already added" : "E-post har redan lagts till",
+ "Invalid email address" : "Ogiltig e-postadress",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Följande e-postadress är inte giltig: {emails}","Följande e-postadresser är inte giltiga: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} e-postadress som redan har lagts till","{count} e-postadresser som redan har lagts till"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} e-postadress har lagts till","{count} e-postadresser har lagts till"],
+ "You can now share the link below to allow people to upload files to your directory." : "Du kan nu dela länken nedan för att tillåta andra att ladda upp filer till din mapp.",
+ "Share link" : "Dela länk",
+ "Copy" : "Kopiera",
+ "Send link via email" : "Skicka länk via e-post",
+ "Enter an email address or paste a list" : "Ange en e-postadress eller klistra in en lista",
+ "Remove email" : "Ta bort e-post",
+ "Select a destination" : "Välj en destination",
+ "Select" : "Välj",
+ "What are you requesting?" : "Vad begär du?",
+ "Request subject" : "Ämne för begäran",
+ "Birthday party photos, History assignment…" : "Foton på födelsedagsfester, historiauppgift...",
+ "Where should these files go?" : "Vart ska dessa filer ta vägen?",
+ "Upload destination" : "Destination för uppladdning",
+ "Revert to default" : "Återgå till standard",
+ "The uploaded files are visible only to you unless you choose to share them." : "De uppladdade filerna är endast synliga för dig om du inte väljer att dela dem.",
+ "Add a note" : "Lägg till en notering",
+ "Note for recipient" : "Notering till mottagare",
+ "Add a note to help people understand what you are requesting." : "Lägg till en notering för att hjälpa andra att förstå vad du efterfrågar.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Du kan lägga till länkar, datum eller annan information som hjälper mottagaren att förstå vad du efterfrågar.",
+ "Close" : "Stäng",
+ "_Send email and close_::_Send {count} emails and close_" : ["Skicka e-post och stäng","Skicka {count} e-postmeddelanden och stäng"],
+ "Please select a folder, you cannot share the root directory." : "Välj en mapp, du kan inte dela rotkatalogen.",
+ "File request created" : "Filförfrågan skapad",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Filförfrågan skapad och e-postmeddelanden skickade","Filförfrågan skapad och {count} e-postmeddelanden skickade"],
+ "Error creating the share: {errorMessage}" : "Kunde inte skapa delningen: {errorMessage}",
+ "Error creating the share" : "Kunde inte skapa delning",
+ "Error sending emails: {errorMessage}" : "Kunde inte skicka e-postmeddelanden: {errorMessage}",
+ "Error sending emails" : "Kunde inte skicka e-postmeddelanden",
+ "Create a file request" : "Skapa en filförfrågan",
+ "Collect files from others even if they do not have an account." : "Samla in filer från andra även om de inte har ett konto.",
+ "To ensure you can receive files, verify you have enough storage available." : "För att säkerställa att du kan ta emot filer, kontrollera att du har tillräckligt med lagringsutrymme tillgängligt.",
+ "File request" : "Filförfrågan",
+ "Previous step" : "Föregående steg",
+ "Cancel" : "Avbryt",
+ "Cancel the file request creation" : "Avbryt skapande av filförfrågan",
+ "Close without sending emails" : "Stäng utan att skicka e-post",
+ "Continue" : "Fortsätt",
"Error while toggling options" : "Fel vid ändring av inställningar",
- "Set default folder for accepted shares" : "Sätt standardmapp för accepterade delningar",
- "Reset" : "Återställ",
- "Reset folder to system default" : "Återställ mapp till system-standard",
+ "Accept shares from other accounts and groups by default" : "Acceptera delningar från andra konton och grupper som standard",
"Choose a default folder for accepted shares" : "Välj en standardmapp för accepterade delningar",
"Invalid path selected" : "Ogiltigt sökväg vald",
"Unknown error" : "Okänt fel",
- "Open Sharing Details" : "Öppna delningsinformation",
+ "Set default folder for accepted shares" : "Sätt standardmapp för accepterade delningar",
+ "Reset" : "Återställ",
+ "Reset folder to system default" : "Återställ mapp till system-standard",
+ "Share expiration: {date}" : "Delningens utgång: {date}",
+ "Share Expiration" : "Delningens utgång",
"group" : "grupp",
"conversation" : "konversation",
"remote" : "extern",
"remote group" : "extern grupp",
"guest" : "gäst",
+ "by {initiator}" : "av {initiator}",
"Shared with the group {user} by {owner}" : "Delad med gruppen {user} av {owner}",
"Shared with the conversation {user} by {owner}" : "Delad med konversationen {user} av {owner}",
"Shared with {user} by {owner}" : "Delad med {user} av {owner}",
+ "Open Sharing Details" : "Öppna delningsinformation",
"Added by {initiator}" : "Tillagd av {initiator}",
"Via “{folder}”" : "Via “{folder}”",
"Unshare" : "Sluta dela",
- "Internal link" : "Intern länk",
"Cannot copy, please copy the link manually" : "Kan inte kopiera, länken måste kopieras manuellt",
- "Copy internal link to clipboard" : "Kopiera intern länk till urklipp",
- "Only works for people with access to this folder" : "Fungerar endast för personer med åtkomst till den här mappen",
- "Only works for people with access to this file" : "Fungerar endast för personer med åtkomst till den här filen",
- "Link copied" : "Länk kopierad",
+ "Copy internal link" : "Kopiera intern länk",
+ "Internal link" : "Intern länk",
+ "{shareWith} by {initiator}" : "{shareWith} av {initiator}",
+ "Shared via link by {initiator}" : "Delad via länk av {initiator}",
+ "File request ({label})" : "Filförfrågan ({label})",
+ "Mail share ({label})" : "E-postdelning ({label})",
+ "Share link ({label})" : "Dela länk ({label})",
+ "Mail share" : "E-postdelning",
+ "Share link ({index})" : "Dela länk ({index})",
+ "Create public link" : "Skapa offentlig länk",
+ "Actions for \"{title}\"" : "Åtgärder för \"{title}\"",
+ "Error, please enter proper password and/or expiration date" : "Fel, ange korrekt lösenord och/eller utgångsdatum",
+ "Link share created" : "Delningslänk skapad",
+ "Error while creating the share" : "Det gick inte att skapa delningen",
"Please enter the following required information before creating the share" : "Ange följande obligatorisk information innan du skapar delningen",
"Password protection (enforced)" : "Lösenordsskydd (obligatorisk)",
"Password protection" : "Lösenordsskydd",
"Enter a password" : "Ange ett lösenord",
- "Expiration date (enforced)" : "Förfallodatum (obligatorisk)",
- "Enter a date" : "Ange datum",
+ "Enable link expiration (enforced)" : "Aktivera länkens utgång (obligatorisk)",
+ "Enable link expiration" : "Aktivera länkens utgång",
+ "Enter expiration date (enforced)" : "Ange utgångsdatum (obligatorisk)",
+ "Enter expiration date" : "Ange utgångsdatum",
"Create share" : "Skapa delning",
- "Cancel" : "Avbryt",
"Customize link" : "Anpassa länk",
"Generate QR code" : "Generera QR-kod",
"Add another link" : "Lägg till en annan länk",
"Create a new share link" : "Skapa en ny delad länk",
- "{shareWith} by {initiator}" : "{shareWith} av {initiator}",
- "Shared via link by {initiator}" : "Delad via länk av {initiator}",
- "Mail share ({label})" : "E-postdelning ({labe})",
- "Share link ({label})" : "Dela länk ({label})",
- "Share link ({index})" : "Dela länk ({index})",
- "Share link" : "Dela länk",
- "Actions for \"{title}\"" : "Åtgärder för \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Kopiera publika länken för \"{title}\" till urklipp",
- "Error, please enter proper password and/or expiration date" : "Fel, ange korrekt lösenord och/eller utgångsdatum",
- "Link share created" : "Delningslänk skapad",
- "Error while creating the share" : "Det gick inte att skapa delningen",
"Quick share options, the current selected is \"{selectedOption}\"" : "Snabbdelningsalternativ, det nuvarande valda är \"{selectedOption}\"",
"View only" : "Skrivskyddat läge",
"Can edit" : "Kan ändra",
- "File drop" : "Göm fillista",
"Custom permissions" : "Anpassade behörigheter",
- "Search for share recipients" : "Sök efter delningsmottagare",
- "No recommendations. Start typing." : "Inga rekommendationer. Börja skriva.",
"Resharing is not allowed" : "Dela vidare är inte tillåtet",
"Name or email …" : "Namn eller e-post ...",
"Name, email, or Federated Cloud ID …" : "Namn, e-post eller federerat moln-ID ...",
"Searching …" : "Söker ...",
"No elements found." : "Inga element hittades.",
- "Search globally" : "Sök globalt",
+ "Search everywhere" : "Sök överallt",
"Guest" : "Gäst",
"Group" : "Grupp",
"Email" : "E-post",
"Team" : "Team",
"Talk conversation" : "Talk-konversation",
- "Deck board" : "Deck-plank",
+ "Deck board" : "Deck-tavla",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "på {server}",
+ "Enter external recipients" : "Ange externa mottagare",
+ "Search for internal recipients" : "Sök efter interna mottagare",
+ "Note from" : "Anteckning från",
+ "Note:" : "Notering:",
+ "File drop" : "Filinkast",
+ "Upload files to {foldername}." : "Ladda upp filer till {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Genom att ladda upp filer godkänner du användarvillkoren.",
+ "Successfully uploaded files" : "Filer har laddats upp",
+ "View terms of service" : "Visa användarvillkoren",
+ "Terms of service" : "Användarvillkor",
+ "Share with email {email}" : "Dela med e-post {email}",
+ "Share with group" : "Dela med grupp",
+ "Share in conversation" : "Dela i konversation",
+ "Share with {user} on remote server {server}" : "Dela med {user} på fjärrserver {server}",
+ "Share with remote group" : "Dela med remote grupp",
+ "Share with guest" : "Dela med gäst",
+ "Update share" : "Uppdatera delning",
+ "Save share" : "Spara delning",
+ "Read" : "Läs",
+ "Create" : "Skapa",
+ "Edit" : "Ändra",
+ "Share" : "Dela",
+ "Delete" : "Ta bort",
+ "Password field cannot be empty" : "Lösenordsfältet får inte vara tomt",
+ "Replace current password" : "Ersätt nuvarande lösenord",
+ "Failed to generate a new token" : "Kunde inte generera en ny token",
"Allow upload and editing" : "Tillåt uppladdning och redigering",
"Allow editing" : "Tillåt redigering",
"Upload only" : "Endast uppladdning",
"Advanced settings" : "Avancerade inställningar",
"Share label" : "Delningsetikett",
+ "Share link token" : "Token för delningslänk",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Ställ in delningstoken för publika länken till något enkelt att komma ihåg eller generera en ny token. Det rekommenderas inte att använda en token som är lätt att gissa för delningar som innehåller känslig information.",
+ "Generating…" : "Genererar...",
+ "Generate new token" : "Generera ny token",
"Set password" : "Ange lösenord",
- "Password" : "Lösenord",
"Password expires {passwordExpirationTime}" : "Lösenordet går ut {passwordExpirationTime}",
"Password expired" : "Lösenordet har gått ut",
"Video verification" : "Video-verifiering",
+ "Expiration date (enforced)" : "Förfallodatum (obligatorisk)",
"Set expiration date" : "Välj utgångsdatum",
- "Expiration date" : "Utgångsdatum",
"Hide download" : "Dölj hämtning",
- "Allow download" : "Tillåt nedladdning",
+ "Allow download and sync" : "Tillåt nedladdning och synkronisering",
"Note to recipient" : "Notering till mottagare",
"Enter a note for the share recipient" : "Ange en notering till mottagaren",
- "Read" : "Läs",
- "Create" : "Skapa",
- "Edit" : "Ändra",
- "Share" : "Dela",
+ "Show files in grid view" : "Visa filer i rutnätsvy",
"Delete share" : "Ta bort delning",
- "Share with {userName}" : "Dela med {userName}",
- "Share with email {email}" : "Dela med e-post {email}",
- "Share with group" : "Dela med grupp",
- "Share in conversation" : "Dela i konversation",
- "Share with {user} on remote server {server}" : "Dela med {user} på fjärrserver {server}",
- "Share with remote group" : "Dela med remote grupp",
- "Share with guest" : "Dela med gäst",
- "Update share" : "Uppdatera delning",
- "Save share" : "Spara delning",
"Others with access" : "Andra med åtkomst",
"No other accounts with access found" : "Inga andra konton med åtkomst hittades",
"Toggle list of others with access to this directory" : "Växla lista över andra med access till den här mappen",
"Toggle list of others with access to this file" : "Växla lista över andra med access till den här filen",
"Unable to fetch inherited shares" : "Kan inte hämta ärvda delningar",
+ "Link shares" : "Länkdelningar",
+ "Shares" : "Delningar",
"Unable to load the shares list" : "Kunde inte läsa in delningslistan",
"Expires {relativetime}" : "Upphör {relativetime}",
"this share just expired." : "denna delning har just gått ut.",
"Shared with you by {owner}" : "Delad med dig av {owner}",
+ "Internal shares" : "Interna delningar",
+ "Internal shares explanation" : "Förklaring av interna delningar",
+ "External shares" : "Externa delningar",
+ "External shares explanation" : "Förklaring av externa delningar",
+ "Additional shares" : "Ytterligare delningar",
+ "Additional shares explanation" : "Förklaring av ytterligare delningar",
+ "Link to a file" : "Länka till en fil",
"_Accept share_::_Accept shares_" : ["Acceptera delning","Acceptera delningar"],
"Open in Files" : "Öppna i Filer",
"_Reject share_::_Reject shares_" : ["Avvisa delning","Avvisa delningar"],
"_Restore share_::_Restore shares_" : ["Återställ delning","Återställ delningar"],
"Shared" : "Delad",
- "Shared multiple times with different people" : "Delad flera gånger med olika personer",
"Shared by {ownerDisplayName}" : "Delad av {ownerDisplayName}",
- "Show sharing options" : "Visa delningsalternativ",
- "Link to a file" : "Länka till en fil",
- "Error creating the share: {errorMessage}" : "Kunde inte skapa delningen: {errorMessage}",
- "Error creating the share" : "Kunde inte skapa delning",
- "Error updating the share: {errorMessage}" : "Kunde inte uppdatera delningen: {errorMessage}",
- "Error updating the share" : "Kunde inte uppdatera delning",
- "File \"{path}\" has been unshared" : "Fil \"{path}\" har slutat att delas",
- "Folder \"{path}\" has been unshared" : "Mapp \"{path}\" har slutat att delas",
- "Share {propertyName} saved" : "Delning {propertyName} sparad",
- "Shared by" : "Delad av",
- "Shared with" : "Delad med",
- "Password created successfully" : "Lösenordet har skapats",
- "Error generating password from password policy" : "Fel vid generering av lösenord från lösenordspolicy",
- "Shared with you and the group {group} by {owner}" : "Delad med dig och gruppen {group} av {owner}",
- "Shared with you and {circle} by {owner}" : "Delad med dig och {circle} av {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Delad med dig och konversation {conversation} av {owner}",
- "Shared with you in a conversation by {owner}" : "Delad med dig i en konversation av {owner}",
- "Shares" : "Delningar",
+ "Shared multiple times with different people" : "Delad flera gånger med olika personer",
+ "Shared with others" : "Delas med andra",
+ "Create file request" : "Skapa filförfrågan",
+ "Upload files to {foldername}" : "Ladda upp filer till {foldername}",
+ "Public file share" : "Offentlig fildelning",
+ "Publicly shared file." : "Offentligt delad fil.",
+ "No file" : "Ingen fil",
+ "The file shared with you will show up here" : "Filen som delas med dig kommer att visas här",
+ "Public share" : "Offentlig delning",
+ "Publicly shared files." : "Offentligt delade filer.",
+ "No files" : "Inga filer",
+ "Files and folders shared with you will show up here" : "Filer och mappar som delas med dig kommer att visas här",
"Overview of shared files." : "Översikt över delade filer.",
"No shares" : "Inga delningar",
"Files and folders you shared or have been shared with you will show up here" : "Filer och mappar som du delat eller har delats med dig kommer att visas här",
@@ -257,7 +336,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Lista över filer som delas med dig.",
"Nothing shared with you yet" : "Inget delat med dig ännu",
"Files and folders others shared with you will show up here" : "Filer och mappar som andra delat med dig kommer att visas här",
- "Shared with others" : "Delas med andra",
"List of files that you shared with others." : "Lista över filer som du delat med andra.",
"Nothing shared yet" : "Inget delat ännu",
"Files and folders you shared will show up here" : "Filer och mappar som du delat kommer att visas här",
@@ -265,6 +343,10 @@ OC.L10N.register(
"List of files that are shared by link." : "Lista över filer som delas via länk.",
"No shared links" : "Inga delade länkar",
"Files and folders you shared by link will show up here" : "Filer och mappar som du delat via länk kommer att visas här",
+ "File requests" : "Filförfrågningar",
+ "List of file requests." : "Lista över filförfrågningar.",
+ "No file requests" : "Inga filförfrågningar",
+ "File requests you have created will show up here" : "Filförfrågningar som du har skapat kommer att visas här",
"Deleted shares" : "Borttagna delningar",
"List of shares you left." : "Lista över delningar du lämnat.",
"No deleted shares" : "Inga borttagna delningar",
@@ -273,49 +355,87 @@ OC.L10N.register(
"List of unapproved shares." : "Lista över ej godkända delningar.",
"No pending shares" : "Inga väntande delningar",
"Shares you have received but not approved will show up here" : "Delningar du har mottagit men inte bekräftat kommer att visas här",
+ "Error deleting the share: {errorMessage}" : "Fel vid radering av delning: {errorMessage}",
+ "Error deleting the share" : "Kunde inte radera delningen",
+ "Error updating the share: {errorMessage}" : "Kunde inte uppdatera delningen: {errorMessage}",
+ "Error updating the share" : "Kunde inte uppdatera delning",
+ "File \"{path}\" has been unshared" : "Fil \"{path}\" har slutat att delas",
+ "Folder \"{path}\" has been unshared" : "Mapp \"{path}\" har slutat att delas",
+ "Could not update share" : "Kunde inte uppdatera delning",
+ "Share saved" : "Delningen sparad",
+ "Share expiry date saved" : "Delningens utgångsdatum sparad",
+ "Share hide-download state saved" : "Delningens göm nedladdningsstatus sparad",
+ "Share label saved" : "Delningsetikett sparad",
+ "Share note for recipient saved" : "Delningens notering för mottagare sparad",
+ "Share password saved" : "Lösenord för delning sparad",
+ "Share permissions saved" : "Delningsbehörighet sparad",
+ "To upload files to {folder}, you need to provide your name first." : "För att ladda upp filer till {folder}, måste du först ange ditt namn.",
+ "Upload files to {folder}" : "Ladda upp filer till {folder}",
+ "Please confirm your name to upload files to {folder}" : "Bekräfta ditt namn för att ladda upp filer till {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} delade en mapp med dig.",
+ "Names must not be empty." : "Namn får inte vara tomt.",
+ "Names must not start with a dot." : "Namn får inte börja med en punkt.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" är inte tillåtet i ett namn.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" är ett reserverat namn och inte tillåtet.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" är inte ett tillåtet namn.",
+ "Names must not end with \"{extension}\"." : "Namn får inte sluta med \"{extension}\".",
+ "Invalid name." : "Ogiltigt namn.",
+ "Shared by" : "Delad av",
+ "Shared with" : "Delad med",
+ "Password created successfully" : "Lösenordet har skapats",
+ "Error generating password from password policy" : "Fel vid generering av lösenord från lösenordspolicy",
+ "Shared with you and the group {group} by {owner}" : "Delad med dig och gruppen {group} av {owner}",
+ "Shared with you and {circle} by {owner}" : "Delad med dig och {circle} av {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Delad med dig och konversation {conversation} av {owner}",
+ "Shared with you in a conversation by {owner}" : "Delad med dig i en konversation av {owner}",
+ "Share not found" : "Delningen hittades inte",
+ "Back to %s" : "Tillbaka till %s",
+ "Add to your Nextcloud" : "Lägg till i molnet",
+ "Waiting…" : "Väntar...",
+ "error" : "fel",
+ "finished" : "klar",
+ "This will stop your current uploads." : "Detta kommer att stoppa nuvarande uppladdningar.",
+ "Move or copy" : "Flytta eller kopiera",
+ "You can upload into this folder" : "Du kan ladda upp i denna mapp",
+ "Show list view" : "Visa listvy",
+ "Show grid view" : "Visa rutnätsvy",
+ "No compatible server found at {remote}" : "Ingen kompatibel server hittad på {remote}",
+ "Invalid server URL" : "Ogiltig serverwebbadress",
+ "Failed to add the public link to your Nextcloud" : "Misslyckades skapa den offentliga delningslänken till ditt moln",
+ "You are not allowed to edit link shares that you don't own" : "Du får inte redigera länkdelningar som du inte äger",
+ "Download all files" : "Hämta alla filer",
+ "Link copied to clipboard" : "Länken kopierad till urklipp",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-postadress som redan har lagts till","{count} e-postadresser som redan har lagts till"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 e-postadress har lagts till","{count} e-postadresser har lagts till"],
+ "Copy to clipboard" : "Kopiera till urklipp",
+ "Copy internal link to clipboard" : "Kopiera intern länk till urklipp",
+ "Only works for people with access to this folder" : "Fungerar endast för personer med åtkomst till den här mappen",
+ "Only works for people with access to this file" : "Fungerar endast för personer med åtkomst till den här filen",
+ "Copy public link of \"{title}\" to clipboard" : "Kopiera offentliga länken för \"{title}\" till urklipp",
+ "Search globally" : "Sök globalt",
+ "Search for share recipients" : "Sök efter delningsmottagare",
+ "No recommendations. Start typing." : "Inga rekommendationer. Börja skriva.",
+ "To upload files, you need to provide your name first." : "För att ladda upp filer måste du först ange ditt namn.",
+ "Enter your name" : "Ange ditt namn",
+ "Submit name" : "Skicka namn",
+ "Share with {userName}" : "Dela med {userName}",
+ "Show sharing options" : "Visa delningsalternativ",
"Share note" : "Dela kommentar",
"Upload files to %s" : "Ladda upp filer till %s",
+ "%s shared a folder with you." : "%s delade en mapp med dig.",
"Note" : "Anteckning",
"Select or drop files" : "Välj eller dra filer hit",
"Uploading files" : "Laddar upp filer",
"Uploaded files:" : "Uppladdade filer:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Genom att ladda upp filer godkänner du %1$sanvändarvillkoren %2$s.",
- "Add to your Nextcloud" : "Lägg till i molnet",
- "Files and folders others share with you will show up here" : "Filer och mappar som andra delar med dig kommer visas här",
- "Files and folders you share will show up here" : "Filer och mappar som du delar kommer visas här",
- "Files and folders you share by link will show up here" : "Filer och mappar som du delar som länkar kommer visas här",
- "Shares you deleted will show up here" : "Borttagna delningar visas här",
- "Shares you have received but not confirmed will show up here" : "Delningar du har mottagit men inte bekräftat visas här",
- "Shares will show up here" : "Delningar visas här",
- "Restore" : "Återställ",
- "Something happened. Unable to restore the share." : "Ett fel uppstod. Kan inte återställa delningen.",
- "Something happened. Unable to accept the share." : "Ett fel uppstod. Kan inte acceptera delningen.",
- "Something happened. Unable to reject the share." : "Ett fel uppstod. Kan inte avvisa delningen.",
- "No expiration date set" : "Inget utgångsdatum satt",
- "Please specify a valid user" : "Ange en giltig användare",
- "Please specify a valid federated user ID" : "Vänligen ange ett giltigt federerat användar-id.",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Denna applikation gör det möjligt för användare att dela filer inom Nextcloud. Om aktiverad kan administratören välja vilka grupper som kan dela filer. De tillämpliga användarna kan sedan dela filer och mappar med andra användare och grupper inom Nextcloud. Dessutom, om administratören aktiverar funktionen dela länk, kan en extern länk användas för att dela filer med andra användare utanför Nextcloud. Administratörer kan också tvinga lösenord, utgångsdatum och aktivera server till serverdelning via delningslänkar samt dela från mobila enheter.\nOm du stänger av funktionen tar du bort delade filer och mappar på servern för alla delmottagare och även på synkroniseringsklienterna och mobilapparna. Mer information finns i dokumentationen för Nextcloud.",
- "Accept user and group shares by default" : "Acceptera användar och grupp-delningar som standard",
- "Read only" : "Läsbehörighet",
- "File drop (upload only)" : "Göm fillista (endast uppladdning)",
- "Upload" : "Ladda upp",
- "Bundled permissions" : "Medföljande behörigheter",
- "Only works for users with access to this folder" : "Fungerar bara för användare med åtkomst till den här mappen",
- "Only works for users with access to this file" : "Fungerar bara för användare med åtkomst till den här mappen",
- "Circle" : "Cirkel",
- "Update" : "Uppdatera",
- "Share with " : "Dela med",
- "No other users with access found" : "Inga andra användare med åtkomst hittades",
- "No entries found in this folder" : "Inga filer hittades i denna mapp",
"Name" : "Namn",
- "Share time" : "Delningstid",
- "Sorry, this link does not seem to work anymore." : "Tyvärr, denna länk verkar inte fungera längre.",
- "Reasons might be:" : "Orsaker kan vara:",
- "the item was removed" : "objektet togs bort",
- "the link expired" : "giltighet för länken har gått ut",
- "sharing is disabled" : "delning är inaktiverat",
- "For more info, please ask the person who sent this link." : "För mer information, kontakta den person som skickade den här länken.",
- "Share with remote" : "Dela med remote",
- "Share with" : "Dela med"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Använd den här metoden för att dela filer med individer eller team inom din organisation. Om mottagaren redan har åtkomst till delningen men inte kan hitta den, kan du skicka den interna delningslänken för enkel åtkomst.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Använd den här metoden för att dela filer med individer eller organisationer utanför din organisation. Filer och mappar kan delas via publika delningslänkar och e-postadresser. Du kan också dela med andra Nextcloud-konton som finns på andra instanser genom deras federerade moln-ID.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Delningar som inte ingår i de interna eller externa delningarna. Detta kan vara delningar från appar eller andra källor.",
+ "Share with accounts, teams, federated cloud id" : "Dela med konton, team, federerat moln-id",
+ "Share with accounts and teams" : "Dela med konton och team",
+ "Federated cloud ID" : "Federerat moln-ID",
+ "Email, federated cloud id" : "E-post, federerat moln-id",
+ "Filename must not be empty." : "Filnamn får inte vara tomt."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/sv.json b/apps/files_sharing/l10n/sv.json
index bfe3c5484f1..d69feb11d7f 100644
--- a/apps/files_sharing/l10n/sv.json
+++ b/apps/files_sharing/l10n/sv.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Väntar...",
- "error" : "fel",
- "finished" : "klar",
- "This will stop your current uploads." : "Detta kommer att stoppa nuvarande uppladdningar.",
- "Move or copy" : "Flytta eller kopiera",
- "Download" : "Hämta",
- "Delete" : "Ta bort",
- "You can upload into this folder" : "Du kan ladda upp i denna mapp",
- "Terms of service" : "Användarvilkor",
- "Show list view" : "Visa listvy",
- "Show grid view" : "Visa rutnätsvy",
- "No compatible server found at {remote}" : "Ingen kompatibel server hittad på {remote}",
- "Invalid server URL" : "Ogiltig serverwebbadress",
- "Failed to add the public link to your Nextcloud" : "Misslyckades skapa den offentliga delningslänken till ditt moln",
"File shares" : "Fildelningar",
"Downloaded via public link" : "Hämtad via offentlig länk",
"Downloaded by {email}" : "Hämtad av {email}",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "Delning för fil {file} med {user} har gått ut",
"Share for file {file} expired" : "Delning för fil {file} har gått ut",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "En fil eller mapp som delats via e-post eller offentlig länk har blivit <strong>hämtad</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Filer har <strong>laddats upp</strong> till en mapp som delas via e-post eller via offentlig länk",
"A file or folder was shared from <strong>another server</strong>" : "En fil eller mapp delades från <strong>en annan server</strong>",
- "Files" : "Filer",
+ "Sharing" : "Delning",
"A file or folder has been <strong>shared</strong>" : "En fil eller mapp har <strong>delats</strong>",
"Shared link" : "Delad länk",
"Wrong share ID, share does not exist" : "Fel delnings-ID, delningen finns inte",
@@ -76,34 +63,46 @@
"Please specify a file or folder path" : "Ange sökväg till filen eller mappen",
"Wrong path, file/folder does not exist" : "Fel sökväg, fil/mapp finns inte",
"Could not create share" : "Kunde inte skapa delning",
- "Invalid permissions" : "Ogiltiga behörigheter",
- "Invalid date, date format must be YYYY-MM-DD" : "Ogiltigt datum, måste anges: ÅÅÅÅ-MM-DD",
"Please specify a valid account to share with" : "Ange ett giltigt konto att dela med",
"Group sharing is disabled by the administrator" : "Gruppdelning är avstängt",
"Please specify a valid group" : "Ange en giltig grupp",
"Public link sharing is disabled by the administrator" : "Offentlig delningslänk är avstängt",
- "Public upload disabled by the administrator" : "Offentlig uppladdning är avstängt",
- "Public upload is only possible for publicly shared folders" : "Offentlig uppladdning fungerar endast i offentligt delade mappar",
+ "Please specify a valid email address" : "Ange en giltig e-postadress",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Dela %s och skicka lösenordet via Nextcloud Talk går inte eftersom Nextcloud Talk är inte aktiverad",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Delning av %1$s misslyckades för att det inte är tillåtet med delningar från typ %2$s",
"Please specify a valid federated account ID" : "Ange ett giltigt federerat konto-ID",
"Please specify a valid federated group ID" : "Vänligen ange ett giltigt federerat grupp-id.",
- "You cannot share to a Circle if the app is not enabled" : "Du kan inte dela till en cirkel om appen inte är aktiverad",
- "Please specify a valid circle" : "Vänligen ange en giltig cirkel",
+ "You cannot share to a Team if the app is not enabled" : "Du kan inte dela med ett team om appen inte är aktiverad",
+ "Please specify a valid team" : "Ange ett giltigt team",
"Sharing %s failed because the back end does not support room shares" : "Delning av %s misslyckades eftersom systemet inte stödjer rum-delningar",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Delning av %s misslyckades eftersom servern inte stödjer ScienceMesh-delningar",
"Unknown share type" : "Ogiltig delningstyp",
"Not a directory" : "Inte en mapp",
"Could not lock node" : "Kunde inte låsa nod",
- "Could not lock path" : "Kunde inte låsa sökvägen",
- "Wrong or no update parameter given" : "Fel eller ingen uppdateringsparameter angiven",
+ "Public upload is only possible for publicly shared folders" : "Offentlig uppladdning fungerar endast i offentligt delade mappar",
"Share must at least have READ or CREATE permissions" : "Delningen måste åtminstone ha LÄS- eller SKAPA-behörighet",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Delningen måste ha LÄS-behörighet om ÄNDRA- eller RADERA-behörighet är inställd",
+ "Public upload disabled by the administrator" : "Offentlig uppladdning är avstängt",
+ "Could not lock path" : "Kunde inte låsa sökvägen",
+ "no sharing rights on this item" : "inga delningsrättigheter för detta objekt",
+ "You are not allowed to edit incoming shares" : "Du får inte redigera inkommande delningar",
+ "Wrong or no update parameter given" : "Fel eller ingen uppdateringsparameter angiven",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Skicka lösenord via Nextcloud Talk\" för att dela en fil eller mapp misslyckades eftersom Nextcloud Talk inte är aktiverat.",
+ "Custom share link tokens have been disabled by the administrator" : "Anpassade tokens för delningslänkar har inaktiverats av administratören",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Token måste innehålla minst 1 tecken och får endast innehålla bokstäver, siffror eller bindestreck",
+ "Invalid date. Format must be YYYY-MM-DD" : "Ogiltigt datum. Formatet måste vara ÅÅÅÅ-MM-DD",
+ "No sharing rights on this item" : "Inga delningsrättigheter för detta objekt",
+ "Invalid share attributes provided: \"%s\"" : "Ogiltiga delningsattribut har angetts: \"%s\"",
+ "You are not allowed to send mail notifications" : "Du får inte skicka e-postaviseringar",
+ "No mail notification configured for this share type" : "Ingen e-postavisering har konfigurerats för denna delningstyp",
+ "Wrong password" : "Fel lösenord",
+ "Error while sending mail notification" : "Fel vid sändning av e-postavisering",
+ "Failed to generate a unique token" : "Kunde inte generera en unik token",
+ "This share does not exist or is no longer available" : "Den här delningen finns inte eller är inte längre tillgänglig",
"shared by %s" : "delad av %s",
- "Download all files" : "Hämta alla filer",
- "Direct link" : "Direktlänk",
+ "Download" : "Hämta",
"Add to your %s" : "Lägg till i din %s",
+ "Direct link" : "Direktlänk",
"Share API is disabled" : "Delning av API är inaktiverad",
"File sharing" : "Fildelning",
"Share will expire tomorrow" : "Delningen upphör imorgon",
@@ -112,142 +111,222 @@
"You received {share} to group {group} as a share by {user}" : "Du tog emot {share} till gruppen {group} som en delning från {user}",
"Accept" : "Acceptera",
"Decline" : "Avböj",
+ "Remember to upload the files to %s" : "Kom ihåg att ladda upp filerna till %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Vi vill påminna dig om att du ännu inte har laddat upp några filer till den delade mappen.",
+ "Open \"%s\"" : "Öppna \"%s\"",
"This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Denna applikation gör det möjligt för användare att dela filer inom Nextcloud. Om aktiverad kan administratören välja vilka grupper som kan dela filer. De tillämpliga användarna kan sedan dela filer och mappar med andra användare och grupper inom Nextcloud. Dessutom, om administratören aktiverar funktionen dela länk, kan en extern länk användas för att dela filer med andra användare utanför Nextcloud. Administratörer kan också tvinga lösenord, utgångsdatum och aktivera server till serverdelning via delningslänkar samt dela från mobila enheter.\nOm du stänger av funktionen tar du bort delade filer och mappar på servern för alla delmottagare och även på synkroniseringsklienterna och mobilapparna. Mer information finns i dokumentationen för Nextcloud.",
- "Sharing" : "Delning",
- "Accept shares from other accounts and groups by default" : "Acceptera delningar från andra konton och grupper som standard",
+ "People" : "Personer",
+ "Filter accounts" : "Filtrera konton",
+ "The request will expire on {date} at midnight and will be password protected." : "Begäran upphör att gälla den {date} vid midnatt och kommer att vara lösenordsskyddad.",
+ "The request will expire on {date} at midnight." : "Begäran upphör att gälla den {date} vid midnatt.",
+ "The request will be password protected." : "Begäran kommer att vara lösenordsskyddad.",
+ "When should the request expire?" : "När ska begäran löpa ut?",
+ "Set a submission expiration date" : "Ställ in utgångsdatum för inlämning",
+ "Expiration date" : "Utgångsdatum",
+ "Select a date" : "Välj ett datum",
+ "Your administrator has enforced a {count} days expiration policy." : "Din administratör har tillämpat en {count} dagars utgångspolicy.",
+ "What password should be used for the request?" : "Vilket lösenord ska användas för begäran?",
+ "Set a password" : "Sätt ett lösenord",
+ "Password" : "Lösenord",
+ "Enter a valid password" : "Ange ett giltigt lösenord",
+ "Generate a new password" : "Skapa ett nytt lösenord",
+ "Your administrator has enforced a password protection." : "Din administratör har tillämpat ett lösenordsskydd.",
+ "Automatically copying failed, please copy the share link manually" : "Automatisk kopiering misslyckades, kopiera delningslänken manuellt",
+ "Link copied" : "Länk kopierad",
+ "Email already added" : "E-post har redan lagts till",
+ "Invalid email address" : "Ogiltig e-postadress",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Följande e-postadress är inte giltig: {emails}","Följande e-postadresser är inte giltiga: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} e-postadress som redan har lagts till","{count} e-postadresser som redan har lagts till"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} e-postadress har lagts till","{count} e-postadresser har lagts till"],
+ "You can now share the link below to allow people to upload files to your directory." : "Du kan nu dela länken nedan för att tillåta andra att ladda upp filer till din mapp.",
+ "Share link" : "Dela länk",
+ "Copy" : "Kopiera",
+ "Send link via email" : "Skicka länk via e-post",
+ "Enter an email address or paste a list" : "Ange en e-postadress eller klistra in en lista",
+ "Remove email" : "Ta bort e-post",
+ "Select a destination" : "Välj en destination",
+ "Select" : "Välj",
+ "What are you requesting?" : "Vad begär du?",
+ "Request subject" : "Ämne för begäran",
+ "Birthday party photos, History assignment…" : "Foton på födelsedagsfester, historiauppgift...",
+ "Where should these files go?" : "Vart ska dessa filer ta vägen?",
+ "Upload destination" : "Destination för uppladdning",
+ "Revert to default" : "Återgå till standard",
+ "The uploaded files are visible only to you unless you choose to share them." : "De uppladdade filerna är endast synliga för dig om du inte väljer att dela dem.",
+ "Add a note" : "Lägg till en notering",
+ "Note for recipient" : "Notering till mottagare",
+ "Add a note to help people understand what you are requesting." : "Lägg till en notering för att hjälpa andra att förstå vad du efterfrågar.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Du kan lägga till länkar, datum eller annan information som hjälper mottagaren att förstå vad du efterfrågar.",
+ "Close" : "Stäng",
+ "_Send email and close_::_Send {count} emails and close_" : ["Skicka e-post och stäng","Skicka {count} e-postmeddelanden och stäng"],
+ "Please select a folder, you cannot share the root directory." : "Välj en mapp, du kan inte dela rotkatalogen.",
+ "File request created" : "Filförfrågan skapad",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Filförfrågan skapad och e-postmeddelanden skickade","Filförfrågan skapad och {count} e-postmeddelanden skickade"],
+ "Error creating the share: {errorMessage}" : "Kunde inte skapa delningen: {errorMessage}",
+ "Error creating the share" : "Kunde inte skapa delning",
+ "Error sending emails: {errorMessage}" : "Kunde inte skicka e-postmeddelanden: {errorMessage}",
+ "Error sending emails" : "Kunde inte skicka e-postmeddelanden",
+ "Create a file request" : "Skapa en filförfrågan",
+ "Collect files from others even if they do not have an account." : "Samla in filer från andra även om de inte har ett konto.",
+ "To ensure you can receive files, verify you have enough storage available." : "För att säkerställa att du kan ta emot filer, kontrollera att du har tillräckligt med lagringsutrymme tillgängligt.",
+ "File request" : "Filförfrågan",
+ "Previous step" : "Föregående steg",
+ "Cancel" : "Avbryt",
+ "Cancel the file request creation" : "Avbryt skapande av filförfrågan",
+ "Close without sending emails" : "Stäng utan att skicka e-post",
+ "Continue" : "Fortsätt",
"Error while toggling options" : "Fel vid ändring av inställningar",
- "Set default folder for accepted shares" : "Sätt standardmapp för accepterade delningar",
- "Reset" : "Återställ",
- "Reset folder to system default" : "Återställ mapp till system-standard",
+ "Accept shares from other accounts and groups by default" : "Acceptera delningar från andra konton och grupper som standard",
"Choose a default folder for accepted shares" : "Välj en standardmapp för accepterade delningar",
"Invalid path selected" : "Ogiltigt sökväg vald",
"Unknown error" : "Okänt fel",
- "Open Sharing Details" : "Öppna delningsinformation",
+ "Set default folder for accepted shares" : "Sätt standardmapp för accepterade delningar",
+ "Reset" : "Återställ",
+ "Reset folder to system default" : "Återställ mapp till system-standard",
+ "Share expiration: {date}" : "Delningens utgång: {date}",
+ "Share Expiration" : "Delningens utgång",
"group" : "grupp",
"conversation" : "konversation",
"remote" : "extern",
"remote group" : "extern grupp",
"guest" : "gäst",
+ "by {initiator}" : "av {initiator}",
"Shared with the group {user} by {owner}" : "Delad med gruppen {user} av {owner}",
"Shared with the conversation {user} by {owner}" : "Delad med konversationen {user} av {owner}",
"Shared with {user} by {owner}" : "Delad med {user} av {owner}",
+ "Open Sharing Details" : "Öppna delningsinformation",
"Added by {initiator}" : "Tillagd av {initiator}",
"Via “{folder}”" : "Via “{folder}”",
"Unshare" : "Sluta dela",
- "Internal link" : "Intern länk",
"Cannot copy, please copy the link manually" : "Kan inte kopiera, länken måste kopieras manuellt",
- "Copy internal link to clipboard" : "Kopiera intern länk till urklipp",
- "Only works for people with access to this folder" : "Fungerar endast för personer med åtkomst till den här mappen",
- "Only works for people with access to this file" : "Fungerar endast för personer med åtkomst till den här filen",
- "Link copied" : "Länk kopierad",
+ "Copy internal link" : "Kopiera intern länk",
+ "Internal link" : "Intern länk",
+ "{shareWith} by {initiator}" : "{shareWith} av {initiator}",
+ "Shared via link by {initiator}" : "Delad via länk av {initiator}",
+ "File request ({label})" : "Filförfrågan ({label})",
+ "Mail share ({label})" : "E-postdelning ({label})",
+ "Share link ({label})" : "Dela länk ({label})",
+ "Mail share" : "E-postdelning",
+ "Share link ({index})" : "Dela länk ({index})",
+ "Create public link" : "Skapa offentlig länk",
+ "Actions for \"{title}\"" : "Åtgärder för \"{title}\"",
+ "Error, please enter proper password and/or expiration date" : "Fel, ange korrekt lösenord och/eller utgångsdatum",
+ "Link share created" : "Delningslänk skapad",
+ "Error while creating the share" : "Det gick inte att skapa delningen",
"Please enter the following required information before creating the share" : "Ange följande obligatorisk information innan du skapar delningen",
"Password protection (enforced)" : "Lösenordsskydd (obligatorisk)",
"Password protection" : "Lösenordsskydd",
"Enter a password" : "Ange ett lösenord",
- "Expiration date (enforced)" : "Förfallodatum (obligatorisk)",
- "Enter a date" : "Ange datum",
+ "Enable link expiration (enforced)" : "Aktivera länkens utgång (obligatorisk)",
+ "Enable link expiration" : "Aktivera länkens utgång",
+ "Enter expiration date (enforced)" : "Ange utgångsdatum (obligatorisk)",
+ "Enter expiration date" : "Ange utgångsdatum",
"Create share" : "Skapa delning",
- "Cancel" : "Avbryt",
"Customize link" : "Anpassa länk",
"Generate QR code" : "Generera QR-kod",
"Add another link" : "Lägg till en annan länk",
"Create a new share link" : "Skapa en ny delad länk",
- "{shareWith} by {initiator}" : "{shareWith} av {initiator}",
- "Shared via link by {initiator}" : "Delad via länk av {initiator}",
- "Mail share ({label})" : "E-postdelning ({labe})",
- "Share link ({label})" : "Dela länk ({label})",
- "Share link ({index})" : "Dela länk ({index})",
- "Share link" : "Dela länk",
- "Actions for \"{title}\"" : "Åtgärder för \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Kopiera publika länken för \"{title}\" till urklipp",
- "Error, please enter proper password and/or expiration date" : "Fel, ange korrekt lösenord och/eller utgångsdatum",
- "Link share created" : "Delningslänk skapad",
- "Error while creating the share" : "Det gick inte att skapa delningen",
"Quick share options, the current selected is \"{selectedOption}\"" : "Snabbdelningsalternativ, det nuvarande valda är \"{selectedOption}\"",
"View only" : "Skrivskyddat läge",
"Can edit" : "Kan ändra",
- "File drop" : "Göm fillista",
"Custom permissions" : "Anpassade behörigheter",
- "Search for share recipients" : "Sök efter delningsmottagare",
- "No recommendations. Start typing." : "Inga rekommendationer. Börja skriva.",
"Resharing is not allowed" : "Dela vidare är inte tillåtet",
"Name or email …" : "Namn eller e-post ...",
"Name, email, or Federated Cloud ID …" : "Namn, e-post eller federerat moln-ID ...",
"Searching …" : "Söker ...",
"No elements found." : "Inga element hittades.",
- "Search globally" : "Sök globalt",
+ "Search everywhere" : "Sök överallt",
"Guest" : "Gäst",
"Group" : "Grupp",
"Email" : "E-post",
"Team" : "Team",
"Talk conversation" : "Talk-konversation",
- "Deck board" : "Deck-plank",
+ "Deck board" : "Deck-tavla",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "på {server}",
+ "Enter external recipients" : "Ange externa mottagare",
+ "Search for internal recipients" : "Sök efter interna mottagare",
+ "Note from" : "Anteckning från",
+ "Note:" : "Notering:",
+ "File drop" : "Filinkast",
+ "Upload files to {foldername}." : "Ladda upp filer till {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Genom att ladda upp filer godkänner du användarvillkoren.",
+ "Successfully uploaded files" : "Filer har laddats upp",
+ "View terms of service" : "Visa användarvillkoren",
+ "Terms of service" : "Användarvillkor",
+ "Share with email {email}" : "Dela med e-post {email}",
+ "Share with group" : "Dela med grupp",
+ "Share in conversation" : "Dela i konversation",
+ "Share with {user} on remote server {server}" : "Dela med {user} på fjärrserver {server}",
+ "Share with remote group" : "Dela med remote grupp",
+ "Share with guest" : "Dela med gäst",
+ "Update share" : "Uppdatera delning",
+ "Save share" : "Spara delning",
+ "Read" : "Läs",
+ "Create" : "Skapa",
+ "Edit" : "Ändra",
+ "Share" : "Dela",
+ "Delete" : "Ta bort",
+ "Password field cannot be empty" : "Lösenordsfältet får inte vara tomt",
+ "Replace current password" : "Ersätt nuvarande lösenord",
+ "Failed to generate a new token" : "Kunde inte generera en ny token",
"Allow upload and editing" : "Tillåt uppladdning och redigering",
"Allow editing" : "Tillåt redigering",
"Upload only" : "Endast uppladdning",
"Advanced settings" : "Avancerade inställningar",
"Share label" : "Delningsetikett",
+ "Share link token" : "Token för delningslänk",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Ställ in delningstoken för publika länken till något enkelt att komma ihåg eller generera en ny token. Det rekommenderas inte att använda en token som är lätt att gissa för delningar som innehåller känslig information.",
+ "Generating…" : "Genererar...",
+ "Generate new token" : "Generera ny token",
"Set password" : "Ange lösenord",
- "Password" : "Lösenord",
"Password expires {passwordExpirationTime}" : "Lösenordet går ut {passwordExpirationTime}",
"Password expired" : "Lösenordet har gått ut",
"Video verification" : "Video-verifiering",
+ "Expiration date (enforced)" : "Förfallodatum (obligatorisk)",
"Set expiration date" : "Välj utgångsdatum",
- "Expiration date" : "Utgångsdatum",
"Hide download" : "Dölj hämtning",
- "Allow download" : "Tillåt nedladdning",
+ "Allow download and sync" : "Tillåt nedladdning och synkronisering",
"Note to recipient" : "Notering till mottagare",
"Enter a note for the share recipient" : "Ange en notering till mottagaren",
- "Read" : "Läs",
- "Create" : "Skapa",
- "Edit" : "Ändra",
- "Share" : "Dela",
+ "Show files in grid view" : "Visa filer i rutnätsvy",
"Delete share" : "Ta bort delning",
- "Share with {userName}" : "Dela med {userName}",
- "Share with email {email}" : "Dela med e-post {email}",
- "Share with group" : "Dela med grupp",
- "Share in conversation" : "Dela i konversation",
- "Share with {user} on remote server {server}" : "Dela med {user} på fjärrserver {server}",
- "Share with remote group" : "Dela med remote grupp",
- "Share with guest" : "Dela med gäst",
- "Update share" : "Uppdatera delning",
- "Save share" : "Spara delning",
"Others with access" : "Andra med åtkomst",
"No other accounts with access found" : "Inga andra konton med åtkomst hittades",
"Toggle list of others with access to this directory" : "Växla lista över andra med access till den här mappen",
"Toggle list of others with access to this file" : "Växla lista över andra med access till den här filen",
"Unable to fetch inherited shares" : "Kan inte hämta ärvda delningar",
+ "Link shares" : "Länkdelningar",
+ "Shares" : "Delningar",
"Unable to load the shares list" : "Kunde inte läsa in delningslistan",
"Expires {relativetime}" : "Upphör {relativetime}",
"this share just expired." : "denna delning har just gått ut.",
"Shared with you by {owner}" : "Delad med dig av {owner}",
+ "Internal shares" : "Interna delningar",
+ "Internal shares explanation" : "Förklaring av interna delningar",
+ "External shares" : "Externa delningar",
+ "External shares explanation" : "Förklaring av externa delningar",
+ "Additional shares" : "Ytterligare delningar",
+ "Additional shares explanation" : "Förklaring av ytterligare delningar",
+ "Link to a file" : "Länka till en fil",
"_Accept share_::_Accept shares_" : ["Acceptera delning","Acceptera delningar"],
"Open in Files" : "Öppna i Filer",
"_Reject share_::_Reject shares_" : ["Avvisa delning","Avvisa delningar"],
"_Restore share_::_Restore shares_" : ["Återställ delning","Återställ delningar"],
"Shared" : "Delad",
- "Shared multiple times with different people" : "Delad flera gånger med olika personer",
"Shared by {ownerDisplayName}" : "Delad av {ownerDisplayName}",
- "Show sharing options" : "Visa delningsalternativ",
- "Link to a file" : "Länka till en fil",
- "Error creating the share: {errorMessage}" : "Kunde inte skapa delningen: {errorMessage}",
- "Error creating the share" : "Kunde inte skapa delning",
- "Error updating the share: {errorMessage}" : "Kunde inte uppdatera delningen: {errorMessage}",
- "Error updating the share" : "Kunde inte uppdatera delning",
- "File \"{path}\" has been unshared" : "Fil \"{path}\" har slutat att delas",
- "Folder \"{path}\" has been unshared" : "Mapp \"{path}\" har slutat att delas",
- "Share {propertyName} saved" : "Delning {propertyName} sparad",
- "Shared by" : "Delad av",
- "Shared with" : "Delad med",
- "Password created successfully" : "Lösenordet har skapats",
- "Error generating password from password policy" : "Fel vid generering av lösenord från lösenordspolicy",
- "Shared with you and the group {group} by {owner}" : "Delad med dig och gruppen {group} av {owner}",
- "Shared with you and {circle} by {owner}" : "Delad med dig och {circle} av {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Delad med dig och konversation {conversation} av {owner}",
- "Shared with you in a conversation by {owner}" : "Delad med dig i en konversation av {owner}",
- "Shares" : "Delningar",
+ "Shared multiple times with different people" : "Delad flera gånger med olika personer",
+ "Shared with others" : "Delas med andra",
+ "Create file request" : "Skapa filförfrågan",
+ "Upload files to {foldername}" : "Ladda upp filer till {foldername}",
+ "Public file share" : "Offentlig fildelning",
+ "Publicly shared file." : "Offentligt delad fil.",
+ "No file" : "Ingen fil",
+ "The file shared with you will show up here" : "Filen som delas med dig kommer att visas här",
+ "Public share" : "Offentlig delning",
+ "Publicly shared files." : "Offentligt delade filer.",
+ "No files" : "Inga filer",
+ "Files and folders shared with you will show up here" : "Filer och mappar som delas med dig kommer att visas här",
"Overview of shared files." : "Översikt över delade filer.",
"No shares" : "Inga delningar",
"Files and folders you shared or have been shared with you will show up here" : "Filer och mappar som du delat eller har delats med dig kommer att visas här",
@@ -255,7 +334,6 @@
"List of files that are shared with you." : "Lista över filer som delas med dig.",
"Nothing shared with you yet" : "Inget delat med dig ännu",
"Files and folders others shared with you will show up here" : "Filer och mappar som andra delat med dig kommer att visas här",
- "Shared with others" : "Delas med andra",
"List of files that you shared with others." : "Lista över filer som du delat med andra.",
"Nothing shared yet" : "Inget delat ännu",
"Files and folders you shared will show up here" : "Filer och mappar som du delat kommer att visas här",
@@ -263,6 +341,10 @@
"List of files that are shared by link." : "Lista över filer som delas via länk.",
"No shared links" : "Inga delade länkar",
"Files and folders you shared by link will show up here" : "Filer och mappar som du delat via länk kommer att visas här",
+ "File requests" : "Filförfrågningar",
+ "List of file requests." : "Lista över filförfrågningar.",
+ "No file requests" : "Inga filförfrågningar",
+ "File requests you have created will show up here" : "Filförfrågningar som du har skapat kommer att visas här",
"Deleted shares" : "Borttagna delningar",
"List of shares you left." : "Lista över delningar du lämnat.",
"No deleted shares" : "Inga borttagna delningar",
@@ -271,49 +353,87 @@
"List of unapproved shares." : "Lista över ej godkända delningar.",
"No pending shares" : "Inga väntande delningar",
"Shares you have received but not approved will show up here" : "Delningar du har mottagit men inte bekräftat kommer att visas här",
+ "Error deleting the share: {errorMessage}" : "Fel vid radering av delning: {errorMessage}",
+ "Error deleting the share" : "Kunde inte radera delningen",
+ "Error updating the share: {errorMessage}" : "Kunde inte uppdatera delningen: {errorMessage}",
+ "Error updating the share" : "Kunde inte uppdatera delning",
+ "File \"{path}\" has been unshared" : "Fil \"{path}\" har slutat att delas",
+ "Folder \"{path}\" has been unshared" : "Mapp \"{path}\" har slutat att delas",
+ "Could not update share" : "Kunde inte uppdatera delning",
+ "Share saved" : "Delningen sparad",
+ "Share expiry date saved" : "Delningens utgångsdatum sparad",
+ "Share hide-download state saved" : "Delningens göm nedladdningsstatus sparad",
+ "Share label saved" : "Delningsetikett sparad",
+ "Share note for recipient saved" : "Delningens notering för mottagare sparad",
+ "Share password saved" : "Lösenord för delning sparad",
+ "Share permissions saved" : "Delningsbehörighet sparad",
+ "To upload files to {folder}, you need to provide your name first." : "För att ladda upp filer till {folder}, måste du först ange ditt namn.",
+ "Upload files to {folder}" : "Ladda upp filer till {folder}",
+ "Please confirm your name to upload files to {folder}" : "Bekräfta ditt namn för att ladda upp filer till {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} delade en mapp med dig.",
+ "Names must not be empty." : "Namn får inte vara tomt.",
+ "Names must not start with a dot." : "Namn får inte börja med en punkt.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" är inte tillåtet i ett namn.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" är ett reserverat namn och inte tillåtet.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" är inte ett tillåtet namn.",
+ "Names must not end with \"{extension}\"." : "Namn får inte sluta med \"{extension}\".",
+ "Invalid name." : "Ogiltigt namn.",
+ "Shared by" : "Delad av",
+ "Shared with" : "Delad med",
+ "Password created successfully" : "Lösenordet har skapats",
+ "Error generating password from password policy" : "Fel vid generering av lösenord från lösenordspolicy",
+ "Shared with you and the group {group} by {owner}" : "Delad med dig och gruppen {group} av {owner}",
+ "Shared with you and {circle} by {owner}" : "Delad med dig och {circle} av {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Delad med dig och konversation {conversation} av {owner}",
+ "Shared with you in a conversation by {owner}" : "Delad med dig i en konversation av {owner}",
+ "Share not found" : "Delningen hittades inte",
+ "Back to %s" : "Tillbaka till %s",
+ "Add to your Nextcloud" : "Lägg till i molnet",
+ "Waiting…" : "Väntar...",
+ "error" : "fel",
+ "finished" : "klar",
+ "This will stop your current uploads." : "Detta kommer att stoppa nuvarande uppladdningar.",
+ "Move or copy" : "Flytta eller kopiera",
+ "You can upload into this folder" : "Du kan ladda upp i denna mapp",
+ "Show list view" : "Visa listvy",
+ "Show grid view" : "Visa rutnätsvy",
+ "No compatible server found at {remote}" : "Ingen kompatibel server hittad på {remote}",
+ "Invalid server URL" : "Ogiltig serverwebbadress",
+ "Failed to add the public link to your Nextcloud" : "Misslyckades skapa den offentliga delningslänken till ditt moln",
+ "You are not allowed to edit link shares that you don't own" : "Du får inte redigera länkdelningar som du inte äger",
+ "Download all files" : "Hämta alla filer",
+ "Link copied to clipboard" : "Länken kopierad till urklipp",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-postadress som redan har lagts till","{count} e-postadresser som redan har lagts till"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 e-postadress har lagts till","{count} e-postadresser har lagts till"],
+ "Copy to clipboard" : "Kopiera till urklipp",
+ "Copy internal link to clipboard" : "Kopiera intern länk till urklipp",
+ "Only works for people with access to this folder" : "Fungerar endast för personer med åtkomst till den här mappen",
+ "Only works for people with access to this file" : "Fungerar endast för personer med åtkomst till den här filen",
+ "Copy public link of \"{title}\" to clipboard" : "Kopiera offentliga länken för \"{title}\" till urklipp",
+ "Search globally" : "Sök globalt",
+ "Search for share recipients" : "Sök efter delningsmottagare",
+ "No recommendations. Start typing." : "Inga rekommendationer. Börja skriva.",
+ "To upload files, you need to provide your name first." : "För att ladda upp filer måste du först ange ditt namn.",
+ "Enter your name" : "Ange ditt namn",
+ "Submit name" : "Skicka namn",
+ "Share with {userName}" : "Dela med {userName}",
+ "Show sharing options" : "Visa delningsalternativ",
"Share note" : "Dela kommentar",
"Upload files to %s" : "Ladda upp filer till %s",
+ "%s shared a folder with you." : "%s delade en mapp med dig.",
"Note" : "Anteckning",
"Select or drop files" : "Välj eller dra filer hit",
"Uploading files" : "Laddar upp filer",
"Uploaded files:" : "Uppladdade filer:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Genom att ladda upp filer godkänner du %1$sanvändarvillkoren %2$s.",
- "Add to your Nextcloud" : "Lägg till i molnet",
- "Files and folders others share with you will show up here" : "Filer och mappar som andra delar med dig kommer visas här",
- "Files and folders you share will show up here" : "Filer och mappar som du delar kommer visas här",
- "Files and folders you share by link will show up here" : "Filer och mappar som du delar som länkar kommer visas här",
- "Shares you deleted will show up here" : "Borttagna delningar visas här",
- "Shares you have received but not confirmed will show up here" : "Delningar du har mottagit men inte bekräftat visas här",
- "Shares will show up here" : "Delningar visas här",
- "Restore" : "Återställ",
- "Something happened. Unable to restore the share." : "Ett fel uppstod. Kan inte återställa delningen.",
- "Something happened. Unable to accept the share." : "Ett fel uppstod. Kan inte acceptera delningen.",
- "Something happened. Unable to reject the share." : "Ett fel uppstod. Kan inte avvisa delningen.",
- "No expiration date set" : "Inget utgångsdatum satt",
- "Please specify a valid user" : "Ange en giltig användare",
- "Please specify a valid federated user ID" : "Vänligen ange ett giltigt federerat användar-id.",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Denna applikation gör det möjligt för användare att dela filer inom Nextcloud. Om aktiverad kan administratören välja vilka grupper som kan dela filer. De tillämpliga användarna kan sedan dela filer och mappar med andra användare och grupper inom Nextcloud. Dessutom, om administratören aktiverar funktionen dela länk, kan en extern länk användas för att dela filer med andra användare utanför Nextcloud. Administratörer kan också tvinga lösenord, utgångsdatum och aktivera server till serverdelning via delningslänkar samt dela från mobila enheter.\nOm du stänger av funktionen tar du bort delade filer och mappar på servern för alla delmottagare och även på synkroniseringsklienterna och mobilapparna. Mer information finns i dokumentationen för Nextcloud.",
- "Accept user and group shares by default" : "Acceptera användar och grupp-delningar som standard",
- "Read only" : "Läsbehörighet",
- "File drop (upload only)" : "Göm fillista (endast uppladdning)",
- "Upload" : "Ladda upp",
- "Bundled permissions" : "Medföljande behörigheter",
- "Only works for users with access to this folder" : "Fungerar bara för användare med åtkomst till den här mappen",
- "Only works for users with access to this file" : "Fungerar bara för användare med åtkomst till den här mappen",
- "Circle" : "Cirkel",
- "Update" : "Uppdatera",
- "Share with " : "Dela med",
- "No other users with access found" : "Inga andra användare med åtkomst hittades",
- "No entries found in this folder" : "Inga filer hittades i denna mapp",
"Name" : "Namn",
- "Share time" : "Delningstid",
- "Sorry, this link does not seem to work anymore." : "Tyvärr, denna länk verkar inte fungera längre.",
- "Reasons might be:" : "Orsaker kan vara:",
- "the item was removed" : "objektet togs bort",
- "the link expired" : "giltighet för länken har gått ut",
- "sharing is disabled" : "delning är inaktiverat",
- "For more info, please ask the person who sent this link." : "För mer information, kontakta den person som skickade den här länken.",
- "Share with remote" : "Dela med remote",
- "Share with" : "Dela med"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Använd den här metoden för att dela filer med individer eller team inom din organisation. Om mottagaren redan har åtkomst till delningen men inte kan hitta den, kan du skicka den interna delningslänken för enkel åtkomst.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Använd den här metoden för att dela filer med individer eller organisationer utanför din organisation. Filer och mappar kan delas via publika delningslänkar och e-postadresser. Du kan också dela med andra Nextcloud-konton som finns på andra instanser genom deras federerade moln-ID.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Delningar som inte ingår i de interna eller externa delningarna. Detta kan vara delningar från appar eller andra källor.",
+ "Share with accounts, teams, federated cloud id" : "Dela med konton, team, federerat moln-id",
+ "Share with accounts and teams" : "Dela med konton och team",
+ "Federated cloud ID" : "Federerat moln-ID",
+ "Email, federated cloud id" : "E-post, federerat moln-id",
+ "Filename must not be empty." : "Filnamn får inte vara tomt."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/sw.js b/apps/files_sharing/l10n/sw.js
new file mode 100644
index 00000000000..e0ba4a76a2b
--- /dev/null
+++ b/apps/files_sharing/l10n/sw.js
@@ -0,0 +1,441 @@
+OC.L10N.register(
+ "files_sharing",
+ {
+ "File shares" : "Shiriki za faili",
+ "Downloaded via public link" : "Pakua kupitia kiungo cha umma",
+ "Downloaded by {email}" : "Imepakuliwa na {email}",
+ "{file} downloaded via public link" : "{file} imepakuliwa kupitia kiungo cha umma",
+ "{email} downloaded {file}" : "{email}imepakua {file}",
+ "Shared with group {group}" : "Imeshirikishwa na kundi {group}",
+ "Removed share for group {group}" : "Imeondoa ushiriki kwa kundi {group}",
+ "{actor} shared with group {group}" : "{actor}imeshirikishwa na kundi {group}",
+ "{actor} removed share for group {group}" : "{actor}imeondoa ushiriki kwa kundi {group}",
+ "Share for group {group} expired" : "Ushiriki kwa kundi {group}umeisha wakati",
+ "You shared {file} with group {group}" : "Umeshirikisha {file}na kundi {group}",
+ "You removed group {group} from {file}" : "Umeondoa kundi {group} kutoka {file}",
+ "{actor} shared {file} with group {group}" : "{actor} imeshirikisha {file} na kundi {group}",
+ "{actor} removed group {group} from {file}" : "{actor}imeondoa kundi {group} kutoka {file}",
+ "Share for file {file} with group {group} expired" : "Shiriki kwa faili {file} na kundi {group} umeisha wakati",
+ "Shared as public link" : "Imeshirikiwa kama kiungo cha umma",
+ "Removed public link" : "Imeondoa kiungo cha umma",
+ "Public link expired" : "Kiungo cha umma kimeisha wakati wake",
+ "{actor} shared as public link" : "{actor}imeshirikiwa kama kiungo cha umma",
+ "{actor} removed public link" : "{actor}imeondoa kiungo cha umma",
+ "Public link of {actor} expired" : "Kiungo cha umma cha {actor} kimeisha wakati",
+ "You shared {file} as public link" : "Umeshirikisha kiungo cha {file} kama kiungo cha umma",
+ "You removed public link for {file}" : "Umeondoa kiungo cha umma kwa {file}",
+ "Public link expired for {file}" : "Kiungo cha umma kimeisha wakati kwa {file}",
+ "{actor} shared {file} as public link" : "{actor} imeshirikisha {file} kama kiungo cha umma",
+ "{actor} removed public link for {file}" : "{actor} imeondoa kiungo cha umma kwa {file}",
+ "Public link of {actor} for {file} expired" : "Kiungo cha umma cha {actor}kwa {file} kimeisha wakati",
+ "{user} accepted the remote share" : "{user} amekubali ushirikishaji wa mbali",
+ "{user} declined the remote share" : "{user} amekataa ushirikishaji wa mbali",
+ "You received a new remote share {file} from {user}" : "Umepokea ushirikishaji mpya wa mbali{file} kutoka {user}",
+ "{user} accepted the remote share of {file}" : "{user} amekubali ushirikishaji wa mbali wa {file}",
+ "{user} declined the remote share of {file}" : "{user}amepunguza ushirikishaji wa mbali wa {file}",
+ "{user} unshared {file} from you" : "{user}haijashirikisha {file}kwako",
+ "Shared with {user}" : "Imeshirikishwa na {user}",
+ "Removed share for {user}" : "Imeondoa ushiriki kwa {user}",
+ "You removed yourself" : "Umeondoa wewe mwenyewe",
+ "{actor} removed themselves" : "{actor}wamejiondoa wenyewe",
+ "{actor} shared with {user}" : "{actor} ameshirikishwa na {user}",
+ "{actor} removed share for {user}" : "{actor}ameondoa ushiriki kwa {user}",
+ "Shared by {actor}" : "Imeshirikishwa na{actor}",
+ "{actor} removed share" : "{actor}imeondoa ushiriki",
+ "Share for {user} expired" : "Ushiriki kwa {user} umeisha wakati",
+ "Share expired" : "Ushirikishaji umeisha wakati",
+ "You shared {file} with {user}" : "Umeshirikisha {file} na {user}",
+ "You removed {user} from {file}" : "Umeondoa {user} kutoka {file}",
+ "You removed yourself from {file}" : "Umejiondoa mwenyewe kutoka {file}",
+ "{actor} removed themselves from {file}" : "{actor} wamejiondoa wenyewe kutoka {file}",
+ "{actor} shared {file} with {user}" : "{actor} ameshirikisha {file} na {user}",
+ "{actor} removed {user} from {file}" : "{actor} amemwondoa {user} kutoka {file}",
+ "{actor} shared {file} with you" : "{actor} ameshirikisha {file} na wewe",
+ "{actor} removed you from the share named {file}" : "{actor} amekuondoa kutoka ushiriki wenye jina {file}",
+ "Share for file {file} with {user} expired" : "Ushiriki kwa faili {file} na {user} umeisha wakati",
+ "Share for file {file} expired" : "Ushiriki kwa faili {file} umeisha wakati",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Faili au folda lililoshirikishwa kwa barua pepe au kiungo cha umma <strong> lilipakuliwa</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Faili<strong> limepakiwa</strong>kwenye folda lililoshirikishwa kwa barua pepe au kiungo cha umma",
+ "A file or folder was shared from <strong>another server</strong>" : "Faili au folda ilishirikishwa kutoka<strong> seva nyingine</strong>",
+ "Sharing" : "inashirikisha",
+ "A file or folder has been <strong>shared</strong>" : "Faili au folda<strong> imeshirikishwa</strong>",
+ "Shared link" : "Kiungo kilichoshirikishwa",
+ "Wrong share ID, share does not exist" : "Kitambulisho cha kushiriki kibaya, ushirikishaji haupo",
+ "Could not delete share" : "Haikuweza kufuta kushiriki",
+ "Please specify a file or folder path" : "Tafadhali bainisha njia ya faili au folda",
+ "Wrong path, file/folder does not exist" : "Njia mbaya, faili/folda haipo",
+ "Could not create share" : "Haikuweza kuunda kushiriki",
+ "Please specify a valid account to share with" : "Tafadhali bainisha akaunti halali ya kushiriki nayo",
+ "Group sharing is disabled by the administrator" : "Kushiriki kwa kikundi kumezimwa na msimamizi",
+ "Please specify a valid group" : "Tafadhali bainisha kikundi halali",
+ "Public link sharing is disabled by the administrator" : "Kushiriki kiungo kwa umma kumezimwa na msimamizi",
+ "Please specify a valid email address" : "Tafadhali bainisha barua pepe halali",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Ushirikishaji %s kutuma nenosiri kwa Nextcloud Talk kumeshindwa kwa sababu Nextcloud Talk haijawashwa",
+ "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Ushirikishaji %1$s kumeshindwa kwa sababu sehemu ya nyuma hairuhusu kushiriki kutoka kwa aina %2$s",
+ "Please specify a valid federated account ID" : "Tafadhali bainisha kitambulisho halali cha akaunti iliyoshirikishwa",
+ "Please specify a valid federated group ID" : "Tafadhali bainisha kitambulisho halali cha kikundi kilichoshirikishwa",
+ "You cannot share to a Team if the app is not enabled" : "Huwezi kushirikisha kwa Timu ikiwa programu haijawashwa",
+ "Please specify a valid team" : "Tafadhali bainisha timu halali",
+ "Sharing %s failed because the back end does not support room shares" : "Ushirikishaji %s kumeshindwa kwa sababu sehemu ya nyuma haitumii ushiriki wa vyumba",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Ushirikishaji %s kumeshindwa kwa sababu sehemu ya nyuma haitumii hisa za ScienceMesh",
+ "Unknown share type" : "Aina ya ushirikishaji isiyojulikana",
+ "Not a directory" : "Sio saraka",
+ "Could not lock node" : "Haikuweza kufunga nodi",
+ "Public upload is only possible for publicly shared folders" : "Upakiaji wa umma unawezekana kwa folda zinazoshirikiwa hadharani pekee",
+ "Share must at least have READ or CREATE permissions" : "Ushiriki lazima angalau uwe na ruhusa za READ au CREATE",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "Shiriki lazima iwe na ruhusa ya SOMA ikiwa ruhusa ya UPDATE au FETA imewekwa",
+ "Public upload disabled by the administrator" : "Upakiaji wa umma umezimwa na msimamizi",
+ "Could not lock path" : "Haikuweza kufunga njia",
+ "no sharing rights on this item" : "Hakuna haki za kushiriki kwenye kipengee hiki",
+ "You are not allowed to edit incoming shares" : " Huruhusiwi kuhariri shiriki zinazoingia",
+ "Wrong or no update parameter given" : "Kigezo cha sasisho kibaya au hakuna",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Kutuma nenosiri kupitia Nextcloud Talk kwa kushiriki faili au folda kumeharibika kwa sababu Nextcloud Talk haijawezeshwa.",
+ "Custom share link tokens have been disabled by the administrator" : "Tokeni za kipekee za viungo vya kushiriki zimezimwa na msimamizi.",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tokeni lazima ziwe na angalau herufi moja na zinaweza kuwa na herufi, nambari, au alama ya mkato (-) pekee.",
+ "Invalid date. Format must be YYYY-MM-DD" : "Tarehe si sahihi. Muundo lazima uwe YYYY-MM-DD.",
+ "No sharing rights on this item" : "Huna ruhusa ya kushiriki kipengee hiki.",
+ "Invalid share attributes provided: \"%s\"" : " Sifa za kushiriki zilizotolewa si sahihi: \"%s\"",
+ "You are not allowed to send mail notifications" : "Huruhusiwi kutuma arifa za barua pepe.",
+ "No mail notification configured for this share type" : "Hakuna arifa ya barua pepe iliyopangwa kwa aina hii ya kushiriki.",
+ "Wrong password" : "Nenosiri si sahihi",
+ "Error while sending mail notification" : "Kosa lilitokea wakati wa kutuma arifa ya barua pepe.",
+ "Failed to generate a unique token" : "Imeshindikana kuunda tokeni ya kipekee.",
+ "This share does not exist or is no longer available" : "Ushiriki huu haupo au haupatikani tena.",
+ "shared by %s" : "Imeshirikiwa na %s",
+ "Download" : "Pakua",
+ "Add to your %s" : "Ongeza kwenye yako %s",
+ "Direct link" : "Kiungo cha moja kwa moja",
+ "Share API is disabled" : "API ya kushiriki imezimwa",
+ "File sharing" : "Kushiriki faili",
+ "Share will expire tomorrow" : "Shiriki itaisha muda wake kesho",
+ "Your share of {node} will expire tomorrow" : "Shiriki yako ya {node}itaisha muda wake kesho ",
+ "You received {share} as a share by {user}" : "Umepokea {share} kama imeshirikiwa na {user}",
+ "You received {share} to group {group} as a share by {user}" : "Umepokea {share} kwenye kundi {group} kama imeshirikiwa na {user}",
+ "Accept" : "Kubali",
+ "Decline" : "Kataa",
+ "Remember to upload the files to %s" : "Kumbuka kupakia faili kwa %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Tungependa kukukumbusha kwa unyenyekevu kwamba bado hujaweka faili yoyote kwenye folda iliyoshirikiwa.",
+ "Open \"%s\"" : "Fungua \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Programu hii inawawezesha watu kushiriki faili ndani ya Nextcloud. Ikiwezeshwa, msimamizi anaweza kuchagua makundi gani yanaweza kushiriki faili. Watu walioko kwenye makundi husika wanaweza kisha kushiriki faili na folda na akaunti na makundi mengine ndani ya Nextcloud. Zaidi ya hayo, ikiwa msimamizi atawezeshwa kipengele cha kiungo cha kushiriki, kiungo cha nje kinaweza kutumika kushiriki faili na watu wengine wasioko ndani ya Nextcloud. Wasimamizi pia wanaweza kuweka nywila, tarehe za kumalizika kwa kiungo, na kuwezesha kushirikiana kati ya seva kupitia viungo vya kushiriki, pamoja na kushiriki kutoka kwa vifaa vya simu.\n\nKuzima kipengele hiki hufuta faili na folda zilizoshirikiwa kwenye seva kwa wateja wote wa kushiriki, na pia kwenye wateja wa kusawazisha (sync clients) na programu za simu. Taarifa zaidi zinapatikana kwenye Nyaraka za Nextcloud.",
+ "People" : "Watu",
+ "Filter accounts" : "Chuja akaunti",
+ "The request will expire on {date} at midnight and will be password protected." : "Ombi litaisha muda wake tarehe {date} saa sita usiku na litakuwa limehifadhiwa kwa nenosiri.",
+ "The request will expire on {date} at midnight." : "Ombi litatoweka tarehe {date} saa sita usiku.",
+ "The request will be password protected." : "Ombi litakuwa limehifadhiwa kwa nenosiri.",
+ "When should the request expire?" : "Ombi linafaa litoweke lini?",
+ "Set a submission expiration date" : "Weka tarehe ya kumalizika kwa kuwasilisha",
+ "Expiration date" : "Tarehe ya kumalizika",
+ "Select a date" : "Chagua tarehe",
+ "Your administrator has enforced a {count} days expiration policy." : "Msimamizi wako ameweka sera ya kumalizika baada ya siku {count}.",
+ "What password should be used for the request?" : "Nenosiri gani linapaswa kutumika kwa ombi hili?",
+ "Set a password" : "Weka nenosiri",
+ "Password" : "Nenosiri",
+ "Enter a valid password" : "Ingiza nenosiri halali",
+ "Generate a new password" : "Zalisha nenosiri mpya",
+ "Your administrator has enforced a password protection." : "Msimamizi wako ameweka ulinzi wa nenosiri.",
+ "Automatically copying failed, please copy the share link manually" : "Kunakili kwa otomatiki kulishindikana, tafadhali nakili kiungo cha kushiriki kwa mkono.",
+ "Link copied" : "Kiungo kimenakiliwa",
+ "Email already added" : "Barua pepe imeshaongezwa",
+ "Invalid email address" : "Anwani ya barua pepe si sahihi",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["The following email address is not valid: {emails}","Anwani zifuatazo za barua pepe si sahihi: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} email address already added","{count} Anwani za barua pepe tayari zimeongezwa"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} email address added","{count} Anwani za barua pepe zimeongezwa "],
+ "You can now share the link below to allow people to upload files to your directory." : "Sasa unaweza kushiriki kiungo kilicho hapa chini ili kuruhusu watu kupakia faili kwenye saraka yako.",
+ "Share link" : "Shirikisha kiungo",
+ "Copy" : "Nakili",
+ "Send link via email" : "Tuma kiungo kupitia barua pepe",
+ "Enter an email address or paste a list" : "Ingiza anwani ya barua pepe au bandika orodha",
+ "Remove email" : "Ondoa barua pepe",
+ "Select a destination" : "Chagua mahali pa kwenda",
+ "Select" : "Chagua",
+ "What are you requesting?" : "Unaomba nini?",
+ "Request subject" : "Omba mada",
+ "Birthday party photos, History assignment…" : "Picha za sherehe ya siku ya kuzaliwa, kazi ya Historia...",
+ "Where should these files go?" : "Faili hizi zinapaswa kwenda wapi?",
+ "Upload destination" : "Pakia katika eneo lengwa",
+ "Revert to default" : "Rudi kwa chaguomsingi",
+ "The uploaded files are visible only to you unless you choose to share them." : "Faili zilizopakiwa zinaonekana kwako tu isipokuwa utachagua kuzishiriki.",
+ "Add a note" : "Ongeza maelezo",
+ "Note for recipient" : "Maelezo kwa mpokeaji",
+ "Add a note to help people understand what you are requesting." : "Ongeza maelezo kusaidia watu kuelewa unachokiomba.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Unaweza kuongeza viungo, tarehe, au taarifa nyingine yoyote itakayomsaidia mpokeaji kuelewa unachokiomba.",
+ "Close" : "Funga",
+ "_Send email and close_::_Send {count} emails and close_" : ["Send email and close","Tuma barua pepe {count}na ufunge"],
+ "Please select a folder, you cannot share the root directory." : "Tafadhali chagua folda, huwezi kushiriki saraka ya mizizi.",
+ "File request created" : "Ombi la faili limeundwa",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["File request created and email sent","Ombi la faili limeundwa na barua pepe {count} zikatumwa"],
+ "Error creating the share: {errorMessage}" : "Hitilafu katika kuunda ushiriki: {errorMessage}",
+ "Error creating the share" : "Hitilafu katika kutengeneza ushiriki",
+ "Error sending emails: {errorMessage}" : "Hitilafu wakati wa kutuma barua pepe: {errorMessage}",
+ "Error sending emails" : "Hitilafu wakati wa kutuma barua pepe",
+ "Create a file request" : "Tengeneza ombi la faili",
+ "Collect files from others even if they do not have an account." : "Kusanya faili kutoka kwa wengine hata kama hawana akaunti.",
+ "To ensure you can receive files, verify you have enough storage available." : "Ili kuhakikisha kuwa unaweza kupokea faili, thibitisha kuwa una hifadhi ya kutosha.",
+ "File request" : "Ombi la faili",
+ "Previous step" : "Hatua ya awali",
+ "Cancel" : "Sitisha",
+ "Cancel the file request creation" : "Sitisha ombi la utengenezaji wa faili",
+ "Close without sending emails" : "Funga bila kutuma barua pepe",
+ "Continue" : "Endelea",
+ "Error while toggling options" : "Hitilafu wakati wa kugeuza chaguo",
+ "Accept shares from other accounts and groups by default" : "Kubali kushirikiwa kutoka kwa akaunti na vikundi vingine kwa chaguomsingi",
+ "Choose a default folder for accepted shares" : "Chagua folda chaguo-msingi kwa shiriki zinazokubalika",
+ "Invalid path selected" : "Njia iliyochaguliwa si halali",
+ "Unknown error" : "Hitilafu isiyojulikana",
+ "Set default folder for accepted shares" : "Weka folda chaguo-msingi kwa shiriki zinazokubaliwa",
+ "Reset" : "Pangilia upya",
+ "Reset folder to system default" : "Weka upya folda iwe chaguomsingi ya mfumo",
+ "Share expiration: {date}" : "Ukomo wa shiriki: {date}",
+ "Share Expiration" : "Ukomo wa shiriki",
+ "group" : "kundi",
+ "conversation" : "mazungumzo",
+ "remote" : "mbali",
+ "remote group" : "kundi la mbali",
+ "guest" : "mgeni",
+ "by {initiator}" : "kwa {initiator}",
+ "Shared with the group {user} by {owner}" : "Imeshirikiwa na kundi {user} kwa {owner}",
+ "Shared with the conversation {user} by {owner}" : "Imeshirikiwa na mazungumzo {user} kwa {owner}",
+ "Shared with {user} by {owner}" : "Imeshirikiwa na {user} kwa {owner}",
+ "Open Sharing Details" : "Fungua maelezo ya ushiriki",
+ "Added by {initiator}" : "Imeongezwa na {initiator}",
+ "Via “{folder}”" : "Kupitia \"{folder}\"",
+ "Unshare" : "Usishirikishe",
+ "Cannot copy, please copy the link manually" : "Haiwezi kunakili, tafadhali nakili kiungio kwa njia za kawaida",
+ "Copy internal link" : "Nakili kiungo cha ndani",
+ "Internal link" : "Kiungo cha ndani",
+ "{shareWith} by {initiator}" : "{shareWith} kwa {initiator}",
+ "Shared via link by {initiator}" : "Imeshirikiwa kupitia kiungo na {initiator}",
+ "File request ({label})" : "Ombi la faili ({label})",
+ "Mail share ({label})" : "Shiriki barua ({label})",
+ "Share link ({label})" : "Shiriki kiungo ({label})",
+ "Mail share" : "Shiriki barua",
+ "Share link ({index})" : "Shiriki kiungo ({index})",
+ "Create public link" : "Tengeneza kiungo cha umma",
+ "Actions for \"{title}\"" : "Matendo kwa \"{title}\"",
+ "Error, please enter proper password and/or expiration date" : "Hitilafu, tafadhali weka nenosiri sahihi na/au tarehe ya mwisho wa matumizi",
+ "Link share created" : "Ushiriki wa kiungo umeundwa",
+ "Error while creating the share" : "Hitilafu wakati wa kuunda kushiriki",
+ "Please enter the following required information before creating the share" : "Tafadhali weka maelezo yafuatayo yanayohitajika kabla ya kuunda kushiriki",
+ "Password protection (enforced)" : "Ulinzi wa nenosiri (umetekelezwa)",
+ "Password protection" : "Ulinzi wa nenosiri",
+ "Enter a password" : "Ingiza nenosiri",
+ "Enable link expiration (enforced)" : "Washa muda wa kuisha kwa kiungo (imetekelezwa)",
+ "Enable link expiration" : " Washa muda wa kuisha kwa kiungo",
+ "Enter expiration date (enforced)" : "Weka tarehe ya mwisho wa matumizi (imetekelezwa)",
+ "Enter expiration date" : "Weka tarehe ya mwisho wa matumizi",
+ "Create share" : "Tengeneza ushirikishaji",
+ "Customize link" : "Tengeneza kiungo kwa matakwa ya mteja",
+ "Generate QR code" : "Tengeneza msimbo wa QR",
+ "Add another link" : "Ongeza kiungo kingine",
+ "Create a new share link" : "Unda kiungo kipya cha kushiriki",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Chaguzi za haraka za kushiriki, zilizochaguliwa sasa ni \"{selectedOption}\"",
+ "View only" : "Utazamaji pekee",
+ "Can edit" : "Inaweza kuhariri",
+ "Custom permissions" : "Ruhusa maalum",
+ "Resharing is not allowed" : "Kushiriki upya hakuruhusiwi",
+ "Name or email …" : "Jina au barua pepe",
+ "Name, email, or Federated Cloud ID …" : "Jina, barua pepe au kitambulisho cha Cloudi kilichoshirikishwa...",
+ "Searching …" : "Inatafuta",
+ "No elements found." : "Hakuna vipengele vilivyopatikana",
+ "Search everywhere" : "Tafuta kila mahali",
+ "Guest" : "Mgeni",
+ "Group" : "Kundi",
+ "Email" : "Barua pepe",
+ "Team" : "Timu",
+ "Talk conversation" : "Mazungumzo ya Talk",
+ "Deck board" : "Bodi ya deck",
+ "ScienceMesh" : "SayansiMesh",
+ "on {server}" : "juu ya {server}",
+ "Enter external recipients" : "Ingiza wapokeaji wa nje",
+ "Search for internal recipients" : "Tafuta wapokeaji wa ndani",
+ "Note from" : "Kumbuka kutoka",
+ "Note:" : "Kumbuka:",
+ "File drop" : "Kuacha faili",
+ "Upload files to {foldername}." : "Pakia faili kwenye {foldername}",
+ "By uploading files, you agree to the terms of service." : "Kwa kupakia faili, unakubali sheria na masharti.",
+ "Successfully uploaded files" : " Faili zimepakiwa kikamilifu",
+ "View terms of service" : "Tazama masharti ya huduma",
+ "Terms of service" : "Masharti ya huduma",
+ "Share with email {email}" : "Shiriki na barua pepe {email}",
+ "Share with group" : "Shiriki na kundi",
+ "Share in conversation" : "Shiriki katika mazungumzo",
+ "Share with {user} on remote server {server}" : "Shiriki na {user}kwenye seva ya mbali {server}",
+ "Share with remote group" : "Shiriki na kundi la mbali",
+ "Share with guest" : "Shiriki na mgeni",
+ "Update share" : "Sasisha ushiriki",
+ "Save share" : "Hifadhi ushiriki",
+ "Read" : "Soma",
+ "Create" : "Tengeneza",
+ "Edit" : "Hariri",
+ "Share" : "Shirikisha",
+ "Delete" : "Futa",
+ "Password field cannot be empty" : "Sehemu ya nenosiri haiwezi kuwa tupu",
+ "Replace current password" : "Badilisha nenosiri la sasa",
+ "Failed to generate a new token" : "Imeshindwa kutengeneza tokeni mpya",
+ "Allow upload and editing" : "Ruhusu upakiaji na uhariri",
+ "Allow editing" : "Ruhusu uhariri",
+ "Upload only" : "Pakua tu",
+ "Advanced settings" : "Mipangilio ya kiwango cha juu",
+ "Share label" : "Shiriki lebo",
+ "Share link token" : "Shiriki tokeni ya kiungo",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Weka tokeni ya kiungo cha kushiriki hadharani iwe kitu ambacho ni rahisi kukumbuka au kutengeneza tokeni mpya. Haipendekezi kutumia tokeni inayoweza kukisiwa kwa hisa ambazo zina taarifa nyeti.",
+ "Generating…" : "Inazalisha...",
+ "Generate new token" : "Tengeneza tokeni mpya",
+ "Set password" : " Weka nenosiri",
+ "Password expires {passwordExpirationTime}" : "Nenosiri linaisha muda {passwordExpirationTime}",
+ "Password expired" : "Nenosiri limekwisha muda wake",
+ "Video verification" : "Uthibitishaji wa video",
+ "Expiration date (enforced)" : "Tarehe ya mwisho wa matumizi (imetekelezwa)",
+ "Set expiration date" : "Panga tarehe ya mwisho wa matumizi",
+ "Hide download" : "Ficha upakuaji",
+ "Allow download and sync" : "Ruhusu upakuaji na usawazishe",
+ "Note to recipient" : "Kumbuka kwa mpokeaji",
+ "Enter a note for the share recipient" : "Andika dokezo kwa mpokeaji kushiriki",
+ "Show files in grid view" : "Show files in grid view",
+ "Delete share" : "Futa shiriki",
+ "Others with access" : "Wengine wenye ufikiaji",
+ "No other accounts with access found" : "Hakuna akaunti nyingine zenye ufikiaji zilizopatikana",
+ "Toggle list of others with access to this directory" : "Geuza orodha ya wengine na ufikiaji wa saraka hii",
+ "Toggle list of others with access to this file" : "Geuza orodha ya wengine na ufikiaji wa faili hii",
+ "Unable to fetch inherited shares" : "Imeshindwa kuleta shiriki zilizorithiwa",
+ "Link shares" : "Unganisha shiriki",
+ "Shares" : "Shiriki",
+ "Unable to load the shares list" : "Imeshindwa kupakia orodha ya shiriki",
+ "Expires {relativetime}" : "Inaisha wakati {relativetime}",
+ "this share just expired." : "Shiriki hii imeisha muda wake",
+ "Shared with you by {owner}" : "Imeshirikiwa na wewe kwa {owner}",
+ "Internal shares" : "Shiriki za ndani",
+ "Internal shares explanation" : "Maelezo ya shiriki za ndani",
+ "External shares" : "Shiriki za nje",
+ "External shares explanation" : "Maelezo ya shiriki za nje",
+ "Additional shares" : "Shiriki za nyongeza",
+ "Additional shares explanation" : "Maelezo ya shiriki za nyongeza",
+ "Link to a file" : "Unga kwenye faili",
+ "_Accept share_::_Accept shares_" : ["Accept share","Kubali shiriki"],
+ "Open in Files" : "Fungua ndani ya faili",
+ "_Reject share_::_Reject shares_" : ["Reject share","Kataa shiriki"],
+ "_Restore share_::_Restore shares_" : ["Restore share","Rejesha shiriki"],
+ "Shared" : "Imeshirikishwa",
+ "Shared by {ownerDisplayName}" : "Imeshirikishwa na{ownerDisplayName}",
+ "Shared multiple times with different people" : "Imeshirikiwa mara nyingi na watu tofauti",
+ "Shared with others" : "Imeshirikiwa na wengine",
+ "Create file request" : "Unda ombi la faili",
+ "Upload files to {foldername}" : "Pakia faili kwa {foldername}",
+ "Public file share" : "Shiriki faili za umma",
+ "Publicly shared file." : "Faili iliyoshirikiwa hadharani.",
+ "No file" : "Hakuna faili",
+ "The file shared with you will show up here" : "Faili iliyoshirikiwa nawe itaonekana hapa",
+ "Public share" : "Shiriki ya umma",
+ "Publicly shared files." : "Faili zilizoshirikiwa hadharani.",
+ "No files" : "Hakuna faili",
+ "Files and folders shared with you will show up here" : "Faili na folda zilizoshirikiwa nawe zitaonekana hapa",
+ "Overview of shared files." : "Muhtasari wa faili zilizoshirikiwa.",
+ "No shares" : "Hakuna shiriki",
+ "Files and folders you shared or have been shared with you will show up here" : "Faili na folda ulizoshiriki au ambazo umeshirikiwa nawe zitaonekana hapa",
+ "Shared with you" : "Imeshirikiwa na wewe",
+ "List of files that are shared with you." : "Orodha ya faili ambazo zimeshirikiwa nawe.",
+ "Nothing shared with you yet" : "Bado hakuna kilichoshirikiwa nawe",
+ "Files and folders others shared with you will show up here" : "Faili na folda ambazo wengine wameshiriki nawe zitaonekana hapa",
+ "List of files that you shared with others." : "Orodha ya faili ulizoshiriki na wengine.",
+ "Nothing shared yet" : "Bado hakuna kitu kilichoshirikiwa",
+ "Files and folders you shared will show up here" : "Faili na folda ulizoshiriki zitaonekana hapa",
+ "Shared by link" : "Imeshirikishwa na kiungio",
+ "List of files that are shared by link." : "Orodha ya faili zinazoshirikiwa na kiungo.",
+ "No shared links" : "Hakuna viungo vilivyoshirikiwa",
+ "Files and folders you shared by link will show up here" : "Faili na folda ulizoshiriki kwa kutumia kiungo zitaonekana hapa",
+ "File requests" : "Maombi ya faili",
+ "List of file requests." : "Orodha ya maombi ya faili",
+ "No file requests" : "Hakuna maombi ya faili",
+ "File requests you have created will show up here" : "Maombi ya faili uliyounda yataonekana hapa",
+ "Deleted shares" : "Shiriki zilizofutwa",
+ "List of shares you left." : "Orodha ya shiriki ulizoacha.",
+ "No deleted shares" : "Hakuna shiriki zilizofutwa",
+ "Shares you have left will show up here" : "Shiriki ulizobakisha zitaonekana hapa",
+ "Pending shares" : "Shiriki zinazosubiri",
+ "List of unapproved shares." : "Orodha ya shiriki ambazo hazijaidhinishwa.",
+ "No pending shares" : "Hakuna shiriki zinazosubiri",
+ "Shares you have received but not approved will show up here" : "Shiriki ambazo umepokea lakini hazijaidhinishwa zitaonekana hapa",
+ "Error deleting the share: {errorMessage}" : "Hitilafu katika kufuta kushiriki: {errorMessage}",
+ "Error deleting the share" : "Hitilafu katika kufuta kushiriki",
+ "Error updating the share: {errorMessage}" : "Hitilafu katika kusasisha ushiriki: {errorMessage}",
+ "Error updating the share" : "Hitilafu katika kusasisha ushiriki",
+ "File \"{path}\" has been unshared" : "Faili \"{path}\" haijashirikiwa",
+ "Folder \"{path}\" has been unshared" : "Folda \"{path}\" haijashirikiwa",
+ "Could not update share" : "Haikuweza kusasisha kushiriki",
+ "Share saved" : "Shiriki imehifadhiwa",
+ "Share expiry date saved" : "Shiriki tarehe ya kumalizika kwa kushiriki iliyohifadhiwa",
+ "Share hide-download state saved" : "Shiriki hali ya upakuaji fiche iliyohifadhiwa",
+ "Share label saved" : "Lebo ya kushiriki imehifadhiwa",
+ "Share note for recipient saved" : "Dokezo la shiriki kwa mpokeaji aliyehifadhiwa",
+ "Share password saved" : "Nenosiri la shiriki lililohifadhiwa",
+ "Share permissions saved" : "Ruhusa za kushiriki zimehifadhiwa",
+ "To upload files to {folder}, you need to provide your name first." : "Ili kupakia faili kwenye {folder}, unahitaji kutoa jina lako kwanza.",
+ "Upload files to {folder}" : "Pakia faili kwa {folder}",
+ "Please confirm your name to upload files to {folder}" : "Tafadhali thibitisha jina lako ili kupakia faili {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ameshiriki folda nawe.",
+ "Names must not be empty." : "Majina lazima yasiwe tupu.",
+ "Names must not start with a dot." : "Majina lazima yasianze na nukta.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" hairuhusiwi ndani ya jina.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" ni jina lililohifadhiwa na lisiloruhusiwa",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" si jina linaloruhusiwa.",
+ "Names must not end with \"{extension}\"." : "Majina lazima yasiishie na \"{extension}\".",
+ "Invalid name." : "Jina batili.",
+ "Shared by" : "Imeshirikishwa na",
+ "Shared with" : "Imeshirikiwa na",
+ "Password created successfully" : "Nenosiri limeundwa kwa mafanikio",
+ "Error generating password from password policy" : "Hitilafu katika kuzalisha nenosiri kutoka kwa sera ya nenosiri",
+ "Shared with you and the group {group} by {owner}" : "Imeshirikiwa nawe na kikundi {group} kwa {owner}",
+ "Shared with you and {circle} by {owner}" : " Imeshirikiwa na wewe na{circle} kwa {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Imeshirikiwa nawe na mazungumzo {conversation} kwa {owner}",
+ "Shared with you in a conversation by {owner}" : " Imeshirikiwa nawe kwenye mazungumzo na{owner}",
+ "Share not found" : "Ushirikishaji haupo",
+ "Back to %s" : "Rudi kwenye %s",
+ "Add to your Nextcloud" : "Ongeza kwenye Nextcloud yako",
+ "Waiting…" : "Inasubiri...",
+ "error" : "hitilafu",
+ "finished" : "Imemaliza",
+ "This will stop your current uploads." : "Hii itasimamisha ukakiaji wako wa sasa",
+ "Move or copy" : "Hamisha au nakili",
+ "You can upload into this folder" : "Unaweza kupakia kwenye folda hii",
+ "Show list view" : "Onesha mwonekeno wa orodha",
+ "Show grid view" : "Onesha mwonekano wa mstariramani",
+ "No compatible server found at {remote}" : "Hakuna seva inayolingana iliyopatikana katika {remote}",
+ "Invalid server URL" : "URL ya seva si sahihi",
+ "Failed to add the public link to your Nextcloud" : "Imeshindwa kuongeza kiungio cha jamii kwenye Nextcloud yako",
+ "You are not allowed to edit link shares that you don't own" : "Huruhusiwi kuhariri vishiriki vya viungo ambavyo humiliki",
+ "Download all files" : "Pakua faili zote",
+ "Link copied to clipboard" : "Kiungo kimenakiliwa kwenye ubao wakunakilia",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 email address already added","{count}anwani za barua pepe zimeshaongezwa "],
+ "_1 email address added_::_{count} email addresses added_" : ["1 email address added","{count}anwani za barua pepe zimeongezwa "],
+ "Copy to clipboard" : "Nakili kwenye ubao wa kunakili",
+ "Copy internal link to clipboard" : "Nakili kiungo cha ndani kwenye ubao wa kunakilia",
+ "Only works for people with access to this folder" : "Inafanya kazi kwa watu wanaoweza kufikia folda hii pekee",
+ "Only works for people with access to this file" : " Inafanya kazi kwa watu walio na ufikiaji wa faili hii pekee",
+ "Copy public link of \"{title}\" to clipboard" : "Nakili kiungo cha umma cha \"{title}\" kwenye ubao wa kunakili",
+ "Search globally" : "Tafuta kimataifa",
+ "Search for share recipients" : "Tafuta wapokeaji walioshirikiwa",
+ "No recommendations. Start typing." : "Hakuna maoni. Anza kuchapisha",
+ "To upload files, you need to provide your name first." : "Ili kupakia faili, unahitaji kutoa jina lako kwanza.",
+ "Enter your name" : "Ingiza jina lako ",
+ "Submit name" : "Wasilisha jina",
+ "Share with {userName}" : "Shiriki na {userName}",
+ "Show sharing options" : "Onyesha chaguo za kushiriki",
+ "Share note" : "Shiriki dokezo",
+ "Upload files to %s" : "Pakia faili kwa %s",
+ "%s shared a folder with you." : "%s ameshiriki folda nawe.",
+ "Note" : "Dokezo",
+ "Select or drop files" : "Chagua au udondoshe faili",
+ "Uploading files" : "Inapakia faili",
+ "Uploaded files:" : "Faili zilizopakiwa:",
+ "By uploading files, you agree to the %1$sterms of service%2$s." : "Kwa kupakia faili, unakubali %1$s masharti ya huduma %2$s.",
+ "Name" : "Jina",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Tumia njia hii kushiriki faili na watu binafsi au timu ndani ya shirika lako. Ikiwa mpokeaji tayari ana idhini ya kufikia kushiriki lakini hawezi kuipata, unaweza kumtumia kiungo cha kushiriki ndani kwa ufikiaji rahisi.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Tumia njia hii kushiriki faili na watu binafsi au mashirika nje ya shirika lako. Faili na folda zinaweza kushirikiwa kupitia viungo vya ushiriki wa umma na anwani za barua pepe. Unaweza pia kushiriki kwa akaunti zingine za Nextcloud zinazopangishwa kwa matukio tofauti kwa kutumia kitambulisho chao cha wingu kilichoshirikishwa.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Shiriki ambazo si sehemu ya shiriki za ndani au nje. Hii inaweza kuwa kushiriki kutoka kwa programu au vyanzo vingine.",
+ "Share with accounts, teams, federated cloud id" : "Shiriki na akaunti, timu, kitambulisho cha Cloud kilichoshirikishwa",
+ "Share with accounts and teams" : "Shiriki kwa akaunti na timu",
+ "Federated cloud ID" : "Kitambulisho cha Cloud kilichoshirikishwa",
+ "Email, federated cloud id" : "Barua pepe, kitambulisho cha Cloud kilichoshirikishwa",
+ "Filename must not be empty." : "Jina la faili halipaswi kuwa tupu"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/sw.json b/apps/files_sharing/l10n/sw.json
new file mode 100644
index 00000000000..7d1e311c41a
--- /dev/null
+++ b/apps/files_sharing/l10n/sw.json
@@ -0,0 +1,439 @@
+{ "translations": {
+ "File shares" : "Shiriki za faili",
+ "Downloaded via public link" : "Pakua kupitia kiungo cha umma",
+ "Downloaded by {email}" : "Imepakuliwa na {email}",
+ "{file} downloaded via public link" : "{file} imepakuliwa kupitia kiungo cha umma",
+ "{email} downloaded {file}" : "{email}imepakua {file}",
+ "Shared with group {group}" : "Imeshirikishwa na kundi {group}",
+ "Removed share for group {group}" : "Imeondoa ushiriki kwa kundi {group}",
+ "{actor} shared with group {group}" : "{actor}imeshirikishwa na kundi {group}",
+ "{actor} removed share for group {group}" : "{actor}imeondoa ushiriki kwa kundi {group}",
+ "Share for group {group} expired" : "Ushiriki kwa kundi {group}umeisha wakati",
+ "You shared {file} with group {group}" : "Umeshirikisha {file}na kundi {group}",
+ "You removed group {group} from {file}" : "Umeondoa kundi {group} kutoka {file}",
+ "{actor} shared {file} with group {group}" : "{actor} imeshirikisha {file} na kundi {group}",
+ "{actor} removed group {group} from {file}" : "{actor}imeondoa kundi {group} kutoka {file}",
+ "Share for file {file} with group {group} expired" : "Shiriki kwa faili {file} na kundi {group} umeisha wakati",
+ "Shared as public link" : "Imeshirikiwa kama kiungo cha umma",
+ "Removed public link" : "Imeondoa kiungo cha umma",
+ "Public link expired" : "Kiungo cha umma kimeisha wakati wake",
+ "{actor} shared as public link" : "{actor}imeshirikiwa kama kiungo cha umma",
+ "{actor} removed public link" : "{actor}imeondoa kiungo cha umma",
+ "Public link of {actor} expired" : "Kiungo cha umma cha {actor} kimeisha wakati",
+ "You shared {file} as public link" : "Umeshirikisha kiungo cha {file} kama kiungo cha umma",
+ "You removed public link for {file}" : "Umeondoa kiungo cha umma kwa {file}",
+ "Public link expired for {file}" : "Kiungo cha umma kimeisha wakati kwa {file}",
+ "{actor} shared {file} as public link" : "{actor} imeshirikisha {file} kama kiungo cha umma",
+ "{actor} removed public link for {file}" : "{actor} imeondoa kiungo cha umma kwa {file}",
+ "Public link of {actor} for {file} expired" : "Kiungo cha umma cha {actor}kwa {file} kimeisha wakati",
+ "{user} accepted the remote share" : "{user} amekubali ushirikishaji wa mbali",
+ "{user} declined the remote share" : "{user} amekataa ushirikishaji wa mbali",
+ "You received a new remote share {file} from {user}" : "Umepokea ushirikishaji mpya wa mbali{file} kutoka {user}",
+ "{user} accepted the remote share of {file}" : "{user} amekubali ushirikishaji wa mbali wa {file}",
+ "{user} declined the remote share of {file}" : "{user}amepunguza ushirikishaji wa mbali wa {file}",
+ "{user} unshared {file} from you" : "{user}haijashirikisha {file}kwako",
+ "Shared with {user}" : "Imeshirikishwa na {user}",
+ "Removed share for {user}" : "Imeondoa ushiriki kwa {user}",
+ "You removed yourself" : "Umeondoa wewe mwenyewe",
+ "{actor} removed themselves" : "{actor}wamejiondoa wenyewe",
+ "{actor} shared with {user}" : "{actor} ameshirikishwa na {user}",
+ "{actor} removed share for {user}" : "{actor}ameondoa ushiriki kwa {user}",
+ "Shared by {actor}" : "Imeshirikishwa na{actor}",
+ "{actor} removed share" : "{actor}imeondoa ushiriki",
+ "Share for {user} expired" : "Ushiriki kwa {user} umeisha wakati",
+ "Share expired" : "Ushirikishaji umeisha wakati",
+ "You shared {file} with {user}" : "Umeshirikisha {file} na {user}",
+ "You removed {user} from {file}" : "Umeondoa {user} kutoka {file}",
+ "You removed yourself from {file}" : "Umejiondoa mwenyewe kutoka {file}",
+ "{actor} removed themselves from {file}" : "{actor} wamejiondoa wenyewe kutoka {file}",
+ "{actor} shared {file} with {user}" : "{actor} ameshirikisha {file} na {user}",
+ "{actor} removed {user} from {file}" : "{actor} amemwondoa {user} kutoka {file}",
+ "{actor} shared {file} with you" : "{actor} ameshirikisha {file} na wewe",
+ "{actor} removed you from the share named {file}" : "{actor} amekuondoa kutoka ushiriki wenye jina {file}",
+ "Share for file {file} with {user} expired" : "Ushiriki kwa faili {file} na {user} umeisha wakati",
+ "Share for file {file} expired" : "Ushiriki kwa faili {file} umeisha wakati",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Faili au folda lililoshirikishwa kwa barua pepe au kiungo cha umma <strong> lilipakuliwa</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Faili<strong> limepakiwa</strong>kwenye folda lililoshirikishwa kwa barua pepe au kiungo cha umma",
+ "A file or folder was shared from <strong>another server</strong>" : "Faili au folda ilishirikishwa kutoka<strong> seva nyingine</strong>",
+ "Sharing" : "inashirikisha",
+ "A file or folder has been <strong>shared</strong>" : "Faili au folda<strong> imeshirikishwa</strong>",
+ "Shared link" : "Kiungo kilichoshirikishwa",
+ "Wrong share ID, share does not exist" : "Kitambulisho cha kushiriki kibaya, ushirikishaji haupo",
+ "Could not delete share" : "Haikuweza kufuta kushiriki",
+ "Please specify a file or folder path" : "Tafadhali bainisha njia ya faili au folda",
+ "Wrong path, file/folder does not exist" : "Njia mbaya, faili/folda haipo",
+ "Could not create share" : "Haikuweza kuunda kushiriki",
+ "Please specify a valid account to share with" : "Tafadhali bainisha akaunti halali ya kushiriki nayo",
+ "Group sharing is disabled by the administrator" : "Kushiriki kwa kikundi kumezimwa na msimamizi",
+ "Please specify a valid group" : "Tafadhali bainisha kikundi halali",
+ "Public link sharing is disabled by the administrator" : "Kushiriki kiungo kwa umma kumezimwa na msimamizi",
+ "Please specify a valid email address" : "Tafadhali bainisha barua pepe halali",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Ushirikishaji %s kutuma nenosiri kwa Nextcloud Talk kumeshindwa kwa sababu Nextcloud Talk haijawashwa",
+ "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Ushirikishaji %1$s kumeshindwa kwa sababu sehemu ya nyuma hairuhusu kushiriki kutoka kwa aina %2$s",
+ "Please specify a valid federated account ID" : "Tafadhali bainisha kitambulisho halali cha akaunti iliyoshirikishwa",
+ "Please specify a valid federated group ID" : "Tafadhali bainisha kitambulisho halali cha kikundi kilichoshirikishwa",
+ "You cannot share to a Team if the app is not enabled" : "Huwezi kushirikisha kwa Timu ikiwa programu haijawashwa",
+ "Please specify a valid team" : "Tafadhali bainisha timu halali",
+ "Sharing %s failed because the back end does not support room shares" : "Ushirikishaji %s kumeshindwa kwa sababu sehemu ya nyuma haitumii ushiriki wa vyumba",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Ushirikishaji %s kumeshindwa kwa sababu sehemu ya nyuma haitumii hisa za ScienceMesh",
+ "Unknown share type" : "Aina ya ushirikishaji isiyojulikana",
+ "Not a directory" : "Sio saraka",
+ "Could not lock node" : "Haikuweza kufunga nodi",
+ "Public upload is only possible for publicly shared folders" : "Upakiaji wa umma unawezekana kwa folda zinazoshirikiwa hadharani pekee",
+ "Share must at least have READ or CREATE permissions" : "Ushiriki lazima angalau uwe na ruhusa za READ au CREATE",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "Shiriki lazima iwe na ruhusa ya SOMA ikiwa ruhusa ya UPDATE au FETA imewekwa",
+ "Public upload disabled by the administrator" : "Upakiaji wa umma umezimwa na msimamizi",
+ "Could not lock path" : "Haikuweza kufunga njia",
+ "no sharing rights on this item" : "Hakuna haki za kushiriki kwenye kipengee hiki",
+ "You are not allowed to edit incoming shares" : " Huruhusiwi kuhariri shiriki zinazoingia",
+ "Wrong or no update parameter given" : "Kigezo cha sasisho kibaya au hakuna",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Kutuma nenosiri kupitia Nextcloud Talk kwa kushiriki faili au folda kumeharibika kwa sababu Nextcloud Talk haijawezeshwa.",
+ "Custom share link tokens have been disabled by the administrator" : "Tokeni za kipekee za viungo vya kushiriki zimezimwa na msimamizi.",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tokeni lazima ziwe na angalau herufi moja na zinaweza kuwa na herufi, nambari, au alama ya mkato (-) pekee.",
+ "Invalid date. Format must be YYYY-MM-DD" : "Tarehe si sahihi. Muundo lazima uwe YYYY-MM-DD.",
+ "No sharing rights on this item" : "Huna ruhusa ya kushiriki kipengee hiki.",
+ "Invalid share attributes provided: \"%s\"" : " Sifa za kushiriki zilizotolewa si sahihi: \"%s\"",
+ "You are not allowed to send mail notifications" : "Huruhusiwi kutuma arifa za barua pepe.",
+ "No mail notification configured for this share type" : "Hakuna arifa ya barua pepe iliyopangwa kwa aina hii ya kushiriki.",
+ "Wrong password" : "Nenosiri si sahihi",
+ "Error while sending mail notification" : "Kosa lilitokea wakati wa kutuma arifa ya barua pepe.",
+ "Failed to generate a unique token" : "Imeshindikana kuunda tokeni ya kipekee.",
+ "This share does not exist or is no longer available" : "Ushiriki huu haupo au haupatikani tena.",
+ "shared by %s" : "Imeshirikiwa na %s",
+ "Download" : "Pakua",
+ "Add to your %s" : "Ongeza kwenye yako %s",
+ "Direct link" : "Kiungo cha moja kwa moja",
+ "Share API is disabled" : "API ya kushiriki imezimwa",
+ "File sharing" : "Kushiriki faili",
+ "Share will expire tomorrow" : "Shiriki itaisha muda wake kesho",
+ "Your share of {node} will expire tomorrow" : "Shiriki yako ya {node}itaisha muda wake kesho ",
+ "You received {share} as a share by {user}" : "Umepokea {share} kama imeshirikiwa na {user}",
+ "You received {share} to group {group} as a share by {user}" : "Umepokea {share} kwenye kundi {group} kama imeshirikiwa na {user}",
+ "Accept" : "Kubali",
+ "Decline" : "Kataa",
+ "Remember to upload the files to %s" : "Kumbuka kupakia faili kwa %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Tungependa kukukumbusha kwa unyenyekevu kwamba bado hujaweka faili yoyote kwenye folda iliyoshirikiwa.",
+ "Open \"%s\"" : "Fungua \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Programu hii inawawezesha watu kushiriki faili ndani ya Nextcloud. Ikiwezeshwa, msimamizi anaweza kuchagua makundi gani yanaweza kushiriki faili. Watu walioko kwenye makundi husika wanaweza kisha kushiriki faili na folda na akaunti na makundi mengine ndani ya Nextcloud. Zaidi ya hayo, ikiwa msimamizi atawezeshwa kipengele cha kiungo cha kushiriki, kiungo cha nje kinaweza kutumika kushiriki faili na watu wengine wasioko ndani ya Nextcloud. Wasimamizi pia wanaweza kuweka nywila, tarehe za kumalizika kwa kiungo, na kuwezesha kushirikiana kati ya seva kupitia viungo vya kushiriki, pamoja na kushiriki kutoka kwa vifaa vya simu.\n\nKuzima kipengele hiki hufuta faili na folda zilizoshirikiwa kwenye seva kwa wateja wote wa kushiriki, na pia kwenye wateja wa kusawazisha (sync clients) na programu za simu. Taarifa zaidi zinapatikana kwenye Nyaraka za Nextcloud.",
+ "People" : "Watu",
+ "Filter accounts" : "Chuja akaunti",
+ "The request will expire on {date} at midnight and will be password protected." : "Ombi litaisha muda wake tarehe {date} saa sita usiku na litakuwa limehifadhiwa kwa nenosiri.",
+ "The request will expire on {date} at midnight." : "Ombi litatoweka tarehe {date} saa sita usiku.",
+ "The request will be password protected." : "Ombi litakuwa limehifadhiwa kwa nenosiri.",
+ "When should the request expire?" : "Ombi linafaa litoweke lini?",
+ "Set a submission expiration date" : "Weka tarehe ya kumalizika kwa kuwasilisha",
+ "Expiration date" : "Tarehe ya kumalizika",
+ "Select a date" : "Chagua tarehe",
+ "Your administrator has enforced a {count} days expiration policy." : "Msimamizi wako ameweka sera ya kumalizika baada ya siku {count}.",
+ "What password should be used for the request?" : "Nenosiri gani linapaswa kutumika kwa ombi hili?",
+ "Set a password" : "Weka nenosiri",
+ "Password" : "Nenosiri",
+ "Enter a valid password" : "Ingiza nenosiri halali",
+ "Generate a new password" : "Zalisha nenosiri mpya",
+ "Your administrator has enforced a password protection." : "Msimamizi wako ameweka ulinzi wa nenosiri.",
+ "Automatically copying failed, please copy the share link manually" : "Kunakili kwa otomatiki kulishindikana, tafadhali nakili kiungo cha kushiriki kwa mkono.",
+ "Link copied" : "Kiungo kimenakiliwa",
+ "Email already added" : "Barua pepe imeshaongezwa",
+ "Invalid email address" : "Anwani ya barua pepe si sahihi",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["The following email address is not valid: {emails}","Anwani zifuatazo za barua pepe si sahihi: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} email address already added","{count} Anwani za barua pepe tayari zimeongezwa"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} email address added","{count} Anwani za barua pepe zimeongezwa "],
+ "You can now share the link below to allow people to upload files to your directory." : "Sasa unaweza kushiriki kiungo kilicho hapa chini ili kuruhusu watu kupakia faili kwenye saraka yako.",
+ "Share link" : "Shirikisha kiungo",
+ "Copy" : "Nakili",
+ "Send link via email" : "Tuma kiungo kupitia barua pepe",
+ "Enter an email address or paste a list" : "Ingiza anwani ya barua pepe au bandika orodha",
+ "Remove email" : "Ondoa barua pepe",
+ "Select a destination" : "Chagua mahali pa kwenda",
+ "Select" : "Chagua",
+ "What are you requesting?" : "Unaomba nini?",
+ "Request subject" : "Omba mada",
+ "Birthday party photos, History assignment…" : "Picha za sherehe ya siku ya kuzaliwa, kazi ya Historia...",
+ "Where should these files go?" : "Faili hizi zinapaswa kwenda wapi?",
+ "Upload destination" : "Pakia katika eneo lengwa",
+ "Revert to default" : "Rudi kwa chaguomsingi",
+ "The uploaded files are visible only to you unless you choose to share them." : "Faili zilizopakiwa zinaonekana kwako tu isipokuwa utachagua kuzishiriki.",
+ "Add a note" : "Ongeza maelezo",
+ "Note for recipient" : "Maelezo kwa mpokeaji",
+ "Add a note to help people understand what you are requesting." : "Ongeza maelezo kusaidia watu kuelewa unachokiomba.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Unaweza kuongeza viungo, tarehe, au taarifa nyingine yoyote itakayomsaidia mpokeaji kuelewa unachokiomba.",
+ "Close" : "Funga",
+ "_Send email and close_::_Send {count} emails and close_" : ["Send email and close","Tuma barua pepe {count}na ufunge"],
+ "Please select a folder, you cannot share the root directory." : "Tafadhali chagua folda, huwezi kushiriki saraka ya mizizi.",
+ "File request created" : "Ombi la faili limeundwa",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["File request created and email sent","Ombi la faili limeundwa na barua pepe {count} zikatumwa"],
+ "Error creating the share: {errorMessage}" : "Hitilafu katika kuunda ushiriki: {errorMessage}",
+ "Error creating the share" : "Hitilafu katika kutengeneza ushiriki",
+ "Error sending emails: {errorMessage}" : "Hitilafu wakati wa kutuma barua pepe: {errorMessage}",
+ "Error sending emails" : "Hitilafu wakati wa kutuma barua pepe",
+ "Create a file request" : "Tengeneza ombi la faili",
+ "Collect files from others even if they do not have an account." : "Kusanya faili kutoka kwa wengine hata kama hawana akaunti.",
+ "To ensure you can receive files, verify you have enough storage available." : "Ili kuhakikisha kuwa unaweza kupokea faili, thibitisha kuwa una hifadhi ya kutosha.",
+ "File request" : "Ombi la faili",
+ "Previous step" : "Hatua ya awali",
+ "Cancel" : "Sitisha",
+ "Cancel the file request creation" : "Sitisha ombi la utengenezaji wa faili",
+ "Close without sending emails" : "Funga bila kutuma barua pepe",
+ "Continue" : "Endelea",
+ "Error while toggling options" : "Hitilafu wakati wa kugeuza chaguo",
+ "Accept shares from other accounts and groups by default" : "Kubali kushirikiwa kutoka kwa akaunti na vikundi vingine kwa chaguomsingi",
+ "Choose a default folder for accepted shares" : "Chagua folda chaguo-msingi kwa shiriki zinazokubalika",
+ "Invalid path selected" : "Njia iliyochaguliwa si halali",
+ "Unknown error" : "Hitilafu isiyojulikana",
+ "Set default folder for accepted shares" : "Weka folda chaguo-msingi kwa shiriki zinazokubaliwa",
+ "Reset" : "Pangilia upya",
+ "Reset folder to system default" : "Weka upya folda iwe chaguomsingi ya mfumo",
+ "Share expiration: {date}" : "Ukomo wa shiriki: {date}",
+ "Share Expiration" : "Ukomo wa shiriki",
+ "group" : "kundi",
+ "conversation" : "mazungumzo",
+ "remote" : "mbali",
+ "remote group" : "kundi la mbali",
+ "guest" : "mgeni",
+ "by {initiator}" : "kwa {initiator}",
+ "Shared with the group {user} by {owner}" : "Imeshirikiwa na kundi {user} kwa {owner}",
+ "Shared with the conversation {user} by {owner}" : "Imeshirikiwa na mazungumzo {user} kwa {owner}",
+ "Shared with {user} by {owner}" : "Imeshirikiwa na {user} kwa {owner}",
+ "Open Sharing Details" : "Fungua maelezo ya ushiriki",
+ "Added by {initiator}" : "Imeongezwa na {initiator}",
+ "Via “{folder}”" : "Kupitia \"{folder}\"",
+ "Unshare" : "Usishirikishe",
+ "Cannot copy, please copy the link manually" : "Haiwezi kunakili, tafadhali nakili kiungio kwa njia za kawaida",
+ "Copy internal link" : "Nakili kiungo cha ndani",
+ "Internal link" : "Kiungo cha ndani",
+ "{shareWith} by {initiator}" : "{shareWith} kwa {initiator}",
+ "Shared via link by {initiator}" : "Imeshirikiwa kupitia kiungo na {initiator}",
+ "File request ({label})" : "Ombi la faili ({label})",
+ "Mail share ({label})" : "Shiriki barua ({label})",
+ "Share link ({label})" : "Shiriki kiungo ({label})",
+ "Mail share" : "Shiriki barua",
+ "Share link ({index})" : "Shiriki kiungo ({index})",
+ "Create public link" : "Tengeneza kiungo cha umma",
+ "Actions for \"{title}\"" : "Matendo kwa \"{title}\"",
+ "Error, please enter proper password and/or expiration date" : "Hitilafu, tafadhali weka nenosiri sahihi na/au tarehe ya mwisho wa matumizi",
+ "Link share created" : "Ushiriki wa kiungo umeundwa",
+ "Error while creating the share" : "Hitilafu wakati wa kuunda kushiriki",
+ "Please enter the following required information before creating the share" : "Tafadhali weka maelezo yafuatayo yanayohitajika kabla ya kuunda kushiriki",
+ "Password protection (enforced)" : "Ulinzi wa nenosiri (umetekelezwa)",
+ "Password protection" : "Ulinzi wa nenosiri",
+ "Enter a password" : "Ingiza nenosiri",
+ "Enable link expiration (enforced)" : "Washa muda wa kuisha kwa kiungo (imetekelezwa)",
+ "Enable link expiration" : " Washa muda wa kuisha kwa kiungo",
+ "Enter expiration date (enforced)" : "Weka tarehe ya mwisho wa matumizi (imetekelezwa)",
+ "Enter expiration date" : "Weka tarehe ya mwisho wa matumizi",
+ "Create share" : "Tengeneza ushirikishaji",
+ "Customize link" : "Tengeneza kiungo kwa matakwa ya mteja",
+ "Generate QR code" : "Tengeneza msimbo wa QR",
+ "Add another link" : "Ongeza kiungo kingine",
+ "Create a new share link" : "Unda kiungo kipya cha kushiriki",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Chaguzi za haraka za kushiriki, zilizochaguliwa sasa ni \"{selectedOption}\"",
+ "View only" : "Utazamaji pekee",
+ "Can edit" : "Inaweza kuhariri",
+ "Custom permissions" : "Ruhusa maalum",
+ "Resharing is not allowed" : "Kushiriki upya hakuruhusiwi",
+ "Name or email …" : "Jina au barua pepe",
+ "Name, email, or Federated Cloud ID …" : "Jina, barua pepe au kitambulisho cha Cloudi kilichoshirikishwa...",
+ "Searching …" : "Inatafuta",
+ "No elements found." : "Hakuna vipengele vilivyopatikana",
+ "Search everywhere" : "Tafuta kila mahali",
+ "Guest" : "Mgeni",
+ "Group" : "Kundi",
+ "Email" : "Barua pepe",
+ "Team" : "Timu",
+ "Talk conversation" : "Mazungumzo ya Talk",
+ "Deck board" : "Bodi ya deck",
+ "ScienceMesh" : "SayansiMesh",
+ "on {server}" : "juu ya {server}",
+ "Enter external recipients" : "Ingiza wapokeaji wa nje",
+ "Search for internal recipients" : "Tafuta wapokeaji wa ndani",
+ "Note from" : "Kumbuka kutoka",
+ "Note:" : "Kumbuka:",
+ "File drop" : "Kuacha faili",
+ "Upload files to {foldername}." : "Pakia faili kwenye {foldername}",
+ "By uploading files, you agree to the terms of service." : "Kwa kupakia faili, unakubali sheria na masharti.",
+ "Successfully uploaded files" : " Faili zimepakiwa kikamilifu",
+ "View terms of service" : "Tazama masharti ya huduma",
+ "Terms of service" : "Masharti ya huduma",
+ "Share with email {email}" : "Shiriki na barua pepe {email}",
+ "Share with group" : "Shiriki na kundi",
+ "Share in conversation" : "Shiriki katika mazungumzo",
+ "Share with {user} on remote server {server}" : "Shiriki na {user}kwenye seva ya mbali {server}",
+ "Share with remote group" : "Shiriki na kundi la mbali",
+ "Share with guest" : "Shiriki na mgeni",
+ "Update share" : "Sasisha ushiriki",
+ "Save share" : "Hifadhi ushiriki",
+ "Read" : "Soma",
+ "Create" : "Tengeneza",
+ "Edit" : "Hariri",
+ "Share" : "Shirikisha",
+ "Delete" : "Futa",
+ "Password field cannot be empty" : "Sehemu ya nenosiri haiwezi kuwa tupu",
+ "Replace current password" : "Badilisha nenosiri la sasa",
+ "Failed to generate a new token" : "Imeshindwa kutengeneza tokeni mpya",
+ "Allow upload and editing" : "Ruhusu upakiaji na uhariri",
+ "Allow editing" : "Ruhusu uhariri",
+ "Upload only" : "Pakua tu",
+ "Advanced settings" : "Mipangilio ya kiwango cha juu",
+ "Share label" : "Shiriki lebo",
+ "Share link token" : "Shiriki tokeni ya kiungo",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Weka tokeni ya kiungo cha kushiriki hadharani iwe kitu ambacho ni rahisi kukumbuka au kutengeneza tokeni mpya. Haipendekezi kutumia tokeni inayoweza kukisiwa kwa hisa ambazo zina taarifa nyeti.",
+ "Generating…" : "Inazalisha...",
+ "Generate new token" : "Tengeneza tokeni mpya",
+ "Set password" : " Weka nenosiri",
+ "Password expires {passwordExpirationTime}" : "Nenosiri linaisha muda {passwordExpirationTime}",
+ "Password expired" : "Nenosiri limekwisha muda wake",
+ "Video verification" : "Uthibitishaji wa video",
+ "Expiration date (enforced)" : "Tarehe ya mwisho wa matumizi (imetekelezwa)",
+ "Set expiration date" : "Panga tarehe ya mwisho wa matumizi",
+ "Hide download" : "Ficha upakuaji",
+ "Allow download and sync" : "Ruhusu upakuaji na usawazishe",
+ "Note to recipient" : "Kumbuka kwa mpokeaji",
+ "Enter a note for the share recipient" : "Andika dokezo kwa mpokeaji kushiriki",
+ "Show files in grid view" : "Show files in grid view",
+ "Delete share" : "Futa shiriki",
+ "Others with access" : "Wengine wenye ufikiaji",
+ "No other accounts with access found" : "Hakuna akaunti nyingine zenye ufikiaji zilizopatikana",
+ "Toggle list of others with access to this directory" : "Geuza orodha ya wengine na ufikiaji wa saraka hii",
+ "Toggle list of others with access to this file" : "Geuza orodha ya wengine na ufikiaji wa faili hii",
+ "Unable to fetch inherited shares" : "Imeshindwa kuleta shiriki zilizorithiwa",
+ "Link shares" : "Unganisha shiriki",
+ "Shares" : "Shiriki",
+ "Unable to load the shares list" : "Imeshindwa kupakia orodha ya shiriki",
+ "Expires {relativetime}" : "Inaisha wakati {relativetime}",
+ "this share just expired." : "Shiriki hii imeisha muda wake",
+ "Shared with you by {owner}" : "Imeshirikiwa na wewe kwa {owner}",
+ "Internal shares" : "Shiriki za ndani",
+ "Internal shares explanation" : "Maelezo ya shiriki za ndani",
+ "External shares" : "Shiriki za nje",
+ "External shares explanation" : "Maelezo ya shiriki za nje",
+ "Additional shares" : "Shiriki za nyongeza",
+ "Additional shares explanation" : "Maelezo ya shiriki za nyongeza",
+ "Link to a file" : "Unga kwenye faili",
+ "_Accept share_::_Accept shares_" : ["Accept share","Kubali shiriki"],
+ "Open in Files" : "Fungua ndani ya faili",
+ "_Reject share_::_Reject shares_" : ["Reject share","Kataa shiriki"],
+ "_Restore share_::_Restore shares_" : ["Restore share","Rejesha shiriki"],
+ "Shared" : "Imeshirikishwa",
+ "Shared by {ownerDisplayName}" : "Imeshirikishwa na{ownerDisplayName}",
+ "Shared multiple times with different people" : "Imeshirikiwa mara nyingi na watu tofauti",
+ "Shared with others" : "Imeshirikiwa na wengine",
+ "Create file request" : "Unda ombi la faili",
+ "Upload files to {foldername}" : "Pakia faili kwa {foldername}",
+ "Public file share" : "Shiriki faili za umma",
+ "Publicly shared file." : "Faili iliyoshirikiwa hadharani.",
+ "No file" : "Hakuna faili",
+ "The file shared with you will show up here" : "Faili iliyoshirikiwa nawe itaonekana hapa",
+ "Public share" : "Shiriki ya umma",
+ "Publicly shared files." : "Faili zilizoshirikiwa hadharani.",
+ "No files" : "Hakuna faili",
+ "Files and folders shared with you will show up here" : "Faili na folda zilizoshirikiwa nawe zitaonekana hapa",
+ "Overview of shared files." : "Muhtasari wa faili zilizoshirikiwa.",
+ "No shares" : "Hakuna shiriki",
+ "Files and folders you shared or have been shared with you will show up here" : "Faili na folda ulizoshiriki au ambazo umeshirikiwa nawe zitaonekana hapa",
+ "Shared with you" : "Imeshirikiwa na wewe",
+ "List of files that are shared with you." : "Orodha ya faili ambazo zimeshirikiwa nawe.",
+ "Nothing shared with you yet" : "Bado hakuna kilichoshirikiwa nawe",
+ "Files and folders others shared with you will show up here" : "Faili na folda ambazo wengine wameshiriki nawe zitaonekana hapa",
+ "List of files that you shared with others." : "Orodha ya faili ulizoshiriki na wengine.",
+ "Nothing shared yet" : "Bado hakuna kitu kilichoshirikiwa",
+ "Files and folders you shared will show up here" : "Faili na folda ulizoshiriki zitaonekana hapa",
+ "Shared by link" : "Imeshirikishwa na kiungio",
+ "List of files that are shared by link." : "Orodha ya faili zinazoshirikiwa na kiungo.",
+ "No shared links" : "Hakuna viungo vilivyoshirikiwa",
+ "Files and folders you shared by link will show up here" : "Faili na folda ulizoshiriki kwa kutumia kiungo zitaonekana hapa",
+ "File requests" : "Maombi ya faili",
+ "List of file requests." : "Orodha ya maombi ya faili",
+ "No file requests" : "Hakuna maombi ya faili",
+ "File requests you have created will show up here" : "Maombi ya faili uliyounda yataonekana hapa",
+ "Deleted shares" : "Shiriki zilizofutwa",
+ "List of shares you left." : "Orodha ya shiriki ulizoacha.",
+ "No deleted shares" : "Hakuna shiriki zilizofutwa",
+ "Shares you have left will show up here" : "Shiriki ulizobakisha zitaonekana hapa",
+ "Pending shares" : "Shiriki zinazosubiri",
+ "List of unapproved shares." : "Orodha ya shiriki ambazo hazijaidhinishwa.",
+ "No pending shares" : "Hakuna shiriki zinazosubiri",
+ "Shares you have received but not approved will show up here" : "Shiriki ambazo umepokea lakini hazijaidhinishwa zitaonekana hapa",
+ "Error deleting the share: {errorMessage}" : "Hitilafu katika kufuta kushiriki: {errorMessage}",
+ "Error deleting the share" : "Hitilafu katika kufuta kushiriki",
+ "Error updating the share: {errorMessage}" : "Hitilafu katika kusasisha ushiriki: {errorMessage}",
+ "Error updating the share" : "Hitilafu katika kusasisha ushiriki",
+ "File \"{path}\" has been unshared" : "Faili \"{path}\" haijashirikiwa",
+ "Folder \"{path}\" has been unshared" : "Folda \"{path}\" haijashirikiwa",
+ "Could not update share" : "Haikuweza kusasisha kushiriki",
+ "Share saved" : "Shiriki imehifadhiwa",
+ "Share expiry date saved" : "Shiriki tarehe ya kumalizika kwa kushiriki iliyohifadhiwa",
+ "Share hide-download state saved" : "Shiriki hali ya upakuaji fiche iliyohifadhiwa",
+ "Share label saved" : "Lebo ya kushiriki imehifadhiwa",
+ "Share note for recipient saved" : "Dokezo la shiriki kwa mpokeaji aliyehifadhiwa",
+ "Share password saved" : "Nenosiri la shiriki lililohifadhiwa",
+ "Share permissions saved" : "Ruhusa za kushiriki zimehifadhiwa",
+ "To upload files to {folder}, you need to provide your name first." : "Ili kupakia faili kwenye {folder}, unahitaji kutoa jina lako kwanza.",
+ "Upload files to {folder}" : "Pakia faili kwa {folder}",
+ "Please confirm your name to upload files to {folder}" : "Tafadhali thibitisha jina lako ili kupakia faili {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ameshiriki folda nawe.",
+ "Names must not be empty." : "Majina lazima yasiwe tupu.",
+ "Names must not start with a dot." : "Majina lazima yasianze na nukta.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" hairuhusiwi ndani ya jina.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" ni jina lililohifadhiwa na lisiloruhusiwa",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" si jina linaloruhusiwa.",
+ "Names must not end with \"{extension}\"." : "Majina lazima yasiishie na \"{extension}\".",
+ "Invalid name." : "Jina batili.",
+ "Shared by" : "Imeshirikishwa na",
+ "Shared with" : "Imeshirikiwa na",
+ "Password created successfully" : "Nenosiri limeundwa kwa mafanikio",
+ "Error generating password from password policy" : "Hitilafu katika kuzalisha nenosiri kutoka kwa sera ya nenosiri",
+ "Shared with you and the group {group} by {owner}" : "Imeshirikiwa nawe na kikundi {group} kwa {owner}",
+ "Shared with you and {circle} by {owner}" : " Imeshirikiwa na wewe na{circle} kwa {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Imeshirikiwa nawe na mazungumzo {conversation} kwa {owner}",
+ "Shared with you in a conversation by {owner}" : " Imeshirikiwa nawe kwenye mazungumzo na{owner}",
+ "Share not found" : "Ushirikishaji haupo",
+ "Back to %s" : "Rudi kwenye %s",
+ "Add to your Nextcloud" : "Ongeza kwenye Nextcloud yako",
+ "Waiting…" : "Inasubiri...",
+ "error" : "hitilafu",
+ "finished" : "Imemaliza",
+ "This will stop your current uploads." : "Hii itasimamisha ukakiaji wako wa sasa",
+ "Move or copy" : "Hamisha au nakili",
+ "You can upload into this folder" : "Unaweza kupakia kwenye folda hii",
+ "Show list view" : "Onesha mwonekeno wa orodha",
+ "Show grid view" : "Onesha mwonekano wa mstariramani",
+ "No compatible server found at {remote}" : "Hakuna seva inayolingana iliyopatikana katika {remote}",
+ "Invalid server URL" : "URL ya seva si sahihi",
+ "Failed to add the public link to your Nextcloud" : "Imeshindwa kuongeza kiungio cha jamii kwenye Nextcloud yako",
+ "You are not allowed to edit link shares that you don't own" : "Huruhusiwi kuhariri vishiriki vya viungo ambavyo humiliki",
+ "Download all files" : "Pakua faili zote",
+ "Link copied to clipboard" : "Kiungo kimenakiliwa kwenye ubao wakunakilia",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 email address already added","{count}anwani za barua pepe zimeshaongezwa "],
+ "_1 email address added_::_{count} email addresses added_" : ["1 email address added","{count}anwani za barua pepe zimeongezwa "],
+ "Copy to clipboard" : "Nakili kwenye ubao wa kunakili",
+ "Copy internal link to clipboard" : "Nakili kiungo cha ndani kwenye ubao wa kunakilia",
+ "Only works for people with access to this folder" : "Inafanya kazi kwa watu wanaoweza kufikia folda hii pekee",
+ "Only works for people with access to this file" : " Inafanya kazi kwa watu walio na ufikiaji wa faili hii pekee",
+ "Copy public link of \"{title}\" to clipboard" : "Nakili kiungo cha umma cha \"{title}\" kwenye ubao wa kunakili",
+ "Search globally" : "Tafuta kimataifa",
+ "Search for share recipients" : "Tafuta wapokeaji walioshirikiwa",
+ "No recommendations. Start typing." : "Hakuna maoni. Anza kuchapisha",
+ "To upload files, you need to provide your name first." : "Ili kupakia faili, unahitaji kutoa jina lako kwanza.",
+ "Enter your name" : "Ingiza jina lako ",
+ "Submit name" : "Wasilisha jina",
+ "Share with {userName}" : "Shiriki na {userName}",
+ "Show sharing options" : "Onyesha chaguo za kushiriki",
+ "Share note" : "Shiriki dokezo",
+ "Upload files to %s" : "Pakia faili kwa %s",
+ "%s shared a folder with you." : "%s ameshiriki folda nawe.",
+ "Note" : "Dokezo",
+ "Select or drop files" : "Chagua au udondoshe faili",
+ "Uploading files" : "Inapakia faili",
+ "Uploaded files:" : "Faili zilizopakiwa:",
+ "By uploading files, you agree to the %1$sterms of service%2$s." : "Kwa kupakia faili, unakubali %1$s masharti ya huduma %2$s.",
+ "Name" : "Jina",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Tumia njia hii kushiriki faili na watu binafsi au timu ndani ya shirika lako. Ikiwa mpokeaji tayari ana idhini ya kufikia kushiriki lakini hawezi kuipata, unaweza kumtumia kiungo cha kushiriki ndani kwa ufikiaji rahisi.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Tumia njia hii kushiriki faili na watu binafsi au mashirika nje ya shirika lako. Faili na folda zinaweza kushirikiwa kupitia viungo vya ushiriki wa umma na anwani za barua pepe. Unaweza pia kushiriki kwa akaunti zingine za Nextcloud zinazopangishwa kwa matukio tofauti kwa kutumia kitambulisho chao cha wingu kilichoshirikishwa.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Shiriki ambazo si sehemu ya shiriki za ndani au nje. Hii inaweza kuwa kushiriki kutoka kwa programu au vyanzo vingine.",
+ "Share with accounts, teams, federated cloud id" : "Shiriki na akaunti, timu, kitambulisho cha Cloud kilichoshirikishwa",
+ "Share with accounts and teams" : "Shiriki kwa akaunti na timu",
+ "Federated cloud ID" : "Kitambulisho cha Cloud kilichoshirikishwa",
+ "Email, federated cloud id" : "Barua pepe, kitambulisho cha Cloud kilichoshirikishwa",
+ "Filename must not be empty." : "Jina la faili halipaswi kuwa tupu"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/tr.js b/apps/files_sharing/l10n/tr.js
index 94878c16bef..d56a3f194b5 100644
--- a/apps/files_sharing/l10n/tr.js
+++ b/apps/files_sharing/l10n/tr.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Bekleniyor…",
- "error" : "sorun",
- "finished" : "tamamlandı",
- "This will stop your current uploads." : "Bu işlem geçerli yüklemeleri durduracak.",
- "Move or copy" : "Taşı ya da kopyala",
- "Download" : "İndir",
- "Delete" : "Sil",
- "You can upload into this folder" : "Bu klasöre yükleme yapabilirsiniz",
- "Terms of service" : "Hizmet koşulları",
- "Show list view" : "Liste görünümüne geç",
- "Show grid view" : "Tablo görünümüne geç",
- "No compatible server found at {remote}" : "{remote} konumunda uyumlu sunucu bulunamadı",
- "Invalid server URL" : "Sunucu adresi geçersiz",
- "Failed to add the public link to your Nextcloud" : "Herkese açık bağlantı Nextcould üzerine eklenemedi",
"File shares" : "Dosya paylaşımları",
"Downloaded via public link" : "Herkese açık bağlantı ile indirildi",
"Downloaded by {email}" : "{email} tarafından indirildi",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "{file} dosyasının {user} kullanıcısıyla paylaşımının geçerlilik süresi dolmuş",
"Share for file {file} expired" : "{file} dosyasının paylaşımının geçerlilik süresi dolmuş",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "E-posta ya da herkese açık bağlantı ile paylaşılan bir dosya ya da klasör <strong>indirildi</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Dosyalar e-posta ya da herkese açık bir bağlantı ile paylaşılmış bir klasöre <strong>yüklendi</strong>",
"A file or folder was shared from <strong>another server</strong>" : "<strong>Başka bir sunucudan</strong> bir dosya ya da klasör paylaşıldı",
- "Files" : "Dosyalar",
+ "Sharing" : "Paylaşım",
"A file or folder has been <strong>shared</strong>" : "Bir dosya ya da klasör <strong>paylaşıldı</strong>",
"Shared link" : "Paylaşılmış bağlantı",
"Wrong share ID, share does not exist" : "Paylaşım kimliği yanlış. Paylaşım bulunamadı",
@@ -78,35 +65,47 @@ OC.L10N.register(
"Please specify a file or folder path" : "Lütfen bir dosya ya da klasör yolu belirtin",
"Wrong path, file/folder does not exist" : "Yol yanlış. Dosya ya da klasör bulunamadı",
"Could not create share" : "Paylaşılamadı",
- "Invalid permissions" : "İzinler geçersiz",
- "Invalid date, date format must be YYYY-MM-DD" : "Tarih geçersiz. Tarih biçimi YYYY-AA-GG olmalıdır",
"Please specify a valid account to share with" : "Lütfen paylaşılacak geçerli bir hesap belirtin",
- "Group sharing is disabled by the administrator" : "Grup paylaşımı BT yöneticisi tarafından devre dışı bırakılmış",
+ "Group sharing is disabled by the administrator" : "Grup paylaşımı özelliği BT yöneticisi tarafından kapatılmış",
"Please specify a valid group" : "Lütfen geçerli bir grup belirtin",
- "Public link sharing is disabled by the administrator" : "Herkese açık bağlantı paylaşımı BT yöneticisi tarafından devre dışı bırakılmış",
- "Public upload disabled by the administrator" : "Herkese açık yükleme BT yöneticisi tarafından devre dışı bırakılmış",
- "Public upload is only possible for publicly shared folders" : "Herkese açık yükleme ancak herkese açık paylaşılmış klasörlere yapılabilir",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud Talk etkinleştirilmemiş olduğundan, %s paylaşım parolası Nextcloud Talk ile gönderilemedi",
+ "Public link sharing is disabled by the administrator" : "Herkese açık bağlantı paylaşımı özelliği BT yöneticisi tarafından kapatılmış",
+ "Please specify a valid email address" : "Lütfen geçerli bir e-posta adresi yazın",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud Konuş uygulaması kullanıma alınmamış. %s paylaşım parolası Nextcloud Konuş uygulaması ile gönderilemedi",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Yönetim bölümünden %2$s türündeki paylaşımlar yapılamadığından %1$s paylaşılamadı",
"Please specify a valid federated account ID" : "Lütfen geçerli bir birleşik hesap kimliği belirtin",
"Please specify a valid federated group ID" : "Lütfen geçerli bir birleşik grup kimliği belirtin",
- "You cannot share to a Circle if the app is not enabled" : "Uygulama etkinleştirilmemiş ise bir Takım ile paylaşamazsınız",
- "Please specify a valid circle" : "Lütfen geçerli bir takım belirtin",
- "Sharing %s failed because the back end does not support room shares" : "Arka uç oda paylaşımlarına izin vermediğinden %s paylaşılamadı",
- "Sharing %s failed because the back end does not support ScienceMesh shares" : "Arka uç ScienceMesh paylaşımlarına izin vermediğinden %s paylaşılamadı",
+ "You cannot share to a Team if the app is not enabled" : "Uygulama kullanıma alınmamışsa bir Takım ile paylaşamazsınız",
+ "Please specify a valid team" : "Lütfen geçerli bir takım belirtin",
+ "Sharing %s failed because the back end does not support room shares" : "Arka yüz oda paylaşımlarına izin vermediğinden %s paylaşılamadı",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Arka yüz ScienceMesh paylaşımlarına izin vermediğinden %s paylaşılamadı",
"Unknown share type" : "Paylaşım türü bilinmiyor",
"Not a directory" : "Bir klasör değil",
"Could not lock node" : "Düğüm kilitlenemedi",
- "Could not lock path" : "Yol kilitlenemedi",
- "Wrong or no update parameter given" : "Parametre yanlış ya da herhangi bir parametre belirtilmemiş",
+ "Public upload is only possible for publicly shared folders" : "Herkese açık yükleme ancak herkese açık paylaşılmış klasörlere yapılabilir",
"Share must at least have READ or CREATE permissions" : "Paylaşım için en az OKUMA ve OLUŞTURMA izinleri olmalıdır",
"Share must have READ permission if UPDATE or DELETE permission is set" : "UPDATE ya da DELETE izinleri verilmiş ise paylaşıma READ izni verilmelidir",
- "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud Talk etkinleştirilmemiş olduğundan, paylaşım parolası Nextcloud Talk ile gönderilemedi.",
+ "Public upload disabled by the administrator" : "Herkese açık yükleme özelliği BT yöneticisi tarafından kapatılmış",
+ "Could not lock path" : "Yol kilitlenemedi",
+ "no sharing rights on this item" : "bu ögenin herhangi bir paylaşım izni yok",
+ "You are not allowed to edit incoming shares" : "Gelen paylaşımları düzenleme izniniz yok",
+ "Wrong or no update parameter given" : "Parametre yanlış ya da herhangi bir parametre belirtilmemiş",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud Konuş uygulaması kullanıma alınmamış. Paylaşım parolası Nextcloud Konuş uygulaması ile gönderilemedi.",
+ "Custom share link tokens have been disabled by the administrator" : "Özel bağlantı paylaşımı kodları yöneticiniz tarafından kapatılmış",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Kodlar en az 1 karakter uzunluğunda olmalı ve yalnızca harf, sayı veya tire karakterlerini içermelidir",
+ "Invalid date. Format must be YYYY-MM-DD" : "Tarih geçersiz. Tarih biçimi YYYY-AA-GG olmalıdır",
+ "No sharing rights on this item" : "Bu ögenin herhangi bir paylaşım izni yok",
+ "Invalid share attributes provided: \"%s\"" : "Belirtilen paylaşım öznitelikleri geçersiz: \"%s\"",
+ "You are not allowed to send mail notifications" : "E-posta bildirimleri gönderme izniniz yok",
+ "No mail notification configured for this share type" : "Bu paylaşım türü için bir e-posta bildirimi yapılandırılmamış",
+ "Wrong password" : "Parola yanlış",
+ "Error while sending mail notification" : "E-posta bildirimi gönderilirken sorun çıktı",
+ "Failed to generate a unique token" : "Eşsiz bir kod oluşturulamadı",
+ "This share does not exist or is no longer available" : "Bu paylaşım bulunamadı ya da artık kullanılamıyor",
"shared by %s" : "%s tarafından paylaşıldı",
- "Download all files" : "Tüm dosyaları indir",
- "Direct link" : "Doğrudan bağlantı",
+ "Download" : "İndir",
"Add to your %s" : "%s uygulamanıza ekleyin",
- "Share API is disabled" : "Paylaşım API arayüzü devre dışı",
+ "Direct link" : "Doğrudan bağlantı",
+ "Share API is disabled" : "Paylaşım API arayüzü kapatılmış",
"File sharing" : "Dosya paylaşımı",
"Share will expire tomorrow" : "Paylaşımın geçerlilik süresi yarın dolacak",
"Your share of {node} will expire tomorrow" : "{node} paylaşımınızın geçerlilik süresi yarın dolacak",
@@ -114,140 +113,223 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "{user} kullanıcısından {group} grubu için {share} paylaşımını aldınız",
"Accept" : "Kabul et",
"Decline" : "Reddet",
- "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Bu uygulama kişilerin Nextcloud üzerinde dosya paylaşabilmesini sağlar. Etkinleştirildiğinde, yöneticiler dosya paylaşabilecek grupları belirleyebilir. Seçilmiş gruplardaki kişiler Nextcloud üzerindeki diğer kişi ve gruplar ile dosya ve klasör paylaşabilir. Ek olarak, yönetici bağlantı paylaşımı özelliğini etkinleştirmiş ise, Nextcloud üzerinde olmayan kişiler ile dosya paylaşımı bağlantıları kullanılabilir. Yöneticiler ayrıca parola ve geçerlilik sonu tarihi kullanılmasını zorunlu kılmanın yanında, paylaşım bağlantıları ile sunucudan sunucuya paylaşım ve mobil aygıtlar ile paylaşım gibi özellikleri etkinleştirebilir.\nBu özellik devre dışı bırakıldığında, sunucu, eşitleme istemcileri ve mobil uygulamalar üzerinden alıcılar ile paylaşılmış dosya ve klasörler kaldırılır. Ayrıntılı bilgi almak için Nextcloud belgelerine bakabilirsiniz.",
- "Sharing" : "Paylaşım",
- "Accept shares from other accounts and groups by default" : "Diğer hesaplardan ve gruplardan gelen paylaşımlar varsayılan olarak kabul edilsin",
+ "Remember to upload the files to %s" : "Dosyaları %s üzerine yüklemeyi unutmayın",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Paylaşılan klasöre henüz herhangi bir dosya yüklemediğinizi hatırlatmak isteriz.",
+ "Open \"%s\"" : "\"%s\" aç",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Bu uygulama kişilerin Nextcloud üzerinde dosya paylaşabilmesini sağlar. Kullanıma alındığında, yöneticiler dosya paylaşabilecek grupları belirleyebilir. Seçilmiş gruplardaki kişiler Nextcloud üzerindeki diğer kişi ve gruplar ile dosya ve klasör paylaşabilir. Ek olarak, yönetici bağlantı paylaşımı özelliğini açmış ise, Nextcloud üzerinde olmayan kişiler ile dosya paylaşımı bağlantıları kullanılabilir. Yöneticiler ayrıca parola ve geçerlilik sonu tarihi kullanılmasını zorunlu kılmanın yanında, paylaşım bağlantıları ile sunucudan sunucuya paylaşım ve mobil aygıtlar ile paylaşım gibi özellikleri açabilir.\nBu özellik kapatıldığında, sunucu, eşitleme istemcileri ve mobil uygulamalar üzerinden alıcılar ile paylaşılmış dosya ve klasörler kaldırılır. Ayrıntılı bilgi almak için Nextcloud belgelerine bakabilirsiniz.",
+ "People" : "Kişiler",
+ "Filter accounts" : "Hesapları süz",
+ "The request will expire on {date} at midnight and will be password protected." : "İstek {date} gece yarısı geçersiz olacak ve parola ile korunacak.",
+ "The request will expire on {date} at midnight." : "İstek {date} gece yarısı geçersiz olacak.",
+ "The request will be password protected." : "İstek parola ile korunacak.",
+ "When should the request expire?" : "İsteğin geçerlilik sonu ne zaman olsun?",
+ "Set a submission expiration date" : "Gönderim geçerlilik sonu tarihini ayarlayın",
+ "Expiration date" : "Geçerlilik sonu tarihi",
+ "Select a date" : "Bir tarih seçin",
+ "Your administrator has enforced a {count} days expiration policy." : "Yöneticiniz geçerlilik sonu ilkesini {count} gün olarak zorunlu kılmış.",
+ "What password should be used for the request?" : "İstek için kullanılacak parola nedir?",
+ "Set a password" : "Bir parola ayarlayın",
+ "Password" : "Parola",
+ "Enter a valid password" : "Geçerli bir parola yazın",
+ "Generate a new password" : "Yeni parola oluştur",
+ "Your administrator has enforced a password protection." : "Yöneticiniz parola korumasını zorunlu kılmış.",
+ "Automatically copying failed, please copy the share link manually" : "Otomatik kopyalama tamamlanamadı. Paylaşım bağlantısını el ile kopyalayın",
+ "Link copied" : "Bağlantı kopyalandı",
+ "Email already added" : "E-posta adresi zaten eklenmiş",
+ "Invalid email address" : "E-posta adresi geçersiz",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Şu e-posta adresi geçersiz: {emails}","Şu e-posta adresleri geçersiz: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} e-posta adresi zaten eklenmiş","{count} e-posta adresi zaten eklenmiş"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} e-posta adresi eklendi","{count} e-posta adresi eklendi"],
+ "You can now share the link below to allow people to upload files to your directory." : "Artık aşağıdaki bağlantıyı paylaşarak insanların klasörünüze dosya yüklemesini sağlayabilirsiniz.",
+ "Share link" : "Paylaşım bağlantısı",
+ "Copy" : "Kopyala",
+ "Send link via email" : "Bağlantıyı e-posta ile gönder",
+ "Enter an email address or paste a list" : "Bir e-posta adresi yazın ya da bir e-posta adresi listesi yapıştırın",
+ "Remove email" : "E-posta adresini kaldır",
+ "Select a destination" : "Bir hedef seçin",
+ "Select" : "Seçin",
+ "What are you requesting?" : "Ne yapmak istiyorsunuz?",
+ "Request subject" : "İstek konusu",
+ "Birthday party photos, History assignment…" : "Doğum günü fotoğraflarını paylaşmak ve tarihleri belirlemek…",
+ "Where should these files go?" : "Bu dosyalar nereye kaydedilmeli?",
+ "Upload destination" : "Yükleme hedefi",
+ "Revert to default" : "Varsayılana sıfırla",
+ "The uploaded files are visible only to you unless you choose to share them." : "Yüklenen dosyaları, paylaşmayı seçmediğiniz sürece yalnızca siz görebilirsiniz.",
+ "Add a note" : "Bir not ekle",
+ "Note for recipient" : "Alıcıya not",
+ "Add a note to help people understand what you are requesting." : "İnsanlara isteğinizin ne olduğunu açıklayan bir not ekleyin.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Alıcının ne istediğinizi anlamasına yardımcı olacak bağlantı, tarih veya başka bilgiler ekleyebilirsiniz.",
+ "Close" : "Kapat",
+ "_Send email and close_::_Send {count} emails and close_" : ["E-postayı gönder ve kapat","{count} e-postayı gönder ve kapat"],
+ "Please select a folder, you cannot share the root directory." : "Lütfen bir klasör seçin, kök klasörü paylaşamazsınız.",
+ "File request created" : "Dosya isteği oluşturuldu",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Dosya isteği oluşturuldu ve e-posta gönderildi","Dosya isteği oluşturuldu ve {count} e-posta gönderildi"],
+ "Error creating the share: {errorMessage}" : "Paylaşım oluşturulurken sorun çıktı: {errorMessage}",
+ "Error creating the share" : "Paylaşım oluşturulurken sorun çıktı",
+ "Error sending emails: {errorMessage}" : "E-postalar gönderilirken sorun çıktı: {errorMessage}",
+ "Error sending emails" : "E-postalar gönderilirken sorun çıktı",
+ "Create a file request" : "Bir dosya isteği oluştur",
+ "Collect files from others even if they do not have an account." : "Hesabı olmayan kişilerden bile dosyaları toplayın.",
+ "To ensure you can receive files, verify you have enough storage available." : "Dosyaları alabileceğinizden emin olmak için yeterli depolama alanınız bulunduğundan emin olun.",
+ "File request" : "Dosya isteği",
+ "Previous step" : "Önceki adım",
+ "Cancel" : "İptal",
+ "Cancel the file request creation" : "Dosya isteği oluşturmayı iptal et",
+ "Close without sending emails" : "E-postaları göndermeden kapat",
+ "Continue" : "Sürdür",
"Error while toggling options" : "Seçenekler değiştirilirken sorun çıktı ",
- "Set default folder for accepted shares" : "Onaylanmış paylaşımların varsayılan klasörünü ayarlayın",
- "Reset" : "Sıfırla",
- "Reset folder to system default" : "Sistem varsayılan klasörüne sıfırlar",
+ "Accept shares from other accounts and groups by default" : "Diğer hesaplardan ve gruplardan gelen paylaşımlar varsayılan olarak kabul edilsin",
"Choose a default folder for accepted shares" : "Onaylanmış paylaşımlar için varsayılan bir klasör seçin",
"Invalid path selected" : "Seçilen yol geçersiz",
"Unknown error" : "Bilinmeyen sorun",
- "Open Sharing Details" : "Paylaşım bilgilerini aç",
+ "Set default folder for accepted shares" : "Onaylanmış paylaşımların varsayılan klasörünü ayarlayın",
+ "Reset" : "Sıfırla",
+ "Reset folder to system default" : "Sistem varsayılan klasörüne sıfırlar",
+ "Share expiration: {date}" : "Paylaşım geçerlilik sonu: {date}",
+ "Share Expiration" : "Paylaşım geçerlilik sonu",
"group" : "grup",
"conversation" : "görüşme",
"remote" : "uzak",
"remote group" : "uzak grup",
"guest" : "konuk",
+ "by {initiator}" : "{initiator} tarafından",
"Shared with the group {user} by {owner}" : "{owner} tarafından grup {user} ile paylaşılmış",
"Shared with the conversation {user} by {owner}" : "{owner} tarafından görüşme {user} ile paylaştırılmış",
"Shared with {user} by {owner}" : "{owner} tarafından {user} ile paylaşılmış",
+ "Open Sharing Details" : "Paylaşım bilgilerini aç",
"Added by {initiator}" : "{initiator} tarafından eklendi",
"Via “{folder}”" : "“{folder}” ile",
"Unshare" : "Paylaşımı kaldır",
- "Internal link" : "İç bağlantı",
"Cannot copy, please copy the link manually" : "Kopyalanamadı. Lütfen bağlantıyı el ile kopyalayın",
- "Copy internal link to clipboard" : "İç bağlantıyı panoya kopyala",
- "Only works for people with access to this folder" : "Yalnızca bu klasöre erişebilen kişiler için geçerlidir",
- "Only works for people with access to this file" : "Yalnızca bu dosyaya erişebilen kişiler için geçerlidir",
- "Link copied" : "Bağlantı kopyalandı",
- "Please enter the following required information before creating the share" : "Lütfen paylaşımı oluşturmadan önce aşağıdaki zorunlu bilgileri yazın",
- "Password protection (enforced)" : "Parola koruması (dayatılmış)",
- "Password protection" : "Parola koruması",
- "Enter a password" : "Bir parola yazın",
- "Expiration date (enforced)" : "Geçerlilik sonu tarihi (dayatılmış)",
- "Enter a date" : "Bir tarih yazın",
- "Create share" : "Paylaşım ekle",
- "Cancel" : "İptal",
- "Customize link" : "Bağlantıyı özelleştir",
- "Generate QR code" : "QR kodu oluştur",
- "Add another link" : "Başka bir bağlantı ekle",
- "Create a new share link" : "Yeni bir paylaşım bağlantısı ekle",
+ "Copy internal link" : "İç bağlantıyı kopyala",
+ "Internal link" : "İç bağlantı",
"{shareWith} by {initiator}" : "{initiator} tarafından {shareWith}",
"Shared via link by {initiator}" : "{initiator} tarafından bağlantı ile paylaşıldı",
+ "File request ({label})" : "Dosya isteği ({label})",
"Mail share ({label})" : "E-posta ile paylaş ({label})",
"Share link ({label})" : "Bağlantı ile paylaş ({label})",
+ "Mail share" : "E-posta ile paylaş",
"Share link ({index})" : "Paylaşım bağlantısı ({index})",
- "Share link" : "Paylaşım bağlantısı",
+ "Create public link" : "Herkese açık bağlantı ekle",
"Actions for \"{title}\"" : "\"{title}\" işlemleri",
- "Copy public link of \"{title}\" to clipboard" : "Herkese açık \"{title}\" bağlantısını panoya kopyala",
"Error, please enter proper password and/or expiration date" : "Hata. Lütfen uygun bir parola ya da geçerlilik sonu tarihi yazın",
"Link share created" : "Paylaşım bağlantısı oluşturuldu",
"Error while creating the share" : "Paylaşım oluşturulurken sorun çıktı",
+ "Please enter the following required information before creating the share" : "Lütfen paylaşımı oluşturmadan önce aşağıdaki zorunlu bilgileri yazın",
+ "Password protection (enforced)" : "Parola koruması (zorunlu kılınmış)",
+ "Password protection" : "Parola koruması",
+ "Enter a password" : "Bir parola yazın",
+ "Enable link expiration (enforced)" : "Bağlantıya geçerlilik sonu ekle (zorunlu kılınmış)",
+ "Enable link expiration" : "Bağlantı geçerlilik sonu kullanılsın",
+ "Enter expiration date (enforced)" : "Geçerlilik sonu tarihini yazın (zorunlu kılınmış)",
+ "Enter expiration date" : "Geçerlilik sonu tarihini yazın",
+ "Create share" : "Paylaşım ekle",
+ "Customize link" : "Bağlantıyı özelleştir",
+ "Generate QR code" : "Kare kod oluştur",
+ "Add another link" : "Başka bir bağlantı ekle",
+ "Create a new share link" : "Yeni bir paylaşım bağlantısı ekle",
"Quick share options, the current selected is \"{selectedOption}\"" : "Hızlı paylaşım seçenekleri, geçerli seçim \"{selectedOption}\"",
"View only" : "Yalnızca görüntüleme",
"Can edit" : "Düzenleyebilir",
- "File drop" : "Dosya bırakma",
"Custom permissions" : "Özel izinler",
- "Search for share recipients" : "Paylaşım alıcıları ara",
- "No recommendations. Start typing." : "Herhangi bir öneri yok. Yazmaya başlayın.",
"Resharing is not allowed" : "Yeniden paylaşıma izin verilmiyor",
"Name or email …" : "Ad ya da e-posta adresi …",
"Name, email, or Federated Cloud ID …" : "Ad, e-posta ya da birleşik bulut kimliği…",
"Searching …" : "Aranıyor …",
"No elements found." : "Herhangi bir bileşen bulunamadı.",
- "Search globally" : "Genel arama",
+ "Search everywhere" : "Her yerde ara",
"Guest" : "Konuk",
"Group" : "Grup",
"Email" : "E-posta",
"Team" : "Takım",
- "Talk conversation" : "Talk görüşmesi",
+ "Talk conversation" : "Konuş görüşmesi",
"Deck board" : "Tahta panosu",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "{server} üzerinde",
+ "Enter external recipients" : "Dış alıcıları yazın",
+ "Search for internal recipients" : "İç alıcıları arayın",
+ "Note from" : "Notu yazan",
+ "Note:" : "Not:",
+ "File drop" : "Dosya bırakma",
+ "Upload files to {foldername}." : "Dosyaları {foldername} klasörüne yükle.",
+ "By uploading files, you agree to the terms of service." : "Dosya yükleyerek hizmet koşullarını kabul etmiş olursunuz.",
+ "Successfully uploaded files" : "Dosyalar yüklendi",
+ "View terms of service" : "Hizmet koşullarını görüntüle",
+ "Terms of service" : "Hizmet koşulları",
+ "Share with email {email}" : "{email} e-posta adresi ile paylaş",
+ "Share with group" : "Grupla paylaş",
+ "Share in conversation" : "Görüşmede paylaş",
+ "Share with {user} on remote server {server}" : "{server} uzak sunucusundaki {user} ile paylaş",
+ "Share with remote group" : "Uzaktaki grupla paylaş",
+ "Share with guest" : "Konukla paylaş",
+ "Update share" : "Paylaşımı güncelle",
+ "Save share" : "Paylaşımı kaydet",
+ "Read" : "Okuma",
+ "Create" : "Ekle",
+ "Edit" : "Düzenleme",
+ "Share" : "Paylaş",
+ "Delete" : "Sil",
+ "Password field cannot be empty" : "Parola alanı boş olamaz",
+ "Replace current password" : "Geçerli parolayı değiştir",
+ "Failed to generate a new token" : "Yeni bir kod oluşturulamadı",
"Allow upload and editing" : "Yüklenebilsin ve düzenlenebilsin",
"Allow editing" : "Düzenlemeye izin ver",
"Upload only" : "Yalnızca yükleme",
"Advanced settings" : "Gelişmiş ayarlar",
"Share label" : "Paylaşım etiketi",
+ "Share link token" : "Paylaşım bağlantısı kodu",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Herkese açık paylaşım bağlantısı kodunu kolay hatırlanacak bir şey olarak ayarlayın veya yeni bir kod oluşturun. Önemli bilgiler içeren paylaşımlar için öngörülebilir bir kod kullanılması önerilmez.",
+ "Generating…" : "Oluşturuluyor…",
+ "Generate new token" : "Yeni kod oluştur",
"Set password" : "Parola ayarla",
- "Password" : "Parola",
"Password expires {passwordExpirationTime}" : "Parolanın geçerlilik süresi sonu {passwordExpirationTime}",
"Password expired" : "Parolanın geçerlilik süresi dolmuş",
"Video verification" : "Görüntü doğrulaması",
+ "Expiration date (enforced)" : "Geçerlilik sonu tarihi (zorunlu kılınmış)",
"Set expiration date" : "Geçerlilik sonu tarihini ayarla",
- "Expiration date" : "Geçerlilik sonu tarihi",
"Hide download" : "İndirme gizlensin",
- "Allow download" : "İndirilebilsin",
+ "Allow download and sync" : "İndirmeye izin ver ve eşitle",
"Note to recipient" : "Alıcıya not",
"Enter a note for the share recipient" : "Paylaşım alıcısı için bir not yazın",
- "Read" : "Okuma",
- "Create" : "Ekle",
- "Edit" : "Düzenleme",
- "Share" : "Paylaş",
+ "Show files in grid view" : "Dosyaları ızgara yerleşiminde görüntüle",
"Delete share" : "Paylaşımı sil",
- "Share with {userName}" : "{userName} ile paylaş",
- "Share with group" : "Grupla paylaş",
- "Share in conversation" : "Yazışmada paylaş",
- "Share with remote group" : "Uzaktaki grupla paylaş",
- "Share with guest" : "Konukla paylaş",
- "Update share" : "Paylaşımı güncelle",
- "Save share" : "Paylaşımı kaydet",
"Others with access" : "Erişebilen diğer kişiler",
"No other accounts with access found" : "Erişebilen başka bir hesap bulunamadı",
"Toggle list of others with access to this directory" : "Bu klasöre erişme izni olan diğer kişiler listesini aç/kapat",
"Toggle list of others with access to this file" : "Bu dosyaya erişme izni olan diğer kişiler listesini aç/kapat",
"Unable to fetch inherited shares" : "Devir alınan paylaşımlar alınamadı",
+ "Link shares" : "Bağlantı paylaşımları",
+ "Shares" : "Paylaşımlar",
"Unable to load the shares list" : "Paylaşımlar listesi yüklenemedi",
"Expires {relativetime}" : "Geçerlilik süresi sonu {relativetime}",
"this share just expired." : "bu paylaşımın geçerlilik süresi dolmuş.",
"Shared with you by {owner}" : "{owner} tarafından sizinle paylaşılmış",
+ "Internal shares" : "İç paylaşımlar",
+ "Internal shares explanation" : "İç paylaşımlar açıklaması",
+ "External shares" : "Dış paylaşımlar",
+ "External shares explanation" : "Dış paylaşımlar açıklaması",
+ "Additional shares" : "Ek paylaşımlar",
+ "Additional shares explanation" : "Ek paylaşımlar açıklaması",
+ "Link to a file" : "Bir dosya bağlantısı",
"_Accept share_::_Accept shares_" : ["Paylaşımı kabul et","Paylaşımları kabul et"],
"Open in Files" : "Dosyalar uygulamasında aç",
"_Reject share_::_Reject shares_" : ["Paylaşımı reddet","Paylaşımları reddet"],
"_Restore share_::_Restore shares_" : ["Paylaşımı geri yükle","Paylaşımları geri yükle"],
"Shared" : "Paylaşılan",
- "Shared multiple times with different people" : "Farklı kişilerle birkaç kez paylaşılmış",
"Shared by {ownerDisplayName}" : "{ownerDisplayName} tarafından paylaşılmış",
- "Show sharing options" : "Paylaşım seçeneklerini görüntüle",
- "Link to a file" : "Bir dosya bağlantısı",
- "Error creating the share: {errorMessage}" : "Paylaşım oluşturulurken sorun çıktı: {errorMessage}",
- "Error creating the share" : "Paylaşım oluşturulurken sorun çıktı",
- "Error updating the share: {errorMessage}" : "Paylaşım güncellenirken sorun çıktı: {errorMessage}",
- "Error updating the share" : "Paylaşım güncellenirken sorun çıktı",
- "File \"{path}\" has been unshared" : "\"{path}\" dosyası paylaşımdan kaldırıldı",
- "Folder \"{path}\" has been unshared" : "\"{path}\" klasörü paylaşımdan kaldırıldı",
- "Share {propertyName} saved" : "{propertyName} paylaşımı kaydedildi",
- "Shared by" : "Paylaşan",
- "Shared with" : "Şunlarla paylaşılmış",
- "Password created successfully" : "Parola oluşturuldu",
- "Error generating password from password policy" : "Parola, parola ilkesine göre oluşturulurken sorun çıktı",
- "Shared with you and the group {group} by {owner}" : "{owner} tarafından sizinle ve {group} gubu ile paylaşılmış",
- "Shared with you and {circle} by {owner}" : "{owner} tarafından sizinle ve {circle} takımı ile paylaşılmış",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} tarafından sizinle ve {conversation} görüşmesi ile paylaştırılmış",
- "Shared with you in a conversation by {owner}" : "{owner} tarafından sizinle bir görüşmede paylaşılmış",
- "Shares" : "Paylaşımlar",
+ "Shared multiple times with different people" : "Farklı kişilerle birkaç kez paylaşılmış",
+ "Sharing options" : "Paylaşım seçenekleri",
+ "Shared with others" : "Diğerleri ile paylaşılmış",
+ "Create file request" : "Dosya isteği oluştur",
+ "Upload files to {foldername}" : "Dosyaları {foldername} klasörüne yükle",
+ "Public file share" : "Herkese açık dosya paylaşımı",
+ "Publicly shared file." : "Herkese açık paylaşılmış dosya.",
+ "No file" : "Dosya yok",
+ "The file shared with you will show up here" : "Sizinle paylaşılan dosyalar burada görüntülenir",
+ "Public share" : "Herkese açık paylaş",
+ "Publicly shared files." : "Herkese açık paylaşılmış dosyalar.",
+ "No files" : "Herhangi bir dosya yok",
+ "Files and folders shared with you will show up here" : "Sizinle paylaşılan dosyalar ve klasörler burada görüntülenir",
"Overview of shared files." : "Paylaşılan dosyaların özeti.",
"No shares" : "Henüz bir şey paylaşılmamış",
"Files and folders you shared or have been shared with you will show up here" : "Başkalarıyla paylaştığınız dosya ve klasörler burada görüntülenir",
@@ -255,7 +337,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Sizinle paylaşılan dosyaların listesi.",
"Nothing shared with you yet" : "Sizinle henüz herhangi bir şey paylaşılmamış",
"Files and folders others shared with you will show up here" : "Başkalarının sizinle paylaştığı dosya ve klasörler burada görüntülenir",
- "Shared with others" : "Diğerleri ile paylaşılmış",
"List of files that you shared with others." : "Başkalarıyla paylaştığınız dosyaların listesi.",
"Nothing shared yet" : "Henüz hiçbir şey paylaşılmamış",
"Files and folders you shared will show up here" : "Paylaştığınız dosya ve klasörler burada görüntülenir",
@@ -263,6 +344,10 @@ OC.L10N.register(
"List of files that are shared by link." : "Bağlantı ile paylaşılan dosyaların listesi.",
"No shared links" : "Paylaşılmış bir bağlantı yok",
"Files and folders you shared by link will show up here" : "Bağlantı ile paylaştığınız dosya ve klasörler burada görüntülenir",
+ "File requests" : "Dosya istekleri",
+ "List of file requests." : "Dosya isteklerinin listesi.",
+ "No file requests" : "Herhangi bir dosya isteği yok",
+ "File requests you have created will show up here" : "Oluşturduğunuz dosya istekleri burada görüntülenir",
"Deleted shares" : "Silinmiş paylaşımlar",
"List of shares you left." : "Ayrıldığınız paylaşımların listesi.",
"No deleted shares" : "Silinmiş bir paylaşım yok",
@@ -271,49 +356,87 @@ OC.L10N.register(
"List of unapproved shares." : "Kabul edilmemiş paylaşımların listesi.",
"No pending shares" : "Bekleyen paylaşım yok",
"Shares you have received but not approved will show up here" : "Aldığınız ancak henüz kabul etmediğiniz paylaşımlar burada görüntülenir",
+ "Error deleting the share: {errorMessage}" : "Paylaşım silinirken sorun çıktı: {errorMessage}",
+ "Error deleting the share" : "Paylaşım silinirken sorun çıktı",
+ "Error updating the share: {errorMessage}" : "Paylaşım güncellenirken sorun çıktı: {errorMessage}",
+ "Error updating the share" : "Paylaşım güncellenirken sorun çıktı",
+ "File \"{path}\" has been unshared" : "\"{path}\" dosyası paylaşımdan kaldırıldı",
+ "Folder \"{path}\" has been unshared" : "\"{path}\" klasörü paylaşımdan kaldırıldı",
+ "Could not update share" : "Paylaşım güncellenemedi",
+ "Share saved" : "Paylaşım kaydedildi",
+ "Share expiry date saved" : "Paylaşım geçerlilik süresi tarihi kaydedildi",
+ "Share hide-download state saved" : "Paylaşımın indirmeyi gizleme durumu kaydedildi",
+ "Share label saved" : "Paylaşım etiketi kaydedildi",
+ "Share note for recipient saved" : "Alıcı için paylaşım notu kaydedildi",
+ "Share password saved" : "Paylaşım parolası kaydedildi",
+ "Share permissions saved" : "Paylaşım izinleri kaydedildi",
+ "To upload files to {folder}, you need to provide your name first." : "{folder} üzerine dosyalar yükleyebilmek için önce adınızı yazmalısınız.",
+ "Upload files to {folder}" : "Dosyaları {folder} klasörüne yükle",
+ "Please confirm your name to upload files to {folder}" : "Lütfen {folder} üzerinde dosyalar yükleyebilmek için adınızı doğrulayın",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} sizinle bir klasör paylaştı.",
+ "Names must not be empty." : "Ad boş olamaz.",
+ "Names must not start with a dot." : "Ad bir nokta ile başlayamaz.",
+ "\"{char}\" is not allowed inside a name." : "Bir ad içinde \"{char}\" karakteri kullanılamaz.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" ayrılmış bir ad olduğundan kullanılamaz.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" adı kullanılamaz.",
+ "Names must not end with \"{extension}\"." : "Adlar \"{extension}\" karakteri ile bitemez.",
+ "Invalid name." : "Ad geçersiz.",
+ "Shared by" : "Paylaşan",
+ "Shared with" : "Şunlarla paylaşılmış",
+ "Password created successfully" : "Parola oluşturuldu",
+ "Error generating password from password policy" : "Parola, parola ilkesine göre oluşturulurken sorun çıktı",
+ "Shared with you and the group {group} by {owner}" : "{owner} tarafından sizinle ve {group} gubu ile paylaşılmış",
+ "Shared with you and {circle} by {owner}" : "{owner} tarafından sizinle ve {circle} takımı ile paylaşılmış",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} tarafından sizinle ve {conversation} görüşmesi ile paylaştırılmış",
+ "Shared with you in a conversation by {owner}" : "{owner} tarafından sizinle bir görüşmede paylaşılmış",
+ "Share not found" : "Paylaşım bulunamadı",
+ "Back to %s" : "%s sayfasına dön",
+ "Add to your Nextcloud" : "Nextcloud hesabınıza ekleyin",
+ "Waiting…" : "Bekleniyor…",
+ "error" : "sorun",
+ "finished" : "tamamlandı",
+ "This will stop your current uploads." : "Bu işlem geçerli yüklemeleri durduracak.",
+ "Move or copy" : "Taşı ya da kopyala",
+ "You can upload into this folder" : "Bu klasöre yükleme yapabilirsiniz",
+ "Show list view" : "Liste görünümüne geç",
+ "Show grid view" : "Tablo görünümüne geç",
+ "No compatible server found at {remote}" : "{remote} konumunda uyumlu sunucu bulunamadı",
+ "Invalid server URL" : "Sunucu adresi geçersiz",
+ "Failed to add the public link to your Nextcloud" : "Herkese açık bağlantı Nextcould üzerine eklenemedi",
+ "You are not allowed to edit link shares that you don't own" : "Sahibi olmadığınız bağlantı paylaşımlarını düzenleme izniniz yok",
+ "Download all files" : "Tüm dosyaları indir",
+ "Link copied to clipboard" : "Bağlantı panoya kopyalandı",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-posta adresi zaten eklenmiş","{count} e-posta adresi zaten eklenmiş"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 e-posta adresi eklendi","{count} e-posta adresi eklendi"],
+ "Copy to clipboard" : "Panoya kopyala",
+ "Copy internal link to clipboard" : "İç bağlantıyı panoya kopyala",
+ "Only works for people with access to this folder" : "Yalnızca bu klasöre erişebilen kişiler için geçerlidir",
+ "Only works for people with access to this file" : "Yalnızca bu dosyaya erişebilen kişiler için geçerlidir",
+ "Copy public link of \"{title}\" to clipboard" : "Herkese açık \"{title}\" bağlantısını panoya kopyala",
+ "Search globally" : "Genel arama",
+ "Search for share recipients" : "Paylaşım alıcıları ara",
+ "No recommendations. Start typing." : "Herhangi bir öneri yok. Yazmaya başlayın.",
+ "To upload files, you need to provide your name first." : "Dosyaları yükleyebilmek için önce adınızı yazmalısınız.",
+ "Enter your name" : "Adınızı yazın",
+ "Submit name" : "Adı gönder",
+ "Share with {userName}" : "{userName} ile paylaş",
+ "Show sharing options" : "Paylaşım seçeneklerini görüntüle",
"Share note" : "Notu paylaş",
"Upload files to %s" : "Dosyaları %s konumuna yükle",
+ "%s shared a folder with you." : "%s sizinle bir klasör paylaştı.",
"Note" : "Not",
"Select or drop files" : "Dosyaları seçin ya da sürükleyip bırakın",
"Uploading files" : "Dosyalar yükleniyor",
"Uploaded files:" : "Yüklenmiş dosyalar:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Dosya yükleyerek %1$shizmet koşullarını%2$s kabul etmiş olursunuz.",
- "Add to your Nextcloud" : "Nextcloud hesabınıza ekleyin",
- "Files and folders others share with you will show up here" : "Diğerlerinin sizinle paylaştığı dosya ve klasörler burada görüntülenir",
- "Files and folders you share will show up here" : "Paylaştığınız dosya ve klasörler burada görüntülenir",
- "Files and folders you share by link will show up here" : "Bağlantı ile paylaştığınız dosya ve klasörler burada görüntülenir",
- "Shares you deleted will show up here" : "Sildiğiniz paylaşımlar burada görüntülenir",
- "Shares you have received but not confirmed will show up here" : "Aldığınız ancak henüz kabul etmediğiniz paylaşımlar burada görüntülenir",
- "Shares will show up here" : "Paylaşımlar burada görüntülenir",
- "Restore" : "Geri yükle",
- "Something happened. Unable to restore the share." : "Bir sorun çıktı. Paylaşım geri yüklenemedi.",
- "Something happened. Unable to accept the share." : "Bir sorun çıktı. Paylaşım kabul edilemedi.",
- "Something happened. Unable to reject the share." : "Bir sorun çıktı. Paylaşım reddedilemedi.",
- "No expiration date set" : "Geçerlilik sonu tarihi belirtilmemiş",
- "Please specify a valid user" : "Lütfen geçerli bir kullanıcı belirtin",
- "Please specify a valid federated user ID" : "Lütfen geçerli bir birleşik kullanıcı kimliği belirtin",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Bu uygulama kullanıcıların Nextcloud üzerinde dosya paylaşabilmesini sağlar. Etkinleştirildiğinde, yöneticiler dosya paylaşabilecek grupları belirleyebilir. Seçilmiş gruplardaki kullanıcılar Nextcloud üzerindeki diğer kullanıcı ve gruplar ile dosya ve klasör paylaşabilir. Ek olarak, yönetici bağlantı paylaşımı özelliğini etkinleştirmiş ise, Nextcloud üzerinde olmayan kullanıcılar ile dosya paylaşımı bağlantıları kullanılabilir. Yöneticiler ayrıca parola ve geçerlilik sonu tarihi kullanılmasını zorunlu kılmanın yanında, paylaşım bağlantıları ile sunucudan sunucuya paylaşım ve mobil aygıtlar ile paylaşım gibi özellikleri etkinleştirebilir.\nBu özellik devre dışı bırakıldığında, sunucu, eşitleme istemcileri ve mobil uygulamalar üzerinden alıcılar ile paylaşılmış dosya ve klasörler kaldırılır. Ayrıntılı bilgi almak için Nextcloud belgelerine bakabilirsiniz.",
- "Accept user and group shares by default" : "Varsayılan olarak kullanıcı ve grup paylaşımları onaylansın",
- "Read only" : "Salt okunur",
- "File drop (upload only)" : "Dosya bırakma (yalnızca yükleme)",
- "Upload" : "Yükleme",
- "Bundled permissions" : "Bağlı izinler",
- "Only works for users with access to this folder" : "Yalnızca bu klasöre erişebilen kullanıcılar için geçerlidir",
- "Only works for users with access to this file" : "Yalnızca bu dosyaya erişebilen kullanıcılar için geçerlidir",
- "Circle" : "Takım",
- "Update" : "Güncelle",
- "Share with " : "Şunlarla paylaş",
- "No other users with access found" : "Erişebilen başka bir kullanıcı bulunamadı",
- "No entries found in this folder" : "Bu klasörde herhangi bir kayıt yok",
"Name" : "Ad",
- "Share time" : "Paylaşma zamanı",
- "Sorry, this link does not seem to work anymore." : "Ne yazık ki, bu bağlantı artık çalışmıyor gibi görünüyor.",
- "Reasons might be:" : "Nedenleri şunlar olabilir:",
- "the item was removed" : "öge silinmiş",
- "the link expired" : "bağlantının geçerlilik süresi dolmuş",
- "sharing is disabled" : "paylaşım devre dışı bırakılmış",
- "For more info, please ask the person who sent this link." : "Ayrıntılı bilgi almak için bu bağlantıyı aldığınız kişi ile görüşün.",
- "Share with remote" : "Uzaktakilerle paylaş",
- "Share with" : "Şunlarla paylaş"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Bu yöntemi, dosyaları kuruluşunuzdaki kişilerle veya takımlarla paylaşmak için kullanın. Alıcının paylaşıma zaten erişimi varsa ancak bulamıyorlarsa, kolay erişmeleri için iç paylaşım bağlantısını gönderebilirsiniz.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Bu yöntemi, dosyaları kuruluşunuzun dışındaki kişilerle veya kuruluşlarla paylaşmak için kullanın. Dosyalar ve klasörler herkese açık paylaşım bağlantıları ve e-posta adresleri ile paylaşılabilir. Ayrıca, birleşik bulut kimliklerini kullanarak farklı kopyalarda barındırılan diğer Nextcloud hesaplarıyla da paylaşım yapabilirsiniz.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "İç veya dış paylaşımların parçası olmayan paylaşımlar. Bunlar uygulamalardan veya diğer kaynaklardan gelen paylaşımlar olabilir.",
+ "Share with accounts, teams, federated cloud id" : "Hesaplar, takımlar ve birleşik bulut kimlikleri ile paylaşın",
+ "Share with accounts and teams" : "Hesaplar ve takımlarla paylaşın",
+ "Federated cloud ID" : "Birleşik bulut kimliği",
+ "Email, federated cloud id" : "E-posta adresi, birleşik bulut kimliği",
+ "Filename must not be empty." : "Dosya adı boş olamaz."
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_sharing/l10n/tr.json b/apps/files_sharing/l10n/tr.json
index 8cb4def00a3..eeb2875b69c 100644
--- a/apps/files_sharing/l10n/tr.json
+++ b/apps/files_sharing/l10n/tr.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Bekleniyor…",
- "error" : "sorun",
- "finished" : "tamamlandı",
- "This will stop your current uploads." : "Bu işlem geçerli yüklemeleri durduracak.",
- "Move or copy" : "Taşı ya da kopyala",
- "Download" : "İndir",
- "Delete" : "Sil",
- "You can upload into this folder" : "Bu klasöre yükleme yapabilirsiniz",
- "Terms of service" : "Hizmet koşulları",
- "Show list view" : "Liste görünümüne geç",
- "Show grid view" : "Tablo görünümüne geç",
- "No compatible server found at {remote}" : "{remote} konumunda uyumlu sunucu bulunamadı",
- "Invalid server URL" : "Sunucu adresi geçersiz",
- "Failed to add the public link to your Nextcloud" : "Herkese açık bağlantı Nextcould üzerine eklenemedi",
"File shares" : "Dosya paylaşımları",
"Downloaded via public link" : "Herkese açık bağlantı ile indirildi",
"Downloaded by {email}" : "{email} tarafından indirildi",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "{file} dosyasının {user} kullanıcısıyla paylaşımının geçerlilik süresi dolmuş",
"Share for file {file} expired" : "{file} dosyasının paylaşımının geçerlilik süresi dolmuş",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "E-posta ya da herkese açık bağlantı ile paylaşılan bir dosya ya da klasör <strong>indirildi</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Dosyalar e-posta ya da herkese açık bir bağlantı ile paylaşılmış bir klasöre <strong>yüklendi</strong>",
"A file or folder was shared from <strong>another server</strong>" : "<strong>Başka bir sunucudan</strong> bir dosya ya da klasör paylaşıldı",
- "Files" : "Dosyalar",
+ "Sharing" : "Paylaşım",
"A file or folder has been <strong>shared</strong>" : "Bir dosya ya da klasör <strong>paylaşıldı</strong>",
"Shared link" : "Paylaşılmış bağlantı",
"Wrong share ID, share does not exist" : "Paylaşım kimliği yanlış. Paylaşım bulunamadı",
@@ -76,35 +63,47 @@
"Please specify a file or folder path" : "Lütfen bir dosya ya da klasör yolu belirtin",
"Wrong path, file/folder does not exist" : "Yol yanlış. Dosya ya da klasör bulunamadı",
"Could not create share" : "Paylaşılamadı",
- "Invalid permissions" : "İzinler geçersiz",
- "Invalid date, date format must be YYYY-MM-DD" : "Tarih geçersiz. Tarih biçimi YYYY-AA-GG olmalıdır",
"Please specify a valid account to share with" : "Lütfen paylaşılacak geçerli bir hesap belirtin",
- "Group sharing is disabled by the administrator" : "Grup paylaşımı BT yöneticisi tarafından devre dışı bırakılmış",
+ "Group sharing is disabled by the administrator" : "Grup paylaşımı özelliği BT yöneticisi tarafından kapatılmış",
"Please specify a valid group" : "Lütfen geçerli bir grup belirtin",
- "Public link sharing is disabled by the administrator" : "Herkese açık bağlantı paylaşımı BT yöneticisi tarafından devre dışı bırakılmış",
- "Public upload disabled by the administrator" : "Herkese açık yükleme BT yöneticisi tarafından devre dışı bırakılmış",
- "Public upload is only possible for publicly shared folders" : "Herkese açık yükleme ancak herkese açık paylaşılmış klasörlere yapılabilir",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud Talk etkinleştirilmemiş olduğundan, %s paylaşım parolası Nextcloud Talk ile gönderilemedi",
+ "Public link sharing is disabled by the administrator" : "Herkese açık bağlantı paylaşımı özelliği BT yöneticisi tarafından kapatılmış",
+ "Please specify a valid email address" : "Lütfen geçerli bir e-posta adresi yazın",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud Konuş uygulaması kullanıma alınmamış. %s paylaşım parolası Nextcloud Konuş uygulaması ile gönderilemedi",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Yönetim bölümünden %2$s türündeki paylaşımlar yapılamadığından %1$s paylaşılamadı",
"Please specify a valid federated account ID" : "Lütfen geçerli bir birleşik hesap kimliği belirtin",
"Please specify a valid federated group ID" : "Lütfen geçerli bir birleşik grup kimliği belirtin",
- "You cannot share to a Circle if the app is not enabled" : "Uygulama etkinleştirilmemiş ise bir Takım ile paylaşamazsınız",
- "Please specify a valid circle" : "Lütfen geçerli bir takım belirtin",
- "Sharing %s failed because the back end does not support room shares" : "Arka uç oda paylaşımlarına izin vermediğinden %s paylaşılamadı",
- "Sharing %s failed because the back end does not support ScienceMesh shares" : "Arka uç ScienceMesh paylaşımlarına izin vermediğinden %s paylaşılamadı",
+ "You cannot share to a Team if the app is not enabled" : "Uygulama kullanıma alınmamışsa bir Takım ile paylaşamazsınız",
+ "Please specify a valid team" : "Lütfen geçerli bir takım belirtin",
+ "Sharing %s failed because the back end does not support room shares" : "Arka yüz oda paylaşımlarına izin vermediğinden %s paylaşılamadı",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Arka yüz ScienceMesh paylaşımlarına izin vermediğinden %s paylaşılamadı",
"Unknown share type" : "Paylaşım türü bilinmiyor",
"Not a directory" : "Bir klasör değil",
"Could not lock node" : "Düğüm kilitlenemedi",
- "Could not lock path" : "Yol kilitlenemedi",
- "Wrong or no update parameter given" : "Parametre yanlış ya da herhangi bir parametre belirtilmemiş",
+ "Public upload is only possible for publicly shared folders" : "Herkese açık yükleme ancak herkese açık paylaşılmış klasörlere yapılabilir",
"Share must at least have READ or CREATE permissions" : "Paylaşım için en az OKUMA ve OLUŞTURMA izinleri olmalıdır",
"Share must have READ permission if UPDATE or DELETE permission is set" : "UPDATE ya da DELETE izinleri verilmiş ise paylaşıma READ izni verilmelidir",
- "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud Talk etkinleştirilmemiş olduğundan, paylaşım parolası Nextcloud Talk ile gönderilemedi.",
+ "Public upload disabled by the administrator" : "Herkese açık yükleme özelliği BT yöneticisi tarafından kapatılmış",
+ "Could not lock path" : "Yol kilitlenemedi",
+ "no sharing rights on this item" : "bu ögenin herhangi bir paylaşım izni yok",
+ "You are not allowed to edit incoming shares" : "Gelen paylaşımları düzenleme izniniz yok",
+ "Wrong or no update parameter given" : "Parametre yanlış ya da herhangi bir parametre belirtilmemiş",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud Konuş uygulaması kullanıma alınmamış. Paylaşım parolası Nextcloud Konuş uygulaması ile gönderilemedi.",
+ "Custom share link tokens have been disabled by the administrator" : "Özel bağlantı paylaşımı kodları yöneticiniz tarafından kapatılmış",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Kodlar en az 1 karakter uzunluğunda olmalı ve yalnızca harf, sayı veya tire karakterlerini içermelidir",
+ "Invalid date. Format must be YYYY-MM-DD" : "Tarih geçersiz. Tarih biçimi YYYY-AA-GG olmalıdır",
+ "No sharing rights on this item" : "Bu ögenin herhangi bir paylaşım izni yok",
+ "Invalid share attributes provided: \"%s\"" : "Belirtilen paylaşım öznitelikleri geçersiz: \"%s\"",
+ "You are not allowed to send mail notifications" : "E-posta bildirimleri gönderme izniniz yok",
+ "No mail notification configured for this share type" : "Bu paylaşım türü için bir e-posta bildirimi yapılandırılmamış",
+ "Wrong password" : "Parola yanlış",
+ "Error while sending mail notification" : "E-posta bildirimi gönderilirken sorun çıktı",
+ "Failed to generate a unique token" : "Eşsiz bir kod oluşturulamadı",
+ "This share does not exist or is no longer available" : "Bu paylaşım bulunamadı ya da artık kullanılamıyor",
"shared by %s" : "%s tarafından paylaşıldı",
- "Download all files" : "Tüm dosyaları indir",
- "Direct link" : "Doğrudan bağlantı",
+ "Download" : "İndir",
"Add to your %s" : "%s uygulamanıza ekleyin",
- "Share API is disabled" : "Paylaşım API arayüzü devre dışı",
+ "Direct link" : "Doğrudan bağlantı",
+ "Share API is disabled" : "Paylaşım API arayüzü kapatılmış",
"File sharing" : "Dosya paylaşımı",
"Share will expire tomorrow" : "Paylaşımın geçerlilik süresi yarın dolacak",
"Your share of {node} will expire tomorrow" : "{node} paylaşımınızın geçerlilik süresi yarın dolacak",
@@ -112,140 +111,223 @@
"You received {share} to group {group} as a share by {user}" : "{user} kullanıcısından {group} grubu için {share} paylaşımını aldınız",
"Accept" : "Kabul et",
"Decline" : "Reddet",
- "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Bu uygulama kişilerin Nextcloud üzerinde dosya paylaşabilmesini sağlar. Etkinleştirildiğinde, yöneticiler dosya paylaşabilecek grupları belirleyebilir. Seçilmiş gruplardaki kişiler Nextcloud üzerindeki diğer kişi ve gruplar ile dosya ve klasör paylaşabilir. Ek olarak, yönetici bağlantı paylaşımı özelliğini etkinleştirmiş ise, Nextcloud üzerinde olmayan kişiler ile dosya paylaşımı bağlantıları kullanılabilir. Yöneticiler ayrıca parola ve geçerlilik sonu tarihi kullanılmasını zorunlu kılmanın yanında, paylaşım bağlantıları ile sunucudan sunucuya paylaşım ve mobil aygıtlar ile paylaşım gibi özellikleri etkinleştirebilir.\nBu özellik devre dışı bırakıldığında, sunucu, eşitleme istemcileri ve mobil uygulamalar üzerinden alıcılar ile paylaşılmış dosya ve klasörler kaldırılır. Ayrıntılı bilgi almak için Nextcloud belgelerine bakabilirsiniz.",
- "Sharing" : "Paylaşım",
- "Accept shares from other accounts and groups by default" : "Diğer hesaplardan ve gruplardan gelen paylaşımlar varsayılan olarak kabul edilsin",
+ "Remember to upload the files to %s" : "Dosyaları %s üzerine yüklemeyi unutmayın",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Paylaşılan klasöre henüz herhangi bir dosya yüklemediğinizi hatırlatmak isteriz.",
+ "Open \"%s\"" : "\"%s\" aç",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Bu uygulama kişilerin Nextcloud üzerinde dosya paylaşabilmesini sağlar. Kullanıma alındığında, yöneticiler dosya paylaşabilecek grupları belirleyebilir. Seçilmiş gruplardaki kişiler Nextcloud üzerindeki diğer kişi ve gruplar ile dosya ve klasör paylaşabilir. Ek olarak, yönetici bağlantı paylaşımı özelliğini açmış ise, Nextcloud üzerinde olmayan kişiler ile dosya paylaşımı bağlantıları kullanılabilir. Yöneticiler ayrıca parola ve geçerlilik sonu tarihi kullanılmasını zorunlu kılmanın yanında, paylaşım bağlantıları ile sunucudan sunucuya paylaşım ve mobil aygıtlar ile paylaşım gibi özellikleri açabilir.\nBu özellik kapatıldığında, sunucu, eşitleme istemcileri ve mobil uygulamalar üzerinden alıcılar ile paylaşılmış dosya ve klasörler kaldırılır. Ayrıntılı bilgi almak için Nextcloud belgelerine bakabilirsiniz.",
+ "People" : "Kişiler",
+ "Filter accounts" : "Hesapları süz",
+ "The request will expire on {date} at midnight and will be password protected." : "İstek {date} gece yarısı geçersiz olacak ve parola ile korunacak.",
+ "The request will expire on {date} at midnight." : "İstek {date} gece yarısı geçersiz olacak.",
+ "The request will be password protected." : "İstek parola ile korunacak.",
+ "When should the request expire?" : "İsteğin geçerlilik sonu ne zaman olsun?",
+ "Set a submission expiration date" : "Gönderim geçerlilik sonu tarihini ayarlayın",
+ "Expiration date" : "Geçerlilik sonu tarihi",
+ "Select a date" : "Bir tarih seçin",
+ "Your administrator has enforced a {count} days expiration policy." : "Yöneticiniz geçerlilik sonu ilkesini {count} gün olarak zorunlu kılmış.",
+ "What password should be used for the request?" : "İstek için kullanılacak parola nedir?",
+ "Set a password" : "Bir parola ayarlayın",
+ "Password" : "Parola",
+ "Enter a valid password" : "Geçerli bir parola yazın",
+ "Generate a new password" : "Yeni parola oluştur",
+ "Your administrator has enforced a password protection." : "Yöneticiniz parola korumasını zorunlu kılmış.",
+ "Automatically copying failed, please copy the share link manually" : "Otomatik kopyalama tamamlanamadı. Paylaşım bağlantısını el ile kopyalayın",
+ "Link copied" : "Bağlantı kopyalandı",
+ "Email already added" : "E-posta adresi zaten eklenmiş",
+ "Invalid email address" : "E-posta adresi geçersiz",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Şu e-posta adresi geçersiz: {emails}","Şu e-posta adresleri geçersiz: {emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} e-posta adresi zaten eklenmiş","{count} e-posta adresi zaten eklenmiş"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} e-posta adresi eklendi","{count} e-posta adresi eklendi"],
+ "You can now share the link below to allow people to upload files to your directory." : "Artık aşağıdaki bağlantıyı paylaşarak insanların klasörünüze dosya yüklemesini sağlayabilirsiniz.",
+ "Share link" : "Paylaşım bağlantısı",
+ "Copy" : "Kopyala",
+ "Send link via email" : "Bağlantıyı e-posta ile gönder",
+ "Enter an email address or paste a list" : "Bir e-posta adresi yazın ya da bir e-posta adresi listesi yapıştırın",
+ "Remove email" : "E-posta adresini kaldır",
+ "Select a destination" : "Bir hedef seçin",
+ "Select" : "Seçin",
+ "What are you requesting?" : "Ne yapmak istiyorsunuz?",
+ "Request subject" : "İstek konusu",
+ "Birthday party photos, History assignment…" : "Doğum günü fotoğraflarını paylaşmak ve tarihleri belirlemek…",
+ "Where should these files go?" : "Bu dosyalar nereye kaydedilmeli?",
+ "Upload destination" : "Yükleme hedefi",
+ "Revert to default" : "Varsayılana sıfırla",
+ "The uploaded files are visible only to you unless you choose to share them." : "Yüklenen dosyaları, paylaşmayı seçmediğiniz sürece yalnızca siz görebilirsiniz.",
+ "Add a note" : "Bir not ekle",
+ "Note for recipient" : "Alıcıya not",
+ "Add a note to help people understand what you are requesting." : "İnsanlara isteğinizin ne olduğunu açıklayan bir not ekleyin.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Alıcının ne istediğinizi anlamasına yardımcı olacak bağlantı, tarih veya başka bilgiler ekleyebilirsiniz.",
+ "Close" : "Kapat",
+ "_Send email and close_::_Send {count} emails and close_" : ["E-postayı gönder ve kapat","{count} e-postayı gönder ve kapat"],
+ "Please select a folder, you cannot share the root directory." : "Lütfen bir klasör seçin, kök klasörü paylaşamazsınız.",
+ "File request created" : "Dosya isteği oluşturuldu",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Dosya isteği oluşturuldu ve e-posta gönderildi","Dosya isteği oluşturuldu ve {count} e-posta gönderildi"],
+ "Error creating the share: {errorMessage}" : "Paylaşım oluşturulurken sorun çıktı: {errorMessage}",
+ "Error creating the share" : "Paylaşım oluşturulurken sorun çıktı",
+ "Error sending emails: {errorMessage}" : "E-postalar gönderilirken sorun çıktı: {errorMessage}",
+ "Error sending emails" : "E-postalar gönderilirken sorun çıktı",
+ "Create a file request" : "Bir dosya isteği oluştur",
+ "Collect files from others even if they do not have an account." : "Hesabı olmayan kişilerden bile dosyaları toplayın.",
+ "To ensure you can receive files, verify you have enough storage available." : "Dosyaları alabileceğinizden emin olmak için yeterli depolama alanınız bulunduğundan emin olun.",
+ "File request" : "Dosya isteği",
+ "Previous step" : "Önceki adım",
+ "Cancel" : "İptal",
+ "Cancel the file request creation" : "Dosya isteği oluşturmayı iptal et",
+ "Close without sending emails" : "E-postaları göndermeden kapat",
+ "Continue" : "Sürdür",
"Error while toggling options" : "Seçenekler değiştirilirken sorun çıktı ",
- "Set default folder for accepted shares" : "Onaylanmış paylaşımların varsayılan klasörünü ayarlayın",
- "Reset" : "Sıfırla",
- "Reset folder to system default" : "Sistem varsayılan klasörüne sıfırlar",
+ "Accept shares from other accounts and groups by default" : "Diğer hesaplardan ve gruplardan gelen paylaşımlar varsayılan olarak kabul edilsin",
"Choose a default folder for accepted shares" : "Onaylanmış paylaşımlar için varsayılan bir klasör seçin",
"Invalid path selected" : "Seçilen yol geçersiz",
"Unknown error" : "Bilinmeyen sorun",
- "Open Sharing Details" : "Paylaşım bilgilerini aç",
+ "Set default folder for accepted shares" : "Onaylanmış paylaşımların varsayılan klasörünü ayarlayın",
+ "Reset" : "Sıfırla",
+ "Reset folder to system default" : "Sistem varsayılan klasörüne sıfırlar",
+ "Share expiration: {date}" : "Paylaşım geçerlilik sonu: {date}",
+ "Share Expiration" : "Paylaşım geçerlilik sonu",
"group" : "grup",
"conversation" : "görüşme",
"remote" : "uzak",
"remote group" : "uzak grup",
"guest" : "konuk",
+ "by {initiator}" : "{initiator} tarafından",
"Shared with the group {user} by {owner}" : "{owner} tarafından grup {user} ile paylaşılmış",
"Shared with the conversation {user} by {owner}" : "{owner} tarafından görüşme {user} ile paylaştırılmış",
"Shared with {user} by {owner}" : "{owner} tarafından {user} ile paylaşılmış",
+ "Open Sharing Details" : "Paylaşım bilgilerini aç",
"Added by {initiator}" : "{initiator} tarafından eklendi",
"Via “{folder}”" : "“{folder}” ile",
"Unshare" : "Paylaşımı kaldır",
- "Internal link" : "İç bağlantı",
"Cannot copy, please copy the link manually" : "Kopyalanamadı. Lütfen bağlantıyı el ile kopyalayın",
- "Copy internal link to clipboard" : "İç bağlantıyı panoya kopyala",
- "Only works for people with access to this folder" : "Yalnızca bu klasöre erişebilen kişiler için geçerlidir",
- "Only works for people with access to this file" : "Yalnızca bu dosyaya erişebilen kişiler için geçerlidir",
- "Link copied" : "Bağlantı kopyalandı",
- "Please enter the following required information before creating the share" : "Lütfen paylaşımı oluşturmadan önce aşağıdaki zorunlu bilgileri yazın",
- "Password protection (enforced)" : "Parola koruması (dayatılmış)",
- "Password protection" : "Parola koruması",
- "Enter a password" : "Bir parola yazın",
- "Expiration date (enforced)" : "Geçerlilik sonu tarihi (dayatılmış)",
- "Enter a date" : "Bir tarih yazın",
- "Create share" : "Paylaşım ekle",
- "Cancel" : "İptal",
- "Customize link" : "Bağlantıyı özelleştir",
- "Generate QR code" : "QR kodu oluştur",
- "Add another link" : "Başka bir bağlantı ekle",
- "Create a new share link" : "Yeni bir paylaşım bağlantısı ekle",
+ "Copy internal link" : "İç bağlantıyı kopyala",
+ "Internal link" : "İç bağlantı",
"{shareWith} by {initiator}" : "{initiator} tarafından {shareWith}",
"Shared via link by {initiator}" : "{initiator} tarafından bağlantı ile paylaşıldı",
+ "File request ({label})" : "Dosya isteği ({label})",
"Mail share ({label})" : "E-posta ile paylaş ({label})",
"Share link ({label})" : "Bağlantı ile paylaş ({label})",
+ "Mail share" : "E-posta ile paylaş",
"Share link ({index})" : "Paylaşım bağlantısı ({index})",
- "Share link" : "Paylaşım bağlantısı",
+ "Create public link" : "Herkese açık bağlantı ekle",
"Actions for \"{title}\"" : "\"{title}\" işlemleri",
- "Copy public link of \"{title}\" to clipboard" : "Herkese açık \"{title}\" bağlantısını panoya kopyala",
"Error, please enter proper password and/or expiration date" : "Hata. Lütfen uygun bir parola ya da geçerlilik sonu tarihi yazın",
"Link share created" : "Paylaşım bağlantısı oluşturuldu",
"Error while creating the share" : "Paylaşım oluşturulurken sorun çıktı",
+ "Please enter the following required information before creating the share" : "Lütfen paylaşımı oluşturmadan önce aşağıdaki zorunlu bilgileri yazın",
+ "Password protection (enforced)" : "Parola koruması (zorunlu kılınmış)",
+ "Password protection" : "Parola koruması",
+ "Enter a password" : "Bir parola yazın",
+ "Enable link expiration (enforced)" : "Bağlantıya geçerlilik sonu ekle (zorunlu kılınmış)",
+ "Enable link expiration" : "Bağlantı geçerlilik sonu kullanılsın",
+ "Enter expiration date (enforced)" : "Geçerlilik sonu tarihini yazın (zorunlu kılınmış)",
+ "Enter expiration date" : "Geçerlilik sonu tarihini yazın",
+ "Create share" : "Paylaşım ekle",
+ "Customize link" : "Bağlantıyı özelleştir",
+ "Generate QR code" : "Kare kod oluştur",
+ "Add another link" : "Başka bir bağlantı ekle",
+ "Create a new share link" : "Yeni bir paylaşım bağlantısı ekle",
"Quick share options, the current selected is \"{selectedOption}\"" : "Hızlı paylaşım seçenekleri, geçerli seçim \"{selectedOption}\"",
"View only" : "Yalnızca görüntüleme",
"Can edit" : "Düzenleyebilir",
- "File drop" : "Dosya bırakma",
"Custom permissions" : "Özel izinler",
- "Search for share recipients" : "Paylaşım alıcıları ara",
- "No recommendations. Start typing." : "Herhangi bir öneri yok. Yazmaya başlayın.",
"Resharing is not allowed" : "Yeniden paylaşıma izin verilmiyor",
"Name or email …" : "Ad ya da e-posta adresi …",
"Name, email, or Federated Cloud ID …" : "Ad, e-posta ya da birleşik bulut kimliği…",
"Searching …" : "Aranıyor …",
"No elements found." : "Herhangi bir bileşen bulunamadı.",
- "Search globally" : "Genel arama",
+ "Search everywhere" : "Her yerde ara",
"Guest" : "Konuk",
"Group" : "Grup",
"Email" : "E-posta",
"Team" : "Takım",
- "Talk conversation" : "Talk görüşmesi",
+ "Talk conversation" : "Konuş görüşmesi",
"Deck board" : "Tahta panosu",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "{server} üzerinde",
+ "Enter external recipients" : "Dış alıcıları yazın",
+ "Search for internal recipients" : "İç alıcıları arayın",
+ "Note from" : "Notu yazan",
+ "Note:" : "Not:",
+ "File drop" : "Dosya bırakma",
+ "Upload files to {foldername}." : "Dosyaları {foldername} klasörüne yükle.",
+ "By uploading files, you agree to the terms of service." : "Dosya yükleyerek hizmet koşullarını kabul etmiş olursunuz.",
+ "Successfully uploaded files" : "Dosyalar yüklendi",
+ "View terms of service" : "Hizmet koşullarını görüntüle",
+ "Terms of service" : "Hizmet koşulları",
+ "Share with email {email}" : "{email} e-posta adresi ile paylaş",
+ "Share with group" : "Grupla paylaş",
+ "Share in conversation" : "Görüşmede paylaş",
+ "Share with {user} on remote server {server}" : "{server} uzak sunucusundaki {user} ile paylaş",
+ "Share with remote group" : "Uzaktaki grupla paylaş",
+ "Share with guest" : "Konukla paylaş",
+ "Update share" : "Paylaşımı güncelle",
+ "Save share" : "Paylaşımı kaydet",
+ "Read" : "Okuma",
+ "Create" : "Ekle",
+ "Edit" : "Düzenleme",
+ "Share" : "Paylaş",
+ "Delete" : "Sil",
+ "Password field cannot be empty" : "Parola alanı boş olamaz",
+ "Replace current password" : "Geçerli parolayı değiştir",
+ "Failed to generate a new token" : "Yeni bir kod oluşturulamadı",
"Allow upload and editing" : "Yüklenebilsin ve düzenlenebilsin",
"Allow editing" : "Düzenlemeye izin ver",
"Upload only" : "Yalnızca yükleme",
"Advanced settings" : "Gelişmiş ayarlar",
"Share label" : "Paylaşım etiketi",
+ "Share link token" : "Paylaşım bağlantısı kodu",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Herkese açık paylaşım bağlantısı kodunu kolay hatırlanacak bir şey olarak ayarlayın veya yeni bir kod oluşturun. Önemli bilgiler içeren paylaşımlar için öngörülebilir bir kod kullanılması önerilmez.",
+ "Generating…" : "Oluşturuluyor…",
+ "Generate new token" : "Yeni kod oluştur",
"Set password" : "Parola ayarla",
- "Password" : "Parola",
"Password expires {passwordExpirationTime}" : "Parolanın geçerlilik süresi sonu {passwordExpirationTime}",
"Password expired" : "Parolanın geçerlilik süresi dolmuş",
"Video verification" : "Görüntü doğrulaması",
+ "Expiration date (enforced)" : "Geçerlilik sonu tarihi (zorunlu kılınmış)",
"Set expiration date" : "Geçerlilik sonu tarihini ayarla",
- "Expiration date" : "Geçerlilik sonu tarihi",
"Hide download" : "İndirme gizlensin",
- "Allow download" : "İndirilebilsin",
+ "Allow download and sync" : "İndirmeye izin ver ve eşitle",
"Note to recipient" : "Alıcıya not",
"Enter a note for the share recipient" : "Paylaşım alıcısı için bir not yazın",
- "Read" : "Okuma",
- "Create" : "Ekle",
- "Edit" : "Düzenleme",
- "Share" : "Paylaş",
+ "Show files in grid view" : "Dosyaları ızgara yerleşiminde görüntüle",
"Delete share" : "Paylaşımı sil",
- "Share with {userName}" : "{userName} ile paylaş",
- "Share with group" : "Grupla paylaş",
- "Share in conversation" : "Yazışmada paylaş",
- "Share with remote group" : "Uzaktaki grupla paylaş",
- "Share with guest" : "Konukla paylaş",
- "Update share" : "Paylaşımı güncelle",
- "Save share" : "Paylaşımı kaydet",
"Others with access" : "Erişebilen diğer kişiler",
"No other accounts with access found" : "Erişebilen başka bir hesap bulunamadı",
"Toggle list of others with access to this directory" : "Bu klasöre erişme izni olan diğer kişiler listesini aç/kapat",
"Toggle list of others with access to this file" : "Bu dosyaya erişme izni olan diğer kişiler listesini aç/kapat",
"Unable to fetch inherited shares" : "Devir alınan paylaşımlar alınamadı",
+ "Link shares" : "Bağlantı paylaşımları",
+ "Shares" : "Paylaşımlar",
"Unable to load the shares list" : "Paylaşımlar listesi yüklenemedi",
"Expires {relativetime}" : "Geçerlilik süresi sonu {relativetime}",
"this share just expired." : "bu paylaşımın geçerlilik süresi dolmuş.",
"Shared with you by {owner}" : "{owner} tarafından sizinle paylaşılmış",
+ "Internal shares" : "İç paylaşımlar",
+ "Internal shares explanation" : "İç paylaşımlar açıklaması",
+ "External shares" : "Dış paylaşımlar",
+ "External shares explanation" : "Dış paylaşımlar açıklaması",
+ "Additional shares" : "Ek paylaşımlar",
+ "Additional shares explanation" : "Ek paylaşımlar açıklaması",
+ "Link to a file" : "Bir dosya bağlantısı",
"_Accept share_::_Accept shares_" : ["Paylaşımı kabul et","Paylaşımları kabul et"],
"Open in Files" : "Dosyalar uygulamasında aç",
"_Reject share_::_Reject shares_" : ["Paylaşımı reddet","Paylaşımları reddet"],
"_Restore share_::_Restore shares_" : ["Paylaşımı geri yükle","Paylaşımları geri yükle"],
"Shared" : "Paylaşılan",
- "Shared multiple times with different people" : "Farklı kişilerle birkaç kez paylaşılmış",
"Shared by {ownerDisplayName}" : "{ownerDisplayName} tarafından paylaşılmış",
- "Show sharing options" : "Paylaşım seçeneklerini görüntüle",
- "Link to a file" : "Bir dosya bağlantısı",
- "Error creating the share: {errorMessage}" : "Paylaşım oluşturulurken sorun çıktı: {errorMessage}",
- "Error creating the share" : "Paylaşım oluşturulurken sorun çıktı",
- "Error updating the share: {errorMessage}" : "Paylaşım güncellenirken sorun çıktı: {errorMessage}",
- "Error updating the share" : "Paylaşım güncellenirken sorun çıktı",
- "File \"{path}\" has been unshared" : "\"{path}\" dosyası paylaşımdan kaldırıldı",
- "Folder \"{path}\" has been unshared" : "\"{path}\" klasörü paylaşımdan kaldırıldı",
- "Share {propertyName} saved" : "{propertyName} paylaşımı kaydedildi",
- "Shared by" : "Paylaşan",
- "Shared with" : "Şunlarla paylaşılmış",
- "Password created successfully" : "Parola oluşturuldu",
- "Error generating password from password policy" : "Parola, parola ilkesine göre oluşturulurken sorun çıktı",
- "Shared with you and the group {group} by {owner}" : "{owner} tarafından sizinle ve {group} gubu ile paylaşılmış",
- "Shared with you and {circle} by {owner}" : "{owner} tarafından sizinle ve {circle} takımı ile paylaşılmış",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} tarafından sizinle ve {conversation} görüşmesi ile paylaştırılmış",
- "Shared with you in a conversation by {owner}" : "{owner} tarafından sizinle bir görüşmede paylaşılmış",
- "Shares" : "Paylaşımlar",
+ "Shared multiple times with different people" : "Farklı kişilerle birkaç kez paylaşılmış",
+ "Sharing options" : "Paylaşım seçenekleri",
+ "Shared with others" : "Diğerleri ile paylaşılmış",
+ "Create file request" : "Dosya isteği oluştur",
+ "Upload files to {foldername}" : "Dosyaları {foldername} klasörüne yükle",
+ "Public file share" : "Herkese açık dosya paylaşımı",
+ "Publicly shared file." : "Herkese açık paylaşılmış dosya.",
+ "No file" : "Dosya yok",
+ "The file shared with you will show up here" : "Sizinle paylaşılan dosyalar burada görüntülenir",
+ "Public share" : "Herkese açık paylaş",
+ "Publicly shared files." : "Herkese açık paylaşılmış dosyalar.",
+ "No files" : "Herhangi bir dosya yok",
+ "Files and folders shared with you will show up here" : "Sizinle paylaşılan dosyalar ve klasörler burada görüntülenir",
"Overview of shared files." : "Paylaşılan dosyaların özeti.",
"No shares" : "Henüz bir şey paylaşılmamış",
"Files and folders you shared or have been shared with you will show up here" : "Başkalarıyla paylaştığınız dosya ve klasörler burada görüntülenir",
@@ -253,7 +335,6 @@
"List of files that are shared with you." : "Sizinle paylaşılan dosyaların listesi.",
"Nothing shared with you yet" : "Sizinle henüz herhangi bir şey paylaşılmamış",
"Files and folders others shared with you will show up here" : "Başkalarının sizinle paylaştığı dosya ve klasörler burada görüntülenir",
- "Shared with others" : "Diğerleri ile paylaşılmış",
"List of files that you shared with others." : "Başkalarıyla paylaştığınız dosyaların listesi.",
"Nothing shared yet" : "Henüz hiçbir şey paylaşılmamış",
"Files and folders you shared will show up here" : "Paylaştığınız dosya ve klasörler burada görüntülenir",
@@ -261,6 +342,10 @@
"List of files that are shared by link." : "Bağlantı ile paylaşılan dosyaların listesi.",
"No shared links" : "Paylaşılmış bir bağlantı yok",
"Files and folders you shared by link will show up here" : "Bağlantı ile paylaştığınız dosya ve klasörler burada görüntülenir",
+ "File requests" : "Dosya istekleri",
+ "List of file requests." : "Dosya isteklerinin listesi.",
+ "No file requests" : "Herhangi bir dosya isteği yok",
+ "File requests you have created will show up here" : "Oluşturduğunuz dosya istekleri burada görüntülenir",
"Deleted shares" : "Silinmiş paylaşımlar",
"List of shares you left." : "Ayrıldığınız paylaşımların listesi.",
"No deleted shares" : "Silinmiş bir paylaşım yok",
@@ -269,49 +354,87 @@
"List of unapproved shares." : "Kabul edilmemiş paylaşımların listesi.",
"No pending shares" : "Bekleyen paylaşım yok",
"Shares you have received but not approved will show up here" : "Aldığınız ancak henüz kabul etmediğiniz paylaşımlar burada görüntülenir",
+ "Error deleting the share: {errorMessage}" : "Paylaşım silinirken sorun çıktı: {errorMessage}",
+ "Error deleting the share" : "Paylaşım silinirken sorun çıktı",
+ "Error updating the share: {errorMessage}" : "Paylaşım güncellenirken sorun çıktı: {errorMessage}",
+ "Error updating the share" : "Paylaşım güncellenirken sorun çıktı",
+ "File \"{path}\" has been unshared" : "\"{path}\" dosyası paylaşımdan kaldırıldı",
+ "Folder \"{path}\" has been unshared" : "\"{path}\" klasörü paylaşımdan kaldırıldı",
+ "Could not update share" : "Paylaşım güncellenemedi",
+ "Share saved" : "Paylaşım kaydedildi",
+ "Share expiry date saved" : "Paylaşım geçerlilik süresi tarihi kaydedildi",
+ "Share hide-download state saved" : "Paylaşımın indirmeyi gizleme durumu kaydedildi",
+ "Share label saved" : "Paylaşım etiketi kaydedildi",
+ "Share note for recipient saved" : "Alıcı için paylaşım notu kaydedildi",
+ "Share password saved" : "Paylaşım parolası kaydedildi",
+ "Share permissions saved" : "Paylaşım izinleri kaydedildi",
+ "To upload files to {folder}, you need to provide your name first." : "{folder} üzerine dosyalar yükleyebilmek için önce adınızı yazmalısınız.",
+ "Upload files to {folder}" : "Dosyaları {folder} klasörüne yükle",
+ "Please confirm your name to upload files to {folder}" : "Lütfen {folder} üzerinde dosyalar yükleyebilmek için adınızı doğrulayın",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} sizinle bir klasör paylaştı.",
+ "Names must not be empty." : "Ad boş olamaz.",
+ "Names must not start with a dot." : "Ad bir nokta ile başlayamaz.",
+ "\"{char}\" is not allowed inside a name." : "Bir ad içinde \"{char}\" karakteri kullanılamaz.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" ayrılmış bir ad olduğundan kullanılamaz.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" adı kullanılamaz.",
+ "Names must not end with \"{extension}\"." : "Adlar \"{extension}\" karakteri ile bitemez.",
+ "Invalid name." : "Ad geçersiz.",
+ "Shared by" : "Paylaşan",
+ "Shared with" : "Şunlarla paylaşılmış",
+ "Password created successfully" : "Parola oluşturuldu",
+ "Error generating password from password policy" : "Parola, parola ilkesine göre oluşturulurken sorun çıktı",
+ "Shared with you and the group {group} by {owner}" : "{owner} tarafından sizinle ve {group} gubu ile paylaşılmış",
+ "Shared with you and {circle} by {owner}" : "{owner} tarafından sizinle ve {circle} takımı ile paylaşılmış",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} tarafından sizinle ve {conversation} görüşmesi ile paylaştırılmış",
+ "Shared with you in a conversation by {owner}" : "{owner} tarafından sizinle bir görüşmede paylaşılmış",
+ "Share not found" : "Paylaşım bulunamadı",
+ "Back to %s" : "%s sayfasına dön",
+ "Add to your Nextcloud" : "Nextcloud hesabınıza ekleyin",
+ "Waiting…" : "Bekleniyor…",
+ "error" : "sorun",
+ "finished" : "tamamlandı",
+ "This will stop your current uploads." : "Bu işlem geçerli yüklemeleri durduracak.",
+ "Move or copy" : "Taşı ya da kopyala",
+ "You can upload into this folder" : "Bu klasöre yükleme yapabilirsiniz",
+ "Show list view" : "Liste görünümüne geç",
+ "Show grid view" : "Tablo görünümüne geç",
+ "No compatible server found at {remote}" : "{remote} konumunda uyumlu sunucu bulunamadı",
+ "Invalid server URL" : "Sunucu adresi geçersiz",
+ "Failed to add the public link to your Nextcloud" : "Herkese açık bağlantı Nextcould üzerine eklenemedi",
+ "You are not allowed to edit link shares that you don't own" : "Sahibi olmadığınız bağlantı paylaşımlarını düzenleme izniniz yok",
+ "Download all files" : "Tüm dosyaları indir",
+ "Link copied to clipboard" : "Bağlantı panoya kopyalandı",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-posta adresi zaten eklenmiş","{count} e-posta adresi zaten eklenmiş"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 e-posta adresi eklendi","{count} e-posta adresi eklendi"],
+ "Copy to clipboard" : "Panoya kopyala",
+ "Copy internal link to clipboard" : "İç bağlantıyı panoya kopyala",
+ "Only works for people with access to this folder" : "Yalnızca bu klasöre erişebilen kişiler için geçerlidir",
+ "Only works for people with access to this file" : "Yalnızca bu dosyaya erişebilen kişiler için geçerlidir",
+ "Copy public link of \"{title}\" to clipboard" : "Herkese açık \"{title}\" bağlantısını panoya kopyala",
+ "Search globally" : "Genel arama",
+ "Search for share recipients" : "Paylaşım alıcıları ara",
+ "No recommendations. Start typing." : "Herhangi bir öneri yok. Yazmaya başlayın.",
+ "To upload files, you need to provide your name first." : "Dosyaları yükleyebilmek için önce adınızı yazmalısınız.",
+ "Enter your name" : "Adınızı yazın",
+ "Submit name" : "Adı gönder",
+ "Share with {userName}" : "{userName} ile paylaş",
+ "Show sharing options" : "Paylaşım seçeneklerini görüntüle",
"Share note" : "Notu paylaş",
"Upload files to %s" : "Dosyaları %s konumuna yükle",
+ "%s shared a folder with you." : "%s sizinle bir klasör paylaştı.",
"Note" : "Not",
"Select or drop files" : "Dosyaları seçin ya da sürükleyip bırakın",
"Uploading files" : "Dosyalar yükleniyor",
"Uploaded files:" : "Yüklenmiş dosyalar:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Dosya yükleyerek %1$shizmet koşullarını%2$s kabul etmiş olursunuz.",
- "Add to your Nextcloud" : "Nextcloud hesabınıza ekleyin",
- "Files and folders others share with you will show up here" : "Diğerlerinin sizinle paylaştığı dosya ve klasörler burada görüntülenir",
- "Files and folders you share will show up here" : "Paylaştığınız dosya ve klasörler burada görüntülenir",
- "Files and folders you share by link will show up here" : "Bağlantı ile paylaştığınız dosya ve klasörler burada görüntülenir",
- "Shares you deleted will show up here" : "Sildiğiniz paylaşımlar burada görüntülenir",
- "Shares you have received but not confirmed will show up here" : "Aldığınız ancak henüz kabul etmediğiniz paylaşımlar burada görüntülenir",
- "Shares will show up here" : "Paylaşımlar burada görüntülenir",
- "Restore" : "Geri yükle",
- "Something happened. Unable to restore the share." : "Bir sorun çıktı. Paylaşım geri yüklenemedi.",
- "Something happened. Unable to accept the share." : "Bir sorun çıktı. Paylaşım kabul edilemedi.",
- "Something happened. Unable to reject the share." : "Bir sorun çıktı. Paylaşım reddedilemedi.",
- "No expiration date set" : "Geçerlilik sonu tarihi belirtilmemiş",
- "Please specify a valid user" : "Lütfen geçerli bir kullanıcı belirtin",
- "Please specify a valid federated user ID" : "Lütfen geçerli bir birleşik kullanıcı kimliği belirtin",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Bu uygulama kullanıcıların Nextcloud üzerinde dosya paylaşabilmesini sağlar. Etkinleştirildiğinde, yöneticiler dosya paylaşabilecek grupları belirleyebilir. Seçilmiş gruplardaki kullanıcılar Nextcloud üzerindeki diğer kullanıcı ve gruplar ile dosya ve klasör paylaşabilir. Ek olarak, yönetici bağlantı paylaşımı özelliğini etkinleştirmiş ise, Nextcloud üzerinde olmayan kullanıcılar ile dosya paylaşımı bağlantıları kullanılabilir. Yöneticiler ayrıca parola ve geçerlilik sonu tarihi kullanılmasını zorunlu kılmanın yanında, paylaşım bağlantıları ile sunucudan sunucuya paylaşım ve mobil aygıtlar ile paylaşım gibi özellikleri etkinleştirebilir.\nBu özellik devre dışı bırakıldığında, sunucu, eşitleme istemcileri ve mobil uygulamalar üzerinden alıcılar ile paylaşılmış dosya ve klasörler kaldırılır. Ayrıntılı bilgi almak için Nextcloud belgelerine bakabilirsiniz.",
- "Accept user and group shares by default" : "Varsayılan olarak kullanıcı ve grup paylaşımları onaylansın",
- "Read only" : "Salt okunur",
- "File drop (upload only)" : "Dosya bırakma (yalnızca yükleme)",
- "Upload" : "Yükleme",
- "Bundled permissions" : "Bağlı izinler",
- "Only works for users with access to this folder" : "Yalnızca bu klasöre erişebilen kullanıcılar için geçerlidir",
- "Only works for users with access to this file" : "Yalnızca bu dosyaya erişebilen kullanıcılar için geçerlidir",
- "Circle" : "Takım",
- "Update" : "Güncelle",
- "Share with " : "Şunlarla paylaş",
- "No other users with access found" : "Erişebilen başka bir kullanıcı bulunamadı",
- "No entries found in this folder" : "Bu klasörde herhangi bir kayıt yok",
"Name" : "Ad",
- "Share time" : "Paylaşma zamanı",
- "Sorry, this link does not seem to work anymore." : "Ne yazık ki, bu bağlantı artık çalışmıyor gibi görünüyor.",
- "Reasons might be:" : "Nedenleri şunlar olabilir:",
- "the item was removed" : "öge silinmiş",
- "the link expired" : "bağlantının geçerlilik süresi dolmuş",
- "sharing is disabled" : "paylaşım devre dışı bırakılmış",
- "For more info, please ask the person who sent this link." : "Ayrıntılı bilgi almak için bu bağlantıyı aldığınız kişi ile görüşün.",
- "Share with remote" : "Uzaktakilerle paylaş",
- "Share with" : "Şunlarla paylaş"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Bu yöntemi, dosyaları kuruluşunuzdaki kişilerle veya takımlarla paylaşmak için kullanın. Alıcının paylaşıma zaten erişimi varsa ancak bulamıyorlarsa, kolay erişmeleri için iç paylaşım bağlantısını gönderebilirsiniz.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Bu yöntemi, dosyaları kuruluşunuzun dışındaki kişilerle veya kuruluşlarla paylaşmak için kullanın. Dosyalar ve klasörler herkese açık paylaşım bağlantıları ve e-posta adresleri ile paylaşılabilir. Ayrıca, birleşik bulut kimliklerini kullanarak farklı kopyalarda barındırılan diğer Nextcloud hesaplarıyla da paylaşım yapabilirsiniz.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "İç veya dış paylaşımların parçası olmayan paylaşımlar. Bunlar uygulamalardan veya diğer kaynaklardan gelen paylaşımlar olabilir.",
+ "Share with accounts, teams, federated cloud id" : "Hesaplar, takımlar ve birleşik bulut kimlikleri ile paylaşın",
+ "Share with accounts and teams" : "Hesaplar ve takımlarla paylaşın",
+ "Federated cloud ID" : "Birleşik bulut kimliği",
+ "Email, federated cloud id" : "E-posta adresi, birleşik bulut kimliği",
+ "Filename must not be empty." : "Dosya adı boş olamaz."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ug.js b/apps/files_sharing/l10n/ug.js
index 983bb3cc702..0a1c474c38a 100644
--- a/apps/files_sharing/l10n/ug.js
+++ b/apps/files_sharing/l10n/ug.js
@@ -1,11 +1,387 @@
OC.L10N.register(
"files_sharing",
{
+ "File shares" : "ھۆججەت ئورتاقلىشىش",
+ "Downloaded via public link" : "ئاممىۋى ئۇلىنىش ئارقىلىق چۈشۈرۈلدى",
+ "Downloaded by {email}" : "{email} ئارقىلىق چۈشۈرۈلدى",
+ "{file} downloaded via public link" : "{file} public ئاممىۋى ئۇلىنىش ئارقىلىق چۈشۈرۈلدى",
+ "{email} downloaded {file}" : "{email} چۈشۈرۈلگەن {file}",
+ "Shared with group {group}" : "گۇرۇپپا {group} بىلەن ئورتاقلاشتى",
+ "Removed share for group {group}" : "گۇرۇپپا {group} ئۈچۈن ھەمبەھىر چىقىرىۋېتىلدى",
+ "{actor} shared with group {group}" : "{actor} group گۇرۇپپا {group} بىلەن ئورتاقلاشتى",
+ "{actor} removed share for group {group}" : "{actor} group گۇرۇپپا {group} ئۈلۈشىنى ئېلىۋەتتى",
+ "Share for group {group} expired" : "گۇرۇپپا {group} ئۈچۈن ئورتاقلىشىش ۋاقتى توشتى",
+ "You shared {file} with group {group}" : "سىز {file} نى گۇرۇپپا {group} بىلەن ئورتاقلاشتىڭىز",
+ "You removed group {group} from {file}" : "گۇرۇپپا {group} نى {file} ئۆچۈردىڭىز",
+ "{actor} shared {file} with group {group}" : "{actor} گۇرۇپپا {file} بىلەن ئورتاقلاشقان {group}",
+ "{actor} removed group {group} from {file}" : "{actor} گۇرۇپپا {group} {file} چىقىرىۋېتىلدى",
+ "Share for file {file} with group {group} expired" : "گۇرۇپپا {file} بىلەن ھۆججەت {group} نى ئورتاقلىشىش ۋاقتى توشتى",
+ "Shared as public link" : "ئاممىۋى ئۇلىنىش سۈپىتىدە ئورتاقلاشتى",
+ "Removed public link" : "ئاممىۋى ئۇلىنىش ئۆچۈرۈلدى",
+ "Public link expired" : "ئاممىۋى ئۇلىنىش ۋاقتى توشتى",
+ "{actor} shared as public link" : "{actor} public ئاممىۋى ئۇلىنىش سۈپىتىدە ھەمبەھىرلەندى",
+ "{actor} removed public link" : "{actor} public ئاممىۋى ئۇلىنىشنى ئۆچۈردى",
+ "Public link of {actor} expired" : "{actor} نىڭ ئاممىۋى ئۇلىنىشى ۋاقتى توشتى",
+ "You shared {file} as public link" : "ئاممىۋى ھۆججەت سۈپىتىدە {file} نى ئورتاقلاشتىڭىز",
+ "You removed public link for {file}" : "{file} ئۈچۈن ئاممىۋى ئۇلىنىشنى ئۆچۈردىڭىز",
+ "Public link expired for {file}" : "ئاممىۋى ئۇلىنىش {file} نىڭ ۋاقتى توشتى",
+ "{actor} shared {file} as public link" : "{actor} ئورتاقلاشقان {file} public ئاممىۋى ئۇلىنىش سۈپىتىدە",
+ "{actor} removed public link for {file}" : "{actor} {file} ئاممىۋى ئۇلىنىشىنى ئۆچۈردى",
+ "Public link of {actor} for {file} expired" : "{actor} for ئۈچۈن {file} نىڭ ئاممىۋى ئۇلىنىشى ۋاقتى توشتى",
+ "{user} accepted the remote share" : "{user} يىراقتىن ئورتاقلىشىشنى قوبۇل قىلدى",
+ "{user} declined the remote share" : "{user} يىراقتىن ھەمبەھىرلىنىشنى رەت قىلدى",
+ "You received a new remote share {file} from {user}" : "{file} دىن يېڭى يىراقتىن ئورتاقلىشىش {user} تاپشۇرۇۋالدىڭىز",
+ "{user} accepted the remote share of {file}" : "{user} {file} يىراقتىن ھەمبەھىرلىنىشىنى قوبۇل قىلدى",
+ "{user} declined the remote share of {file}" : "{user} {file} يىراقتىن ھەمبەھىرلىنىشىنى رەت قىلدى",
+ "{user} unshared {file} from you" : "{user} ئورتاقلاشمىغان {file} سىزدىن",
+ "Shared with {user}" : "{user} بىلەن ئورتاقلاشتى",
+ "Removed share for {user}" : "{user} for ئۈچۈن ھەمبەھىر چىقىرىۋېتىلدى",
+ "You removed yourself" : "ئۆزىڭىزنى ئېلىۋەتتىڭىز",
+ "{actor} removed themselves" : "{actor} ئۆزىنى ئۆچۈرۈۋەتتى",
+ "{actor} shared with {user}" : "{actor} {user} بىلەن ئورتاقلاشتى",
+ "{actor} removed share for {user}" : "{actor} {user} ئۈچۈن ھەمبەھىرلەنگەن",
+ "Shared by {actor}" : "ھەمبەھىرلەنگەن {actor}",
+ "{actor} removed share" : "{actor} ھەمبەھىرلەنگەن",
+ "Share for {user} expired" : "{user} ئۈچۈن ئورتاقلىشىش ۋاقتى توشتى",
+ "Share expired" : "ھەمبەھىرلىنىش ۋاقتى توشتى",
+ "You shared {file} with {user}" : "{file} بىلەن {user} نى ئورتاقلاشتىڭىز",
+ "You removed {user} from {file}" : "سىز {user} نى {file} ئۆچۈردىڭىز",
+ "You removed yourself from {file}" : "ئۆزىڭىزنى {file} دىن ئۆچۈردىڭىز",
+ "{actor} removed themselves from {file}" : "{actor} ئۆزىنى {file} ئۆچۈرۈۋەتتى",
+ "{actor} shared {file} with {user}" : "{actor} ئىشلەتكۈچى {file} ئورتاقلاشقان {user}",
+ "{actor} removed {user} from {file}" : "{actor} {file} {user} چىقىرىۋېتىلدى",
+ "{actor} shared {file} with you" : "{actor} ئورتاقلاشقان {file} سىز بىلەن",
+ "{actor} removed you from the share named {file}" : "{actor} سىزنى {file} named دېگەن ئورتاقلىشىشتىن ئۆچۈردى",
+ "Share for file {file} with {user} expired" : "ھۆججەت {file} بىلەن ئورتاقلىشىش {user} ۋاقتى توشتى",
+ "Share for file {file} expired" : "ھۆججەتكە ئورتاقلىشىش {file} ۋاقتى توشتى",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "خەت ياكى ئاممىۋى ئۇلىنىش ئارقىلىق ھەمبەھىرلەنگەن ھۆججەت ياكى ھۆججەت قىسقۇچ <strong> چۈشۈرۈلدى </ strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "ھۆججەتلەر ئېلېكترونلۇق خەت ياكى ئاممىۋى ئۇلىنىش ئارقىلىق ھەمبەھىرلىنىدىغان ھۆججەت قىسقۇچقا <strong> يۈكلەندى </ strong>",
+ "A file or folder was shared from <strong>another server</strong>" : "ھۆججەت ياكى ھۆججەت قىسقۇچ <strong> باشقا مۇلازىمېتىر </ strong> دىن ئورتاقلاشتى",
+ "Sharing" : "ھەمبەھىر",
+ "A file or folder has been <strong>shared</strong>" : "ھۆججەت ياكى ھۆججەت قىسقۇچ <strong> ئورتاقلاشتى </ strong>",
+ "Shared link" : "ئورتاق ئۇلىنىش",
+ "Wrong share ID, share does not exist" : "خاتا ئورتاقلىشىش كىملىكى ، ئورتاقلىشىش مەۋجۇت ئەمەس",
+ "Could not delete share" : "ھەمبەھىرنى ئۆچۈرەلمىدى",
+ "Please specify a file or folder path" : "ھۆججەت ياكى ھۆججەت قىسقۇچ يولىنى بەلگىلىۈڭ",
+ "Wrong path, file/folder does not exist" : "خاتا يول ، ھۆججەت / ھۆججەت قىسقۇچ مەۋجۇت ئەمەس",
+ "Could not create share" : "ئورتاقلىشالمىدى",
+ "Please specify a valid account to share with" : "ئورتاقلىشىدىغان ئۈنۈملۈك ھېساباتنى بەلگىلىۈڭ",
+ "Group sharing is disabled by the administrator" : "گۇرۇپپا ئورتاقلىشىش باشقۇرغۇچى تەرىپىدىن چەكلەنگەن",
+ "Please specify a valid group" : "ئىناۋەتلىك گۇرۇپپىنى بەلگىلىۈڭ",
+ "Public link sharing is disabled by the administrator" : "ئاممىۋى ئۇلىنىشنى ھەمبەھىرلەش باشقۇرغۇچى تەرىپىدىن چەكلەنگەن",
+ "Please specify a valid email address" : "ئىناۋەتلىك ئېلېكترونلۇق خەت ئادرېسىنى بەلگىلىۈڭ",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud Talk ئارقىلىق پارول ئەۋەتىش% s نى ئورتاقلىشىش مەغلۇب بولدى ، چۈنكى Nextcloud Talk قوزغىتىلمىدى",
+ "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "%1 $ s نى ئورتاقلىشىش مەغلۇب بولدى ، چۈنكى ئارقا تەرىپى%2 $ s دىن پاي چېكىگە يول قويمايدۇ",
+ "Please specify a valid federated account ID" : "ئىناۋەتلىك فېدېراتسىيە ھېسابات كىملىكىنى بەلگىلىۈڭ",
+ "Please specify a valid federated group ID" : "ئىناۋەتلىك فېدېراتسىيە گۇرۇپپا كىملىكىنى بەلگىلىۈڭ",
+ "You cannot share to a Team if the app is not enabled" : "ئەگەر بۇ دېتال قوزغىتىلمىغان بولسا ، بىر گۇرۇپپىغا ئورتاقلىشالمايسىز",
+ "Please specify a valid team" : "ئىناۋەتلىك گۇرۇپپا بەلگىلەڭ",
+ "Sharing %s failed because the back end does not support room shares" : "% S نى ئورتاقلىشىش مەغلۇب بولدى ، چۈنكى ئارقا تەرىپى ئۆي ئۈلۈشىنى قوللىمايدۇ",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "% S نى ئورتاقلىشىش مەغلۇب بولدى ، چۈنكى ئارقا تەرىپى ScienceMesh نىڭ پاي چېكىنى قوللىمايدۇ",
+ "Unknown share type" : "نامەلۇم ئورتاقلىشىش تىپى",
+ "Not a directory" : "مۇندەرىجە ئەمەس",
+ "Could not lock node" : "تۈگۈننى قۇلۇپلىيالمىدى",
+ "Public upload is only possible for publicly shared folders" : "ئاشكارا يوللاش پەقەت ئاممىۋى ئورتاقلاشقان ھۆججەت قىسقۇچلار ئۈچۈنلا بولىدۇ",
+ "Share must at least have READ or CREATE permissions" : "ھەمبەھىرلىنىشتە ھېچ بولمىغاندا ئوقۇش ياكى ئىجاد قىلىش ھوقۇقى بولۇشى كېرەك",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "UPDATE ياكى DELETE ئىجازىتى تەڭشەلگەن بولسا ، ئورتاقلىشىش چوقۇم ئوقۇش رۇخسىتى بولۇشى كېرەك",
+ "Public upload disabled by the administrator" : "باشقۇرغۇچى تەرىپىدىن ئاممىۋى يوللاش چەكلەنگەن",
+ "Could not lock path" : "يولنى قۇلۇپلىيالمىدى",
+ "no sharing rights on this item" : "بۇ تۈردە ئورتاقلىشىش ھوقۇقى يوق",
+ "You are not allowed to edit incoming shares" : "كەلگەن پايلارنى تەھرىرلىشىڭىزگە رۇخسەت قىلىنمايدۇ",
+ "Wrong or no update parameter given" : "يېڭىلاش پارامېتىرى خاتا ياكى يوق",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud Talk قوزغىتىلمىغانلىقتىن ھۆججەت ياكى ھۆججەت قىسقۇچنى ئورتاقلىشىش ئۈچۈن «Nextcloud Talk ئارقىلىق پارول ئەۋەتىش» مەغلۇپ بولدى.",
+ "Invalid date. Format must be YYYY-MM-DD" : "ئىناۋەتسىز ۋاقىت. فورماتى چوقۇم YYYY-MM-DD بولۇشى كېرەك",
+ "No sharing rights on this item" : "بۇ تۈردە ئورتاقلىشىش ھوقۇقى يوق",
+ "Invalid share attributes provided: \"%s\"" : "تەمىنلەنگەن ئىناۋەتسىز ئورتاقلىشىش خاسلىقى: \"% s\"",
+ "You are not allowed to send mail notifications" : "خەت ئۇقتۇرۇشى ئەۋەتىشىڭىزگە رۇخسەت قىلىنمايدۇ",
+ "No mail notification configured for this share type" : "بۇ ئورتاقلىشىش تىپىغا ھېچقانداق خەت ئۇقتۇرۇشى سەپلەنمىگەن",
+ "Wrong password" : "پارول خاتا",
+ "Error while sending mail notification" : "خەت ئۇقتۇرۇشى ئەۋەتكەندە خاتالىق",
+ "This share does not exist or is no longer available" : "بۇ ئۈلۈش مەۋجۇت ئەمەس ياكى ئەمدى ئىشلەتكىلى بولمايدۇ",
+ "shared by %s" : "% s بىلەن ئورتاقلاشتى",
+ "Download" : "چۈشۈر",
+ "Add to your %s" : "% S گە قوشۇڭ",
+ "Direct link" : "بىۋاسىتە ئۇلىنىش",
+ "Share API is disabled" : "ھەمبەھىر API چەكلەنگەن",
+ "File sharing" : "ھۆججەت ئورتاقلىشىش",
+ "Share will expire tomorrow" : "ھەمبەھىرلىنىش ئەتە توشىدۇ",
+ "Your share of {node} will expire tomorrow" : "سىزنىڭ {node} دىكى ئۈلۈشىڭىز ئەتە توشىدۇ",
+ "You received {share} as a share by {user}" : "سىز {share} تەرىپىدىن ئورتاقلىشىش سۈپىتىدە {user} نى تاپشۇرۇۋالدىڭىز",
+ "You received {share} to group {group} as a share by {user}" : "{share} نىڭ ئورتاق بەھرىلىنىشى سۈپىتىدە گۇرۇپپا {group} {user} نى تاپشۇرۇۋالدىڭىز",
+ "Accept" : "قوبۇل قىلىڭ",
+ "Decline" : "رەت قىلىش",
+ "Remember to upload the files to %s" : "ھۆججەتلەرنى% s غا يوللاشنى ئۇنتۇپ قالماڭ",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "ئورتاق ھۆججەت قىسقۇچقا تېخى ھۆججەت يوللىمىغانلىقىڭىزنى سەمىمىيلىك بىلەن ئەسكەرتىمىز.",
+ "Open \"%s\"" : "\"% S\" نى ئېچىڭ",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "بۇ پروگرامما كىشىلەرنى Nextcloud ئىچىدىكى ھۆججەتلەرنى ئورتاقلىشالايدۇ. ئەگەر قوزغىتىلسا ، باشقۇرغۇچى قايسى گۇرۇپپىلارنىڭ ھۆججەتلەرنى ئورتاقلىشالايدىغانلىقىنى تاللىيالايدۇ. قوللىنىشچان كىشىلەر ئاندىن Nextcloud ئىچىدىكى ھۆججەت ۋە ھۆججەت قىسقۇچلارنى باشقا ھېسابات ۋە گۇرۇپپىلار بىلەن ئورتاقلىشالايدۇ. بۇنىڭدىن باشقا ، ئەگەر باشقۇرغۇچى ئورتاقلىشىش ئۇلىنىش ئىقتىدارىنى قوزغىتالىسا ، سىرتقى ئۇلىنىش ئارقىلىق Nextcloud نىڭ سىرتىدىكى باشقا كىشىلەر بىلەن ھۆججەتلەرنى ئورتاقلىشالايدۇ. باشقۇرغۇچى يەنە مەخپىي نومۇر ، مۇددىتى توشۇش ۋاقتىنى ئىجرا قىلالايدۇ ھەمدە مۇلازىمېتىرنى ھەمبەھىر ئۇلىنىش ئارقىلىق كۆچمە ئۈسكۈنىلەردىن ئورتاقلىشالايدۇ.\nبۇ ئىقتىدارنى تاقاش بارلىق ھەمبەھىر تاپشۇرۇۋالغۇچىلار ئۈچۈن مۇلازىمېتىردىكى ھەمبەھىر ھۆججەت ۋە ھۆججەت قىسقۇچلارنى ، شۇنداقلا ماس قەدەملىك خېرىدارلار ۋە كۆچمە ئەپلەرنى ئۆچۈرۈۋېتىدۇ. Nextcloud ھۆججىتىدە تېخىمۇ كۆپ ئۇچۇرلار بار.",
+ "People" : "كىشىلەر",
+ "Filter accounts" : "ھېساباتنى سۈزۈڭ",
+ "The request will expire on {date} at midnight and will be password protected." : "بۇ تەلەپ {date} يېرىم كېچىدە توشىدۇ ھەمدە مەخپىي نومۇر قوغدىلىدۇ.",
+ "The request will expire on {date} at midnight." : "بۇ تەلەپ يېرىم كېچىدە {date} توشىدۇ.",
+ "The request will be password protected." : "تەلەپ مەخپىي نومۇر بىلەن قوغدىلىدۇ.",
+ "When should the request expire?" : "تەلەپنىڭ ۋاقتى قاچان بولۇشى كېرەك؟",
+ "Set a submission expiration date" : "تاپشۇرۇش ۋاقتى توشىدۇ",
+ "Expiration date" : "مۇددىتى توشقان ۋاقىت",
+ "Select a date" : "چېسلانى تاللاڭ",
+ "Your administrator has enforced a {count} days expiration policy." : "باشقۇرغۇچىڭىز {count} كۈننىڭ مۇددىتى توشۇش سىياسىتىنى يولغا قويدى.",
+ "What password should be used for the request?" : "تەلەپ ئۈچۈن قايسى پارولنى ئىشلىتىش كېرەك؟",
+ "Set a password" : "پارول بەلگىلەڭ",
+ "Password" : "پارول",
+ "Enter a valid password" : "ئىناۋەتلىك پارول كىرگۈزۈڭ",
+ "Generate a new password" : "يېڭى پارول ھاسىل قىلىڭ",
+ "Your administrator has enforced a password protection." : "باشقۇرغۇچىڭىز مەخپىي نومۇر قوغداشنى يولغا قويدى.",
+ "Automatically copying failed, please copy the share link manually" : "ئاپتوماتىك كۆچۈرۈش مەغلۇب بولدى ، ئورتاقلىشىش ئۇلانمىسىنى قولدا كۆچۈرۈڭ",
+ "Link copied" : "ئۇلىنىش كۆچۈرۈلدى",
+ "Email already added" : "ئېلېكترونلۇق خەت قوشۇلدى",
+ "Invalid email address" : "ئىناۋەتسىز ئېلخەت ئادرېسى",
+ "You can now share the link below to allow people to upload files to your directory." : "سىز تۆۋەندىكى ئۇلىنىشنى ھەمبەھىرلەپ ، كىشىلەرنىڭ مۇندەرىجىڭىزگە ھۆججەت يوللىشىغا يول قويالايسىز.",
+ "Share link" : "Share link",
+ "Copy" : "كۆچۈرۈڭ",
+ "Send link via email" : "ئېلېكترونلۇق خەت ئارقىلىق ئۇلىنىش ئەۋەتىڭ",
+ "Enter an email address or paste a list" : "ئېلېكترونلۇق خەت ئادرېسىنى كىرگۈزۈڭ ياكى تىزىملىك چاپلاڭ",
+ "Remove email" : "ئېلېكترونلۇق خەتنى ئۆچۈرۈڭ",
+ "Select a destination" : "مەنزىلنى تاللاڭ",
+ "Select" : "تاللاڭ",
+ "What are you requesting?" : "نېمە تەلەپ قىلىسىز؟",
+ "Request subject" : "تېما تەلەپ قىلىش",
+ "Birthday party photos, History assignment…" : "تۇغۇلغان كۈن سۈرىتى ، تارىخ تاپشۇرۇق…",
+ "Where should these files go?" : "بۇ ھۆججەتلەر نەگە بېرىشى كېرەك؟",
+ "Upload destination" : "نىشاننى يۈكلەڭ",
+ "Revert to default" : "سۈكۈتكە قايتىڭ",
+ "The uploaded files are visible only to you unless you choose to share them." : "يۈكلەنگەن ھۆججەتلەرنى ئورتاقلىشىشنى تاللىمىسىڭىزلا كۆرۈنىدۇ.",
+ "Add a note" : "خاتىرە قوشۇڭ",
+ "Note for recipient" : "تاپشۇرۇۋالغۇچىغا دىققەت قىلىڭ",
+ "Add a note to help people understand what you are requesting." : "كىشىلەرگە نېمە تەلەپ قىلىۋاتقانلىقىڭىزنى چۈشىنىشى ئۈچۈن خاتىرە قوشۇڭ.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "ئۇلىنىش ، چېسلا ياكى باشقا ئۇچۇرلارنى قوشالايسىز ، تاپشۇرۇۋالغۇچىنىڭ سىز تەلەپ قىلغان نەرسىنى چۈشىنىشىگە ياردەم بېرىدۇ.",
+ "Close" : "ياپ",
+ "Please select a folder, you cannot share the root directory." : "ھۆججەت قىسقۇچنى تاللاڭ ، يىلتىز مۇندەرىجىسىنى ئورتاقلىشالمايسىز.",
+ "File request created" : "ھۆججەت تەلىپى قۇرۇلدى",
+ "Error creating the share: {errorMessage}" : "ھەمبەھىرلەشتە خاتالىق: {errorMessage}",
+ "Error creating the share" : "ھەمبەھىرلەشتە خاتالىق",
+ "Error sending emails: {errorMessage}" : "ئېلېكترونلۇق خەت ئەۋەتىشتە خاتالىق: {errorMessage}",
+ "Error sending emails" : "ئېلېكترونلۇق خەت ئەۋەتىشتە خاتالىق",
+ "Create a file request" : "ھۆججەت تەلەپ قىلىڭ",
+ "Collect files from others even if they do not have an account." : "ھېساباتى بولمىسىمۇ باشقىلاردىن ھۆججەت توپلاڭ.",
+ "To ensure you can receive files, verify you have enough storage available." : "ھۆججەتلەرنى قوبۇل قىلىشىڭىزغا كاپالەتلىك قىلىش ئۈچۈن ، يېتەرلىك ساقلاش بوشلۇقى بار-يوقلۇقىنى تەكشۈرۈڭ.",
+ "File request" : "ھۆججەت تەلىپى",
+ "Previous step" : "ئالدىنقى قەدەم",
"Cancel" : "ۋاز كەچ",
+ "Cancel the file request creation" : "ھۆججەت تەلىپىنى قۇرۇشنى ئەمەلدىن قالدۇرۇڭ",
+ "Close without sending emails" : "ئېلېكترونلۇق خەت ئەۋەتمەيلا تاقاڭ",
+ "Continue" : "داۋاملاشتۇر",
+ "Error while toggling options" : "تاللانمىلارنى ئالماشتۇرغاندا خاتالىق",
+ "Accept shares from other accounts and groups by default" : "سۈكۈتتىكى باشقا ھېسابات ۋە گۇرۇپپىلاردىن پاينى قوبۇل قىلىڭ",
+ "Choose a default folder for accepted shares" : "قوبۇل قىلىنغان پايلار ئۈچۈن سۈكۈتتىكى ھۆججەت قىسقۇچنى تاللاڭ",
+ "Invalid path selected" : "ئىناۋەتسىز يول تاللانغان",
+ "Unknown error" : "يوچۇن خاتالىق",
+ "Set default folder for accepted shares" : "قوبۇل قىلىنغان پايلار ئۈچۈن سۈكۈتتىكى ھۆججەت قىسقۇچ بەلگىلەڭ",
+ "Reset" : "ئەسلىگە قايتۇرۇش",
+ "Reset folder to system default" : "ھۆججەت قىسقۇچنى سىستېمىنىڭ سۈكۈتتىكى ھالىتىگە قايتۇرۇڭ",
+ "group" : "گۇرۇپپا",
+ "conversation" : "سۆھبەت",
+ "remote" : "remote",
+ "remote group" : "يىراق گۇرۇپپا",
+ "guest" : "مېھمان",
+ "Shared with the group {user} by {owner}" : "{user} گۇرۇپپىسى {owner} گۇرۇپپىسى بىلەن ئورتاقلاشتى",
+ "Shared with the conversation {user} by {owner}" : "پاراڭ {user} تەرىپىدىن {owner} بىلەن ئورتاقلاشتى",
+ "Shared with {user} by {owner}" : "{user} بىلەن {owner} بىلەن ئورتاقلاشتى",
+ "Open Sharing Details" : "ئورتاقلىشىش تەپسىلاتلىرىنى ئېچىڭ",
+ "Added by {initiator}" : "{initiator} by قوشۇلدى",
+ "Via “{folder}”" : "«{folder}» ئارقىلىق",
+ "Unshare" : "ھەمبەھىرلىمە",
+ "Cannot copy, please copy the link manually" : "كۆچۈرگىلى بولمايدۇ ، ئۇلىنىشنى قولدا كۆچۈرۈڭ",
+ "Copy internal link" : "ئىچكى ئۇلىنىشنى كۆچۈرۈڭ",
+ "Internal link" : "ئىچكى ئۇلىنىش",
+ "{shareWith} by {initiator}" : "{shareWith} تەرىپىدىن {initiator}",
+ "Shared via link by {initiator}" : "{initiator} by ئۇلىنىش ئارقىلىق ھەمبەھىرلەندى",
+ "File request ({label})" : "ھۆججەت تەلىپى ({label})",
+ "Mail share ({label})" : "خەت ئورتاقلىشىش ({label})",
+ "Share link ({label})" : "ئورتاقلىشىش ئۇلىنىشى ({label})",
+ "Mail share" : "خەت ئورتاقلىشىش",
+ "Share link ({index})" : "ئورتاقلىشىش ئۇلىنىشى ({index})",
+ "Create public link" : "ئاممىۋى ئۇلىنىش قۇر",
+ "Actions for \"{title}\"" : "\"{title}\" نىڭ ھەرىكەتلىرى",
+ "Error, please enter proper password and/or expiration date" : "خاتالىق ، مۇۋاپىق پارول ۋە / ياكى مۇددىتى توشقان ۋاقىتنى كىرگۈزۈڭ",
+ "Link share created" : "ئۇلىنىش ئۈلۈشى قۇرۇلدى",
+ "Error while creating the share" : "ھەمبەھىرلەشتە خاتالىق",
+ "Please enter the following required information before creating the share" : "ئورتاقلىشىشتىن بۇرۇن تۆۋەندىكى زۆرۈر ئۇچۇرلارنى كىرگۈزۈڭ",
+ "Password protection (enforced)" : "پارولنى قوغداش (ئىجرا قىلىنىدۇ)",
+ "Password protection" : "Password protection",
+ "Enter a password" : "Enter a password",
+ "Create share" : "ئورتاقلىشىش",
+ "Customize link" : "ئۇلىنىشنى خاسلاشتۇرۇڭ",
+ "Generate QR code" : "QR كودى ھاسىل قىلىڭ",
+ "Add another link" : "باشقا ئۇلىنىش قوشۇڭ",
+ "Create a new share link" : "يېڭى ئورتاقلىشىش ئۇلىنىشى قۇر",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "تېز ھەمبەھىرلىنىش تاللانمىلىرى ، نۆۋەتتىكى تاللانغانلار \"{selectedOption}\"",
+ "View only" : "پەقەت كۆرۈش",
+ "Can edit" : "تەھرىرلىيەلەيدۇ",
+ "Custom permissions" : "ئىختىيارى ئىجازەت",
+ "Resharing is not allowed" : "قايتا تەقسىم قىلىشقا بولمايدۇ",
+ "Name or email …" : "ئىسىم ياكى ئېلخەت…",
+ "Name, email, or Federated Cloud ID …" : "ئىسمى ، ئېلېكترونلۇق خەت ياكى فېدېراتسىيە بۇلۇت كىملىكى…",
+ "Searching …" : "ئىزدەش…",
+ "No elements found." : "ھېچقانداق ئېلېمېنت تېپىلمىدى.",
+ "Search everywhere" : "ھەممە يەردىن ئىزدەڭ",
+ "Guest" : "مېھمان",
+ "Group" : "Group",
+ "Email" : "تورخەت",
+ "Team" : "Team",
+ "Talk conversation" : "پاراڭلىشىش",
+ "Deck board" : "پالۋان تاختىسى",
+ "ScienceMesh" : "ScienceMesh",
+ "on {server}" : "{server}",
+ "Note from" : "دىققەت قىلىڭ",
+ "Note:" : "ئەسكەرتىش:",
+ "File drop" : "ھۆججەت چۈشۈرۈش",
+ "Upload files to {foldername}." : "ھۆججەتلەرنى {foldername} نامىغا يۈكلەڭ.",
+ "By uploading files, you agree to the terms of service." : "ھۆججەتلەرنى يوللاش ئارقىلىق مۇلازىمەت شەرتلىرىگە قوشۇلىسىز.",
+ "View terms of service" : "مۇلازىمەت شەرتلىرىنى كۆرۈش",
+ "Terms of service" : "مۇلازىمەت شەرتلىرى",
+ "Share with email {email}" : "ئېلېكترونلۇق خەت {email} خەت}",
+ "Share with group" : "گۇرۇپپا بىلەن ئورتاقلىشىش",
+ "Share in conversation" : "سۆھبەتتە ئورتاقلىشىڭ",
+ "Share with {user} on remote server {server}" : "يىراقتىكى مۇلازىمېتىردا {user} بىلەن ئورتاقلىشىش {server}",
+ "Share with remote group" : "يىراق گۇرۇپپا بىلەن ئورتاقلىشىڭ",
+ "Share with guest" : "مېھمان بىلەن ئورتاقلىشىڭ",
+ "Update share" : "ھەمبەھىرنى يېڭىلاش",
+ "Save share" : "ئورتاقلىشىشنى ساقلاڭ",
+ "Read" : "ئوقۇ",
+ "Create" : "قۇر",
+ "Edit" : "تەھرىر",
+ "Share" : "ھەمبەھىر",
+ "Delete" : "ئۆچۈر",
+ "Replace current password" : "نۆۋەتتىكى پارولنى ئالماشتۇرۇڭ",
+ "Allow upload and editing" : "يوللاش ۋە تەھرىرلەشكە يول قويۇڭ",
+ "Allow editing" : "تەھرىرلەشكە يول قويۇڭ",
+ "Upload only" : "پەقەت يۈكلەڭ",
+ "Advanced settings" : "ئىلغار تەڭشەكلەر",
+ "Share label" : "ئورتاقلىشىش بەلگىسى",
+ "Set password" : "پارول بەلگىلەڭ",
+ "Password expires {passwordExpirationTime}" : "پارولنىڭ ۋاقتى توشىدۇ {passwordExpirationTime}",
+ "Password expired" : "پارولنىڭ ۋاقتى توشتى",
+ "Video verification" : "سىن دەلىللەش",
+ "Expiration date (enforced)" : "مۇددىتى توشقان (ئىجرا قىلىنغان)",
+ "Set expiration date" : "ۋاقتى توشىدۇ",
+ "Hide download" : "چۈشۈرۈشنى يوشۇرۇش",
+ "Allow download and sync" : "چۈشۈرۈش ۋە ماسقەدەملەشكە يول قويۇڭ",
+ "Note to recipient" : "تاپشۇرۇۋالغۇچىغا دىققەت قىلىڭ",
+ "Enter a note for the share recipient" : "ھەمبەھىر تاپشۇرۇۋالغۇچىغا خاتىرە يېزىڭ",
+ "Delete share" : "ھەمبەھىرنى ئۆچۈرۈڭ",
+ "Others with access" : "باشقىلار بار",
+ "No other accounts with access found" : "باشقا ھېساباتلار تېپىلمىدى",
+ "Toggle list of others with access to this directory" : "بۇ مۇندەرىجىگە ئېرىشەلەيدىغان باشقىلارنىڭ تىزىملىكىنى ئالماشتۇرۇڭ",
+ "Toggle list of others with access to this file" : "بۇ ھۆججەتنى زىيارەت قىلالايدىغان باشقىلارنىڭ تىزىملىكىنى ئالماشتۇرۇڭ",
+ "Unable to fetch inherited shares" : "مىراس قالغان پايلارنى ئالالمىدى",
+ "Link shares" : "ئۇلىنىش پايلىرى",
+ "Shares" : "Shares",
+ "Unable to load the shares list" : "پاي تىزىملىكىنى يۈكلىيەلمىدى",
+ "Expires {relativetime}" : "ۋاقتى {relativetime} ۋاقىت}",
+ "this share just expired." : "بۇ ئۈلۈشنىڭ ۋاقتى توشتى.",
+ "Shared with you by {owner}" : "{owner} سىز بىلەن ئورتاقلاشتى",
+ "Link to a file" : "ھۆججەتكە ئۇلىنىش",
+ "Open in Files" : "ھۆججەتلەرنى ئېچىڭ",
+ "Shared" : "ئورتاقلاشتى",
+ "Shared by {ownerDisplayName}" : "{ownerDisplayName} بىلەن ئورتاقلاشتى",
+ "Shared multiple times with different people" : "ئوخشىمىغان كىشىلەر بىلەن كۆپ قېتىم ئورتاقلاشتى",
+ "Shared with others" : "باشقىلار بىلەن ئورتاقلاشتى",
+ "Create file request" : "ھۆججەت تەلەپ قىلىش",
+ "Upload files to {foldername}" : "ھۆججەتلەرنى {foldername} نامىغا يۈكلەڭ",
+ "Public file share" : "ئاممىۋى ھۆججەت ئورتاقلىشىش",
+ "Publicly shared file." : "ئاشكارا ھۆججەت.",
+ "No file" : "ھۆججەت يوق",
+ "The file shared with you will show up here" : "سىز بىلەن ئورتاقلاشقان ھۆججەت بۇ يەردە كۆرۈنىدۇ",
+ "Public share" : "جامائەت ئۈلۈشى",
+ "Publicly shared files." : "ئورتاق بەھرىلىنىدىغان ھۆججەتلەر.",
+ "No files" : "ھۆججەت يوق",
+ "Files and folders shared with you will show up here" : "سىز بىلەن ئورتاقلاشقان ھۆججەت ۋە ھۆججەت قىسقۇچلار بۇ يەردە كۆرۈنىدۇ",
+ "Overview of shared files." : "ئورتاق ھۆججەتلەرنىڭ ئومۇمىي ئەھۋالى.",
+ "No shares" : "پاي يوق",
+ "Files and folders you shared or have been shared with you will show up here" : "سىز ئورتاقلاشقان ياكى سىز بىلەن ئورتاقلاشقان ھۆججەت ۋە ھۆججەت قىسقۇچلار بۇ يەردە كۆرۈنىدۇ",
+ "Shared with you" : "Shared with you",
+ "List of files that are shared with you." : "سىز بىلەن ئورتاقلاشقان ھۆججەتلەرنىڭ تىزىملىكى.",
+ "Nothing shared with you yet" : "ھازىرچە ھېچنېمە ھەمبەھىرلەنمىدى",
+ "Files and folders others shared with you will show up here" : "باشقىلار سىز بىلەن ئورتاقلاشقان ھۆججەت ۋە ھۆججەت قىسقۇچلار بۇ يەردە كۆرۈنىدۇ",
+ "List of files that you shared with others." : "باشقىلار بىلەن ئورتاقلاشقان ھۆججەتلەرنىڭ تىزىملىكى.",
+ "Nothing shared yet" : "ھازىرچە ھېچقانداق نەرسە ئورتاقلاشمىدى",
+ "Files and folders you shared will show up here" : "سىز ئورتاقلاشقان ھۆججەت ۋە ھۆججەت قىسقۇچلار بۇ يەردە كۆرۈنىدۇ",
+ "Shared by link" : "ئۇلىنىش ئارقىلىق ئورتاقلاشتى",
+ "List of files that are shared by link." : "ئۇلىنىش ئارقىلىق ھەمبەھىرلىنىدىغان ھۆججەتلەرنىڭ تىزىملىكى.",
+ "No shared links" : "ئورتاق ئۇلىنىش يوق",
+ "Files and folders you shared by link will show up here" : "ئۇلىنىش ئارقىلىق ئورتاقلاشقان ھۆججەت ۋە ھۆججەت قىسقۇچلار بۇ يەردە كۆرۈنىدۇ",
+ "File requests" : "ھۆججەت تەلەپلىرى",
+ "List of file requests." : "ھۆججەت تەلەپلىرى تىزىملىكى.",
+ "No file requests" : "ھۆججەت تەلەپ قىلمايدۇ",
+ "File requests you have created will show up here" : "سىز قۇرغان ھۆججەت تەلەپلىرى بۇ يەردە كۆرۈنىدۇ",
+ "Deleted shares" : "ئۆچۈرۈلگەن پايلار",
+ "List of shares you left." : "سىز قالدۇرغان پاي تىزىملىكى.",
+ "No deleted shares" : "ئۆچۈرۈلگەن پاي يوق",
+ "Shares you have left will show up here" : "سىز قالدۇرغان پايلار بۇ يەردە كۆرۈنىدۇ",
+ "Pending shares" : "ساقلىنىۋاتقان پايلار",
+ "List of unapproved shares." : "تەستىقتىن ئۆتمىگەن پاي تىزىملىكى.",
+ "No pending shares" : "ساقلىنىۋاتقان پاي يوق",
+ "Shares you have received but not approved will show up here" : "تاپشۇرۇۋالغان ، ئەمما تەستىقلانمىغان پايلار بۇ يەردە كۆرۈنىدۇ",
+ "Error updating the share: {errorMessage}" : "ھەمبەھىرنى يېڭىلاشتا خاتالىق: {errorMessage}",
+ "Error updating the share" : "ھەمبەھىرنى يېڭىلاشتا خاتالىق",
+ "File \"{path}\" has been unshared" : "ھۆججەت \"{path}\" ھەمبەھىرلەنمىدى",
+ "Folder \"{path}\" has been unshared" : "ھۆججەت قىسقۇچ \"{path}\" ئورتاقلاشمىدى",
+ "Could not update share" : "ھەمبەھىرنى يېڭىلىيالمىدى",
+ "Share saved" : "ھەمبەھىرلەندى",
+ "Share expiry date saved" : "ئورتاقلىشىش ۋاقتى ساقلاندى",
+ "Share hide-download state saved" : "ھەمبەھىرلەش-چۈشۈرۈش ھالىتى ئورتاقلاشتى",
+ "Share label saved" : "ئورتاقلىشىش بەلگىسى ساقلاندى",
+ "Share note for recipient saved" : "تاپشۇرۇۋالغۇچى ئۈچۈن خاتىرە قالدۇرۇڭ",
+ "Share password saved" : "پارولنى ئورتاقلاشتى",
+ "Share permissions saved" : "ئورتاقلىشىش ئىجازەتلىرى ساقلاندى",
+ "Upload files to {folder}" : "ھۆججەتلەرنى {folder} يۈكلەڭ",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ھۆججەت قىسقۇچنى سىز بىلەن ئورتاقلاشتى.",
"Shared by" : "ھەمبەھىرلىگۈچى",
- "Sharing" : "ھەمبەھىر",
- "Password" : "ئىم",
+ "Shared with" : "بىلەن ئورتاقلاشتى",
+ "Password created successfully" : "پارول مۇۋەپپەقىيەتلىك قۇرۇلدى",
+ "Error generating password from password policy" : "پارول سىياسىتىدىن پارول ھاسىل قىلىشتا خاتالىق",
+ "Shared with you and the group {group} by {owner}" : "سىز ۋە گۇرۇپپا {group} بىلەن ئورتاقلاشتى {owner}",
+ "Shared with you and {circle} by {owner}" : "سىز بىلەن ھەمبەھىرلەنگەن {circle} {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "سىز بىلەن ھەمبەھىرلەنگەن سۆھبەت {conversation} {owner} تەرىپىدىن",
+ "Shared with you in a conversation by {owner}" : "{owner} نىڭ سۆھبىتىدە سىز بىلەن ئورتاقلاشتى",
+ "Share not found" : "ھەمبەھىر تېپىلمىدى",
+ "Back to %s" : "% S گە قايتىش",
+ "Add to your Nextcloud" : "Nextcloud غا قوشۇڭ",
+ "Waiting…" : "ساقلاش…",
+ "error" : "خاتالىق",
+ "finished" : "تاماملاندى",
+ "This will stop your current uploads." : "بۇ سىزنىڭ نۆۋەتتىكى يۈكلىنىشىڭىزنى توختىتىدۇ.",
+ "Move or copy" : "يۆتكەش ياكى كۆچۈرۈش",
+ "You can upload into this folder" : "بۇ ھۆججەت قىسقۇچقا يۈكلىسىڭىز بولىدۇ",
+ "Show list view" : "تىزىملىك كۆرۈنۈشىنى كۆرسىتىش",
+ "Show grid view" : "كاتەكچە كۆرۈنۈشنى كۆرسىتىش",
+ "No compatible server found at {remote}" : "{remote} ماس كېلىدىغان مۇلازىمېتىر تېپىلمىدى",
+ "Invalid server URL" : "مۇلازىمېتىر URL ئىناۋەتسىز",
+ "Failed to add the public link to your Nextcloud" : "Nextcloud غا ئاممىۋى ئۇلىنىشنى قوشالمىدى",
+ "You are not allowed to edit link shares that you don't own" : "ئۆزىڭىز ئىگە بولمىغان ئۇلىنىش ھەمبەھىرلىرىنى تەھرىرلىشىڭىزگە رۇخسەت قىلىنمايدۇ",
+ "Download all files" : "بارلىق ھۆججەتلەرنى چۈشۈرۈڭ",
+ "Link copied to clipboard" : "ئۇلىنىش چاپلاش تاختىسىغا كۆچۈرۈلدى",
+ "Copy to clipboard" : "چاپلاش تاختىسىغا كۆچۈرۈڭ",
+ "Copy internal link to clipboard" : "ئىچكى ئۇلىنىشنى چاپلاش تاختىسىغا كۆچۈرۈڭ",
+ "Only works for people with access to this folder" : "پەقەت بۇ ھۆججەت قىسقۇچنى زىيارەت قىلالايدىغان كىشىلەر ئۈچۈن ئىشلەيدۇ",
+ "Only works for people with access to this file" : "پەقەت بۇ ھۆججەتنى زىيارەت قىلالايدىغان كىشىلەر ئۈچۈن ئىشلەيدۇ",
+ "Copy public link of \"{title}\" to clipboard" : "«{title}» نىڭ ئاممىۋى ئۇلىنىشىنى چاپلاش تاختىسىغا كۆچۈرۈڭ",
+ "Search globally" : "دۇنيا مىقياسىدا ئىزدەڭ",
+ "Search for share recipients" : "ھەمبەھىر تاپشۇرۇۋالغۇچىلارنى ئىزدەڭ",
+ "No recommendations. Start typing." : "تەۋسىيە يوق. يېزىشنى باشلاڭ.",
+ "To upload files, you need to provide your name first." : "ھۆججەتلەرنى يوللاش ئۈچۈن ئالدى بىلەن ئىسمىڭىزنى تەمىنلىشىڭىز كېرەك.",
+ "Enter your name" : "ئىسمىڭىزنى كىرگۈزۈڭ",
+ "Submit name" : "ئىسىم يوللاڭ",
+ "Share with {userName}" : "{userName} بىلەن ئورتاقلىشىڭ",
+ "Show sharing options" : "ئورتاقلىشىش تاللانمىلىرىنى كۆرسەت",
+ "Share note" : "ئورتاقلىشىش خاتىرىسى",
+ "Upload files to %s" : "ھۆججەتلەرنى% s غا يۈكلەڭ",
+ "%s shared a folder with you." : "% s ھۆججەت قىسقۇچنى سىز بىلەن ئورتاقلاشتى.",
+ "Note" : "دىققەت",
+ "Select or drop files" : "ھۆججەتلەرنى تاللاڭ ياكى تاشلاڭ",
+ "Uploading files" : "ھۆججەتلەرنى يۈكلەش",
+ "Uploaded files:" : "يۈكلەنگەن ھۆججەتلەر:",
+ "By uploading files, you agree to the %1$sterms of service%2$s." : "ھۆججەت يوللاش ئارقىلىق%1 $ مۇلازىمەتنىڭ%2 $ s گە قوشۇلىسىز.",
"Name" : "ئاتى",
- "Download" : "چۈشۈر"
+ "Filename must not be empty." : "ھۆججەت ئىسمى بوش بولماسلىقى كېرەك."
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/ug.json b/apps/files_sharing/l10n/ug.json
index 63991ebcfc9..4e6e343a570 100644
--- a/apps/files_sharing/l10n/ug.json
+++ b/apps/files_sharing/l10n/ug.json
@@ -1,9 +1,385 @@
{ "translations": {
+ "File shares" : "ھۆججەت ئورتاقلىشىش",
+ "Downloaded via public link" : "ئاممىۋى ئۇلىنىش ئارقىلىق چۈشۈرۈلدى",
+ "Downloaded by {email}" : "{email} ئارقىلىق چۈشۈرۈلدى",
+ "{file} downloaded via public link" : "{file} public ئاممىۋى ئۇلىنىش ئارقىلىق چۈشۈرۈلدى",
+ "{email} downloaded {file}" : "{email} چۈشۈرۈلگەن {file}",
+ "Shared with group {group}" : "گۇرۇپپا {group} بىلەن ئورتاقلاشتى",
+ "Removed share for group {group}" : "گۇرۇپپا {group} ئۈچۈن ھەمبەھىر چىقىرىۋېتىلدى",
+ "{actor} shared with group {group}" : "{actor} group گۇرۇپپا {group} بىلەن ئورتاقلاشتى",
+ "{actor} removed share for group {group}" : "{actor} group گۇرۇپپا {group} ئۈلۈشىنى ئېلىۋەتتى",
+ "Share for group {group} expired" : "گۇرۇپپا {group} ئۈچۈن ئورتاقلىشىش ۋاقتى توشتى",
+ "You shared {file} with group {group}" : "سىز {file} نى گۇرۇپپا {group} بىلەن ئورتاقلاشتىڭىز",
+ "You removed group {group} from {file}" : "گۇرۇپپا {group} نى {file} ئۆچۈردىڭىز",
+ "{actor} shared {file} with group {group}" : "{actor} گۇرۇپپا {file} بىلەن ئورتاقلاشقان {group}",
+ "{actor} removed group {group} from {file}" : "{actor} گۇرۇپپا {group} {file} چىقىرىۋېتىلدى",
+ "Share for file {file} with group {group} expired" : "گۇرۇپپا {file} بىلەن ھۆججەت {group} نى ئورتاقلىشىش ۋاقتى توشتى",
+ "Shared as public link" : "ئاممىۋى ئۇلىنىش سۈپىتىدە ئورتاقلاشتى",
+ "Removed public link" : "ئاممىۋى ئۇلىنىش ئۆچۈرۈلدى",
+ "Public link expired" : "ئاممىۋى ئۇلىنىش ۋاقتى توشتى",
+ "{actor} shared as public link" : "{actor} public ئاممىۋى ئۇلىنىش سۈپىتىدە ھەمبەھىرلەندى",
+ "{actor} removed public link" : "{actor} public ئاممىۋى ئۇلىنىشنى ئۆچۈردى",
+ "Public link of {actor} expired" : "{actor} نىڭ ئاممىۋى ئۇلىنىشى ۋاقتى توشتى",
+ "You shared {file} as public link" : "ئاممىۋى ھۆججەت سۈپىتىدە {file} نى ئورتاقلاشتىڭىز",
+ "You removed public link for {file}" : "{file} ئۈچۈن ئاممىۋى ئۇلىنىشنى ئۆچۈردىڭىز",
+ "Public link expired for {file}" : "ئاممىۋى ئۇلىنىش {file} نىڭ ۋاقتى توشتى",
+ "{actor} shared {file} as public link" : "{actor} ئورتاقلاشقان {file} public ئاممىۋى ئۇلىنىش سۈپىتىدە",
+ "{actor} removed public link for {file}" : "{actor} {file} ئاممىۋى ئۇلىنىشىنى ئۆچۈردى",
+ "Public link of {actor} for {file} expired" : "{actor} for ئۈچۈن {file} نىڭ ئاممىۋى ئۇلىنىشى ۋاقتى توشتى",
+ "{user} accepted the remote share" : "{user} يىراقتىن ئورتاقلىشىشنى قوبۇل قىلدى",
+ "{user} declined the remote share" : "{user} يىراقتىن ھەمبەھىرلىنىشنى رەت قىلدى",
+ "You received a new remote share {file} from {user}" : "{file} دىن يېڭى يىراقتىن ئورتاقلىشىش {user} تاپشۇرۇۋالدىڭىز",
+ "{user} accepted the remote share of {file}" : "{user} {file} يىراقتىن ھەمبەھىرلىنىشىنى قوبۇل قىلدى",
+ "{user} declined the remote share of {file}" : "{user} {file} يىراقتىن ھەمبەھىرلىنىشىنى رەت قىلدى",
+ "{user} unshared {file} from you" : "{user} ئورتاقلاشمىغان {file} سىزدىن",
+ "Shared with {user}" : "{user} بىلەن ئورتاقلاشتى",
+ "Removed share for {user}" : "{user} for ئۈچۈن ھەمبەھىر چىقىرىۋېتىلدى",
+ "You removed yourself" : "ئۆزىڭىزنى ئېلىۋەتتىڭىز",
+ "{actor} removed themselves" : "{actor} ئۆزىنى ئۆچۈرۈۋەتتى",
+ "{actor} shared with {user}" : "{actor} {user} بىلەن ئورتاقلاشتى",
+ "{actor} removed share for {user}" : "{actor} {user} ئۈچۈن ھەمبەھىرلەنگەن",
+ "Shared by {actor}" : "ھەمبەھىرلەنگەن {actor}",
+ "{actor} removed share" : "{actor} ھەمبەھىرلەنگەن",
+ "Share for {user} expired" : "{user} ئۈچۈن ئورتاقلىشىش ۋاقتى توشتى",
+ "Share expired" : "ھەمبەھىرلىنىش ۋاقتى توشتى",
+ "You shared {file} with {user}" : "{file} بىلەن {user} نى ئورتاقلاشتىڭىز",
+ "You removed {user} from {file}" : "سىز {user} نى {file} ئۆچۈردىڭىز",
+ "You removed yourself from {file}" : "ئۆزىڭىزنى {file} دىن ئۆچۈردىڭىز",
+ "{actor} removed themselves from {file}" : "{actor} ئۆزىنى {file} ئۆچۈرۈۋەتتى",
+ "{actor} shared {file} with {user}" : "{actor} ئىشلەتكۈچى {file} ئورتاقلاشقان {user}",
+ "{actor} removed {user} from {file}" : "{actor} {file} {user} چىقىرىۋېتىلدى",
+ "{actor} shared {file} with you" : "{actor} ئورتاقلاشقان {file} سىز بىلەن",
+ "{actor} removed you from the share named {file}" : "{actor} سىزنى {file} named دېگەن ئورتاقلىشىشتىن ئۆچۈردى",
+ "Share for file {file} with {user} expired" : "ھۆججەت {file} بىلەن ئورتاقلىشىش {user} ۋاقتى توشتى",
+ "Share for file {file} expired" : "ھۆججەتكە ئورتاقلىشىش {file} ۋاقتى توشتى",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "خەت ياكى ئاممىۋى ئۇلىنىش ئارقىلىق ھەمبەھىرلەنگەن ھۆججەت ياكى ھۆججەت قىسقۇچ <strong> چۈشۈرۈلدى </ strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "ھۆججەتلەر ئېلېكترونلۇق خەت ياكى ئاممىۋى ئۇلىنىش ئارقىلىق ھەمبەھىرلىنىدىغان ھۆججەت قىسقۇچقا <strong> يۈكلەندى </ strong>",
+ "A file or folder was shared from <strong>another server</strong>" : "ھۆججەت ياكى ھۆججەت قىسقۇچ <strong> باشقا مۇلازىمېتىر </ strong> دىن ئورتاقلاشتى",
+ "Sharing" : "ھەمبەھىر",
+ "A file or folder has been <strong>shared</strong>" : "ھۆججەت ياكى ھۆججەت قىسقۇچ <strong> ئورتاقلاشتى </ strong>",
+ "Shared link" : "ئورتاق ئۇلىنىش",
+ "Wrong share ID, share does not exist" : "خاتا ئورتاقلىشىش كىملىكى ، ئورتاقلىشىش مەۋجۇت ئەمەس",
+ "Could not delete share" : "ھەمبەھىرنى ئۆچۈرەلمىدى",
+ "Please specify a file or folder path" : "ھۆججەت ياكى ھۆججەت قىسقۇچ يولىنى بەلگىلىۈڭ",
+ "Wrong path, file/folder does not exist" : "خاتا يول ، ھۆججەت / ھۆججەت قىسقۇچ مەۋجۇت ئەمەس",
+ "Could not create share" : "ئورتاقلىشالمىدى",
+ "Please specify a valid account to share with" : "ئورتاقلىشىدىغان ئۈنۈملۈك ھېساباتنى بەلگىلىۈڭ",
+ "Group sharing is disabled by the administrator" : "گۇرۇپپا ئورتاقلىشىش باشقۇرغۇچى تەرىپىدىن چەكلەنگەن",
+ "Please specify a valid group" : "ئىناۋەتلىك گۇرۇپپىنى بەلگىلىۈڭ",
+ "Public link sharing is disabled by the administrator" : "ئاممىۋى ئۇلىنىشنى ھەمبەھىرلەش باشقۇرغۇچى تەرىپىدىن چەكلەنگەن",
+ "Please specify a valid email address" : "ئىناۋەتلىك ئېلېكترونلۇق خەت ئادرېسىنى بەلگىلىۈڭ",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud Talk ئارقىلىق پارول ئەۋەتىش% s نى ئورتاقلىشىش مەغلۇب بولدى ، چۈنكى Nextcloud Talk قوزغىتىلمىدى",
+ "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "%1 $ s نى ئورتاقلىشىش مەغلۇب بولدى ، چۈنكى ئارقا تەرىپى%2 $ s دىن پاي چېكىگە يول قويمايدۇ",
+ "Please specify a valid federated account ID" : "ئىناۋەتلىك فېدېراتسىيە ھېسابات كىملىكىنى بەلگىلىۈڭ",
+ "Please specify a valid federated group ID" : "ئىناۋەتلىك فېدېراتسىيە گۇرۇپپا كىملىكىنى بەلگىلىۈڭ",
+ "You cannot share to a Team if the app is not enabled" : "ئەگەر بۇ دېتال قوزغىتىلمىغان بولسا ، بىر گۇرۇپپىغا ئورتاقلىشالمايسىز",
+ "Please specify a valid team" : "ئىناۋەتلىك گۇرۇپپا بەلگىلەڭ",
+ "Sharing %s failed because the back end does not support room shares" : "% S نى ئورتاقلىشىش مەغلۇب بولدى ، چۈنكى ئارقا تەرىپى ئۆي ئۈلۈشىنى قوللىمايدۇ",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "% S نى ئورتاقلىشىش مەغلۇب بولدى ، چۈنكى ئارقا تەرىپى ScienceMesh نىڭ پاي چېكىنى قوللىمايدۇ",
+ "Unknown share type" : "نامەلۇم ئورتاقلىشىش تىپى",
+ "Not a directory" : "مۇندەرىجە ئەمەس",
+ "Could not lock node" : "تۈگۈننى قۇلۇپلىيالمىدى",
+ "Public upload is only possible for publicly shared folders" : "ئاشكارا يوللاش پەقەت ئاممىۋى ئورتاقلاشقان ھۆججەت قىسقۇچلار ئۈچۈنلا بولىدۇ",
+ "Share must at least have READ or CREATE permissions" : "ھەمبەھىرلىنىشتە ھېچ بولمىغاندا ئوقۇش ياكى ئىجاد قىلىش ھوقۇقى بولۇشى كېرەك",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "UPDATE ياكى DELETE ئىجازىتى تەڭشەلگەن بولسا ، ئورتاقلىشىش چوقۇم ئوقۇش رۇخسىتى بولۇشى كېرەك",
+ "Public upload disabled by the administrator" : "باشقۇرغۇچى تەرىپىدىن ئاممىۋى يوللاش چەكلەنگەن",
+ "Could not lock path" : "يولنى قۇلۇپلىيالمىدى",
+ "no sharing rights on this item" : "بۇ تۈردە ئورتاقلىشىش ھوقۇقى يوق",
+ "You are not allowed to edit incoming shares" : "كەلگەن پايلارنى تەھرىرلىشىڭىزگە رۇخسەت قىلىنمايدۇ",
+ "Wrong or no update parameter given" : "يېڭىلاش پارامېتىرى خاتا ياكى يوق",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud Talk قوزغىتىلمىغانلىقتىن ھۆججەت ياكى ھۆججەت قىسقۇچنى ئورتاقلىشىش ئۈچۈن «Nextcloud Talk ئارقىلىق پارول ئەۋەتىش» مەغلۇپ بولدى.",
+ "Invalid date. Format must be YYYY-MM-DD" : "ئىناۋەتسىز ۋاقىت. فورماتى چوقۇم YYYY-MM-DD بولۇشى كېرەك",
+ "No sharing rights on this item" : "بۇ تۈردە ئورتاقلىشىش ھوقۇقى يوق",
+ "Invalid share attributes provided: \"%s\"" : "تەمىنلەنگەن ئىناۋەتسىز ئورتاقلىشىش خاسلىقى: \"% s\"",
+ "You are not allowed to send mail notifications" : "خەت ئۇقتۇرۇشى ئەۋەتىشىڭىزگە رۇخسەت قىلىنمايدۇ",
+ "No mail notification configured for this share type" : "بۇ ئورتاقلىشىش تىپىغا ھېچقانداق خەت ئۇقتۇرۇشى سەپلەنمىگەن",
+ "Wrong password" : "پارول خاتا",
+ "Error while sending mail notification" : "خەت ئۇقتۇرۇشى ئەۋەتكەندە خاتالىق",
+ "This share does not exist or is no longer available" : "بۇ ئۈلۈش مەۋجۇت ئەمەس ياكى ئەمدى ئىشلەتكىلى بولمايدۇ",
+ "shared by %s" : "% s بىلەن ئورتاقلاشتى",
+ "Download" : "چۈشۈر",
+ "Add to your %s" : "% S گە قوشۇڭ",
+ "Direct link" : "بىۋاسىتە ئۇلىنىش",
+ "Share API is disabled" : "ھەمبەھىر API چەكلەنگەن",
+ "File sharing" : "ھۆججەت ئورتاقلىشىش",
+ "Share will expire tomorrow" : "ھەمبەھىرلىنىش ئەتە توشىدۇ",
+ "Your share of {node} will expire tomorrow" : "سىزنىڭ {node} دىكى ئۈلۈشىڭىز ئەتە توشىدۇ",
+ "You received {share} as a share by {user}" : "سىز {share} تەرىپىدىن ئورتاقلىشىش سۈپىتىدە {user} نى تاپشۇرۇۋالدىڭىز",
+ "You received {share} to group {group} as a share by {user}" : "{share} نىڭ ئورتاق بەھرىلىنىشى سۈپىتىدە گۇرۇپپا {group} {user} نى تاپشۇرۇۋالدىڭىز",
+ "Accept" : "قوبۇل قىلىڭ",
+ "Decline" : "رەت قىلىش",
+ "Remember to upload the files to %s" : "ھۆججەتلەرنى% s غا يوللاشنى ئۇنتۇپ قالماڭ",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "ئورتاق ھۆججەت قىسقۇچقا تېخى ھۆججەت يوللىمىغانلىقىڭىزنى سەمىمىيلىك بىلەن ئەسكەرتىمىز.",
+ "Open \"%s\"" : "\"% S\" نى ئېچىڭ",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "بۇ پروگرامما كىشىلەرنى Nextcloud ئىچىدىكى ھۆججەتلەرنى ئورتاقلىشالايدۇ. ئەگەر قوزغىتىلسا ، باشقۇرغۇچى قايسى گۇرۇپپىلارنىڭ ھۆججەتلەرنى ئورتاقلىشالايدىغانلىقىنى تاللىيالايدۇ. قوللىنىشچان كىشىلەر ئاندىن Nextcloud ئىچىدىكى ھۆججەت ۋە ھۆججەت قىسقۇچلارنى باشقا ھېسابات ۋە گۇرۇپپىلار بىلەن ئورتاقلىشالايدۇ. بۇنىڭدىن باشقا ، ئەگەر باشقۇرغۇچى ئورتاقلىشىش ئۇلىنىش ئىقتىدارىنى قوزغىتالىسا ، سىرتقى ئۇلىنىش ئارقىلىق Nextcloud نىڭ سىرتىدىكى باشقا كىشىلەر بىلەن ھۆججەتلەرنى ئورتاقلىشالايدۇ. باشقۇرغۇچى يەنە مەخپىي نومۇر ، مۇددىتى توشۇش ۋاقتىنى ئىجرا قىلالايدۇ ھەمدە مۇلازىمېتىرنى ھەمبەھىر ئۇلىنىش ئارقىلىق كۆچمە ئۈسكۈنىلەردىن ئورتاقلىشالايدۇ.\nبۇ ئىقتىدارنى تاقاش بارلىق ھەمبەھىر تاپشۇرۇۋالغۇچىلار ئۈچۈن مۇلازىمېتىردىكى ھەمبەھىر ھۆججەت ۋە ھۆججەت قىسقۇچلارنى ، شۇنداقلا ماس قەدەملىك خېرىدارلار ۋە كۆچمە ئەپلەرنى ئۆچۈرۈۋېتىدۇ. Nextcloud ھۆججىتىدە تېخىمۇ كۆپ ئۇچۇرلار بار.",
+ "People" : "كىشىلەر",
+ "Filter accounts" : "ھېساباتنى سۈزۈڭ",
+ "The request will expire on {date} at midnight and will be password protected." : "بۇ تەلەپ {date} يېرىم كېچىدە توشىدۇ ھەمدە مەخپىي نومۇر قوغدىلىدۇ.",
+ "The request will expire on {date} at midnight." : "بۇ تەلەپ يېرىم كېچىدە {date} توشىدۇ.",
+ "The request will be password protected." : "تەلەپ مەخپىي نومۇر بىلەن قوغدىلىدۇ.",
+ "When should the request expire?" : "تەلەپنىڭ ۋاقتى قاچان بولۇشى كېرەك؟",
+ "Set a submission expiration date" : "تاپشۇرۇش ۋاقتى توشىدۇ",
+ "Expiration date" : "مۇددىتى توشقان ۋاقىت",
+ "Select a date" : "چېسلانى تاللاڭ",
+ "Your administrator has enforced a {count} days expiration policy." : "باشقۇرغۇچىڭىز {count} كۈننىڭ مۇددىتى توشۇش سىياسىتىنى يولغا قويدى.",
+ "What password should be used for the request?" : "تەلەپ ئۈچۈن قايسى پارولنى ئىشلىتىش كېرەك؟",
+ "Set a password" : "پارول بەلگىلەڭ",
+ "Password" : "پارول",
+ "Enter a valid password" : "ئىناۋەتلىك پارول كىرگۈزۈڭ",
+ "Generate a new password" : "يېڭى پارول ھاسىل قىلىڭ",
+ "Your administrator has enforced a password protection." : "باشقۇرغۇچىڭىز مەخپىي نومۇر قوغداشنى يولغا قويدى.",
+ "Automatically copying failed, please copy the share link manually" : "ئاپتوماتىك كۆچۈرۈش مەغلۇب بولدى ، ئورتاقلىشىش ئۇلانمىسىنى قولدا كۆچۈرۈڭ",
+ "Link copied" : "ئۇلىنىش كۆچۈرۈلدى",
+ "Email already added" : "ئېلېكترونلۇق خەت قوشۇلدى",
+ "Invalid email address" : "ئىناۋەتسىز ئېلخەت ئادرېسى",
+ "You can now share the link below to allow people to upload files to your directory." : "سىز تۆۋەندىكى ئۇلىنىشنى ھەمبەھىرلەپ ، كىشىلەرنىڭ مۇندەرىجىڭىزگە ھۆججەت يوللىشىغا يول قويالايسىز.",
+ "Share link" : "Share link",
+ "Copy" : "كۆچۈرۈڭ",
+ "Send link via email" : "ئېلېكترونلۇق خەت ئارقىلىق ئۇلىنىش ئەۋەتىڭ",
+ "Enter an email address or paste a list" : "ئېلېكترونلۇق خەت ئادرېسىنى كىرگۈزۈڭ ياكى تىزىملىك چاپلاڭ",
+ "Remove email" : "ئېلېكترونلۇق خەتنى ئۆچۈرۈڭ",
+ "Select a destination" : "مەنزىلنى تاللاڭ",
+ "Select" : "تاللاڭ",
+ "What are you requesting?" : "نېمە تەلەپ قىلىسىز؟",
+ "Request subject" : "تېما تەلەپ قىلىش",
+ "Birthday party photos, History assignment…" : "تۇغۇلغان كۈن سۈرىتى ، تارىخ تاپشۇرۇق…",
+ "Where should these files go?" : "بۇ ھۆججەتلەر نەگە بېرىشى كېرەك؟",
+ "Upload destination" : "نىشاننى يۈكلەڭ",
+ "Revert to default" : "سۈكۈتكە قايتىڭ",
+ "The uploaded files are visible only to you unless you choose to share them." : "يۈكلەنگەن ھۆججەتلەرنى ئورتاقلىشىشنى تاللىمىسىڭىزلا كۆرۈنىدۇ.",
+ "Add a note" : "خاتىرە قوشۇڭ",
+ "Note for recipient" : "تاپشۇرۇۋالغۇچىغا دىققەت قىلىڭ",
+ "Add a note to help people understand what you are requesting." : "كىشىلەرگە نېمە تەلەپ قىلىۋاتقانلىقىڭىزنى چۈشىنىشى ئۈچۈن خاتىرە قوشۇڭ.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "ئۇلىنىش ، چېسلا ياكى باشقا ئۇچۇرلارنى قوشالايسىز ، تاپشۇرۇۋالغۇچىنىڭ سىز تەلەپ قىلغان نەرسىنى چۈشىنىشىگە ياردەم بېرىدۇ.",
+ "Close" : "ياپ",
+ "Please select a folder, you cannot share the root directory." : "ھۆججەت قىسقۇچنى تاللاڭ ، يىلتىز مۇندەرىجىسىنى ئورتاقلىشالمايسىز.",
+ "File request created" : "ھۆججەت تەلىپى قۇرۇلدى",
+ "Error creating the share: {errorMessage}" : "ھەمبەھىرلەشتە خاتالىق: {errorMessage}",
+ "Error creating the share" : "ھەمبەھىرلەشتە خاتالىق",
+ "Error sending emails: {errorMessage}" : "ئېلېكترونلۇق خەت ئەۋەتىشتە خاتالىق: {errorMessage}",
+ "Error sending emails" : "ئېلېكترونلۇق خەت ئەۋەتىشتە خاتالىق",
+ "Create a file request" : "ھۆججەت تەلەپ قىلىڭ",
+ "Collect files from others even if they do not have an account." : "ھېساباتى بولمىسىمۇ باشقىلاردىن ھۆججەت توپلاڭ.",
+ "To ensure you can receive files, verify you have enough storage available." : "ھۆججەتلەرنى قوبۇل قىلىشىڭىزغا كاپالەتلىك قىلىش ئۈچۈن ، يېتەرلىك ساقلاش بوشلۇقى بار-يوقلۇقىنى تەكشۈرۈڭ.",
+ "File request" : "ھۆججەت تەلىپى",
+ "Previous step" : "ئالدىنقى قەدەم",
"Cancel" : "ۋاز كەچ",
+ "Cancel the file request creation" : "ھۆججەت تەلىپىنى قۇرۇشنى ئەمەلدىن قالدۇرۇڭ",
+ "Close without sending emails" : "ئېلېكترونلۇق خەت ئەۋەتمەيلا تاقاڭ",
+ "Continue" : "داۋاملاشتۇر",
+ "Error while toggling options" : "تاللانمىلارنى ئالماشتۇرغاندا خاتالىق",
+ "Accept shares from other accounts and groups by default" : "سۈكۈتتىكى باشقا ھېسابات ۋە گۇرۇپپىلاردىن پاينى قوبۇل قىلىڭ",
+ "Choose a default folder for accepted shares" : "قوبۇل قىلىنغان پايلار ئۈچۈن سۈكۈتتىكى ھۆججەت قىسقۇچنى تاللاڭ",
+ "Invalid path selected" : "ئىناۋەتسىز يول تاللانغان",
+ "Unknown error" : "يوچۇن خاتالىق",
+ "Set default folder for accepted shares" : "قوبۇل قىلىنغان پايلار ئۈچۈن سۈكۈتتىكى ھۆججەت قىسقۇچ بەلگىلەڭ",
+ "Reset" : "ئەسلىگە قايتۇرۇش",
+ "Reset folder to system default" : "ھۆججەت قىسقۇچنى سىستېمىنىڭ سۈكۈتتىكى ھالىتىگە قايتۇرۇڭ",
+ "group" : "گۇرۇپپا",
+ "conversation" : "سۆھبەت",
+ "remote" : "remote",
+ "remote group" : "يىراق گۇرۇپپا",
+ "guest" : "مېھمان",
+ "Shared with the group {user} by {owner}" : "{user} گۇرۇپپىسى {owner} گۇرۇپپىسى بىلەن ئورتاقلاشتى",
+ "Shared with the conversation {user} by {owner}" : "پاراڭ {user} تەرىپىدىن {owner} بىلەن ئورتاقلاشتى",
+ "Shared with {user} by {owner}" : "{user} بىلەن {owner} بىلەن ئورتاقلاشتى",
+ "Open Sharing Details" : "ئورتاقلىشىش تەپسىلاتلىرىنى ئېچىڭ",
+ "Added by {initiator}" : "{initiator} by قوشۇلدى",
+ "Via “{folder}”" : "«{folder}» ئارقىلىق",
+ "Unshare" : "ھەمبەھىرلىمە",
+ "Cannot copy, please copy the link manually" : "كۆچۈرگىلى بولمايدۇ ، ئۇلىنىشنى قولدا كۆچۈرۈڭ",
+ "Copy internal link" : "ئىچكى ئۇلىنىشنى كۆچۈرۈڭ",
+ "Internal link" : "ئىچكى ئۇلىنىش",
+ "{shareWith} by {initiator}" : "{shareWith} تەرىپىدىن {initiator}",
+ "Shared via link by {initiator}" : "{initiator} by ئۇلىنىش ئارقىلىق ھەمبەھىرلەندى",
+ "File request ({label})" : "ھۆججەت تەلىپى ({label})",
+ "Mail share ({label})" : "خەت ئورتاقلىشىش ({label})",
+ "Share link ({label})" : "ئورتاقلىشىش ئۇلىنىشى ({label})",
+ "Mail share" : "خەت ئورتاقلىشىش",
+ "Share link ({index})" : "ئورتاقلىشىش ئۇلىنىشى ({index})",
+ "Create public link" : "ئاممىۋى ئۇلىنىش قۇر",
+ "Actions for \"{title}\"" : "\"{title}\" نىڭ ھەرىكەتلىرى",
+ "Error, please enter proper password and/or expiration date" : "خاتالىق ، مۇۋاپىق پارول ۋە / ياكى مۇددىتى توشقان ۋاقىتنى كىرگۈزۈڭ",
+ "Link share created" : "ئۇلىنىش ئۈلۈشى قۇرۇلدى",
+ "Error while creating the share" : "ھەمبەھىرلەشتە خاتالىق",
+ "Please enter the following required information before creating the share" : "ئورتاقلىشىشتىن بۇرۇن تۆۋەندىكى زۆرۈر ئۇچۇرلارنى كىرگۈزۈڭ",
+ "Password protection (enforced)" : "پارولنى قوغداش (ئىجرا قىلىنىدۇ)",
+ "Password protection" : "Password protection",
+ "Enter a password" : "Enter a password",
+ "Create share" : "ئورتاقلىشىش",
+ "Customize link" : "ئۇلىنىشنى خاسلاشتۇرۇڭ",
+ "Generate QR code" : "QR كودى ھاسىل قىلىڭ",
+ "Add another link" : "باشقا ئۇلىنىش قوشۇڭ",
+ "Create a new share link" : "يېڭى ئورتاقلىشىش ئۇلىنىشى قۇر",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "تېز ھەمبەھىرلىنىش تاللانمىلىرى ، نۆۋەتتىكى تاللانغانلار \"{selectedOption}\"",
+ "View only" : "پەقەت كۆرۈش",
+ "Can edit" : "تەھرىرلىيەلەيدۇ",
+ "Custom permissions" : "ئىختىيارى ئىجازەت",
+ "Resharing is not allowed" : "قايتا تەقسىم قىلىشقا بولمايدۇ",
+ "Name or email …" : "ئىسىم ياكى ئېلخەت…",
+ "Name, email, or Federated Cloud ID …" : "ئىسمى ، ئېلېكترونلۇق خەت ياكى فېدېراتسىيە بۇلۇت كىملىكى…",
+ "Searching …" : "ئىزدەش…",
+ "No elements found." : "ھېچقانداق ئېلېمېنت تېپىلمىدى.",
+ "Search everywhere" : "ھەممە يەردىن ئىزدەڭ",
+ "Guest" : "مېھمان",
+ "Group" : "Group",
+ "Email" : "تورخەت",
+ "Team" : "Team",
+ "Talk conversation" : "پاراڭلىشىش",
+ "Deck board" : "پالۋان تاختىسى",
+ "ScienceMesh" : "ScienceMesh",
+ "on {server}" : "{server}",
+ "Note from" : "دىققەت قىلىڭ",
+ "Note:" : "ئەسكەرتىش:",
+ "File drop" : "ھۆججەت چۈشۈرۈش",
+ "Upload files to {foldername}." : "ھۆججەتلەرنى {foldername} نامىغا يۈكلەڭ.",
+ "By uploading files, you agree to the terms of service." : "ھۆججەتلەرنى يوللاش ئارقىلىق مۇلازىمەت شەرتلىرىگە قوشۇلىسىز.",
+ "View terms of service" : "مۇلازىمەت شەرتلىرىنى كۆرۈش",
+ "Terms of service" : "مۇلازىمەت شەرتلىرى",
+ "Share with email {email}" : "ئېلېكترونلۇق خەت {email} خەت}",
+ "Share with group" : "گۇرۇپپا بىلەن ئورتاقلىشىش",
+ "Share in conversation" : "سۆھبەتتە ئورتاقلىشىڭ",
+ "Share with {user} on remote server {server}" : "يىراقتىكى مۇلازىمېتىردا {user} بىلەن ئورتاقلىشىش {server}",
+ "Share with remote group" : "يىراق گۇرۇپپا بىلەن ئورتاقلىشىڭ",
+ "Share with guest" : "مېھمان بىلەن ئورتاقلىشىڭ",
+ "Update share" : "ھەمبەھىرنى يېڭىلاش",
+ "Save share" : "ئورتاقلىشىشنى ساقلاڭ",
+ "Read" : "ئوقۇ",
+ "Create" : "قۇر",
+ "Edit" : "تەھرىر",
+ "Share" : "ھەمبەھىر",
+ "Delete" : "ئۆچۈر",
+ "Replace current password" : "نۆۋەتتىكى پارولنى ئالماشتۇرۇڭ",
+ "Allow upload and editing" : "يوللاش ۋە تەھرىرلەشكە يول قويۇڭ",
+ "Allow editing" : "تەھرىرلەشكە يول قويۇڭ",
+ "Upload only" : "پەقەت يۈكلەڭ",
+ "Advanced settings" : "ئىلغار تەڭشەكلەر",
+ "Share label" : "ئورتاقلىشىش بەلگىسى",
+ "Set password" : "پارول بەلگىلەڭ",
+ "Password expires {passwordExpirationTime}" : "پارولنىڭ ۋاقتى توشىدۇ {passwordExpirationTime}",
+ "Password expired" : "پارولنىڭ ۋاقتى توشتى",
+ "Video verification" : "سىن دەلىللەش",
+ "Expiration date (enforced)" : "مۇددىتى توشقان (ئىجرا قىلىنغان)",
+ "Set expiration date" : "ۋاقتى توشىدۇ",
+ "Hide download" : "چۈشۈرۈشنى يوشۇرۇش",
+ "Allow download and sync" : "چۈشۈرۈش ۋە ماسقەدەملەشكە يول قويۇڭ",
+ "Note to recipient" : "تاپشۇرۇۋالغۇچىغا دىققەت قىلىڭ",
+ "Enter a note for the share recipient" : "ھەمبەھىر تاپشۇرۇۋالغۇچىغا خاتىرە يېزىڭ",
+ "Delete share" : "ھەمبەھىرنى ئۆچۈرۈڭ",
+ "Others with access" : "باشقىلار بار",
+ "No other accounts with access found" : "باشقا ھېساباتلار تېپىلمىدى",
+ "Toggle list of others with access to this directory" : "بۇ مۇندەرىجىگە ئېرىشەلەيدىغان باشقىلارنىڭ تىزىملىكىنى ئالماشتۇرۇڭ",
+ "Toggle list of others with access to this file" : "بۇ ھۆججەتنى زىيارەت قىلالايدىغان باشقىلارنىڭ تىزىملىكىنى ئالماشتۇرۇڭ",
+ "Unable to fetch inherited shares" : "مىراس قالغان پايلارنى ئالالمىدى",
+ "Link shares" : "ئۇلىنىش پايلىرى",
+ "Shares" : "Shares",
+ "Unable to load the shares list" : "پاي تىزىملىكىنى يۈكلىيەلمىدى",
+ "Expires {relativetime}" : "ۋاقتى {relativetime} ۋاقىت}",
+ "this share just expired." : "بۇ ئۈلۈشنىڭ ۋاقتى توشتى.",
+ "Shared with you by {owner}" : "{owner} سىز بىلەن ئورتاقلاشتى",
+ "Link to a file" : "ھۆججەتكە ئۇلىنىش",
+ "Open in Files" : "ھۆججەتلەرنى ئېچىڭ",
+ "Shared" : "ئورتاقلاشتى",
+ "Shared by {ownerDisplayName}" : "{ownerDisplayName} بىلەن ئورتاقلاشتى",
+ "Shared multiple times with different people" : "ئوخشىمىغان كىشىلەر بىلەن كۆپ قېتىم ئورتاقلاشتى",
+ "Shared with others" : "باشقىلار بىلەن ئورتاقلاشتى",
+ "Create file request" : "ھۆججەت تەلەپ قىلىش",
+ "Upload files to {foldername}" : "ھۆججەتلەرنى {foldername} نامىغا يۈكلەڭ",
+ "Public file share" : "ئاممىۋى ھۆججەت ئورتاقلىشىش",
+ "Publicly shared file." : "ئاشكارا ھۆججەت.",
+ "No file" : "ھۆججەت يوق",
+ "The file shared with you will show up here" : "سىز بىلەن ئورتاقلاشقان ھۆججەت بۇ يەردە كۆرۈنىدۇ",
+ "Public share" : "جامائەت ئۈلۈشى",
+ "Publicly shared files." : "ئورتاق بەھرىلىنىدىغان ھۆججەتلەر.",
+ "No files" : "ھۆججەت يوق",
+ "Files and folders shared with you will show up here" : "سىز بىلەن ئورتاقلاشقان ھۆججەت ۋە ھۆججەت قىسقۇچلار بۇ يەردە كۆرۈنىدۇ",
+ "Overview of shared files." : "ئورتاق ھۆججەتلەرنىڭ ئومۇمىي ئەھۋالى.",
+ "No shares" : "پاي يوق",
+ "Files and folders you shared or have been shared with you will show up here" : "سىز ئورتاقلاشقان ياكى سىز بىلەن ئورتاقلاشقان ھۆججەت ۋە ھۆججەت قىسقۇچلار بۇ يەردە كۆرۈنىدۇ",
+ "Shared with you" : "Shared with you",
+ "List of files that are shared with you." : "سىز بىلەن ئورتاقلاشقان ھۆججەتلەرنىڭ تىزىملىكى.",
+ "Nothing shared with you yet" : "ھازىرچە ھېچنېمە ھەمبەھىرلەنمىدى",
+ "Files and folders others shared with you will show up here" : "باشقىلار سىز بىلەن ئورتاقلاشقان ھۆججەت ۋە ھۆججەت قىسقۇچلار بۇ يەردە كۆرۈنىدۇ",
+ "List of files that you shared with others." : "باشقىلار بىلەن ئورتاقلاشقان ھۆججەتلەرنىڭ تىزىملىكى.",
+ "Nothing shared yet" : "ھازىرچە ھېچقانداق نەرسە ئورتاقلاشمىدى",
+ "Files and folders you shared will show up here" : "سىز ئورتاقلاشقان ھۆججەت ۋە ھۆججەت قىسقۇچلار بۇ يەردە كۆرۈنىدۇ",
+ "Shared by link" : "ئۇلىنىش ئارقىلىق ئورتاقلاشتى",
+ "List of files that are shared by link." : "ئۇلىنىش ئارقىلىق ھەمبەھىرلىنىدىغان ھۆججەتلەرنىڭ تىزىملىكى.",
+ "No shared links" : "ئورتاق ئۇلىنىش يوق",
+ "Files and folders you shared by link will show up here" : "ئۇلىنىش ئارقىلىق ئورتاقلاشقان ھۆججەت ۋە ھۆججەت قىسقۇچلار بۇ يەردە كۆرۈنىدۇ",
+ "File requests" : "ھۆججەت تەلەپلىرى",
+ "List of file requests." : "ھۆججەت تەلەپلىرى تىزىملىكى.",
+ "No file requests" : "ھۆججەت تەلەپ قىلمايدۇ",
+ "File requests you have created will show up here" : "سىز قۇرغان ھۆججەت تەلەپلىرى بۇ يەردە كۆرۈنىدۇ",
+ "Deleted shares" : "ئۆچۈرۈلگەن پايلار",
+ "List of shares you left." : "سىز قالدۇرغان پاي تىزىملىكى.",
+ "No deleted shares" : "ئۆچۈرۈلگەن پاي يوق",
+ "Shares you have left will show up here" : "سىز قالدۇرغان پايلار بۇ يەردە كۆرۈنىدۇ",
+ "Pending shares" : "ساقلىنىۋاتقان پايلار",
+ "List of unapproved shares." : "تەستىقتىن ئۆتمىگەن پاي تىزىملىكى.",
+ "No pending shares" : "ساقلىنىۋاتقان پاي يوق",
+ "Shares you have received but not approved will show up here" : "تاپشۇرۇۋالغان ، ئەمما تەستىقلانمىغان پايلار بۇ يەردە كۆرۈنىدۇ",
+ "Error updating the share: {errorMessage}" : "ھەمبەھىرنى يېڭىلاشتا خاتالىق: {errorMessage}",
+ "Error updating the share" : "ھەمبەھىرنى يېڭىلاشتا خاتالىق",
+ "File \"{path}\" has been unshared" : "ھۆججەت \"{path}\" ھەمبەھىرلەنمىدى",
+ "Folder \"{path}\" has been unshared" : "ھۆججەت قىسقۇچ \"{path}\" ئورتاقلاشمىدى",
+ "Could not update share" : "ھەمبەھىرنى يېڭىلىيالمىدى",
+ "Share saved" : "ھەمبەھىرلەندى",
+ "Share expiry date saved" : "ئورتاقلىشىش ۋاقتى ساقلاندى",
+ "Share hide-download state saved" : "ھەمبەھىرلەش-چۈشۈرۈش ھالىتى ئورتاقلاشتى",
+ "Share label saved" : "ئورتاقلىشىش بەلگىسى ساقلاندى",
+ "Share note for recipient saved" : "تاپشۇرۇۋالغۇچى ئۈچۈن خاتىرە قالدۇرۇڭ",
+ "Share password saved" : "پارولنى ئورتاقلاشتى",
+ "Share permissions saved" : "ئورتاقلىشىش ئىجازەتلىرى ساقلاندى",
+ "Upload files to {folder}" : "ھۆججەتلەرنى {folder} يۈكلەڭ",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ھۆججەت قىسقۇچنى سىز بىلەن ئورتاقلاشتى.",
"Shared by" : "ھەمبەھىرلىگۈچى",
- "Sharing" : "ھەمبەھىر",
- "Password" : "ئىم",
+ "Shared with" : "بىلەن ئورتاقلاشتى",
+ "Password created successfully" : "پارول مۇۋەپپەقىيەتلىك قۇرۇلدى",
+ "Error generating password from password policy" : "پارول سىياسىتىدىن پارول ھاسىل قىلىشتا خاتالىق",
+ "Shared with you and the group {group} by {owner}" : "سىز ۋە گۇرۇپپا {group} بىلەن ئورتاقلاشتى {owner}",
+ "Shared with you and {circle} by {owner}" : "سىز بىلەن ھەمبەھىرلەنگەن {circle} {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "سىز بىلەن ھەمبەھىرلەنگەن سۆھبەت {conversation} {owner} تەرىپىدىن",
+ "Shared with you in a conversation by {owner}" : "{owner} نىڭ سۆھبىتىدە سىز بىلەن ئورتاقلاشتى",
+ "Share not found" : "ھەمبەھىر تېپىلمىدى",
+ "Back to %s" : "% S گە قايتىش",
+ "Add to your Nextcloud" : "Nextcloud غا قوشۇڭ",
+ "Waiting…" : "ساقلاش…",
+ "error" : "خاتالىق",
+ "finished" : "تاماملاندى",
+ "This will stop your current uploads." : "بۇ سىزنىڭ نۆۋەتتىكى يۈكلىنىشىڭىزنى توختىتىدۇ.",
+ "Move or copy" : "يۆتكەش ياكى كۆچۈرۈش",
+ "You can upload into this folder" : "بۇ ھۆججەت قىسقۇچقا يۈكلىسىڭىز بولىدۇ",
+ "Show list view" : "تىزىملىك كۆرۈنۈشىنى كۆرسىتىش",
+ "Show grid view" : "كاتەكچە كۆرۈنۈشنى كۆرسىتىش",
+ "No compatible server found at {remote}" : "{remote} ماس كېلىدىغان مۇلازىمېتىر تېپىلمىدى",
+ "Invalid server URL" : "مۇلازىمېتىر URL ئىناۋەتسىز",
+ "Failed to add the public link to your Nextcloud" : "Nextcloud غا ئاممىۋى ئۇلىنىشنى قوشالمىدى",
+ "You are not allowed to edit link shares that you don't own" : "ئۆزىڭىز ئىگە بولمىغان ئۇلىنىش ھەمبەھىرلىرىنى تەھرىرلىشىڭىزگە رۇخسەت قىلىنمايدۇ",
+ "Download all files" : "بارلىق ھۆججەتلەرنى چۈشۈرۈڭ",
+ "Link copied to clipboard" : "ئۇلىنىش چاپلاش تاختىسىغا كۆچۈرۈلدى",
+ "Copy to clipboard" : "چاپلاش تاختىسىغا كۆچۈرۈڭ",
+ "Copy internal link to clipboard" : "ئىچكى ئۇلىنىشنى چاپلاش تاختىسىغا كۆچۈرۈڭ",
+ "Only works for people with access to this folder" : "پەقەت بۇ ھۆججەت قىسقۇچنى زىيارەت قىلالايدىغان كىشىلەر ئۈچۈن ئىشلەيدۇ",
+ "Only works for people with access to this file" : "پەقەت بۇ ھۆججەتنى زىيارەت قىلالايدىغان كىشىلەر ئۈچۈن ئىشلەيدۇ",
+ "Copy public link of \"{title}\" to clipboard" : "«{title}» نىڭ ئاممىۋى ئۇلىنىشىنى چاپلاش تاختىسىغا كۆچۈرۈڭ",
+ "Search globally" : "دۇنيا مىقياسىدا ئىزدەڭ",
+ "Search for share recipients" : "ھەمبەھىر تاپشۇرۇۋالغۇچىلارنى ئىزدەڭ",
+ "No recommendations. Start typing." : "تەۋسىيە يوق. يېزىشنى باشلاڭ.",
+ "To upload files, you need to provide your name first." : "ھۆججەتلەرنى يوللاش ئۈچۈن ئالدى بىلەن ئىسمىڭىزنى تەمىنلىشىڭىز كېرەك.",
+ "Enter your name" : "ئىسمىڭىزنى كىرگۈزۈڭ",
+ "Submit name" : "ئىسىم يوللاڭ",
+ "Share with {userName}" : "{userName} بىلەن ئورتاقلىشىڭ",
+ "Show sharing options" : "ئورتاقلىشىش تاللانمىلىرىنى كۆرسەت",
+ "Share note" : "ئورتاقلىشىش خاتىرىسى",
+ "Upload files to %s" : "ھۆججەتلەرنى% s غا يۈكلەڭ",
+ "%s shared a folder with you." : "% s ھۆججەت قىسقۇچنى سىز بىلەن ئورتاقلاشتى.",
+ "Note" : "دىققەت",
+ "Select or drop files" : "ھۆججەتلەرنى تاللاڭ ياكى تاشلاڭ",
+ "Uploading files" : "ھۆججەتلەرنى يۈكلەش",
+ "Uploaded files:" : "يۈكلەنگەن ھۆججەتلەر:",
+ "By uploading files, you agree to the %1$sterms of service%2$s." : "ھۆججەت يوللاش ئارقىلىق%1 $ مۇلازىمەتنىڭ%2 $ s گە قوشۇلىسىز.",
"Name" : "ئاتى",
- "Download" : "چۈشۈر"
-},"pluralForm" :"nplurals=1; plural=0;"
+ "Filename must not be empty." : "ھۆججەت ئىسمى بوش بولماسلىقى كېرەك."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/uk.js b/apps/files_sharing/l10n/uk.js
index b15c17b18dd..9b3f841b980 100644
--- a/apps/files_sharing/l10n/uk.js
+++ b/apps/files_sharing/l10n/uk.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Зачекайте...",
- "error" : "помилка",
- "finished" : "завершено",
- "This will stop your current uploads." : "Ця дія призведе до зупинки поточних завантажень на сервер.",
- "Move or copy" : "Перемістити або копіювати",
- "Download" : "Звантажити",
- "Delete" : "Вилучити",
- "You can upload into this folder" : "Ви можете завантажити до цього каталогу",
- "Terms of service" : "Умови використання",
- "Show list view" : "Подання списком",
- "Show grid view" : "Подання сіткою",
- "No compatible server found at {remote}" : "Відсутній сумісний сервер за адресою {remote}",
- "Invalid server URL" : "Недійсна адреса сервера URL",
- "Failed to add the public link to your Nextcloud" : "Не вдалося додати загальнодоступне посилання до вашого Nextcloud",
"File shares" : "Спільні файли",
"Downloaded via public link" : "Звантажено за публічним посиланням",
"Downloaded by {email}" : "Завантажено через {email}",
@@ -37,7 +23,7 @@ OC.L10N.register(
"{actor} removed public link" : "{actor} вилучив(-ла) публічне посилання",
"Public link of {actor} expired" : "Термін дії публічного посилання {actor} вичерпано",
"You shared {file} as public link" : "Ви поділилися {file} за допомогою публічного посилання",
- "You removed public link for {file}" : "Ви вилучили публічне посилання для файла {file}",
+ "You removed public link for {file}" : "Ви вилучили публічне посилання для {file}",
"Public link expired for {file}" : "Термін дії посилання сплив для файла {file}",
"{actor} shared {file} as public link" : "{actor} надав(-ла) доступ до файлу {file} через публічне посилання",
"{actor} removed public link for {file}" : "{actor} вилучив(-ла) публічне посилання для {file}",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "Термін дії доступу {user} до спільного ресурсу {file} вичерпано",
"Share for file {file} expired" : "Термін дії спільного доступу до {file} вичерпано",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Файл або каталог, яким поділилився через ел.пошту або публічне посилання було <strong>звантажено</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Файли було <strong>завантажено</strong> до каталогу, яким поділилися через ел. пошту або через публічне посилання",
"A file or folder was shared from <strong>another server</strong>" : "Файлом або каталогом поділилися з <strong>іншого сервера</strong>",
- "Files" : "Файли",
+ "Sharing" : "Спільне",
"A file or folder has been <strong>shared</strong>" : "Файл або каталог було відкрито для <strong>спільного доступу</strong>",
"Shared link" : "Посилання на спільний доступ",
"Wrong share ID, share does not exist" : "Неправильний ідентифікатор спільного ресурсу: такий ресурс відсутній",
@@ -78,34 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "Будь ласка, зазначте шлях до файла або каталогу",
"Wrong path, file/folder does not exist" : "Неправильний шлях, такий файл або каталог відсутні",
"Could not create share" : "Неможливо створити спільний ресурс",
- "Invalid permissions" : "Некоректні повноваження",
- "Invalid date, date format must be YYYY-MM-DD" : "Недійсна дата, формат дати має бути РРРР-ММ-ДД",
"Please specify a valid account to share with" : "Зазначте дійсний обліковий запис, з яким ви хочете поділитися",
"Group sharing is disabled by the administrator" : "Груповий спільний доступ вимкнено адміністратором",
"Please specify a valid group" : "Будь ласка, зазначте дійсну групу",
"Public link sharing is disabled by the administrator" : "Адміністратор вимкнув спільний доступ за публічним посиланням",
- "Public upload disabled by the administrator" : "Публічне завантаження вимкнено адміністратором",
- "Public upload is only possible for publicly shared folders" : "Публічне завантаження можливе лише для каталогів з публічним доступом",
+ "Please specify a valid email address" : "Зазначте дійсну адресу ел. пошти",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Виникла помилка під час надання доступу до %s, оскільки Nextcloud Talk не активний й відтак неможливо надіслати пароль.",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Неможливо поділитися %1$s, оскільки бекенд не дозволяє надавати доступ категорії %2$s",
"Please specify a valid federated account ID" : "Зазначте дійсний ідентифікатор облікового запис об'єднаної хмари",
"Please specify a valid federated group ID" : "Будь ласка, зазначте дійсний ідентифікатор групи об'єднаної хмари",
- "You cannot share to a Circle if the app is not enabled" : "Ви не можете поділитися у Circle, оскільки застосунок не активний",
- "Please specify a valid circle" : "Будь ласка, зазначте дійсне коло",
+ "You cannot share to a Team if the app is not enabled" : "Неможливо поділитися з командою, якщо застосунок не увімкнено",
+ "Please specify a valid team" : "Виберіть дійсну команду",
"Sharing %s failed because the back end does not support room shares" : "Помилка спільного доступу %s, оскільки серверна частина не підтримує спільний доступ до кімнат",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Спільне використання %s не вдалося, оскільки бекенд не підтримує спільне використання ScienceMesh",
"Unknown share type" : "Невідомий тип спільного ресурсу",
"Not a directory" : "Не каталог",
"Could not lock node" : "Не вдалося заблокувати вузол",
- "Could not lock path" : "Не вдалося заблокувати шлях",
- "Wrong or no update parameter given" : "Вказано неправильний або відсутній параметр оновлення",
+ "Public upload is only possible for publicly shared folders" : "Публічне завантаження можливе лише для каталогів з публічним доступом",
"Share must at least have READ or CREATE permissions" : "Спільний доступ має щонайменше мати дозволи READ (читання) або CREATE (створення)",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Для спільного доступу потрібно щонайменше призначити дозволи READ (читання) або CREATE (створення)",
+ "Public upload disabled by the administrator" : "Публічне завантаження вимкнено адміністратором",
+ "Could not lock path" : "Не вдалося заблокувати шлях",
+ "no sharing rights on this item" : "відсутні права на спільний доступ для цього ресурсу",
+ "You are not allowed to edit incoming shares" : "У вас відсутні права на редагування спільних ресурсів, якими з вами поділилися",
+ "Wrong or no update parameter given" : "Вказано неправильний або відсутній параметр оновлення",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Не вдалося надіслати пароль для спільного доступу до файлу чи каталогу з використанням Nextcloud Talk, оскільки цей застосунок вимкнено.",
+ "Custom share link tokens have been disabled by the administrator" : "Власні токени спільних ресурсів вимкнено адміністратором",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Токени мають містити щонайменше 1 символ, можуть складатися тільки з літер, цифр або дефісу",
+ "Invalid date. Format must be YYYY-MM-DD" : "Недійсна дата. Дата має бути у форматі рік-місяць-число",
+ "No sharing rights on this item" : "Відсутні права на спільний доступ для цього ресурсу",
+ "Invalid share attributes provided: \"%s\"" : "Отримано недійсні атрибути спільного доступу для \"%s\"",
+ "You are not allowed to send mail notifications" : "У вас відсутні права надсилати сповіщення ел. поштою",
+ "No mail notification configured for this share type" : "Для цього типу ресурсів спільного доступу не налаштовано сповіщення ел. поштою",
+ "Wrong password" : "Недійсний пароль",
+ "Error while sending mail notification" : "Помилка під час надсилання сповіщення ел. поштою",
+ "Failed to generate a unique token" : "Не вдалося створити унікальний токен",
+ "This share does not exist or is no longer available" : "Спільний ресурс не існує або більше не доступний",
"shared by %s" : "поділилися %s",
- "Download all files" : "Звантажити всі файли",
- "Direct link" : "Пряме посилання",
+ "Download" : "Звантажити",
"Add to your %s" : "Додайте до свого %s",
+ "Direct link" : "Пряме посилання",
"Share API is disabled" : "API для надання доступу вимкнено",
"File sharing" : "Обмін файлами",
"Share will expire tomorrow" : "Термін дії спільного доступу спливає завтра",
@@ -114,69 +113,133 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "(user) надав(-ла) вам доступ до спільного ресурсу {share} в групі {group}",
"Accept" : "Прийняти",
"Decline" : "Відхилити",
- "Sharing" : "Спільне",
- "Accept shares from other accounts and groups by default" : "Типово приймати пропозиції спільного доступу від інших користувачів та груп",
+ "Remember to upload the files to %s" : "Пам'ятати про завантаження файлів до %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Нагадування про те, що ви ще не завантажили жодного файлу до спільного каталогу.",
+ "Open \"%s\"" : "Відкрити \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Ця програма дозволяє користувачам обмінюватися файлами в Nextcloud. Якщо ця функція увімкнена, адміністратор може вибрати, які групи можуть обмінюватися файлами. Відповідні користувачі можуть обмінюватися файлами та каталогами з іншими обліковими записами та групами в Nextcloud. Крім того, якщо адміністратор увімкне функцію спільного доступу за посиланням, зовнішнє посилання можна використовувати для обміну файлами з іншими людьми поза Nextcloud. Адміністратори також можуть встановлювати паролі, терміни дії та вмикати обмін між серверами за допомогою посилань для спільного доступу, а також обмін з мобільних пристроїв.\n\nВимкнення цієї функції видаляє спільні файли та каталоги на сервері для всіх одержувачів спільного доступу, а також на клієнтах синхронізації та в мобільних додатках. Більше інформації можна знайти в документації Nextcloud.",
+ "People" : "Користувачі",
+ "Filter accounts" : "Вибрати користувачів",
+ "The request will expire on {date} at midnight and will be password protected." : "Термін дії запиту спливе опівночі {date}, запит буде захищено паролем. ",
+ "The request will expire on {date} at midnight." : "Термін дії запиту спливе опівночі {date}.",
+ "The request will be password protected." : "Запит буде захищено паролем",
+ "When should the request expire?" : "Коли спливе час дії запиту?",
+ "Set a submission expiration date" : "Встановити останню дату надання в доступ",
+ "Expiration date" : "Термін дії",
+ "Select a date" : "Виберіть дату",
+ "Your administrator has enforced a {count} days expiration policy." : "Адміністратор встановив політику: через {count} днів буде завершено доступ до ресурсу.",
+ "What password should be used for the request?" : "Який пароль має використовуватися для цього запиту?",
+ "Set a password" : "Встановити пароль",
+ "Password" : "Пароль",
+ "Enter a valid password" : "Зазначте дійсний пароль",
+ "Generate a new password" : "Створити новий пароль",
+ "Your administrator has enforced a password protection." : "Адміністратор встановив політику захисту паролем ",
+ "Automatically copying failed, please copy the share link manually" : "Помилка під час автоматичного копіювання. Скопіюйте вручну посилання на спільний ресурс.",
+ "Link copied" : "Посилання скопійовано",
+ "Email already added" : "Ел. адресу вже додано",
+ "Invalid email address" : "Недійсна адреса ел. пошти",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["{emails} ел. адреса не є дійсною ","{emails} ел. адреси не є дійсними ","{emails} ел. адрес не є дійсними ","{emails} ел. адрес не є дійсними "],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} ел. адресу вже додано","{count} ел. адреси вже додано","{count} ел. адрес вже додано","{count} ел. адрес вже додано"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} ел. адресу додано","{count} ел. адреси додано","{count} ел. адрес додано","{count} ел. адрес додано"],
+ "You can now share the link below to allow people to upload files to your directory." : "Тепер ви можете поділитися посиланням, за яким користувачі матимуть змогу завантажити файли до вашого каталогу. ",
+ "Share link" : "Передати у публічний доступ",
+ "Copy" : "Копіювати",
+ "Send link via email" : "Надіслати посилання електронною поштою",
+ "Enter an email address or paste a list" : "Зазначте ел. адресу або список адрес",
+ "Remove email" : "Вилучити ел. адресу",
+ "Select a destination" : "Вибрати призначення",
+ "Select" : "Вибрати",
+ "What are you requesting?" : "Що ви хочете отримати?",
+ "Request subject" : "Тема запиту",
+ "Birthday party photos, History assignment…" : "Світлини зі святкування уродин, завдання з історії...",
+ "Where should these files go?" : "Для кого ці файли?",
+ "Upload destination" : "Завантажити призначення",
+ "Revert to default" : "Повернути до типових налаштувань",
+ "The uploaded files are visible only to you unless you choose to share them." : "Файли, які було завантажено, будуть доступні тільки вам, допоки ви не поділитеся ними.",
+ "Add a note" : "Додати примітку",
+ "Note for recipient" : "Примітка для отримувача",
+ "Add a note to help people understand what you are requesting." : "Додати примітку, щоб допомогти користувачам зрозуміти, що вони запитують.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Ви можете додавати посилання, дати або іншу інформацію, яка допоможе зрозуміти отримувачам, що ви від них просите.",
+ "Close" : "Закрити",
+ "_Send email and close_::_Send {count} emails and close_" : ["Надіслати ел. лист та закрити","Надіслати {count} ел. листи та закрити","Надіслати {count} ел. листів та закрити","Надіслати {count} ел. листів та закрити"],
+ "Please select a folder, you cannot share the root directory." : "Виберіть каталог, неможливо поділитися кореневим каталогом.",
+ "File request created" : "Запит на файл створено",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Створено запит на файл та надіслано ел. лист","Створено запит на файл та надіслано {count} ел. листи","Створено запит на файл та надіслано {count} ел. листів","Створено запит на файл та надіслано {count} ел. листів"],
+ "Error creating the share: {errorMessage}" : "Помилка під час створення спільного ресурсу: {errorMessage}",
+ "Error creating the share" : "Помилка під час створення спільного ресурсу",
+ "Error sending emails: {errorMessage}" : "Помилка під час надсилання ел. пошти: {errorMessage}",
+ "Error sending emails" : "Помилка під час надсилання ел. пошти",
+ "Create a file request" : "Створити запит на файл",
+ "Collect files from others even if they do not have an account." : "Отримати файли від інших користувачів, навіть якщо у них відсутній обліковий запис. ",
+ "To ensure you can receive files, verify you have enough storage available." : "Щоби впевнитися, що ви можете отримувати файли, перевірте, що у вас достатньо дискового простору.",
+ "File request" : "Запит на файл",
+ "Previous step" : "Назад",
+ "Cancel" : "Скасувати",
+ "Cancel the file request creation" : "Скасувати створення запиту на файл",
+ "Close without sending emails" : "Закрити без надсилання ел. пошти",
+ "Continue" : "Продовжити",
"Error while toggling options" : "Помилка під час зміни параметрів",
- "Set default folder for accepted shares" : "Встановити типовий каталог для прийнятих спільних ресурсів",
- "Reset" : "Скидання",
- "Reset folder to system default" : "Відновити типові системні налаштування для каталогу",
+ "Accept shares from other accounts and groups by default" : "Типово приймати пропозиції спільного доступу від інших користувачів та груп",
"Choose a default folder for accepted shares" : "Виберіть типовий каталог, куди зберігатимуться прийняті спільні ресурси",
"Invalid path selected" : "Вибрано неправильний шлях",
"Unknown error" : "Невідома помилка",
- "Open Sharing Details" : "Відкрити деталі спільного доступу",
+ "Set default folder for accepted shares" : "Встановити типовий каталог для прийнятих спільних ресурсів",
+ "Reset" : "Скидання",
+ "Reset folder to system default" : "Відновити типові системні налаштування для каталогу",
+ "Share expiration: {date}" : "У спільному доступі до: {date}",
+ "Share Expiration" : "Термін дії спільного ресурсу:",
"group" : "група",
"conversation" : "розмова",
"remote" : "віддалений",
"remote group" : "віддалена група",
"guest" : "гість",
+ "by {initiator}" : "{initiator}",
"Shared with the group {user} by {owner}" : "Надав доступ групі {user} {owner}",
"Shared with the conversation {user} by {owner}" : "{owner} поділив(-ла-)ся в чаті {user}",
"Shared with {user} by {owner}" : "{owner} поділив(-ла-)ся з {user}",
+ "Open Sharing Details" : "Відкрити деталі спільного доступу",
"Added by {initiator}" : "Додано {initiator}",
"Via “{folder}”" : "Через “{folder}”",
"Unshare" : "Закрити доступ",
- "Internal link" : "Внутрішнє посилання",
"Cannot copy, please copy the link manually" : "Неможливо скопіювати, скопіюйте посилання вручну",
- "Copy internal link to clipboard" : "Копіювати внутрішнє посилання до буферу обміну",
- "Only works for people with access to this folder" : "Доступно лише тим користувачам, які мають доступ до цього каталогу",
- "Only works for people with access to this file" : "Доступно лише тим користувачам, які мають доступ до цього файлу",
- "Link copied" : "Посилання скопійовано",
- "Please enter the following required information before creating the share" : "Будь ласка, введіть таку інформацію перед наданням спільного доступу",
- "Password protection (enforced)" : "Захист паролем (обов'язково)",
- "Password protection" : "Password protection",
- "Enter a password" : "Зазначте пароль",
- "Expiration date (enforced)" : "Термін дії (обов'язково)",
- "Enter a date" : "Зазначте дату",
- "Create share" : "Створити спільний ресурс",
- "Cancel" : "Скасувати",
- "Customize link" : "Власне посилання",
- "Generate QR code" : "Створити QR-код",
- "Add another link" : "Додати інше посилання",
- "Create a new share link" : "Створити нове посилання спільного доступу",
+ "Copy internal link" : "Копіювати посилання",
+ "For people who already have access" : "Для людей, які вже мають доступ",
+ "Internal link" : "Внутрішнє посилання",
"{shareWith} by {initiator}" : "{shareWith} від {initiator}",
"Shared via link by {initiator}" : "Спільний доступ через посилання від {initiator}",
+ "File request ({label})" : "Запит на файл ({label})",
"Mail share ({label})" : "Спільний доступ через пошту ({label})",
"Share link ({label})" : "Поділитися посиланням ({label})",
+ "Mail share" : "Спільний ресурс через ел. пошту",
"Share link ({index})" : "Поділитися посиланням ({index})",
- "Share link" : "Посилання на спільний доступ",
+ "Create public link" : "Створити публічне посилання",
"Actions for \"{title}\"" : "Дія для \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Копіювати публічне посилання \"{title}\" до буферу пам'яти",
+ "Copy public link of \"{title}\"" : "Скопіювати публічне посилання на «{title}»",
"Error, please enter proper password and/or expiration date" : "Помилка. Будь ласка, зазначте правильний пароль та/або термін дії",
"Link share created" : "Створено посилання на спільний ресурс",
"Error while creating the share" : "Помилка під час створення спільного ресурсу",
+ "Please enter the following required information before creating the share" : "Зазначте такі дані перед наданням у публічний доступ",
+ "Password protection (enforced)" : "Захист паролем (обов'язково)",
+ "Password protection" : "Захист паролем",
+ "Enter a password" : "Зазначте пароль",
+ "Enable link expiration (enforced)" : "Увімкнути термін дії посилання (примусово)",
+ "Enable link expiration" : "Увімкнути термін дії посилання",
+ "Enter expiration date (enforced)" : "Зазначте термін дії (примусово)",
+ "Enter expiration date" : "Зазначте термін дії",
+ "Create share" : "Створити спільний ресурс",
+ "Customize link" : "Власне посилання",
+ "Generate QR code" : "Створити QR-код",
+ "Add another link" : "Додати інше посилання",
+ "Create a new share link" : "Створити нове посилання спільного доступу",
"Quick share options, the current selected is \"{selectedOption}\"" : "Швидкі параметри спільного доступу, зараз вибрано \"{selectedOption}\"",
"View only" : "Лише перегляд",
- "Can edit" : "Можна редагувати",
- "File drop" : "Відкинути файл",
+ "Can edit" : "Може редагувати",
"Custom permissions" : "Спеціальні дозволи",
- "Search for share recipients" : "Виберіть отримувачів",
- "No recommendations. Start typing." : "Відсутні рекомендації. Будь ласка, додайте.",
"Resharing is not allowed" : "Надання спільного доступу іншим не дозволяється",
"Name or email …" : "Ім'я або електронна адреса …",
"Name, email, or Federated Cloud ID …" : "Ім’я, адреса електронної пошти або ідентифікатор хмари…",
"Searching …" : "Пошук...",
"No elements found." : "Елементи не знайдено.",
- "Search globally" : "Шукати всюди",
+ "Search everywhere" : "Шукати всюди",
"Guest" : "Гість",
"Group" : "Група",
"Email" : "Ел.пошта",
@@ -185,68 +248,99 @@ OC.L10N.register(
"Deck board" : "Дошка Deck",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "на {server}",
+ "Enter external recipients" : "Зазначте зовнішніх отримувачів",
+ "Search for internal recipients" : "Шукати внутрішніх отримувачів",
+ "Note from" : "Примітка від",
+ "Note:" : "Примітка:",
+ "File drop" : "Перетягнути файл",
+ "Upload files to {foldername}." : "Завантажити файли до {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Завантаження файлів означає, що ви погоджуєтеся з умовами користування.",
+ "Successfully uploaded files" : "Успішно завантажено файли",
+ "View terms of service" : "Переглянути умови користування.",
+ "Terms of service" : "Умови використання",
+ "Share with {user}" : "Поділитися з {user}",
+ "Share with email {email}" : "Поділитися через ел.пошту {email}",
+ "Share with group" : "Поділитися з групою",
+ "Share in conversation" : "Поширити в розмові ",
+ "Share with {user} on remote server {server}" : "Поділитися з {user} на віддаленому сервері {server}",
+ "Share with remote group" : "Поділитися з віддаленою групою",
+ "Share with guest" : "Поділитися з гостем",
+ "Update share" : "Оновити спільний ресурс",
+ "Save share" : "Зберегти спільний ресурс",
+ "Read" : "Читати",
+ "Create" : "Створити",
+ "Edit" : "Редагувати",
+ "Share" : "Спільне",
+ "Delete" : "Вилучити",
+ "Password field cannot be empty" : "Поле з паролем має бути заповнено",
+ "Replace current password" : "Замінити поточний пароль",
+ "Failed to generate a new token" : "Не вдалося створити новий токен",
"Allow upload and editing" : "Може завантажувати та редагувати",
"Allow editing" : "Може редагувати",
"Upload only" : "Тільки завантаження",
"Advanced settings" : "Розширені",
"Share label" : "Мітка спільного ресурсу",
+ "Share link token" : "Токен спільного ресурсу",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Встановити публічне посилання на спільний ресурс у просту для запам'ятовування назву або створити новий токен. Не рекомендується використовувати токени, які можна легко вгадати для спільних ресурсів, які містять чутливі дані.",
+ "Generating…" : "Створення...",
+ "Generate new token" : "Створити новий токен",
"Set password" : "Встановити пароль",
- "Password" : "Пароль",
"Password expires {passwordExpirationTime}" : "Термін дії пароля {passwordExpirationTime}",
"Password expired" : "Термін дії пароля вичерпано",
"Video verification" : "Відеоперевірка",
+ "Expiration date (enforced)" : "Термін дії (обов'язково)",
"Set expiration date" : "Встановити термін дії",
- "Expiration date" : "Термін дії",
"Hide download" : "Приховати звантаження",
- "Allow download" : "Дозволити звантаження",
+ "Allow download and sync" : "Дозволити звантаження та синхронізацію",
"Note to recipient" : "Примітка для одержувача",
"Enter a note for the share recipient" : "Додайте нотатку для одержувача доступу до спільного ресурсу",
- "Read" : "Читати",
- "Create" : "Створити",
- "Edit" : "Редагувати",
- "Share" : "Спільне",
+ "Show files in grid view" : "Подання файлів сіткою",
"Delete share" : "Вилучити зі спільного доступу",
- "Share with {userName}" : "Поділитися з {userName}",
- "Share with group" : "Поділитися з групою",
- "Share in conversation" : "Поширити в розмові ",
- "Share with remote group" : "Поділитися з віддаленою групою",
- "Share with guest" : "Поділитися з гостем",
- "Update share" : "Оновити спільний ресурс",
- "Save share" : "Зберегти спільний ресурс",
"Others with access" : "Доступ для інших",
"No other accounts with access found" : "Більше не знайдено користувачів, які мають доступ",
"Toggle list of others with access to this directory" : "Перемкнути подання списку інших користувачів, які мають доступ до цього каталогу",
"Toggle list of others with access to this file" : "Перемкнути подання списку інших, які мають доступ до цього файлу",
"Unable to fetch inherited shares" : "Неможливо отримати успадковані спільні ресурси",
+ "Link shares" : "Посилання на спільні ресурси",
+ "Shares" : "Спільні",
+ "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Діліться файлами всередині своєї організації. Одержувачі, які вже мають доступ до файлу, також можуть скористатися цим посиланням для зручного доступу.",
+ "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Діліться файлами з іншими користувачами поза вашою організацією за допомогою публічних посилань та електронних адрес. Ви також можете ділитися файлами з обліковими записами Nextcloud на інших серверах, використовуючи їх федеративний хмарний ідентифікатор.",
+ "Shares from apps or other sources which are not included in internal or external shares." : "Акції з додатків або інших джерел, які не включені до внутрішніх або зовнішніх акцій.",
+ "Type names, teams, federated cloud IDs" : "Назви типів, команди, ідентифікатори федеративної хмари",
+ "Type names or teams" : "Назви типів або команд",
+ "Type a federated cloud ID" : "Введіть ідентифікатор федеративної хмари",
+ "Type an email" : "Введіть адресу електронної пошти",
+ "Type an email or federated cloud ID" : "Введіть адресу електронної пошти або ідентифікатор федеративної хмари",
"Unable to load the shares list" : "Не вдалося завантажити список спільних ресурсів",
"Expires {relativetime}" : "Термін дії закінчується {relativetime}",
"this share just expired." : "термін дії спільного доступу вичерпано.",
"Shared with you by {owner}" : "{owner} поділив(-ла-)ся з вами",
+ "Internal shares" : "Внутрішні спільні ресурси",
+ "Internal shares explanation" : "Опис внутрішніх спільних ресурсів",
+ "External shares" : "Зовнішні спільні ресурси",
+ "External shares explanation" : "Опис зовнішніх спільних ресурсів",
+ "Additional shares" : "Додаткові спільні ресурси",
+ "Additional shares explanation" : "Опис додаткових спільних ресурсів",
+ "Link to a file" : "Посилання на файл",
"_Accept share_::_Accept shares_" : ["Прийняти запит на спільний ресурс","Прийняти запит на спільні ресурси","Прийняти запит на спільні ресурси","Схвалити запит на спільні ресурси"],
"Open in Files" : "Відкрити у Файлах",
"_Reject share_::_Reject shares_" : ["Скасувати запит на спільний ресурс","Скасувати запит на спільні ресурси","Скасувати запит на спільні ресурси","Скасувати запит на спільні ресурси"],
"_Restore share_::_Restore shares_" : ["Відновити спільний ресурс","Відновити спільні ресурси","Відновити спільні ресурси","Відновити спільні ресурси"],
"Shared" : "Спільні",
- "Shared multiple times with different people" : "Поділилися кілька разів з різними людьми",
"Shared by {ownerDisplayName}" : "{ownerDisplayName} надав(-ла) доступ",
- "Show sharing options" : "Показати налаштування спільного доступу",
- "Link to a file" : "Посилання на файл",
- "Error creating the share: {errorMessage}" : "Помилка під час створення спільного ресурсу: {errorMessage}",
- "Error creating the share" : "Помилка під час створення спільного ресурсу",
- "Error updating the share: {errorMessage}" : "Помилка під час оновлення спільного ресурсу: {errorMessage}",
- "Error updating the share" : "Помилка оновлення спільного ресурсу",
- "File \"{path}\" has been unshared" : "Файл \"{path} вилучено зі спільного доступу",
- "Folder \"{path}\" has been unshared" : "Каталог \"{path}\" було вилучено зі спільного доступу",
- "Share {propertyName} saved" : "Спільний ресурс {propertyName} збережено",
- "Shared by" : "Поділилися",
- "Shared with" : "Спільний доступ з",
- "Password created successfully" : "Успішно створено пароль",
- "Error generating password from password policy" : "Помилка під час створення пароля згідно з політикою паролів",
- "Shared with you and the group {group} by {owner}" : " {owner} надав доступ вам та групі {group}",
- "Shared with you and {circle} by {owner}" : "{owner} надав доступ вам та колу {circle}",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} надав доступ вам та у чаті {conversation}",
- "Shared with you in a conversation by {owner}" : "{owner} поділив(-ла-)ся з вами у чаті",
- "Shares" : "Спільні",
+ "Shared multiple times with different people" : "Поділилися кілька разів з різними людьми",
+ "Sharing options" : "Параметри спільного доступу",
+ "Shared with others" : "Ви поділилися",
+ "Create file request" : "Створити запит на файл",
+ "Upload files to {foldername}" : "Завантажити файли до {foldername}",
+ "Public file share" : "Публічний спільний ресурс",
+ "Publicly shared file." : "Пубічно доступний файл.",
+ "No file" : "Немає файлу",
+ "The file shared with you will show up here" : "Файл, яким поділилися з вами, буде показано тут",
+ "Public share" : "Спільний ресурс",
+ "Publicly shared files." : "Публічно доступні файли.",
+ "No files" : "Відсутні файли",
+ "Files and folders shared with you will show up here" : "Файли та каталоги, яким поділилися з вами, буде показано тут",
"Overview of shared files." : "Перегляд файлів у спільному доступі.",
"No shares" : "Відсутні спільні дані",
"Files and folders you shared or have been shared with you will show up here" : "Тут показуватимуться файли та каталоги, якими ви поділилися, або якими поділилися з вами.",
@@ -254,7 +348,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Список файлів, якими поділилися з вами.",
"Nothing shared with you yet" : "З вами поки ніхто не поділився файлами",
"Files and folders others shared with you will show up here" : "Тут показуватимуться файли та каталоги, з якими поділилися інші користувачі.",
- "Shared with others" : "Ви поділилися",
"List of files that you shared with others." : "Список файлів, якими ви поділилися з іншими.",
"Nothing shared yet" : "Поки немає спільних ресурсів",
"Files and folders you shared will show up here" : "Тут показуватимуться файи та каталоги якими ви поділилися",
@@ -262,6 +355,10 @@ OC.L10N.register(
"List of files that are shared by link." : "Список файлів, якими поділилися за допомогою посилання.",
"No shared links" : "Відсутні спільні посилання",
"Files and folders you shared by link will show up here" : "Тут показуватимуться файи та каталоги якими ви поділилися за допомогою посилання",
+ "File requests" : "Запити на файл",
+ "List of file requests." : "Список запитів на файл.",
+ "No file requests" : "Відсутні запити на файл",
+ "File requests you have created will show up here" : "Тут буде показано запити на файл, які було створено вами",
"Deleted shares" : "Більше недоступні",
"List of shares you left." : "Список спільних ресурсів, від яких ви відписалися.",
"No deleted shares" : "Відсутні спільні каталоги чи файли, які було вилучено",
@@ -270,49 +367,87 @@ OC.L10N.register(
"List of unapproved shares." : "Список несхвалених спільних ресурсів.",
"No pending shares" : "Відсутні запити на доступ",
"Shares you have received but not approved will show up here" : "Тут показуватимуться спільні ресурси, пропозиції на приєднання до яких ви отримали, але ще не підтвердили.",
+ "Error deleting the share: {errorMessage}" : "Помилка під час вилучення спільного ресурсу: {errorMessage}",
+ "Error deleting the share" : "Помилка під час вилучення спільного ресурсу",
+ "Error updating the share: {errorMessage}" : "Помилка під час оновлення спільного ресурсу: {errorMessage}",
+ "Error updating the share" : "Помилка оновлення спільного ресурсу",
+ "File \"{path}\" has been unshared" : "Файл \"{path} вилучено зі спільного доступу",
+ "Folder \"{path}\" has been unshared" : "Каталог \"{path}\" було вилучено зі спільного доступу",
+ "Could not update share" : "Не вдалося оновити спільний ресурс",
+ "Share saved" : "Спільний ресурс збережено",
+ "Share expiry date saved" : "Збережено термін дії спільного доступу до ресурсу",
+ "Share hide-download state saved" : "Збережено статус прихованого звантаження спільного ресурсу",
+ "Share label saved" : "Збережено ярлик спільного ресурсу",
+ "Share note for recipient saved" : "Збережено примітку отримувачеві спільного ресурсу",
+ "Share password saved" : "Пароль до спільного ресурсу збережено",
+ "Share permissions saved" : "Дозволи доступу до спільного ресурсу збережено",
+ "To upload files to {folder}, you need to provide your name first." : "Щоб завантажити файли до каталогу {folder}, спочатку потрібно зазначити ваше ім'я.",
+ "Upload files to {folder}" : "Завантажити файли до {folder}",
+ "Please confirm your name to upload files to {folder}" : "Зазначте ваше ім'я, щоби завантажити файли до каталогу {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} поділив(-ла)ся з вами каталогом.",
+ "Names must not be empty." : "Ім'я не може бути порожнім.",
+ "Names must not start with a dot." : "Імена не можуть починатися з крапки.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" не дозволено всередині імени.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" є зарезервованим ім'ям і не дозволене.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" не дозволене ім'я.",
+ "Names must not end with \"{extension}\"." : "Імена не можуть закінчуватися на \"{extension}\".",
+ "Invalid name." : "Недійсне ім'я",
+ "Shared by" : "Поділилися",
+ "Shared with" : "Спільний доступ з",
+ "Password created successfully" : "Успішно створено пароль",
+ "Error generating password from password policy" : "Помилка під час створення пароля згідно з політикою паролів",
+ "Shared with you and the group {group} by {owner}" : " {owner} надав доступ вам та групі {group}",
+ "Shared with you and {circle} by {owner}" : "{owner} надав доступ вам та колу {circle}",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} надав доступ вам та у чаті {conversation}",
+ "Shared with you in a conversation by {owner}" : "{owner} поділив(-ла-)ся з вами у чаті",
+ "Share not found" : "Спільний ресурс не знайдено",
+ "Back to %s" : "Назад до %s",
+ "Add to your Nextcloud" : "Додати до вашої хмари Nextcloud",
+ "Waiting…" : "Зачекайте...",
+ "error" : "помилка",
+ "finished" : "завершено",
+ "This will stop your current uploads." : "Ця дія призведе до зупинки поточних завантажень на сервер.",
+ "Move or copy" : "Перемістити або копіювати",
+ "You can upload into this folder" : "Ви можете завантажити до цього каталогу",
+ "Show list view" : "Подання списком",
+ "Show grid view" : "Подання сіткою",
+ "No compatible server found at {remote}" : "Відсутній сумісний сервер за адресою {remote}",
+ "Invalid server URL" : "Недійсна адреса сервера URL",
+ "Failed to add the public link to your Nextcloud" : "Не вдалося додати публічне посилання до вашого Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "У вас відсутні права на редагування спільних ресурсів, якими з вами поділилися через посилання, власником яких ви не є",
+ "Download all files" : "Звантажити всі файли",
+ "Link copied to clipboard" : "Посилання скопійовано в буфер обміну",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Вже додано 1 адресу ел. пошти","Вже додано {count} адреси ел. пошти","Вже додано {count} адрес ел. пошти","Вже додано {count} адрес ел. пошти"],
+ "_1 email address added_::_{count} email addresses added_" : ["Додано 1 адресу ел. пошти","Додано {count} адреси ел. пошти","Додано {count} адрес ел. пошти","Додано {count} адрес ел. пошти"],
+ "Copy to clipboard" : "Копіювати до буферу обміну",
+ "Copy internal link to clipboard" : "Копіювати внутрішнє посилання до буферу обміну",
+ "Only works for people with access to this folder" : "Доступно лише тим користувачам, які мають доступ до цього каталогу",
+ "Only works for people with access to this file" : "Доступно лише тим користувачам, які мають доступ до цього файлу",
+ "Copy public link of \"{title}\" to clipboard" : "Копіювати публічне посилання \"{title}\" до буферу пам'яти",
+ "Search globally" : "Шукати всюди",
+ "Search for share recipients" : "Виберіть отримувачів",
+ "No recommendations. Start typing." : "Відсутні рекомендації. Будь ласка, додайте.",
+ "To upload files, you need to provide your name first." : "Щоби завантажити файли, спочатку зазначте ваше ім'я.",
+ "Enter your name" : "Зазначте ваше ім'я",
+ "Submit name" : "Надайте ім'я",
+ "Share with {userName}" : "Поділитися з {userName}",
+ "Show sharing options" : "Показати налаштування спільного доступу",
"Share note" : "Поділитися нотаткою",
- "Upload files to %s" : "Завантажувати файли до %s",
+ "Upload files to %s" : "Завантажити файли до %s",
+ "%s shared a folder with you." : "%s поділив(-ла)ся з вами каталогом.",
"Note" : "Нотатка",
- "Select or drop files" : "Виберіть або перетягніть файли",
+ "Select or drop files" : "Вибрати або перетягнути файли",
"Uploading files" : "Завантаження файлів",
"Uploaded files:" : "Завантажені файли:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Завантажуючи файли, ви погоджуєтеся з %1$sумовами користування%2$s.",
- "Add to your Nextcloud" : "Додати до вашої хмари Nextcloud",
- "Files and folders others share with you will show up here" : "Спільні файли та каталоги, якими поділилися з вами, з’являться тут",
- "Files and folders you share will show up here" : "Файли та каталоги, якими ви поділилися, показуватимуться тут",
- "Files and folders you share by link will show up here" : "Файли та каталоги, якими ви поділилися за посиланням, показуватимуться тут",
- "Shares you deleted will show up here" : "Спільні каталоги чи файли, які ви вилучили, показуватимуться тут",
- "Shares you have received but not confirmed will show up here" : "Спільні дані, які ви отримали, але не підтвердили, показуватимуться тут",
- "Shares will show up here" : "Спільні дані показуватимуться тут",
- "Restore" : "Відновити",
- "Something happened. Unable to restore the share." : "От халепа! Неможливо відновити спільні дані.",
- "Something happened. Unable to accept the share." : "От халепа! Неможливо прийняти дані, якими поділилися з вами.",
- "Something happened. Unable to reject the share." : "От халепа! Неможливо відхилити дані, якими поділилися з вами.",
- "No expiration date set" : "Не встановлено терміну дії",
- "Please specify a valid user" : "Будь ласка, зазначте дійсного користувача",
- "Please specify a valid federated user ID" : "Будь ласка, зазначте дійсний ідентифікатор користувача об'єднаної хмари",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Цей застосунок дозволяє користувачам обмінюватися файлами у хмарі Nextcloud. Якщо його увімкнено, адміністратор зможе вибрати, які групи мають право ділитися файлами. Відповідні користувачі зможуть надавати доступ до файлів та каталогів іншим користувачам та групам хмари. Крім того, якщо адміністратор увімкне функцію спільного доступу через посилання, то зовнішнє посилання можна використовувати для обміну файлами з іншими користувачами поза межами хмари Nextcloud. Адміністратори також можуть встановлювати пароль, дату, до якої буде дійсний спільний доступ, дозволяти обмін файлами між серверами за допомогою посилань спільного доступу, а також можливість надавати спільний доступ з мобільних пристроїв. \nВимкнення цієї функції вилучить файли та каталоги у спільеому доступі для всіх, кому було надано доступ, доступ також зникне у клієнтах синхронізації та мобільних застосунках. Докладно можна познайомитися в документації Nextcloud.",
- "Accept user and group shares by default" : "Типово приймати запрошення для спільного доступу від користувачів та груп",
- "Read only" : "Тільки читання",
- "File drop (upload only)" : "Додати файли (тільки для завантажування)",
- "Upload" : "Завантажити",
- "Bundled permissions" : "Збірні дозволи",
- "Only works for users with access to this folder" : "Стосується користувачів, які мають доступ до цього каталогу",
- "Only works for users with access to this file" : "Стосується користувачів, які мають доступ до цього файлу",
- "Circle" : "Коло",
- "Update" : "Оновлювати",
- "Share with " : "Поділитися з ",
- "No other users with access found" : "Більше немає користувачів, які мають доступ",
- "No entries found in this folder" : "Записів не знайдено в цьому каталозі",
- "Name" : "Ім’я",
- "Share time" : "Поділилися",
- "Sorry, this link does not seem to work anymore." : "Ймовірно, що це посилання більше не дійсне.",
- "Reasons might be:" : "Можливі причини:",
- "the item was removed" : "цей ресурс було вилучено",
- "the link expired" : "термін дії посилання вичерпано",
- "sharing is disabled" : "спільний доступ заборонено",
- "For more info, please ask the person who sent this link." : "За додатковою інформацією, будь ласка, зверніться до особи, від якої ви отримали це посилання.",
- "Share with remote" : "Поділитися з віддаленим",
- "Share with" : "Поділитися з"
+ "Name" : "Назва",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Використовуйте цей спосіб надання файлів у спільний доступ окремим користувачам або командам. Якщо отримувач вже має доступ до спільного ресурсу, але не може його знайти, ви можете допомогти йому/їй - надіслати посилання на внутрішній ресурс.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Використовуйте цей спосіб надання файлів у спільний доступ окремим користувачам або організаціям за межами вашої організації. Файли та каталоги можна надати у спільний доступ користувачам інших примірників хмар Nextcloud з використанням ідентифікатора об'єднаних хмар.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Спільні ресурси, що не є ані внутрішніми, ані зовнішніми спільними ресурсами, наприклад, спільні ресурси, створені застосунками чи іншими ресурсами.",
+ "Share with accounts, teams, federated cloud id" : "Поділитися з користувачами, командами, ID об'єднаних хмар",
+ "Share with accounts and teams" : "Поділитися з користувачами або командами",
+ "Federated cloud ID" : "Ідентифікатор об'єднаної хмари",
+ "Email, federated cloud id" : "Ел.пошта, ідентифікатор об'єднаної хмари",
+ "Filename must not be empty." : "Імена файлів не мають бути порожні."
},
"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);");
diff --git a/apps/files_sharing/l10n/uk.json b/apps/files_sharing/l10n/uk.json
index 5307de5e1dd..0e51b0f7716 100644
--- a/apps/files_sharing/l10n/uk.json
+++ b/apps/files_sharing/l10n/uk.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "Зачекайте...",
- "error" : "помилка",
- "finished" : "завершено",
- "This will stop your current uploads." : "Ця дія призведе до зупинки поточних завантажень на сервер.",
- "Move or copy" : "Перемістити або копіювати",
- "Download" : "Звантажити",
- "Delete" : "Вилучити",
- "You can upload into this folder" : "Ви можете завантажити до цього каталогу",
- "Terms of service" : "Умови використання",
- "Show list view" : "Подання списком",
- "Show grid view" : "Подання сіткою",
- "No compatible server found at {remote}" : "Відсутній сумісний сервер за адресою {remote}",
- "Invalid server URL" : "Недійсна адреса сервера URL",
- "Failed to add the public link to your Nextcloud" : "Не вдалося додати загальнодоступне посилання до вашого Nextcloud",
"File shares" : "Спільні файли",
"Downloaded via public link" : "Звантажено за публічним посиланням",
"Downloaded by {email}" : "Завантажено через {email}",
@@ -35,7 +21,7 @@
"{actor} removed public link" : "{actor} вилучив(-ла) публічне посилання",
"Public link of {actor} expired" : "Термін дії публічного посилання {actor} вичерпано",
"You shared {file} as public link" : "Ви поділилися {file} за допомогою публічного посилання",
- "You removed public link for {file}" : "Ви вилучили публічне посилання для файла {file}",
+ "You removed public link for {file}" : "Ви вилучили публічне посилання для {file}",
"Public link expired for {file}" : "Термін дії посилання сплив для файла {file}",
"{actor} shared {file} as public link" : "{actor} надав(-ла) доступ до файлу {file} через публічне посилання",
"{actor} removed public link for {file}" : "{actor} вилучив(-ла) публічне посилання для {file}",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "Термін дії доступу {user} до спільного ресурсу {file} вичерпано",
"Share for file {file} expired" : "Термін дії спільного доступу до {file} вичерпано",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Файл або каталог, яким поділилився через ел.пошту або публічне посилання було <strong>звантажено</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Файли було <strong>завантажено</strong> до каталогу, яким поділилися через ел. пошту або через публічне посилання",
"A file or folder was shared from <strong>another server</strong>" : "Файлом або каталогом поділилися з <strong>іншого сервера</strong>",
- "Files" : "Файли",
+ "Sharing" : "Спільне",
"A file or folder has been <strong>shared</strong>" : "Файл або каталог було відкрито для <strong>спільного доступу</strong>",
"Shared link" : "Посилання на спільний доступ",
"Wrong share ID, share does not exist" : "Неправильний ідентифікатор спільного ресурсу: такий ресурс відсутній",
@@ -76,34 +63,46 @@
"Please specify a file or folder path" : "Будь ласка, зазначте шлях до файла або каталогу",
"Wrong path, file/folder does not exist" : "Неправильний шлях, такий файл або каталог відсутні",
"Could not create share" : "Неможливо створити спільний ресурс",
- "Invalid permissions" : "Некоректні повноваження",
- "Invalid date, date format must be YYYY-MM-DD" : "Недійсна дата, формат дати має бути РРРР-ММ-ДД",
"Please specify a valid account to share with" : "Зазначте дійсний обліковий запис, з яким ви хочете поділитися",
"Group sharing is disabled by the administrator" : "Груповий спільний доступ вимкнено адміністратором",
"Please specify a valid group" : "Будь ласка, зазначте дійсну групу",
"Public link sharing is disabled by the administrator" : "Адміністратор вимкнув спільний доступ за публічним посиланням",
- "Public upload disabled by the administrator" : "Публічне завантаження вимкнено адміністратором",
- "Public upload is only possible for publicly shared folders" : "Публічне завантаження можливе лише для каталогів з публічним доступом",
+ "Please specify a valid email address" : "Зазначте дійсну адресу ел. пошти",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Виникла помилка під час надання доступу до %s, оскільки Nextcloud Talk не активний й відтак неможливо надіслати пароль.",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Неможливо поділитися %1$s, оскільки бекенд не дозволяє надавати доступ категорії %2$s",
"Please specify a valid federated account ID" : "Зазначте дійсний ідентифікатор облікового запис об'єднаної хмари",
"Please specify a valid federated group ID" : "Будь ласка, зазначте дійсний ідентифікатор групи об'єднаної хмари",
- "You cannot share to a Circle if the app is not enabled" : "Ви не можете поділитися у Circle, оскільки застосунок не активний",
- "Please specify a valid circle" : "Будь ласка, зазначте дійсне коло",
+ "You cannot share to a Team if the app is not enabled" : "Неможливо поділитися з командою, якщо застосунок не увімкнено",
+ "Please specify a valid team" : "Виберіть дійсну команду",
"Sharing %s failed because the back end does not support room shares" : "Помилка спільного доступу %s, оскільки серверна частина не підтримує спільний доступ до кімнат",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Спільне використання %s не вдалося, оскільки бекенд не підтримує спільне використання ScienceMesh",
"Unknown share type" : "Невідомий тип спільного ресурсу",
"Not a directory" : "Не каталог",
"Could not lock node" : "Не вдалося заблокувати вузол",
- "Could not lock path" : "Не вдалося заблокувати шлях",
- "Wrong or no update parameter given" : "Вказано неправильний або відсутній параметр оновлення",
+ "Public upload is only possible for publicly shared folders" : "Публічне завантаження можливе лише для каталогів з публічним доступом",
"Share must at least have READ or CREATE permissions" : "Спільний доступ має щонайменше мати дозволи READ (читання) або CREATE (створення)",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Для спільного доступу потрібно щонайменше призначити дозволи READ (читання) або CREATE (створення)",
+ "Public upload disabled by the administrator" : "Публічне завантаження вимкнено адміністратором",
+ "Could not lock path" : "Не вдалося заблокувати шлях",
+ "no sharing rights on this item" : "відсутні права на спільний доступ для цього ресурсу",
+ "You are not allowed to edit incoming shares" : "У вас відсутні права на редагування спільних ресурсів, якими з вами поділилися",
+ "Wrong or no update parameter given" : "Вказано неправильний або відсутній параметр оновлення",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Не вдалося надіслати пароль для спільного доступу до файлу чи каталогу з використанням Nextcloud Talk, оскільки цей застосунок вимкнено.",
+ "Custom share link tokens have been disabled by the administrator" : "Власні токени спільних ресурсів вимкнено адміністратором",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Токени мають містити щонайменше 1 символ, можуть складатися тільки з літер, цифр або дефісу",
+ "Invalid date. Format must be YYYY-MM-DD" : "Недійсна дата. Дата має бути у форматі рік-місяць-число",
+ "No sharing rights on this item" : "Відсутні права на спільний доступ для цього ресурсу",
+ "Invalid share attributes provided: \"%s\"" : "Отримано недійсні атрибути спільного доступу для \"%s\"",
+ "You are not allowed to send mail notifications" : "У вас відсутні права надсилати сповіщення ел. поштою",
+ "No mail notification configured for this share type" : "Для цього типу ресурсів спільного доступу не налаштовано сповіщення ел. поштою",
+ "Wrong password" : "Недійсний пароль",
+ "Error while sending mail notification" : "Помилка під час надсилання сповіщення ел. поштою",
+ "Failed to generate a unique token" : "Не вдалося створити унікальний токен",
+ "This share does not exist or is no longer available" : "Спільний ресурс не існує або більше не доступний",
"shared by %s" : "поділилися %s",
- "Download all files" : "Звантажити всі файли",
- "Direct link" : "Пряме посилання",
+ "Download" : "Звантажити",
"Add to your %s" : "Додайте до свого %s",
+ "Direct link" : "Пряме посилання",
"Share API is disabled" : "API для надання доступу вимкнено",
"File sharing" : "Обмін файлами",
"Share will expire tomorrow" : "Термін дії спільного доступу спливає завтра",
@@ -112,69 +111,133 @@
"You received {share} to group {group} as a share by {user}" : "(user) надав(-ла) вам доступ до спільного ресурсу {share} в групі {group}",
"Accept" : "Прийняти",
"Decline" : "Відхилити",
- "Sharing" : "Спільне",
- "Accept shares from other accounts and groups by default" : "Типово приймати пропозиції спільного доступу від інших користувачів та груп",
+ "Remember to upload the files to %s" : "Пам'ятати про завантаження файлів до %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Нагадування про те, що ви ще не завантажили жодного файлу до спільного каталогу.",
+ "Open \"%s\"" : "Відкрити \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Ця програма дозволяє користувачам обмінюватися файлами в Nextcloud. Якщо ця функція увімкнена, адміністратор може вибрати, які групи можуть обмінюватися файлами. Відповідні користувачі можуть обмінюватися файлами та каталогами з іншими обліковими записами та групами в Nextcloud. Крім того, якщо адміністратор увімкне функцію спільного доступу за посиланням, зовнішнє посилання можна використовувати для обміну файлами з іншими людьми поза Nextcloud. Адміністратори також можуть встановлювати паролі, терміни дії та вмикати обмін між серверами за допомогою посилань для спільного доступу, а також обмін з мобільних пристроїв.\n\nВимкнення цієї функції видаляє спільні файли та каталоги на сервері для всіх одержувачів спільного доступу, а також на клієнтах синхронізації та в мобільних додатках. Більше інформації можна знайти в документації Nextcloud.",
+ "People" : "Користувачі",
+ "Filter accounts" : "Вибрати користувачів",
+ "The request will expire on {date} at midnight and will be password protected." : "Термін дії запиту спливе опівночі {date}, запит буде захищено паролем. ",
+ "The request will expire on {date} at midnight." : "Термін дії запиту спливе опівночі {date}.",
+ "The request will be password protected." : "Запит буде захищено паролем",
+ "When should the request expire?" : "Коли спливе час дії запиту?",
+ "Set a submission expiration date" : "Встановити останню дату надання в доступ",
+ "Expiration date" : "Термін дії",
+ "Select a date" : "Виберіть дату",
+ "Your administrator has enforced a {count} days expiration policy." : "Адміністратор встановив політику: через {count} днів буде завершено доступ до ресурсу.",
+ "What password should be used for the request?" : "Який пароль має використовуватися для цього запиту?",
+ "Set a password" : "Встановити пароль",
+ "Password" : "Пароль",
+ "Enter a valid password" : "Зазначте дійсний пароль",
+ "Generate a new password" : "Створити новий пароль",
+ "Your administrator has enforced a password protection." : "Адміністратор встановив політику захисту паролем ",
+ "Automatically copying failed, please copy the share link manually" : "Помилка під час автоматичного копіювання. Скопіюйте вручну посилання на спільний ресурс.",
+ "Link copied" : "Посилання скопійовано",
+ "Email already added" : "Ел. адресу вже додано",
+ "Invalid email address" : "Недійсна адреса ел. пошти",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["{emails} ел. адреса не є дійсною ","{emails} ел. адреси не є дійсними ","{emails} ел. адрес не є дійсними ","{emails} ел. адрес не є дійсними "],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["{count} ел. адресу вже додано","{count} ел. адреси вже додано","{count} ел. адрес вже додано","{count} ел. адрес вже додано"],
+ "_{count} email address added_::_{count} email addresses added_" : ["{count} ел. адресу додано","{count} ел. адреси додано","{count} ел. адрес додано","{count} ел. адрес додано"],
+ "You can now share the link below to allow people to upload files to your directory." : "Тепер ви можете поділитися посиланням, за яким користувачі матимуть змогу завантажити файли до вашого каталогу. ",
+ "Share link" : "Передати у публічний доступ",
+ "Copy" : "Копіювати",
+ "Send link via email" : "Надіслати посилання електронною поштою",
+ "Enter an email address or paste a list" : "Зазначте ел. адресу або список адрес",
+ "Remove email" : "Вилучити ел. адресу",
+ "Select a destination" : "Вибрати призначення",
+ "Select" : "Вибрати",
+ "What are you requesting?" : "Що ви хочете отримати?",
+ "Request subject" : "Тема запиту",
+ "Birthday party photos, History assignment…" : "Світлини зі святкування уродин, завдання з історії...",
+ "Where should these files go?" : "Для кого ці файли?",
+ "Upload destination" : "Завантажити призначення",
+ "Revert to default" : "Повернути до типових налаштувань",
+ "The uploaded files are visible only to you unless you choose to share them." : "Файли, які було завантажено, будуть доступні тільки вам, допоки ви не поділитеся ними.",
+ "Add a note" : "Додати примітку",
+ "Note for recipient" : "Примітка для отримувача",
+ "Add a note to help people understand what you are requesting." : "Додати примітку, щоб допомогти користувачам зрозуміти, що вони запитують.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Ви можете додавати посилання, дати або іншу інформацію, яка допоможе зрозуміти отримувачам, що ви від них просите.",
+ "Close" : "Закрити",
+ "_Send email and close_::_Send {count} emails and close_" : ["Надіслати ел. лист та закрити","Надіслати {count} ел. листи та закрити","Надіслати {count} ел. листів та закрити","Надіслати {count} ел. листів та закрити"],
+ "Please select a folder, you cannot share the root directory." : "Виберіть каталог, неможливо поділитися кореневим каталогом.",
+ "File request created" : "Запит на файл створено",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Створено запит на файл та надіслано ел. лист","Створено запит на файл та надіслано {count} ел. листи","Створено запит на файл та надіслано {count} ел. листів","Створено запит на файл та надіслано {count} ел. листів"],
+ "Error creating the share: {errorMessage}" : "Помилка під час створення спільного ресурсу: {errorMessage}",
+ "Error creating the share" : "Помилка під час створення спільного ресурсу",
+ "Error sending emails: {errorMessage}" : "Помилка під час надсилання ел. пошти: {errorMessage}",
+ "Error sending emails" : "Помилка під час надсилання ел. пошти",
+ "Create a file request" : "Створити запит на файл",
+ "Collect files from others even if they do not have an account." : "Отримати файли від інших користувачів, навіть якщо у них відсутній обліковий запис. ",
+ "To ensure you can receive files, verify you have enough storage available." : "Щоби впевнитися, що ви можете отримувати файли, перевірте, що у вас достатньо дискового простору.",
+ "File request" : "Запит на файл",
+ "Previous step" : "Назад",
+ "Cancel" : "Скасувати",
+ "Cancel the file request creation" : "Скасувати створення запиту на файл",
+ "Close without sending emails" : "Закрити без надсилання ел. пошти",
+ "Continue" : "Продовжити",
"Error while toggling options" : "Помилка під час зміни параметрів",
- "Set default folder for accepted shares" : "Встановити типовий каталог для прийнятих спільних ресурсів",
- "Reset" : "Скидання",
- "Reset folder to system default" : "Відновити типові системні налаштування для каталогу",
+ "Accept shares from other accounts and groups by default" : "Типово приймати пропозиції спільного доступу від інших користувачів та груп",
"Choose a default folder for accepted shares" : "Виберіть типовий каталог, куди зберігатимуться прийняті спільні ресурси",
"Invalid path selected" : "Вибрано неправильний шлях",
"Unknown error" : "Невідома помилка",
- "Open Sharing Details" : "Відкрити деталі спільного доступу",
+ "Set default folder for accepted shares" : "Встановити типовий каталог для прийнятих спільних ресурсів",
+ "Reset" : "Скидання",
+ "Reset folder to system default" : "Відновити типові системні налаштування для каталогу",
+ "Share expiration: {date}" : "У спільному доступі до: {date}",
+ "Share Expiration" : "Термін дії спільного ресурсу:",
"group" : "група",
"conversation" : "розмова",
"remote" : "віддалений",
"remote group" : "віддалена група",
"guest" : "гість",
+ "by {initiator}" : "{initiator}",
"Shared with the group {user} by {owner}" : "Надав доступ групі {user} {owner}",
"Shared with the conversation {user} by {owner}" : "{owner} поділив(-ла-)ся в чаті {user}",
"Shared with {user} by {owner}" : "{owner} поділив(-ла-)ся з {user}",
+ "Open Sharing Details" : "Відкрити деталі спільного доступу",
"Added by {initiator}" : "Додано {initiator}",
"Via “{folder}”" : "Через “{folder}”",
"Unshare" : "Закрити доступ",
- "Internal link" : "Внутрішнє посилання",
"Cannot copy, please copy the link manually" : "Неможливо скопіювати, скопіюйте посилання вручну",
- "Copy internal link to clipboard" : "Копіювати внутрішнє посилання до буферу обміну",
- "Only works for people with access to this folder" : "Доступно лише тим користувачам, які мають доступ до цього каталогу",
- "Only works for people with access to this file" : "Доступно лише тим користувачам, які мають доступ до цього файлу",
- "Link copied" : "Посилання скопійовано",
- "Please enter the following required information before creating the share" : "Будь ласка, введіть таку інформацію перед наданням спільного доступу",
- "Password protection (enforced)" : "Захист паролем (обов'язково)",
- "Password protection" : "Password protection",
- "Enter a password" : "Зазначте пароль",
- "Expiration date (enforced)" : "Термін дії (обов'язково)",
- "Enter a date" : "Зазначте дату",
- "Create share" : "Створити спільний ресурс",
- "Cancel" : "Скасувати",
- "Customize link" : "Власне посилання",
- "Generate QR code" : "Створити QR-код",
- "Add another link" : "Додати інше посилання",
- "Create a new share link" : "Створити нове посилання спільного доступу",
+ "Copy internal link" : "Копіювати посилання",
+ "For people who already have access" : "Для людей, які вже мають доступ",
+ "Internal link" : "Внутрішнє посилання",
"{shareWith} by {initiator}" : "{shareWith} від {initiator}",
"Shared via link by {initiator}" : "Спільний доступ через посилання від {initiator}",
+ "File request ({label})" : "Запит на файл ({label})",
"Mail share ({label})" : "Спільний доступ через пошту ({label})",
"Share link ({label})" : "Поділитися посиланням ({label})",
+ "Mail share" : "Спільний ресурс через ел. пошту",
"Share link ({index})" : "Поділитися посиланням ({index})",
- "Share link" : "Посилання на спільний доступ",
+ "Create public link" : "Створити публічне посилання",
"Actions for \"{title}\"" : "Дія для \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Копіювати публічне посилання \"{title}\" до буферу пам'яти",
+ "Copy public link of \"{title}\"" : "Скопіювати публічне посилання на «{title}»",
"Error, please enter proper password and/or expiration date" : "Помилка. Будь ласка, зазначте правильний пароль та/або термін дії",
"Link share created" : "Створено посилання на спільний ресурс",
"Error while creating the share" : "Помилка під час створення спільного ресурсу",
+ "Please enter the following required information before creating the share" : "Зазначте такі дані перед наданням у публічний доступ",
+ "Password protection (enforced)" : "Захист паролем (обов'язково)",
+ "Password protection" : "Захист паролем",
+ "Enter a password" : "Зазначте пароль",
+ "Enable link expiration (enforced)" : "Увімкнути термін дії посилання (примусово)",
+ "Enable link expiration" : "Увімкнути термін дії посилання",
+ "Enter expiration date (enforced)" : "Зазначте термін дії (примусово)",
+ "Enter expiration date" : "Зазначте термін дії",
+ "Create share" : "Створити спільний ресурс",
+ "Customize link" : "Власне посилання",
+ "Generate QR code" : "Створити QR-код",
+ "Add another link" : "Додати інше посилання",
+ "Create a new share link" : "Створити нове посилання спільного доступу",
"Quick share options, the current selected is \"{selectedOption}\"" : "Швидкі параметри спільного доступу, зараз вибрано \"{selectedOption}\"",
"View only" : "Лише перегляд",
- "Can edit" : "Можна редагувати",
- "File drop" : "Відкинути файл",
+ "Can edit" : "Може редагувати",
"Custom permissions" : "Спеціальні дозволи",
- "Search for share recipients" : "Виберіть отримувачів",
- "No recommendations. Start typing." : "Відсутні рекомендації. Будь ласка, додайте.",
"Resharing is not allowed" : "Надання спільного доступу іншим не дозволяється",
"Name or email …" : "Ім'я або електронна адреса …",
"Name, email, or Federated Cloud ID …" : "Ім’я, адреса електронної пошти або ідентифікатор хмари…",
"Searching …" : "Пошук...",
"No elements found." : "Елементи не знайдено.",
- "Search globally" : "Шукати всюди",
+ "Search everywhere" : "Шукати всюди",
"Guest" : "Гість",
"Group" : "Група",
"Email" : "Ел.пошта",
@@ -183,68 +246,99 @@
"Deck board" : "Дошка Deck",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "на {server}",
+ "Enter external recipients" : "Зазначте зовнішніх отримувачів",
+ "Search for internal recipients" : "Шукати внутрішніх отримувачів",
+ "Note from" : "Примітка від",
+ "Note:" : "Примітка:",
+ "File drop" : "Перетягнути файл",
+ "Upload files to {foldername}." : "Завантажити файли до {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Завантаження файлів означає, що ви погоджуєтеся з умовами користування.",
+ "Successfully uploaded files" : "Успішно завантажено файли",
+ "View terms of service" : "Переглянути умови користування.",
+ "Terms of service" : "Умови використання",
+ "Share with {user}" : "Поділитися з {user}",
+ "Share with email {email}" : "Поділитися через ел.пошту {email}",
+ "Share with group" : "Поділитися з групою",
+ "Share in conversation" : "Поширити в розмові ",
+ "Share with {user} on remote server {server}" : "Поділитися з {user} на віддаленому сервері {server}",
+ "Share with remote group" : "Поділитися з віддаленою групою",
+ "Share with guest" : "Поділитися з гостем",
+ "Update share" : "Оновити спільний ресурс",
+ "Save share" : "Зберегти спільний ресурс",
+ "Read" : "Читати",
+ "Create" : "Створити",
+ "Edit" : "Редагувати",
+ "Share" : "Спільне",
+ "Delete" : "Вилучити",
+ "Password field cannot be empty" : "Поле з паролем має бути заповнено",
+ "Replace current password" : "Замінити поточний пароль",
+ "Failed to generate a new token" : "Не вдалося створити новий токен",
"Allow upload and editing" : "Може завантажувати та редагувати",
"Allow editing" : "Може редагувати",
"Upload only" : "Тільки завантаження",
"Advanced settings" : "Розширені",
"Share label" : "Мітка спільного ресурсу",
+ "Share link token" : "Токен спільного ресурсу",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Встановити публічне посилання на спільний ресурс у просту для запам'ятовування назву або створити новий токен. Не рекомендується використовувати токени, які можна легко вгадати для спільних ресурсів, які містять чутливі дані.",
+ "Generating…" : "Створення...",
+ "Generate new token" : "Створити новий токен",
"Set password" : "Встановити пароль",
- "Password" : "Пароль",
"Password expires {passwordExpirationTime}" : "Термін дії пароля {passwordExpirationTime}",
"Password expired" : "Термін дії пароля вичерпано",
"Video verification" : "Відеоперевірка",
+ "Expiration date (enforced)" : "Термін дії (обов'язково)",
"Set expiration date" : "Встановити термін дії",
- "Expiration date" : "Термін дії",
"Hide download" : "Приховати звантаження",
- "Allow download" : "Дозволити звантаження",
+ "Allow download and sync" : "Дозволити звантаження та синхронізацію",
"Note to recipient" : "Примітка для одержувача",
"Enter a note for the share recipient" : "Додайте нотатку для одержувача доступу до спільного ресурсу",
- "Read" : "Читати",
- "Create" : "Створити",
- "Edit" : "Редагувати",
- "Share" : "Спільне",
+ "Show files in grid view" : "Подання файлів сіткою",
"Delete share" : "Вилучити зі спільного доступу",
- "Share with {userName}" : "Поділитися з {userName}",
- "Share with group" : "Поділитися з групою",
- "Share in conversation" : "Поширити в розмові ",
- "Share with remote group" : "Поділитися з віддаленою групою",
- "Share with guest" : "Поділитися з гостем",
- "Update share" : "Оновити спільний ресурс",
- "Save share" : "Зберегти спільний ресурс",
"Others with access" : "Доступ для інших",
"No other accounts with access found" : "Більше не знайдено користувачів, які мають доступ",
"Toggle list of others with access to this directory" : "Перемкнути подання списку інших користувачів, які мають доступ до цього каталогу",
"Toggle list of others with access to this file" : "Перемкнути подання списку інших, які мають доступ до цього файлу",
"Unable to fetch inherited shares" : "Неможливо отримати успадковані спільні ресурси",
+ "Link shares" : "Посилання на спільні ресурси",
+ "Shares" : "Спільні",
+ "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Діліться файлами всередині своєї організації. Одержувачі, які вже мають доступ до файлу, також можуть скористатися цим посиланням для зручного доступу.",
+ "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Діліться файлами з іншими користувачами поза вашою організацією за допомогою публічних посилань та електронних адрес. Ви також можете ділитися файлами з обліковими записами Nextcloud на інших серверах, використовуючи їх федеративний хмарний ідентифікатор.",
+ "Shares from apps or other sources which are not included in internal or external shares." : "Акції з додатків або інших джерел, які не включені до внутрішніх або зовнішніх акцій.",
+ "Type names, teams, federated cloud IDs" : "Назви типів, команди, ідентифікатори федеративної хмари",
+ "Type names or teams" : "Назви типів або команд",
+ "Type a federated cloud ID" : "Введіть ідентифікатор федеративної хмари",
+ "Type an email" : "Введіть адресу електронної пошти",
+ "Type an email or federated cloud ID" : "Введіть адресу електронної пошти або ідентифікатор федеративної хмари",
"Unable to load the shares list" : "Не вдалося завантажити список спільних ресурсів",
"Expires {relativetime}" : "Термін дії закінчується {relativetime}",
"this share just expired." : "термін дії спільного доступу вичерпано.",
"Shared with you by {owner}" : "{owner} поділив(-ла-)ся з вами",
+ "Internal shares" : "Внутрішні спільні ресурси",
+ "Internal shares explanation" : "Опис внутрішніх спільних ресурсів",
+ "External shares" : "Зовнішні спільні ресурси",
+ "External shares explanation" : "Опис зовнішніх спільних ресурсів",
+ "Additional shares" : "Додаткові спільні ресурси",
+ "Additional shares explanation" : "Опис додаткових спільних ресурсів",
+ "Link to a file" : "Посилання на файл",
"_Accept share_::_Accept shares_" : ["Прийняти запит на спільний ресурс","Прийняти запит на спільні ресурси","Прийняти запит на спільні ресурси","Схвалити запит на спільні ресурси"],
"Open in Files" : "Відкрити у Файлах",
"_Reject share_::_Reject shares_" : ["Скасувати запит на спільний ресурс","Скасувати запит на спільні ресурси","Скасувати запит на спільні ресурси","Скасувати запит на спільні ресурси"],
"_Restore share_::_Restore shares_" : ["Відновити спільний ресурс","Відновити спільні ресурси","Відновити спільні ресурси","Відновити спільні ресурси"],
"Shared" : "Спільні",
- "Shared multiple times with different people" : "Поділилися кілька разів з різними людьми",
"Shared by {ownerDisplayName}" : "{ownerDisplayName} надав(-ла) доступ",
- "Show sharing options" : "Показати налаштування спільного доступу",
- "Link to a file" : "Посилання на файл",
- "Error creating the share: {errorMessage}" : "Помилка під час створення спільного ресурсу: {errorMessage}",
- "Error creating the share" : "Помилка під час створення спільного ресурсу",
- "Error updating the share: {errorMessage}" : "Помилка під час оновлення спільного ресурсу: {errorMessage}",
- "Error updating the share" : "Помилка оновлення спільного ресурсу",
- "File \"{path}\" has been unshared" : "Файл \"{path} вилучено зі спільного доступу",
- "Folder \"{path}\" has been unshared" : "Каталог \"{path}\" було вилучено зі спільного доступу",
- "Share {propertyName} saved" : "Спільний ресурс {propertyName} збережено",
- "Shared by" : "Поділилися",
- "Shared with" : "Спільний доступ з",
- "Password created successfully" : "Успішно створено пароль",
- "Error generating password from password policy" : "Помилка під час створення пароля згідно з політикою паролів",
- "Shared with you and the group {group} by {owner}" : " {owner} надав доступ вам та групі {group}",
- "Shared with you and {circle} by {owner}" : "{owner} надав доступ вам та колу {circle}",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} надав доступ вам та у чаті {conversation}",
- "Shared with you in a conversation by {owner}" : "{owner} поділив(-ла-)ся з вами у чаті",
- "Shares" : "Спільні",
+ "Shared multiple times with different people" : "Поділилися кілька разів з різними людьми",
+ "Sharing options" : "Параметри спільного доступу",
+ "Shared with others" : "Ви поділилися",
+ "Create file request" : "Створити запит на файл",
+ "Upload files to {foldername}" : "Завантажити файли до {foldername}",
+ "Public file share" : "Публічний спільний ресурс",
+ "Publicly shared file." : "Пубічно доступний файл.",
+ "No file" : "Немає файлу",
+ "The file shared with you will show up here" : "Файл, яким поділилися з вами, буде показано тут",
+ "Public share" : "Спільний ресурс",
+ "Publicly shared files." : "Публічно доступні файли.",
+ "No files" : "Відсутні файли",
+ "Files and folders shared with you will show up here" : "Файли та каталоги, яким поділилися з вами, буде показано тут",
"Overview of shared files." : "Перегляд файлів у спільному доступі.",
"No shares" : "Відсутні спільні дані",
"Files and folders you shared or have been shared with you will show up here" : "Тут показуватимуться файли та каталоги, якими ви поділилися, або якими поділилися з вами.",
@@ -252,7 +346,6 @@
"List of files that are shared with you." : "Список файлів, якими поділилися з вами.",
"Nothing shared with you yet" : "З вами поки ніхто не поділився файлами",
"Files and folders others shared with you will show up here" : "Тут показуватимуться файли та каталоги, з якими поділилися інші користувачі.",
- "Shared with others" : "Ви поділилися",
"List of files that you shared with others." : "Список файлів, якими ви поділилися з іншими.",
"Nothing shared yet" : "Поки немає спільних ресурсів",
"Files and folders you shared will show up here" : "Тут показуватимуться файи та каталоги якими ви поділилися",
@@ -260,6 +353,10 @@
"List of files that are shared by link." : "Список файлів, якими поділилися за допомогою посилання.",
"No shared links" : "Відсутні спільні посилання",
"Files and folders you shared by link will show up here" : "Тут показуватимуться файи та каталоги якими ви поділилися за допомогою посилання",
+ "File requests" : "Запити на файл",
+ "List of file requests." : "Список запитів на файл.",
+ "No file requests" : "Відсутні запити на файл",
+ "File requests you have created will show up here" : "Тут буде показано запити на файл, які було створено вами",
"Deleted shares" : "Більше недоступні",
"List of shares you left." : "Список спільних ресурсів, від яких ви відписалися.",
"No deleted shares" : "Відсутні спільні каталоги чи файли, які було вилучено",
@@ -268,49 +365,87 @@
"List of unapproved shares." : "Список несхвалених спільних ресурсів.",
"No pending shares" : "Відсутні запити на доступ",
"Shares you have received but not approved will show up here" : "Тут показуватимуться спільні ресурси, пропозиції на приєднання до яких ви отримали, але ще не підтвердили.",
+ "Error deleting the share: {errorMessage}" : "Помилка під час вилучення спільного ресурсу: {errorMessage}",
+ "Error deleting the share" : "Помилка під час вилучення спільного ресурсу",
+ "Error updating the share: {errorMessage}" : "Помилка під час оновлення спільного ресурсу: {errorMessage}",
+ "Error updating the share" : "Помилка оновлення спільного ресурсу",
+ "File \"{path}\" has been unshared" : "Файл \"{path} вилучено зі спільного доступу",
+ "Folder \"{path}\" has been unshared" : "Каталог \"{path}\" було вилучено зі спільного доступу",
+ "Could not update share" : "Не вдалося оновити спільний ресурс",
+ "Share saved" : "Спільний ресурс збережено",
+ "Share expiry date saved" : "Збережено термін дії спільного доступу до ресурсу",
+ "Share hide-download state saved" : "Збережено статус прихованого звантаження спільного ресурсу",
+ "Share label saved" : "Збережено ярлик спільного ресурсу",
+ "Share note for recipient saved" : "Збережено примітку отримувачеві спільного ресурсу",
+ "Share password saved" : "Пароль до спільного ресурсу збережено",
+ "Share permissions saved" : "Дозволи доступу до спільного ресурсу збережено",
+ "To upload files to {folder}, you need to provide your name first." : "Щоб завантажити файли до каталогу {folder}, спочатку потрібно зазначити ваше ім'я.",
+ "Upload files to {folder}" : "Завантажити файли до {folder}",
+ "Please confirm your name to upload files to {folder}" : "Зазначте ваше ім'я, щоби завантажити файли до каталогу {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} поділив(-ла)ся з вами каталогом.",
+ "Names must not be empty." : "Ім'я не може бути порожнім.",
+ "Names must not start with a dot." : "Імена не можуть починатися з крапки.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" не дозволено всередині імени.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" є зарезервованим ім'ям і не дозволене.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" не дозволене ім'я.",
+ "Names must not end with \"{extension}\"." : "Імена не можуть закінчуватися на \"{extension}\".",
+ "Invalid name." : "Недійсне ім'я",
+ "Shared by" : "Поділилися",
+ "Shared with" : "Спільний доступ з",
+ "Password created successfully" : "Успішно створено пароль",
+ "Error generating password from password policy" : "Помилка під час створення пароля згідно з політикою паролів",
+ "Shared with you and the group {group} by {owner}" : " {owner} надав доступ вам та групі {group}",
+ "Shared with you and {circle} by {owner}" : "{owner} надав доступ вам та колу {circle}",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} надав доступ вам та у чаті {conversation}",
+ "Shared with you in a conversation by {owner}" : "{owner} поділив(-ла-)ся з вами у чаті",
+ "Share not found" : "Спільний ресурс не знайдено",
+ "Back to %s" : "Назад до %s",
+ "Add to your Nextcloud" : "Додати до вашої хмари Nextcloud",
+ "Waiting…" : "Зачекайте...",
+ "error" : "помилка",
+ "finished" : "завершено",
+ "This will stop your current uploads." : "Ця дія призведе до зупинки поточних завантажень на сервер.",
+ "Move or copy" : "Перемістити або копіювати",
+ "You can upload into this folder" : "Ви можете завантажити до цього каталогу",
+ "Show list view" : "Подання списком",
+ "Show grid view" : "Подання сіткою",
+ "No compatible server found at {remote}" : "Відсутній сумісний сервер за адресою {remote}",
+ "Invalid server URL" : "Недійсна адреса сервера URL",
+ "Failed to add the public link to your Nextcloud" : "Не вдалося додати публічне посилання до вашого Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "У вас відсутні права на редагування спільних ресурсів, якими з вами поділилися через посилання, власником яких ви не є",
+ "Download all files" : "Звантажити всі файли",
+ "Link copied to clipboard" : "Посилання скопійовано в буфер обміну",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Вже додано 1 адресу ел. пошти","Вже додано {count} адреси ел. пошти","Вже додано {count} адрес ел. пошти","Вже додано {count} адрес ел. пошти"],
+ "_1 email address added_::_{count} email addresses added_" : ["Додано 1 адресу ел. пошти","Додано {count} адреси ел. пошти","Додано {count} адрес ел. пошти","Додано {count} адрес ел. пошти"],
+ "Copy to clipboard" : "Копіювати до буферу обміну",
+ "Copy internal link to clipboard" : "Копіювати внутрішнє посилання до буферу обміну",
+ "Only works for people with access to this folder" : "Доступно лише тим користувачам, які мають доступ до цього каталогу",
+ "Only works for people with access to this file" : "Доступно лише тим користувачам, які мають доступ до цього файлу",
+ "Copy public link of \"{title}\" to clipboard" : "Копіювати публічне посилання \"{title}\" до буферу пам'яти",
+ "Search globally" : "Шукати всюди",
+ "Search for share recipients" : "Виберіть отримувачів",
+ "No recommendations. Start typing." : "Відсутні рекомендації. Будь ласка, додайте.",
+ "To upload files, you need to provide your name first." : "Щоби завантажити файли, спочатку зазначте ваше ім'я.",
+ "Enter your name" : "Зазначте ваше ім'я",
+ "Submit name" : "Надайте ім'я",
+ "Share with {userName}" : "Поділитися з {userName}",
+ "Show sharing options" : "Показати налаштування спільного доступу",
"Share note" : "Поділитися нотаткою",
- "Upload files to %s" : "Завантажувати файли до %s",
+ "Upload files to %s" : "Завантажити файли до %s",
+ "%s shared a folder with you." : "%s поділив(-ла)ся з вами каталогом.",
"Note" : "Нотатка",
- "Select or drop files" : "Виберіть або перетягніть файли",
+ "Select or drop files" : "Вибрати або перетягнути файли",
"Uploading files" : "Завантаження файлів",
"Uploaded files:" : "Завантажені файли:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Завантажуючи файли, ви погоджуєтеся з %1$sумовами користування%2$s.",
- "Add to your Nextcloud" : "Додати до вашої хмари Nextcloud",
- "Files and folders others share with you will show up here" : "Спільні файли та каталоги, якими поділилися з вами, з’являться тут",
- "Files and folders you share will show up here" : "Файли та каталоги, якими ви поділилися, показуватимуться тут",
- "Files and folders you share by link will show up here" : "Файли та каталоги, якими ви поділилися за посиланням, показуватимуться тут",
- "Shares you deleted will show up here" : "Спільні каталоги чи файли, які ви вилучили, показуватимуться тут",
- "Shares you have received but not confirmed will show up here" : "Спільні дані, які ви отримали, але не підтвердили, показуватимуться тут",
- "Shares will show up here" : "Спільні дані показуватимуться тут",
- "Restore" : "Відновити",
- "Something happened. Unable to restore the share." : "От халепа! Неможливо відновити спільні дані.",
- "Something happened. Unable to accept the share." : "От халепа! Неможливо прийняти дані, якими поділилися з вами.",
- "Something happened. Unable to reject the share." : "От халепа! Неможливо відхилити дані, якими поділилися з вами.",
- "No expiration date set" : "Не встановлено терміну дії",
- "Please specify a valid user" : "Будь ласка, зазначте дійсного користувача",
- "Please specify a valid federated user ID" : "Будь ласка, зазначте дійсний ідентифікатор користувача об'єднаної хмари",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Цей застосунок дозволяє користувачам обмінюватися файлами у хмарі Nextcloud. Якщо його увімкнено, адміністратор зможе вибрати, які групи мають право ділитися файлами. Відповідні користувачі зможуть надавати доступ до файлів та каталогів іншим користувачам та групам хмари. Крім того, якщо адміністратор увімкне функцію спільного доступу через посилання, то зовнішнє посилання можна використовувати для обміну файлами з іншими користувачами поза межами хмари Nextcloud. Адміністратори також можуть встановлювати пароль, дату, до якої буде дійсний спільний доступ, дозволяти обмін файлами між серверами за допомогою посилань спільного доступу, а також можливість надавати спільний доступ з мобільних пристроїв. \nВимкнення цієї функції вилучить файли та каталоги у спільеому доступі для всіх, кому було надано доступ, доступ також зникне у клієнтах синхронізації та мобільних застосунках. Докладно можна познайомитися в документації Nextcloud.",
- "Accept user and group shares by default" : "Типово приймати запрошення для спільного доступу від користувачів та груп",
- "Read only" : "Тільки читання",
- "File drop (upload only)" : "Додати файли (тільки для завантажування)",
- "Upload" : "Завантажити",
- "Bundled permissions" : "Збірні дозволи",
- "Only works for users with access to this folder" : "Стосується користувачів, які мають доступ до цього каталогу",
- "Only works for users with access to this file" : "Стосується користувачів, які мають доступ до цього файлу",
- "Circle" : "Коло",
- "Update" : "Оновлювати",
- "Share with " : "Поділитися з ",
- "No other users with access found" : "Більше немає користувачів, які мають доступ",
- "No entries found in this folder" : "Записів не знайдено в цьому каталозі",
- "Name" : "Ім’я",
- "Share time" : "Поділилися",
- "Sorry, this link does not seem to work anymore." : "Ймовірно, що це посилання більше не дійсне.",
- "Reasons might be:" : "Можливі причини:",
- "the item was removed" : "цей ресурс було вилучено",
- "the link expired" : "термін дії посилання вичерпано",
- "sharing is disabled" : "спільний доступ заборонено",
- "For more info, please ask the person who sent this link." : "За додатковою інформацією, будь ласка, зверніться до особи, від якої ви отримали це посилання.",
- "Share with remote" : "Поділитися з віддаленим",
- "Share with" : "Поділитися з"
+ "Name" : "Назва",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Використовуйте цей спосіб надання файлів у спільний доступ окремим користувачам або командам. Якщо отримувач вже має доступ до спільного ресурсу, але не може його знайти, ви можете допомогти йому/їй - надіслати посилання на внутрішній ресурс.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Використовуйте цей спосіб надання файлів у спільний доступ окремим користувачам або організаціям за межами вашої організації. Файли та каталоги можна надати у спільний доступ користувачам інших примірників хмар Nextcloud з використанням ідентифікатора об'єднаних хмар.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Спільні ресурси, що не є ані внутрішніми, ані зовнішніми спільними ресурсами, наприклад, спільні ресурси, створені застосунками чи іншими ресурсами.",
+ "Share with accounts, teams, federated cloud id" : "Поділитися з користувачами, командами, ID об'єднаних хмар",
+ "Share with accounts and teams" : "Поділитися з користувачами або командами",
+ "Federated cloud ID" : "Ідентифікатор об'єднаної хмари",
+ "Email, federated cloud id" : "Ел.пошта, ідентифікатор об'єднаної хмари",
+ "Filename must not be empty." : "Імена файлів не мають бути порожні."
},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ur_PK.js b/apps/files_sharing/l10n/ur_PK.js
deleted file mode 100644
index 2e9b145d789..00000000000
--- a/apps/files_sharing/l10n/ur_PK.js
+++ /dev/null
@@ -1,10 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Cancel" : "منسوخ کریں",
- "Shared by" : "سے اشتراک شدہ",
- "Password" : "پاسورڈ",
- "Name" : "اسم",
- "Download" : "ڈاؤن لوڈ،"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/ur_PK.json b/apps/files_sharing/l10n/ur_PK.json
deleted file mode 100644
index b0ac6d244b8..00000000000
--- a/apps/files_sharing/l10n/ur_PK.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "translations": {
- "Cancel" : "منسوخ کریں",
- "Shared by" : "سے اشتراک شدہ",
- "Password" : "پاسورڈ",
- "Name" : "اسم",
- "Download" : "ڈاؤن لوڈ،"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/vi.js b/apps/files_sharing/l10n/vi.js
index 033d6a0b961..e5ed43dc5d6 100644
--- a/apps/files_sharing/l10n/vi.js
+++ b/apps/files_sharing/l10n/vi.js
@@ -1,25 +1,11 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "Vui lòng đợi...",
- "error" : "Lỗi",
- "finished" : "Đã hoàn tất",
- "This will stop your current uploads." : "Hành động này sẽ dừng các tải lên hiện hành.",
- "Move or copy" : "Di chuyển hoặc sao chép",
- "Download" : "Tải về",
- "Delete" : "Xóa",
- "You can upload into this folder" : "Tải lên thư mục này",
- "Terms of service" : "Điều khoản dịch vụ",
- "Show list view" : "Hiển thị chế độ xem danh sách",
- "Show grid view" : "Hiển thị chế độ xem lưới",
- "No compatible server found at {remote}" : "Máy chủ không tương thích được tìm thấy tại {remote}",
- "Invalid server URL" : "URL máy chủ không hợp lệ",
- "Failed to add the public link to your Nextcloud" : "Không thể thêm liên kết công khai",
"File shares" : "Tệp chia sẻ",
"Downloaded via public link" : "Tải xuống qua liên kết",
"Downloaded by {email}" : "Tải xuống bởi {email}",
"{file} downloaded via public link" : "{file} được tải xuống qua liên kết công khai",
- "{email} downloaded {file}" : "{email} đã tải xuống {tệp}",
+ "{email} downloaded {file}" : "{email} đã tải xuống {file}",
"Shared with group {group}" : "Đã chia sẻ với nhóm {group}",
"Removed share for group {group}" : "Đã xóa chia sẻ cho nhóm {group}",
"{actor} shared with group {group}" : "{actor} đã chia sẻ với nhóm {group}",
@@ -70,7 +56,7 @@ OC.L10N.register(
"Share for file {file} expired" : "Chia sẻ cho tệp {file} đã hết hạn",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Một tệp hoặc thư mục được chia sẻ qua thư hoặc bằng liên kết công khai đã được tải xuống 1",
"A file or folder was shared from <strong>another server</strong>" : "Một tập tin hoặc thư mục đã được chia sẻ từ 1 máy chủ khác 1",
- "Files" : "Tệp tin",
+ "Sharing" : "Chia sẻ",
"A file or folder has been <strong>shared</strong>" : "Một tập tin hoặc thư mục đã được shared",
"Shared link" : "Liên kết được chia sẻ",
"Wrong share ID, share does not exist" : "ID chia sẻ sai, chia sẻ không tồn tại",
@@ -78,32 +64,29 @@ OC.L10N.register(
"Please specify a file or folder path" : "Vui lòng chỉ định đường dẫn tệp hoặc thư mục",
"Wrong path, file/folder does not exist" : "Đường dẫn sai, tập tin/thư mục không tồn tại",
"Could not create share" : "Không thể tạo chia sẻ",
- "Invalid permissions" : "Quyền không hợp lệ",
- "Invalid date, date format must be YYYY-MM-DD" : "Định dạng ngày không hợp lệ phải là YYYY-MM-DD",
"Group sharing is disabled by the administrator" : "Chia sẻ nhóm bị quản trị viên vô hiệu hóa",
"Please specify a valid group" : "Vui lòng chỉ định một nhóm hợp lệ",
"Public link sharing is disabled by the administrator" : "Chia sẻ liên kết công khai bị quản trị viên vô hiệu hóa",
- "Public upload disabled by the administrator" : "Tải lên công khai bị quản trị viên vô hiệu hóa",
- "Public upload is only possible for publicly shared folders" : "Chỉ có thể tải lên công khai đối với các thư mục được chia sẻ công khai",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Chia sẻ %s gửi mật khẩu bằng Nextcloud Talk không thành công do Nextcloud Talk chưa được bật",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Chia sẻ %1$s không thành công vì phần phụ trợ không cho phép chia sẻ từ loại %2$s",
"Please specify a valid federated group ID" : "Vui lòng chỉ định ID nhóm liên kết hợp lệ",
- "You cannot share to a Circle if the app is not enabled" : "Bạn không thể chia sẻ với Vòng kết nối nếu ứng dụng không được bật",
- "Please specify a valid circle" : "Vui lòng chỉ định một vòng kết nối hợp lệ",
"Sharing %s failed because the back end does not support room shares" : "Chia sẻ %s không thành công vì phần sau không hỗ trợ chia sẻ phòng",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Chia sẻ %s không thành công vì phần sau không hỗ trợ chia sẻ ScienceMesh",
"Unknown share type" : "Loại chia sẻ không xác định",
"Not a directory" : "Không phải là thư mục",
"Could not lock node" : "Không thể khóa nút",
- "Could not lock path" : "Không thể khóa đường dẫn",
- "Wrong or no update parameter given" : "Sai hoặc không có tham số cập nhật nào được đưa ra",
+ "Public upload is only possible for publicly shared folders" : "Chỉ có thể tải lên công khai đối với các thư mục được chia sẻ công khai",
"Share must at least have READ or CREATE permissions" : "Chia sẻ ít nhất phải có quyền ĐỌC hoặc TẠO",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Chia sẻ phải có quyền ĐỌC nếu quyền CẬP NHẬT hoặc XÓA được đặt",
+ "Public upload disabled by the administrator" : "Tải lên công khai bị quản trị viên vô hiệu hóa",
+ "Could not lock path" : "Không thể khóa đường dẫn",
+ "Wrong or no update parameter given" : "Sai hoặc không có tham số cập nhật nào được đưa ra",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Gửi mật khẩu bằng Nextcloud Talk\" để chia sẻ tệp hoặc thư mục không thành công do Nextcloud Talk chưa được bật.",
+ "Wrong password" : "Mật khẩu không chính xác",
"shared by %s" : "Được chia sẻ bởi %s",
- "Download all files" : "Tải xuống tất cả các tập tin",
- "Direct link" : "Liên kết trực tiêp",
+ "Download" : "Tải về",
"Add to your %s" : "Thêm vào %s của bạn",
+ "Direct link" : "Liên kết trực tiêp",
"Share API is disabled" : "API chia sẻ bị tắt",
"File sharing" : "Chia sẻ file",
"Share will expire tomorrow" : "Chia sẻ sẽ hết hạn vào ngày mai",
@@ -112,15 +95,25 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Bạn đã nhận được {share} để nhóm {group} dưới dạng lượt chia sẻ của {user}",
"Accept" : "Chấp nhận",
"Decline" : "Từ chối",
- "Sharing" : "Chia sẻ",
+ "People" : "Mọi người",
+ "Expiration date" : "Ngày kết thúc",
+ "Set a password" : "Đặt mật khẩu",
+ "Password" : "Mật khẩu",
+ "Link copied" : "Đã sao chép liên kết",
+ "Share link" : "Chia sẽ liên kết",
+ "Select" : "Chọn",
+ "Close" : "Đóng",
+ "Error creating the share: {errorMessage}" : "Lỗi khi tạo chia sẻ: {errorMessage}",
+ "Error creating the share" : "Lỗi khi tạo chia sẻ",
+ "Cancel" : "Hủy bỏ",
+ "Continue" : "Tiếp tục",
"Error while toggling options" : "Lỗi khi chuyển đổi tùy chọn",
+ "Choose a default folder for accepted shares" : "Chọn thư mục mặc định cho các chia sẻ được chấp nhận",
+ "Invalid path selected" : "Đường dẫn không hợp lệ được chọn",
+ "Unknown error" : "Lỗi không xác định",
"Set default folder for accepted shares" : "Đặt thư mục mặc định cho các chia sẻ được chấp nhận",
"Reset" : "Đặt lại",
"Reset folder to system default" : "Đặt lại thư mục về mặc định của hệ thống",
- "Choose a default folder for accepted shares" : "Chọn thư mục mặc định cho các chia sẻ được chấp nhận",
- "Invalid path selected" : "‎Đường dẫn không hợp lệ được chọn‎",
- "Unknown error" : "Lỗi không xác định",
- "Open Sharing Details" : "Mở chi tiết chia sẻ",
"group" : "nhóm",
"conversation" : "đàm thoại",
"remote" : "Từ xa",
@@ -129,108 +122,87 @@ OC.L10N.register(
"Shared with the group {user} by {owner}" : "Được chia sẻ với nhóm {user} bởi {owner}",
"Shared with the conversation {user} by {owner}" : "Được chia sẻ với cuộc trò chuyện {user} bởi {owner}",
"Shared with {user} by {owner}" : "Được chia sẻ với {user} bởi {owner}",
- "Added by {initiator}" : "Được thêm bởi {người khởi xướng}",
- "Via “{folder}”" : "Thông qua “{thư mục}”",
+ "Open Sharing Details" : "Mở chi tiết chia sẻ",
+ "Added by {initiator}" : "Được thêm bởi {initiator}",
+ "Via “{folder}”" : "Thông qua “{folder}”",
"Unshare" : "Bỏ chia sẽ",
- "Internal link" : "Liên kết nội bộ",
"Cannot copy, please copy the link manually" : "Không thể sao chép, vui lòng sao chép liên kết bằng tay",
- "Copy internal link to clipboard" : "Sao chép liên kết nội bộ vào bộ nhớ tạm",
- "Link copied" : "Đã sao chép liên kết",
- "Please enter the following required information before creating the share" : "Vui lòng nhập các thông tin bắt buộc sau trước khi tạo chia sẻ",
- "Password protection (enforced)" : "Bảo vệ bằng mật khẩu (bắt buộc)",
- "Password protection" : "Password protection",
- "Enter a password" : "Nhập mật khẩu",
- "Expiration date (enforced)" : "Ngày hết hạn (bắt buộc)",
- "Enter a date" : "Nhập ngày",
- "Create share" : "Tạo chia sẻ",
- "Cancel" : "Hủy bỏ",
- "Customize link" : "Tùy chỉnh liên kết",
- "Add another link" : "Thêm một liên kết khác",
- "Create a new share link" : "Tạo liên kết chia sẻ mới",
+ "Internal link" : "Liên kết nội bộ",
"{shareWith} by {initiator}" : "{shareWith} bởi {initiator}",
"Shared via link by {initiator}" : "Được chia sẻ qua liên kết bởi {initiator}",
"Mail share ({label})" : "Chia sẻ thư ({label})",
"Share link ({label})" : "Chia sẻ liên kết ({label})",
"Share link ({index})" : "Chia sẻ liên kết ({index})",
- "Share link" : "Chia sẽ liên kết",
"Actions for \"{title}\"" : "Hành động cho \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Sao chép liên kết công khai của \"{title}\" vào bộ nhớ tạm",
"Error, please enter proper password and/or expiration date" : "Lỗi, vui lòng nhập đúng mật khẩu và/hoặc ngày hết hạn",
"Link share created" : "Đã tạo liên kết chia sẻ",
"Error while creating the share" : "Lỗi khi tạo chia sẻ",
+ "Please enter the following required information before creating the share" : "Vui lòng nhập các thông tin bắt buộc sau trước khi tạo chia sẻ",
+ "Password protection (enforced)" : "Bảo vệ bằng mật khẩu (bắt buộc)",
+ "Password protection" : "Password protection",
+ "Enter a password" : "Nhập mật khẩu",
+ "Create share" : "Tạo chia sẻ",
+ "Customize link" : "Tùy chỉnh liên kết",
+ "Add another link" : "Thêm một liên kết khác",
+ "Create a new share link" : "Tạo liên kết chia sẻ mới",
"View only" : "Chỉ xem",
"Can edit" : "Có thể chỉnh sửa",
- "File drop" : "Thả file",
"Custom permissions" : "Quyền tùy chỉnh",
- "Search for share recipients" : "Tìm kiếm người nhận chia sẻ",
- "No recommendations. Start typing." : "Không có khuyến nghị. Bắt đầu gõ.",
"Resharing is not allowed" : "Chia sẻ lại không được cho phép",
"Name or email …" : "Tên hoặc email…",
"Name, email, or Federated Cloud ID …" : "Tên, email hoặc ID đám mây liên kết…",
"Searching …" : "Đang tìm kiếm ...",
"No elements found." : "Không tìm thấy phần tử nào.",
- "Search globally" : "Tìm kiếm trên toàn cầu",
+ "Search everywhere" : "Tìm ở bất kì đâu",
"Guest" : "Khách",
"Group" : "Nhóm",
"Email" : "Thư điện tử",
"Talk conversation" : "Nói chuyện",
"Deck board" : "Dự án Deck",
"ScienceMesh" : "Khoa học Mesh",
- "on {server}" : "trên {máy chủ}",
+ "on {server}" : "trên {server}",
+ "File drop" : "Thả file",
+ "Terms of service" : "Điều khoản dịch vụ",
+ "Update share" : "Cập nhật chia sẻ",
+ "Save share" : "Lưu chia sẻ",
+ "Read" : "Đọc",
+ "Create" : "Tạo",
+ "Edit" : "Chỉnh sửa",
+ "Share" : "Chia sẻ",
+ "Delete" : "Xóa",
"Allow upload and editing" : "Cho phép tải lên và chỉnh sửa",
"Allow editing" : "Cho phép chỉnh sửa",
"Upload only" : "Chỉ tải lên",
"Advanced settings" : "Cài đặt nâng cao",
"Share label" : "Chia sẻ nhãn",
"Set password" : "Đặt mật khẩu",
- "Password" : "Mật khẩu",
"Password expires {passwordExpirationTime}" : "Mật khẩu hết hạn {passwordExpirationTime}",
"Password expired" : "Mật khẩu quá hạn",
"Video verification" : "Xác minh video",
+ "Expiration date (enforced)" : "Ngày hết hạn (bắt buộc)",
"Set expiration date" : "Đặt ngày hết hạn",
- "Expiration date" : "Ngày kết thúc",
"Hide download" : "Ẩn tải xuống",
- "Allow download" : "Cho phép tải xuống",
"Note to recipient" : "Ghi chú cho người nhận",
"Enter a note for the share recipient" : "Nhập ghi chú cho người nhận chia sẻ",
- "Read" : "Đọc",
- "Create" : "‎Tạo‎",
- "Edit" : "Chỉnh sửa",
- "Share" : "Chia sẻ",
"Delete share" : "Xóa chia sẻ",
- "Update share" : "Cập nhật chia sẻ",
- "Save share" : "Lưu chia sẻ",
"Others with access" : "Những người khác có quyền truy cập",
"Toggle list of others with access to this directory" : "Chuyển đổi danh sách những người khác có quyền truy cập vào thư mục này",
"Toggle list of others with access to this file" : "Chuyển đổi danh sách những người khác có quyền truy cập vào tệp này",
"Unable to fetch inherited shares" : "Không thể tìm nạp cổ phần được kế thừa",
+ "Shares" : "Chia sẻ",
"Unable to load the shares list" : "Không thể tải danh sách chia sẻ",
"Expires {relativetime}" : "Hết hạn {relativetime}",
"this share just expired." : "chia sẻ này vừa hết hạn.",
"Shared with you by {owner}" : "Đã được chia sẽ bởi {owner}",
+ "Link to a file" : "Liên kết đến một tập tin",
"_Accept share_::_Accept shares_" : ["Chấp nhận chia sẻ"],
"Open in Files" : "Mở trong Tệp",
"_Reject share_::_Reject shares_" : ["Từ chối chia sẻ"],
"_Restore share_::_Restore shares_" : ["Khôi phục lượt chia sẻ"],
"Shared" : "Chia sẻ",
"Shared by {ownerDisplayName}" : "Được chia sẻ bởi {ownerDisplayName}",
- "Link to a file" : "Liên kết đến một tập tin",
- "Error creating the share: {errorMessage}" : "Lỗi khi tạo chia sẻ: {errorMessage}",
- "Error creating the share" : "Lỗi khi tạo chia sẻ",
- "Error updating the share: {errorMessage}" : "Lỗi cập nhật phần chia sẻ: {errorMessage}",
- "Error updating the share" : "Lỗi cập nhật chia sẻ",
- "File \"{path}\" has been unshared" : "Tệp \"{path}\" đã không được chia sẻ",
- "Folder \"{path}\" has been unshared" : "Thư mục \"{path}\" đã không được chia sẻ",
- "Share {propertyName} saved" : "Đã lưu chia sẻ {propertyName}",
- "Shared by" : "Chia sẻ bởi",
- "Shared with" : "Chia sẽ với",
- "Password created successfully" : "Đã tạo mật khẩu thành công",
- "Error generating password from password policy" : "Lỗi tạo mật khẩu từ chính sách mật khẩu",
- "Shared with you and the group {group} by {owner}" : "Đã được chia sẽ với bạn và nhóm {group} bởi {owner}",
- "Shared with you and {circle} by {owner}" : "Được chia sẻ với bạn và {circle} bởi {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Được chia sẻ với bạn và cuộc trò chuyện {conversation} của {owner}",
- "Shared with you in a conversation by {owner}" : "Được chia sẻ với bạn trong cuộc trò chuyện bởi {owner}",
- "Shares" : "Chia sẻ",
+ "Shared multiple times with different people" : "Shared multiple times with different people",
+ "Shared with others" : "Chia sẻ với người khác",
"Overview of shared files." : "Tổng quan về các tập tin được chia sẻ.",
"No shares" : "Không có lượt chia sẻ",
"Files and folders you shared or have been shared with you will show up here" : "Các tệp và thư mục bạn đã chia sẻ hoặc đã được chia sẻ với bạn sẽ hiển thị ở đây",
@@ -238,7 +210,6 @@ OC.L10N.register(
"List of files that are shared with you." : "Danh sách các tập tin được chia sẻ với bạn.",
"Nothing shared with you yet" : "Bạn chưa được chia sẻ gì cả",
"Files and folders others shared with you will show up here" : "Các tệp và thư mục mà người khác chia sẻ với bạn sẽ hiển thị ở đây",
- "Shared with others" : "Chia sẻ với người khác",
"List of files that you shared with others." : "Danh sách các tập tin mà bạn đã chia sẻ với người khác.",
"Nothing shared yet" : "Chưa có gì được chia sẻ",
"Files and folders you shared will show up here" : "Các tệp và thư mục bạn đã chia sẻ sẽ hiển thị ở đây",
@@ -250,10 +221,43 @@ OC.L10N.register(
"List of shares you left." : "Danh sách chia sẻ bạn để lại.",
"No deleted shares" : "Không có chia sẻ bị xóa",
"Shares you have left will show up here" : "Những chia sẻ bạn để lại sẽ hiển thị ở đây",
- "Pending shares" : "Chia sẻ đang chờ xử lý‎",
+ "Pending shares" : "Chia sẻ đang chờ xử lý",
"List of unapproved shares." : "Danh sách cổ phiếu không được phê duyệt",
"No pending shares" : "Không có cổ phiếu đang chờ xử lý",
"Shares you have received but not approved will show up here" : "Những chia sẻ bạn đã nhận được nhưng không được duyệt sẽ hiển thị ở đây",
+ "Error updating the share: {errorMessage}" : "Lỗi cập nhật phần chia sẻ: {errorMessage}",
+ "Error updating the share" : "Lỗi cập nhật chia sẻ",
+ "File \"{path}\" has been unshared" : "Tệp \"{path}\" đã không được chia sẻ",
+ "Folder \"{path}\" has been unshared" : "Thư mục \"{path}\" đã không được chia sẻ",
+ "Shared by" : "Chia sẻ bởi",
+ "Shared with" : "Chia sẽ với",
+ "Password created successfully" : "Đã tạo mật khẩu thành công",
+ "Error generating password from password policy" : "Lỗi tạo mật khẩu từ chính sách mật khẩu",
+ "Shared with you and the group {group} by {owner}" : "Đã được chia sẽ với bạn và nhóm {group} bởi {owner}",
+ "Shared with you and {circle} by {owner}" : "Được chia sẻ với bạn và {circle} bởi {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Được chia sẻ với bạn và cuộc trò chuyện {conversation} của {owner}",
+ "Shared with you in a conversation by {owner}" : "Được chia sẻ với bạn trong cuộc trò chuyện bởi {owner}",
+ "Share not found" : "Không tìm thấy chia sẻ.",
+ "Back to %s" : "Quay lại %s",
+ "Add to your Nextcloud" : "Thêm vào Nextcloud của bạn",
+ "Waiting…" : "Vui lòng đợi...",
+ "error" : "Lỗi",
+ "finished" : "Đã hoàn tất",
+ "This will stop your current uploads." : "Hành động này sẽ dừng các tải lên hiện hành.",
+ "Move or copy" : "Di chuyển hoặc sao chép",
+ "You can upload into this folder" : "Tải lên thư mục này",
+ "Show list view" : "Hiển thị chế độ xem danh sách",
+ "Show grid view" : "Hiển thị chế độ xem lưới",
+ "No compatible server found at {remote}" : "Máy chủ không tương thích được tìm thấy tại {remote}",
+ "Invalid server URL" : "URL máy chủ không hợp lệ",
+ "Failed to add the public link to your Nextcloud" : "Không thể thêm liên kết công khai",
+ "Download all files" : "Tải xuống tất cả các tập tin",
+ "Copy to clipboard" : "Sao chép vào clipboard",
+ "Copy internal link to clipboard" : "Sao chép liên kết nội bộ vào bộ nhớ tạm",
+ "Copy public link of \"{title}\" to clipboard" : "Sao chép liên kết công khai của \"{title}\" vào bộ nhớ tạm",
+ "Search globally" : "Tìm kiếm trên toàn cầu",
+ "Search for share recipients" : "Tìm kiếm người nhận chia sẻ",
+ "No recommendations. Start typing." : "Không có khuyến nghị. Bắt đầu gõ.",
"Share note" : "Chia sẻ ghi chú",
"Upload files to %s" : "Tải tệp lên %s",
"Note" : "Ghi chú",
@@ -261,40 +265,7 @@ OC.L10N.register(
"Uploading files" : "Đang tải tập tin lên",
"Uploaded files:" : "Tập tin đã được tải lên:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Bằng cách tải tệp lên, bạn đồng ý với %1$sđiều khoản dịch vụ%2$s.",
- "Add to your Nextcloud" : "Thêm vào Nextcloud của bạn",
- "Files and folders others share with you will show up here" : "Các tệp và thư mục mà người khác chia sẻ với bạn sẽ hiển thị ở đây",
- "Files and folders you share will show up here" : "Tập tin và thư mục bạn chia sẻ sẽ được hiển thị tại đây.",
- "Files and folders you share by link will show up here" : "Các tệp và thư mục bạn chia sẻ bằng liên kết sẽ hiển thị ở đây",
- "Shares you deleted will show up here" : "Những chia sẻ bạn đã xóa sẽ hiển thị ở đây",
- "Shares you have received but not confirmed will show up here" : "Những chia sẻ bạn đã nhận được nhưng chưa được xác nhận sẽ hiển thị ở đây",
- "Shares will show up here" : "Chia sẻ sẽ hiển thị ở đây",
- "Restore" : "Khôi phục",
- "Something happened. Unable to restore the share." : "Một cái gì đó đã xảy ra. Không thể khôi phục chia sẻ.",
- "Something happened. Unable to accept the share." : "Một cái gì đó đã xảy ra. Không thể chấp nhận chia sẻ.",
- "Something happened. Unable to reject the share." : "Một cái gì đó đã xảy ra. Không thể từ chối chia sẻ.",
- "No expiration date set" : "Không có ngày hết hạn được đặt",
- "Please specify a valid user" : "Vui lòng chỉ định người dùng hợp lệ",
- "Please specify a valid federated user ID" : "Vui lòng chỉ định ID người dùng liên kết hợp lệ",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Ứng dụng này cho phép người dùng chia sẻ tệp trong Nextcloud. Nếu được bật, quản trị viên có thể chọn nhóm nào có thể chia sẻ tệp. Sau đó, những người dùng hiện hành có thể chia sẻ tệp và thư mục với những người dùng và nhóm khác trong Nextcloud. Ngoài ra, nếu quản trị viên kích hoạt tính năng liên kết chia sẻ, liên kết bên ngoài có thể được sử dụng để chia sẻ tệp với những người dùng khác bên ngoài Nextcloud. Quản trị viên cũng có thể thực thi mật khẩu, ngày hết hạn và cho phép chia sẻ máy chủ với máy chủ thông qua liên kết chia sẻ cũng như chia sẻ từ thiết bị di động.Việc tắt tính năng này sẽ xóa các tệp và thư mục được chia sẻ trên máy chủ đối với tất cả người nhận chia sẻ cũng như đồng bộ hóa khách hàng và ứng dụng di động. Thông tin thêm có sẵn trong Tài liệu Nextcloud.",
- "Accept user and group shares by default" : "Chấp nhận chia sẻ của người dùng và nhóm theo mặc định",
- "Read only" : "Chỉ xem",
- "File drop (upload only)" : "Kéo thả file (chỉ áp dụng trong trường hợp tải lên)",
- "Upload" : "Tải lên",
- "Bundled permissions" : "Quyền đi kèm",
- "Only works for users with access to this folder" : "Chỉ hoạt động đối với người dùng có quyền truy cập vào thư mục này",
- "Only works for users with access to this file" : "Chỉ hoạt động đối với người dùng có quyền truy cập vào tệp này",
- "Circle" : "Vòng kết nối",
- "Update" : "Cập nhật",
- "Share with " : "Chia sẽ với",
- "No other users with access found" : "Không tìm thấy người dùng khác có quyền truy cập",
- "No entries found in this folder" : "Chưa có mục nào trong thư mục",
"Name" : "Tên",
- "Share time" : "Chia sẻ thời gian",
- "Sorry, this link does not seem to work anymore." : "Xin lỗi, liên kết này dường như không còn hoạt động nữa.",
- "Reasons might be:" : "Lý do có thể là:",
- "the item was removed" : "đối tượng đã bị xóa",
- "the link expired" : "liên kết đã hết hạn",
- "sharing is disabled" : "việc chia sẻ bị cấm",
- "For more info, please ask the person who sent this link." : "Để biết thêm thông tin, vui lòng hỏi người đã gửi liên kết này."
+ "Filename must not be empty." : "Tên tập tin không thể trống"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/vi.json b/apps/files_sharing/l10n/vi.json
index 5cc79daa0c7..37095bbc7d7 100644
--- a/apps/files_sharing/l10n/vi.json
+++ b/apps/files_sharing/l10n/vi.json
@@ -1,23 +1,9 @@
{ "translations": {
- "Waiting…" : "Vui lòng đợi...",
- "error" : "Lỗi",
- "finished" : "Đã hoàn tất",
- "This will stop your current uploads." : "Hành động này sẽ dừng các tải lên hiện hành.",
- "Move or copy" : "Di chuyển hoặc sao chép",
- "Download" : "Tải về",
- "Delete" : "Xóa",
- "You can upload into this folder" : "Tải lên thư mục này",
- "Terms of service" : "Điều khoản dịch vụ",
- "Show list view" : "Hiển thị chế độ xem danh sách",
- "Show grid view" : "Hiển thị chế độ xem lưới",
- "No compatible server found at {remote}" : "Máy chủ không tương thích được tìm thấy tại {remote}",
- "Invalid server URL" : "URL máy chủ không hợp lệ",
- "Failed to add the public link to your Nextcloud" : "Không thể thêm liên kết công khai",
"File shares" : "Tệp chia sẻ",
"Downloaded via public link" : "Tải xuống qua liên kết",
"Downloaded by {email}" : "Tải xuống bởi {email}",
"{file} downloaded via public link" : "{file} được tải xuống qua liên kết công khai",
- "{email} downloaded {file}" : "{email} đã tải xuống {tệp}",
+ "{email} downloaded {file}" : "{email} đã tải xuống {file}",
"Shared with group {group}" : "Đã chia sẻ với nhóm {group}",
"Removed share for group {group}" : "Đã xóa chia sẻ cho nhóm {group}",
"{actor} shared with group {group}" : "{actor} đã chia sẻ với nhóm {group}",
@@ -68,7 +54,7 @@
"Share for file {file} expired" : "Chia sẻ cho tệp {file} đã hết hạn",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Một tệp hoặc thư mục được chia sẻ qua thư hoặc bằng liên kết công khai đã được tải xuống 1",
"A file or folder was shared from <strong>another server</strong>" : "Một tập tin hoặc thư mục đã được chia sẻ từ 1 máy chủ khác 1",
- "Files" : "Tệp tin",
+ "Sharing" : "Chia sẻ",
"A file or folder has been <strong>shared</strong>" : "Một tập tin hoặc thư mục đã được shared",
"Shared link" : "Liên kết được chia sẻ",
"Wrong share ID, share does not exist" : "ID chia sẻ sai, chia sẻ không tồn tại",
@@ -76,32 +62,29 @@
"Please specify a file or folder path" : "Vui lòng chỉ định đường dẫn tệp hoặc thư mục",
"Wrong path, file/folder does not exist" : "Đường dẫn sai, tập tin/thư mục không tồn tại",
"Could not create share" : "Không thể tạo chia sẻ",
- "Invalid permissions" : "Quyền không hợp lệ",
- "Invalid date, date format must be YYYY-MM-DD" : "Định dạng ngày không hợp lệ phải là YYYY-MM-DD",
"Group sharing is disabled by the administrator" : "Chia sẻ nhóm bị quản trị viên vô hiệu hóa",
"Please specify a valid group" : "Vui lòng chỉ định một nhóm hợp lệ",
"Public link sharing is disabled by the administrator" : "Chia sẻ liên kết công khai bị quản trị viên vô hiệu hóa",
- "Public upload disabled by the administrator" : "Tải lên công khai bị quản trị viên vô hiệu hóa",
- "Public upload is only possible for publicly shared folders" : "Chỉ có thể tải lên công khai đối với các thư mục được chia sẻ công khai",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Chia sẻ %s gửi mật khẩu bằng Nextcloud Talk không thành công do Nextcloud Talk chưa được bật",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Chia sẻ %1$s không thành công vì phần phụ trợ không cho phép chia sẻ từ loại %2$s",
"Please specify a valid federated group ID" : "Vui lòng chỉ định ID nhóm liên kết hợp lệ",
- "You cannot share to a Circle if the app is not enabled" : "Bạn không thể chia sẻ với Vòng kết nối nếu ứng dụng không được bật",
- "Please specify a valid circle" : "Vui lòng chỉ định một vòng kết nối hợp lệ",
"Sharing %s failed because the back end does not support room shares" : "Chia sẻ %s không thành công vì phần sau không hỗ trợ chia sẻ phòng",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "Chia sẻ %s không thành công vì phần sau không hỗ trợ chia sẻ ScienceMesh",
"Unknown share type" : "Loại chia sẻ không xác định",
"Not a directory" : "Không phải là thư mục",
"Could not lock node" : "Không thể khóa nút",
- "Could not lock path" : "Không thể khóa đường dẫn",
- "Wrong or no update parameter given" : "Sai hoặc không có tham số cập nhật nào được đưa ra",
+ "Public upload is only possible for publicly shared folders" : "Chỉ có thể tải lên công khai đối với các thư mục được chia sẻ công khai",
"Share must at least have READ or CREATE permissions" : "Chia sẻ ít nhất phải có quyền ĐỌC hoặc TẠO",
"Share must have READ permission if UPDATE or DELETE permission is set" : "Chia sẻ phải có quyền ĐỌC nếu quyền CẬP NHẬT hoặc XÓA được đặt",
+ "Public upload disabled by the administrator" : "Tải lên công khai bị quản trị viên vô hiệu hóa",
+ "Could not lock path" : "Không thể khóa đường dẫn",
+ "Wrong or no update parameter given" : "Sai hoặc không có tham số cập nhật nào được đưa ra",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Gửi mật khẩu bằng Nextcloud Talk\" để chia sẻ tệp hoặc thư mục không thành công do Nextcloud Talk chưa được bật.",
+ "Wrong password" : "Mật khẩu không chính xác",
"shared by %s" : "Được chia sẻ bởi %s",
- "Download all files" : "Tải xuống tất cả các tập tin",
- "Direct link" : "Liên kết trực tiêp",
+ "Download" : "Tải về",
"Add to your %s" : "Thêm vào %s của bạn",
+ "Direct link" : "Liên kết trực tiêp",
"Share API is disabled" : "API chia sẻ bị tắt",
"File sharing" : "Chia sẻ file",
"Share will expire tomorrow" : "Chia sẻ sẽ hết hạn vào ngày mai",
@@ -110,15 +93,25 @@
"You received {share} to group {group} as a share by {user}" : "Bạn đã nhận được {share} để nhóm {group} dưới dạng lượt chia sẻ của {user}",
"Accept" : "Chấp nhận",
"Decline" : "Từ chối",
- "Sharing" : "Chia sẻ",
+ "People" : "Mọi người",
+ "Expiration date" : "Ngày kết thúc",
+ "Set a password" : "Đặt mật khẩu",
+ "Password" : "Mật khẩu",
+ "Link copied" : "Đã sao chép liên kết",
+ "Share link" : "Chia sẽ liên kết",
+ "Select" : "Chọn",
+ "Close" : "Đóng",
+ "Error creating the share: {errorMessage}" : "Lỗi khi tạo chia sẻ: {errorMessage}",
+ "Error creating the share" : "Lỗi khi tạo chia sẻ",
+ "Cancel" : "Hủy bỏ",
+ "Continue" : "Tiếp tục",
"Error while toggling options" : "Lỗi khi chuyển đổi tùy chọn",
+ "Choose a default folder for accepted shares" : "Chọn thư mục mặc định cho các chia sẻ được chấp nhận",
+ "Invalid path selected" : "Đường dẫn không hợp lệ được chọn",
+ "Unknown error" : "Lỗi không xác định",
"Set default folder for accepted shares" : "Đặt thư mục mặc định cho các chia sẻ được chấp nhận",
"Reset" : "Đặt lại",
"Reset folder to system default" : "Đặt lại thư mục về mặc định của hệ thống",
- "Choose a default folder for accepted shares" : "Chọn thư mục mặc định cho các chia sẻ được chấp nhận",
- "Invalid path selected" : "‎Đường dẫn không hợp lệ được chọn‎",
- "Unknown error" : "Lỗi không xác định",
- "Open Sharing Details" : "Mở chi tiết chia sẻ",
"group" : "nhóm",
"conversation" : "đàm thoại",
"remote" : "Từ xa",
@@ -127,108 +120,87 @@
"Shared with the group {user} by {owner}" : "Được chia sẻ với nhóm {user} bởi {owner}",
"Shared with the conversation {user} by {owner}" : "Được chia sẻ với cuộc trò chuyện {user} bởi {owner}",
"Shared with {user} by {owner}" : "Được chia sẻ với {user} bởi {owner}",
- "Added by {initiator}" : "Được thêm bởi {người khởi xướng}",
- "Via “{folder}”" : "Thông qua “{thư mục}”",
+ "Open Sharing Details" : "Mở chi tiết chia sẻ",
+ "Added by {initiator}" : "Được thêm bởi {initiator}",
+ "Via “{folder}”" : "Thông qua “{folder}”",
"Unshare" : "Bỏ chia sẽ",
- "Internal link" : "Liên kết nội bộ",
"Cannot copy, please copy the link manually" : "Không thể sao chép, vui lòng sao chép liên kết bằng tay",
- "Copy internal link to clipboard" : "Sao chép liên kết nội bộ vào bộ nhớ tạm",
- "Link copied" : "Đã sao chép liên kết",
- "Please enter the following required information before creating the share" : "Vui lòng nhập các thông tin bắt buộc sau trước khi tạo chia sẻ",
- "Password protection (enforced)" : "Bảo vệ bằng mật khẩu (bắt buộc)",
- "Password protection" : "Password protection",
- "Enter a password" : "Nhập mật khẩu",
- "Expiration date (enforced)" : "Ngày hết hạn (bắt buộc)",
- "Enter a date" : "Nhập ngày",
- "Create share" : "Tạo chia sẻ",
- "Cancel" : "Hủy bỏ",
- "Customize link" : "Tùy chỉnh liên kết",
- "Add another link" : "Thêm một liên kết khác",
- "Create a new share link" : "Tạo liên kết chia sẻ mới",
+ "Internal link" : "Liên kết nội bộ",
"{shareWith} by {initiator}" : "{shareWith} bởi {initiator}",
"Shared via link by {initiator}" : "Được chia sẻ qua liên kết bởi {initiator}",
"Mail share ({label})" : "Chia sẻ thư ({label})",
"Share link ({label})" : "Chia sẻ liên kết ({label})",
"Share link ({index})" : "Chia sẻ liên kết ({index})",
- "Share link" : "Chia sẽ liên kết",
"Actions for \"{title}\"" : "Hành động cho \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Sao chép liên kết công khai của \"{title}\" vào bộ nhớ tạm",
"Error, please enter proper password and/or expiration date" : "Lỗi, vui lòng nhập đúng mật khẩu và/hoặc ngày hết hạn",
"Link share created" : "Đã tạo liên kết chia sẻ",
"Error while creating the share" : "Lỗi khi tạo chia sẻ",
+ "Please enter the following required information before creating the share" : "Vui lòng nhập các thông tin bắt buộc sau trước khi tạo chia sẻ",
+ "Password protection (enforced)" : "Bảo vệ bằng mật khẩu (bắt buộc)",
+ "Password protection" : "Password protection",
+ "Enter a password" : "Nhập mật khẩu",
+ "Create share" : "Tạo chia sẻ",
+ "Customize link" : "Tùy chỉnh liên kết",
+ "Add another link" : "Thêm một liên kết khác",
+ "Create a new share link" : "Tạo liên kết chia sẻ mới",
"View only" : "Chỉ xem",
"Can edit" : "Có thể chỉnh sửa",
- "File drop" : "Thả file",
"Custom permissions" : "Quyền tùy chỉnh",
- "Search for share recipients" : "Tìm kiếm người nhận chia sẻ",
- "No recommendations. Start typing." : "Không có khuyến nghị. Bắt đầu gõ.",
"Resharing is not allowed" : "Chia sẻ lại không được cho phép",
"Name or email …" : "Tên hoặc email…",
"Name, email, or Federated Cloud ID …" : "Tên, email hoặc ID đám mây liên kết…",
"Searching …" : "Đang tìm kiếm ...",
"No elements found." : "Không tìm thấy phần tử nào.",
- "Search globally" : "Tìm kiếm trên toàn cầu",
+ "Search everywhere" : "Tìm ở bất kì đâu",
"Guest" : "Khách",
"Group" : "Nhóm",
"Email" : "Thư điện tử",
"Talk conversation" : "Nói chuyện",
"Deck board" : "Dự án Deck",
"ScienceMesh" : "Khoa học Mesh",
- "on {server}" : "trên {máy chủ}",
+ "on {server}" : "trên {server}",
+ "File drop" : "Thả file",
+ "Terms of service" : "Điều khoản dịch vụ",
+ "Update share" : "Cập nhật chia sẻ",
+ "Save share" : "Lưu chia sẻ",
+ "Read" : "Đọc",
+ "Create" : "Tạo",
+ "Edit" : "Chỉnh sửa",
+ "Share" : "Chia sẻ",
+ "Delete" : "Xóa",
"Allow upload and editing" : "Cho phép tải lên và chỉnh sửa",
"Allow editing" : "Cho phép chỉnh sửa",
"Upload only" : "Chỉ tải lên",
"Advanced settings" : "Cài đặt nâng cao",
"Share label" : "Chia sẻ nhãn",
"Set password" : "Đặt mật khẩu",
- "Password" : "Mật khẩu",
"Password expires {passwordExpirationTime}" : "Mật khẩu hết hạn {passwordExpirationTime}",
"Password expired" : "Mật khẩu quá hạn",
"Video verification" : "Xác minh video",
+ "Expiration date (enforced)" : "Ngày hết hạn (bắt buộc)",
"Set expiration date" : "Đặt ngày hết hạn",
- "Expiration date" : "Ngày kết thúc",
"Hide download" : "Ẩn tải xuống",
- "Allow download" : "Cho phép tải xuống",
"Note to recipient" : "Ghi chú cho người nhận",
"Enter a note for the share recipient" : "Nhập ghi chú cho người nhận chia sẻ",
- "Read" : "Đọc",
- "Create" : "‎Tạo‎",
- "Edit" : "Chỉnh sửa",
- "Share" : "Chia sẻ",
"Delete share" : "Xóa chia sẻ",
- "Update share" : "Cập nhật chia sẻ",
- "Save share" : "Lưu chia sẻ",
"Others with access" : "Những người khác có quyền truy cập",
"Toggle list of others with access to this directory" : "Chuyển đổi danh sách những người khác có quyền truy cập vào thư mục này",
"Toggle list of others with access to this file" : "Chuyển đổi danh sách những người khác có quyền truy cập vào tệp này",
"Unable to fetch inherited shares" : "Không thể tìm nạp cổ phần được kế thừa",
+ "Shares" : "Chia sẻ",
"Unable to load the shares list" : "Không thể tải danh sách chia sẻ",
"Expires {relativetime}" : "Hết hạn {relativetime}",
"this share just expired." : "chia sẻ này vừa hết hạn.",
"Shared with you by {owner}" : "Đã được chia sẽ bởi {owner}",
+ "Link to a file" : "Liên kết đến một tập tin",
"_Accept share_::_Accept shares_" : ["Chấp nhận chia sẻ"],
"Open in Files" : "Mở trong Tệp",
"_Reject share_::_Reject shares_" : ["Từ chối chia sẻ"],
"_Restore share_::_Restore shares_" : ["Khôi phục lượt chia sẻ"],
"Shared" : "Chia sẻ",
"Shared by {ownerDisplayName}" : "Được chia sẻ bởi {ownerDisplayName}",
- "Link to a file" : "Liên kết đến một tập tin",
- "Error creating the share: {errorMessage}" : "Lỗi khi tạo chia sẻ: {errorMessage}",
- "Error creating the share" : "Lỗi khi tạo chia sẻ",
- "Error updating the share: {errorMessage}" : "Lỗi cập nhật phần chia sẻ: {errorMessage}",
- "Error updating the share" : "Lỗi cập nhật chia sẻ",
- "File \"{path}\" has been unshared" : "Tệp \"{path}\" đã không được chia sẻ",
- "Folder \"{path}\" has been unshared" : "Thư mục \"{path}\" đã không được chia sẻ",
- "Share {propertyName} saved" : "Đã lưu chia sẻ {propertyName}",
- "Shared by" : "Chia sẻ bởi",
- "Shared with" : "Chia sẽ với",
- "Password created successfully" : "Đã tạo mật khẩu thành công",
- "Error generating password from password policy" : "Lỗi tạo mật khẩu từ chính sách mật khẩu",
- "Shared with you and the group {group} by {owner}" : "Đã được chia sẽ với bạn và nhóm {group} bởi {owner}",
- "Shared with you and {circle} by {owner}" : "Được chia sẻ với bạn và {circle} bởi {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Được chia sẻ với bạn và cuộc trò chuyện {conversation} của {owner}",
- "Shared with you in a conversation by {owner}" : "Được chia sẻ với bạn trong cuộc trò chuyện bởi {owner}",
- "Shares" : "Chia sẻ",
+ "Shared multiple times with different people" : "Shared multiple times with different people",
+ "Shared with others" : "Chia sẻ với người khác",
"Overview of shared files." : "Tổng quan về các tập tin được chia sẻ.",
"No shares" : "Không có lượt chia sẻ",
"Files and folders you shared or have been shared with you will show up here" : "Các tệp và thư mục bạn đã chia sẻ hoặc đã được chia sẻ với bạn sẽ hiển thị ở đây",
@@ -236,7 +208,6 @@
"List of files that are shared with you." : "Danh sách các tập tin được chia sẻ với bạn.",
"Nothing shared with you yet" : "Bạn chưa được chia sẻ gì cả",
"Files and folders others shared with you will show up here" : "Các tệp và thư mục mà người khác chia sẻ với bạn sẽ hiển thị ở đây",
- "Shared with others" : "Chia sẻ với người khác",
"List of files that you shared with others." : "Danh sách các tập tin mà bạn đã chia sẻ với người khác.",
"Nothing shared yet" : "Chưa có gì được chia sẻ",
"Files and folders you shared will show up here" : "Các tệp và thư mục bạn đã chia sẻ sẽ hiển thị ở đây",
@@ -248,10 +219,43 @@
"List of shares you left." : "Danh sách chia sẻ bạn để lại.",
"No deleted shares" : "Không có chia sẻ bị xóa",
"Shares you have left will show up here" : "Những chia sẻ bạn để lại sẽ hiển thị ở đây",
- "Pending shares" : "Chia sẻ đang chờ xử lý‎",
+ "Pending shares" : "Chia sẻ đang chờ xử lý",
"List of unapproved shares." : "Danh sách cổ phiếu không được phê duyệt",
"No pending shares" : "Không có cổ phiếu đang chờ xử lý",
"Shares you have received but not approved will show up here" : "Những chia sẻ bạn đã nhận được nhưng không được duyệt sẽ hiển thị ở đây",
+ "Error updating the share: {errorMessage}" : "Lỗi cập nhật phần chia sẻ: {errorMessage}",
+ "Error updating the share" : "Lỗi cập nhật chia sẻ",
+ "File \"{path}\" has been unshared" : "Tệp \"{path}\" đã không được chia sẻ",
+ "Folder \"{path}\" has been unshared" : "Thư mục \"{path}\" đã không được chia sẻ",
+ "Shared by" : "Chia sẻ bởi",
+ "Shared with" : "Chia sẽ với",
+ "Password created successfully" : "Đã tạo mật khẩu thành công",
+ "Error generating password from password policy" : "Lỗi tạo mật khẩu từ chính sách mật khẩu",
+ "Shared with you and the group {group} by {owner}" : "Đã được chia sẽ với bạn và nhóm {group} bởi {owner}",
+ "Shared with you and {circle} by {owner}" : "Được chia sẻ với bạn và {circle} bởi {owner}",
+ "Shared with you and the conversation {conversation} by {owner}" : "Được chia sẻ với bạn và cuộc trò chuyện {conversation} của {owner}",
+ "Shared with you in a conversation by {owner}" : "Được chia sẻ với bạn trong cuộc trò chuyện bởi {owner}",
+ "Share not found" : "Không tìm thấy chia sẻ.",
+ "Back to %s" : "Quay lại %s",
+ "Add to your Nextcloud" : "Thêm vào Nextcloud của bạn",
+ "Waiting…" : "Vui lòng đợi...",
+ "error" : "Lỗi",
+ "finished" : "Đã hoàn tất",
+ "This will stop your current uploads." : "Hành động này sẽ dừng các tải lên hiện hành.",
+ "Move or copy" : "Di chuyển hoặc sao chép",
+ "You can upload into this folder" : "Tải lên thư mục này",
+ "Show list view" : "Hiển thị chế độ xem danh sách",
+ "Show grid view" : "Hiển thị chế độ xem lưới",
+ "No compatible server found at {remote}" : "Máy chủ không tương thích được tìm thấy tại {remote}",
+ "Invalid server URL" : "URL máy chủ không hợp lệ",
+ "Failed to add the public link to your Nextcloud" : "Không thể thêm liên kết công khai",
+ "Download all files" : "Tải xuống tất cả các tập tin",
+ "Copy to clipboard" : "Sao chép vào clipboard",
+ "Copy internal link to clipboard" : "Sao chép liên kết nội bộ vào bộ nhớ tạm",
+ "Copy public link of \"{title}\" to clipboard" : "Sao chép liên kết công khai của \"{title}\" vào bộ nhớ tạm",
+ "Search globally" : "Tìm kiếm trên toàn cầu",
+ "Search for share recipients" : "Tìm kiếm người nhận chia sẻ",
+ "No recommendations. Start typing." : "Không có khuyến nghị. Bắt đầu gõ.",
"Share note" : "Chia sẻ ghi chú",
"Upload files to %s" : "Tải tệp lên %s",
"Note" : "Ghi chú",
@@ -259,40 +263,7 @@
"Uploading files" : "Đang tải tập tin lên",
"Uploaded files:" : "Tập tin đã được tải lên:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "Bằng cách tải tệp lên, bạn đồng ý với %1$sđiều khoản dịch vụ%2$s.",
- "Add to your Nextcloud" : "Thêm vào Nextcloud của bạn",
- "Files and folders others share with you will show up here" : "Các tệp và thư mục mà người khác chia sẻ với bạn sẽ hiển thị ở đây",
- "Files and folders you share will show up here" : "Tập tin và thư mục bạn chia sẻ sẽ được hiển thị tại đây.",
- "Files and folders you share by link will show up here" : "Các tệp và thư mục bạn chia sẻ bằng liên kết sẽ hiển thị ở đây",
- "Shares you deleted will show up here" : "Những chia sẻ bạn đã xóa sẽ hiển thị ở đây",
- "Shares you have received but not confirmed will show up here" : "Những chia sẻ bạn đã nhận được nhưng chưa được xác nhận sẽ hiển thị ở đây",
- "Shares will show up here" : "Chia sẻ sẽ hiển thị ở đây",
- "Restore" : "Khôi phục",
- "Something happened. Unable to restore the share." : "Một cái gì đó đã xảy ra. Không thể khôi phục chia sẻ.",
- "Something happened. Unable to accept the share." : "Một cái gì đó đã xảy ra. Không thể chấp nhận chia sẻ.",
- "Something happened. Unable to reject the share." : "Một cái gì đó đã xảy ra. Không thể từ chối chia sẻ.",
- "No expiration date set" : "Không có ngày hết hạn được đặt",
- "Please specify a valid user" : "Vui lòng chỉ định người dùng hợp lệ",
- "Please specify a valid federated user ID" : "Vui lòng chỉ định ID người dùng liên kết hợp lệ",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Ứng dụng này cho phép người dùng chia sẻ tệp trong Nextcloud. Nếu được bật, quản trị viên có thể chọn nhóm nào có thể chia sẻ tệp. Sau đó, những người dùng hiện hành có thể chia sẻ tệp và thư mục với những người dùng và nhóm khác trong Nextcloud. Ngoài ra, nếu quản trị viên kích hoạt tính năng liên kết chia sẻ, liên kết bên ngoài có thể được sử dụng để chia sẻ tệp với những người dùng khác bên ngoài Nextcloud. Quản trị viên cũng có thể thực thi mật khẩu, ngày hết hạn và cho phép chia sẻ máy chủ với máy chủ thông qua liên kết chia sẻ cũng như chia sẻ từ thiết bị di động.Việc tắt tính năng này sẽ xóa các tệp và thư mục được chia sẻ trên máy chủ đối với tất cả người nhận chia sẻ cũng như đồng bộ hóa khách hàng và ứng dụng di động. Thông tin thêm có sẵn trong Tài liệu Nextcloud.",
- "Accept user and group shares by default" : "Chấp nhận chia sẻ của người dùng và nhóm theo mặc định",
- "Read only" : "Chỉ xem",
- "File drop (upload only)" : "Kéo thả file (chỉ áp dụng trong trường hợp tải lên)",
- "Upload" : "Tải lên",
- "Bundled permissions" : "Quyền đi kèm",
- "Only works for users with access to this folder" : "Chỉ hoạt động đối với người dùng có quyền truy cập vào thư mục này",
- "Only works for users with access to this file" : "Chỉ hoạt động đối với người dùng có quyền truy cập vào tệp này",
- "Circle" : "Vòng kết nối",
- "Update" : "Cập nhật",
- "Share with " : "Chia sẽ với",
- "No other users with access found" : "Không tìm thấy người dùng khác có quyền truy cập",
- "No entries found in this folder" : "Chưa có mục nào trong thư mục",
"Name" : "Tên",
- "Share time" : "Chia sẻ thời gian",
- "Sorry, this link does not seem to work anymore." : "Xin lỗi, liên kết này dường như không còn hoạt động nữa.",
- "Reasons might be:" : "Lý do có thể là:",
- "the item was removed" : "đối tượng đã bị xóa",
- "the link expired" : "liên kết đã hết hạn",
- "sharing is disabled" : "việc chia sẻ bị cấm",
- "For more info, please ask the person who sent this link." : "Để biết thêm thông tin, vui lòng hỏi người đã gửi liên kết này."
+ "Filename must not be empty." : "Tên tập tin không thể trống"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/zh_CN.js b/apps/files_sharing/l10n/zh_CN.js
index 7d0f1e24dd8..caceb9e99af 100644
--- a/apps/files_sharing/l10n/zh_CN.js
+++ b/apps/files_sharing/l10n/zh_CN.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "等待中...",
- "error" : "错误",
- "finished" : "完成",
- "This will stop your current uploads." : "此操作将终止您当前的上传。",
- "Move or copy" : "移动或复制",
- "Download" : "下载",
- "Delete" : "删除",
- "You can upload into this folder" : "您可以上传文件至此文件夹",
- "Terms of service" : "服务条款",
- "Show list view" : "显示列表视图",
- "Show grid view" : "显示网格视图",
- "No compatible server found at {remote}" : " {remote} 未发现匹配的服务器",
- "Invalid server URL" : "无效的服务器地址",
- "Failed to add the public link to your Nextcloud" : "添加公开链接到您的Nextcloud失败",
"File shares" : "文件共享",
"Downloaded via public link" : "通过公开链接下载",
"Downloaded by {email}" : "已被 {email} 下载",
@@ -24,12 +10,12 @@ OC.L10N.register(
"Removed share for group {group}" : "到群组 {group} 的共享已被移除 ",
"{actor} shared with group {group}" : "{actor} 被共享到群组 {group}",
"{actor} removed share for group {group}" : "{actor} 删除了群组 {group} 的共享",
- "Share for group {group} expired" : "给分组 {group} 的共享已过期",
+ "Share for group {group} expired" : "给群组 {group} 的共享已过期",
"You shared {file} with group {group}" : "您与群组 {group} 共享了 {file} ",
"You removed group {group} from {file}" : "已从 {file} 移除组 {group}",
"{actor} shared {file} with group {group}" : "{actor} 与群组 {group} 共享了 {file} ",
"{actor} removed group {group} from {file}" : "{actor} 从 {file} 删除群组 {group} ",
- "Share for file {file} with group {group} expired" : "与分组 {group} 的文件共享 {file} 已过期",
+ "Share for file {file} with group {group} expired" : "与群组 {group} 的文件共享 {file} 已过期",
"Shared as public link" : "共享为公开链接",
"Removed public link" : "移除公开链接",
"Public link expired" : "公开链接已过期",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "与 {user} 的文件共享 {file} 已过期",
"Share for file {file} expired" : "文件 {file} 的共享已过期",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "通过邮件或公共链接共享的文件或文件夹<strong>已下载</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "文件<strong>已上传</strong>到通过邮件或公共链接共享的文件夹",
"A file or folder was shared from <strong>another server</strong>" : "<strong>其它服务器</strong> 中一个文件或者文件夹被共享 ",
- "Files" : "文件",
+ "Sharing" : "共享",
"A file or folder has been <strong>shared</strong>" : "一个文件或文件夹已<strong>共享</strong>",
"Shared link" : "已共享的链接",
"Wrong share ID, share does not exist" : "错误的分享 ID,分享不存在",
@@ -78,32 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "请指定一个文件或文件夹路径",
"Wrong path, file/folder does not exist" : "错误的路径,文件/文件夹不存在",
"Could not create share" : "无法创建共享",
- "Invalid permissions" : "无效的权限 ",
- "Invalid date, date format must be YYYY-MM-DD" : "无效的日期,日期格式必须是 YYYY-MM-DD",
+ "Please specify a valid account to share with" : "请指定要分享的有效账号",
"Group sharing is disabled by the administrator" : "群组共享已被管理员禁用",
"Please specify a valid group" : "请指定一个有效的组",
"Public link sharing is disabled by the administrator" : "公共链接共享已被管理员禁用",
- "Public upload disabled by the administrator" : "公共上传已被管理员禁用",
- "Public upload is only possible for publicly shared folders" : "公共上传仅适用于公共共享文件夹",
+ "Please specify a valid email address" : "请指定有效得电子邮箱地址",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "由于 Nextcloud 通话应用没有启用,所以通过 Nextcloud 通话应用发送%s共享密码失败。",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "共享 %1$s 失败,后端不允许类型为 %2$s 的共享",
+ "Please specify a valid federated account ID" : "请指定有效的联合账号 ID",
"Please specify a valid federated group ID" : "请指定一个有效的联合群组 ID",
- "You cannot share to a Circle if the app is not enabled" : "如果这个应用程序不可用,您不能共享到圈子",
- "Please specify a valid circle" : "请指明一个可用圈子",
+ "You cannot share to a Team if the app is not enabled" : "如果未启用应用,则无法与团队共享",
+ "Please specify a valid team" : "请指定有效团队",
"Sharing %s failed because the back end does not support room shares" : "由于后端不支持房间共享,所以共享 %s 失败。",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "共享 %s 失败,因为后端不支持 ScienceMesh 共享。",
"Unknown share type" : "未知共享类型",
"Not a directory" : "不是一个目录",
"Could not lock node" : "无法锁定节点",
- "Could not lock path" : "无法锁定路径",
- "Wrong or no update parameter given" : "错误或没有更新参数给出",
+ "Public upload is only possible for publicly shared folders" : "公共上传仅适用于公共共享文件夹",
"Share must at least have READ or CREATE permissions" : "分享至少具有 READ 或 CREATE 权限",
"Share must have READ permission if UPDATE or DELETE permission is set" : "分享如果设置了 UPDATE 或 DELETE 权限,则必须具有 READ 权限",
+ "Public upload disabled by the administrator" : "公共上传已被管理员禁用",
+ "Could not lock path" : "无法锁定路径",
+ "no sharing rights on this item" : "此项目没有共享权限",
+ "You are not allowed to edit incoming shares" : "不允许编辑传入共享",
+ "Wrong or no update parameter given" : "错误或没有更新参数给出",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "“通过 Nextcloud 通话应用发送密码”共享文件或文件夹失败了,因为未启用Nextcloud 通话应用",
+ "Custom share link tokens have been disabled by the administrator" : "管理员已禁用自定义共享链接令牌",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "令牌必须至少包含 1 个字符,并且只能包含字母、数字或连字符",
+ "Invalid date. Format must be YYYY-MM-DD" : "日期无效,格式必须为 YYYY-MM-DD",
+ "No sharing rights on this item" : "此项目没有共享权限",
+ "Invalid share attributes provided: \"%s\"" : "提供的共享属性无效:“%s”",
+ "You are not allowed to send mail notifications" : "不允许您发送邮件通知",
+ "No mail notification configured for this share type" : "没有为此共享类型配置邮件通知",
+ "Wrong password" : "密码错误",
+ "Error while sending mail notification" : "发送邮件通知时发生错误",
+ "Failed to generate a unique token" : "无法生成唯一令牌",
+ "This share does not exist or is no longer available" : "此共享不存在或不再可用",
"shared by %s" : "共享者 %s",
- "Download all files" : "下载所有文件",
- "Direct link" : "直接链接",
+ "Download" : "下载",
"Add to your %s" : "添加到您的 %s",
+ "Direct link" : "直接链接",
"Share API is disabled" : "共享 API 已被禁用",
"File sharing" : "文件共享",
"Share will expire tomorrow" : "共享将在明天过期",
@@ -112,197 +113,329 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "您收到了来自 {user} 的共享给分组 {group} 的 {share}",
"Accept" : "接受",
"Decline" : "拒绝",
- "Sharing" : "共享",
+ "Remember to upload the files to %s" : "记得将文件上传到 %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "我们想提醒您,您尚未将任何文件上传到共享文件夹。",
+ "Open \"%s\"" : "打开“%s”",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "该应用程序允许用户在 Nextcloud 内部共享文件。启用该应用程序,管理员能够选择哪个群组可以分享文件。然后,适用用户能够分享文件和文件夹给其他用户和群组。除此之外,如果管理员启用共享链接功能,用户能够通过外部链接将文件分享给 Nextcloud 以外的用户。同时,管理员可以强制用户分享时设置密码,分享时效,并且可以启用服务端通过链接分享或从移动设备分享功能。\n关闭此功能,所有共享接收者的服务器上共享的文件和文件夹将被移除,同时也会在同步客户端和移动应用程序上移除。更多信息可查阅 Nextcloud 说明文档。",
+ "People" : "用户",
+ "Filter accounts" : "筛选账号",
+ "The request will expire on {date} at midnight and will be password protected." : "请求将于{date}凌晨过期,并将受到密码保护。",
+ "The request will expire on {date} at midnight." : "请求将于{date}凌晨过期。",
+ "The request will be password protected." : "请求将受到密码保护。",
+ "When should the request expire?" : "请求何时到期?",
+ "Set a submission expiration date" : "设置提交过期日期",
+ "Expiration date" : "过期日期 ",
+ "Select a date" : "选择一个日期",
+ "Your administrator has enforced a {count} days expiration policy." : "管理员已强制执行 {count} 天过期策略。",
+ "What password should be used for the request?" : "请求应使用什么密码?",
+ "Set a password" : "设置一个密码",
+ "Password" : "密码",
+ "Enter a valid password" : "请输入有效密码",
+ "Generate a new password" : "生成新密码",
+ "Your administrator has enforced a password protection." : "您的管理员已强制实施密码保护。",
+ "Automatically copying failed, please copy the share link manually" : "自动复制失败,请手动复制共享链接",
+ "Link copied" : "已复制链接",
+ "Email already added" : "电子邮箱已添加",
+ "Invalid email address" : "无效电子邮箱地址",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["以下电子邮箱地址无效:{emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["已添加 {count} 个电子邮件地址"],
+ "_{count} email address added_::_{count} email addresses added_" : ["已添加 {count} 个电子邮件地址"],
+ "You can now share the link below to allow people to upload files to your directory." : "现在,你可以分享下面的链接,允许人们将文件上传到你的目录。",
+ "Share link" : "共享链接",
+ "Copy" : "复制",
+ "Send link via email" : "通过邮件发送链接",
+ "Enter an email address or paste a list" : "输入电子邮箱地址或粘贴一个列表",
+ "Remove email" : "移除电子邮箱",
+ "Select a destination" : "选择目标",
+ "Select" : "选择",
+ "What are you requesting?" : "你正在请求什么?",
+ "Request subject" : "请求主题",
+ "Birthday party photos, History assignment…" : "生日聚会照片,历史作业…",
+ "Where should these files go?" : "这些文件应该放在哪里?",
+ "Upload destination" : "上传目标",
+ "Revert to default" : "恢复默认值",
+ "The uploaded files are visible only to you unless you choose to share them." : "上传的文件仅对您可见,除非您选择共享它们。",
+ "Add a note" : "添加备注",
+ "Note for recipient" : "接收者的备注",
+ "Add a note to help people understand what you are requesting." : "添加备注以帮助他人了解你的请求。",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "你可以添加链接、日期或任何其他信息,以帮助收件人了解你的请求。",
+ "Close" : "关闭",
+ "_Send email and close_::_Send {count} emails and close_" : ["发送{count}封电子邮件并关闭"],
+ "Please select a folder, you cannot share the root directory." : "请选择文件夹,您无法分享根目录。",
+ "File request created" : "创建了文件请求",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["文件请求已创建,{count}封电子邮件已发送"],
+ "Error creating the share: {errorMessage}" : "创建共享失败:{errorMessage}",
+ "Error creating the share" : "创建共享时出错",
+ "Error sending emails: {errorMessage}" : "发送电子邮件时出错:{errorMessage}",
+ "Error sending emails" : "发送电子邮件出错",
+ "Create a file request" : "创建文件请求",
+ "Collect files from others even if they do not have an account." : "即使对方没有账号,也可以收集文件。",
+ "To ensure you can receive files, verify you have enough storage available." : "为确保您可以接收文件,请验证您是否有足够的可用存储空间。",
+ "File request" : "文件请求",
+ "Previous step" : "上一步",
+ "Cancel" : "取消",
+ "Cancel the file request creation" : "取消文件请求创建",
+ "Close without sending emails" : "关闭而不发送电子邮件",
+ "Continue" : "继续",
"Error while toggling options" : "切换选项时出错",
- "Set default folder for accepted shares" : "设置已接受共享的默认文件夹",
- "Reset" : "重置",
- "Reset folder to system default" : "重置文件夹为系统默认值",
+ "Accept shares from other accounts and groups by default" : "默认接受其他账号和群组的分享",
"Choose a default folder for accepted shares" : "为已接受的共享选择一个默认文件夹",
"Invalid path selected" : "所选路径无效",
"Unknown error" : "未知错误",
- "Open Sharing Details" : "打开分享详细信息",
+ "Set default folder for accepted shares" : "设置已接受共享的默认文件夹",
+ "Reset" : "重置",
+ "Reset folder to system default" : "重置文件夹为系统默认值",
+ "Share expiration: {date}" : "分享过期日期:{date}",
+ "Share Expiration" : "分享过期日期",
"group" : "分组",
"conversation" : "会话",
"remote" : "远程",
"remote group" : "远程分组",
"guest" : "访客",
+ "by {initiator}" : "由 {initiator}",
"Shared with the group {user} by {owner}" : "{owner} 共享给分组 {user}",
"Shared with the conversation {user} by {owner}" : "由{owner}共享给会话{user}",
"Shared with {user} by {owner}" : "{owner} 共享给 {user}",
+ "Open Sharing Details" : "打开分享详细信息",
"Added by {initiator}" : "由 {initiator} 添加",
"Via “{folder}”" : "通过“{folder}”",
"Unshare" : "取消共享",
- "Internal link" : "内部链接",
"Cannot copy, please copy the link manually" : "无法复制,请手动复制链接",
- "Copy internal link to clipboard" : "复制内部链接到剪贴板",
- "Link copied" : "已复制链接",
- "Please enter the following required information before creating the share" : "请在创建共享前输入以下必填信息",
- "Password protection (enforced)" : "密码保护(强制)",
- "Password protection" : "密码保护",
- "Enter a password" : "输入密码",
- "Expiration date (enforced)" : "过期日期(强制)",
- "Enter a date" : "输入日期",
- "Create share" : "创建共享",
- "Cancel" : "取消",
- "Customize link" : "自定义链接",
- "Add another link" : "添加其他链接",
- "Create a new share link" : "创建新的共享链接",
+ "Copy internal link" : "复制内部链接",
+ "Internal link" : "内部链接",
"{shareWith} by {initiator}" : "由 {initiator} 通过 {shareWith} 共享",
"Shared via link by {initiator}" : "由 {initiator} 通过链接共享",
+ "File request ({label})" : "文件请求 ({label})",
"Mail share ({label})" : "邮件分享({label})",
"Share link ({label})" : "分享链接({label})",
+ "Mail share" : "邮件分享",
"Share link ({index})" : "分享链接({index})",
- "Share link" : "共享链接",
+ "Create public link" : "生成公开链接地址",
"Actions for \"{title}\"" : "“{title}”的动作",
- "Copy public link of \"{title}\" to clipboard" : "将“{title}”的公开链接复制到剪贴板",
"Error, please enter proper password and/or expiration date" : "错误,请输入正确的密码和/或过期日期",
"Link share created" : "已创建链接分享",
"Error while creating the share" : "创建共享时出错",
+ "Please enter the following required information before creating the share" : "请在创建共享前输入以下必填信息",
+ "Password protection (enforced)" : "密码保护(强制)",
+ "Password protection" : "密码保护",
+ "Enter a password" : "输入密码",
+ "Enable link expiration (enforced)" : "启用链接过期(强制)",
+ "Enable link expiration" : "启用链接过期",
+ "Enter expiration date (enforced)" : "输入过期日期(强制)",
+ "Enter expiration date" : "输入过期日期",
+ "Create share" : "创建共享",
+ "Customize link" : "自定义链接",
+ "Generate QR code" : "生成二维码",
+ "Add another link" : "添加其他链接",
+ "Create a new share link" : "创建新的共享链接",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "快速分享选项,当前选择为 “{selectedOption}”",
"View only" : "仅查看",
"Can edit" : "可以编辑",
- "File drop" : "文件拖放",
"Custom permissions" : "自定义权限",
- "Search for share recipients" : "查找共享参与者",
- "No recommendations. Start typing." : "没有建议。开始输入。",
- "Resharing is not allowed" : "不允许二次共享",
- "Name or email …" : "姓名或电子邮件 ...",
- "Name, email, or Federated Cloud ID …" : "名称、电子邮件或联合云 ID ...",
- "Searching …" : "正在搜索 ...",
+ "Resharing is not allowed" : "不允许再次共享",
+ "Name or email …" : "名称或电子邮件…",
+ "Name, email, or Federated Cloud ID …" : "名称、电子邮件或联合云 ID…",
+ "Searching …" : "正在搜索…",
"No elements found." : "未发现元素。",
- "Search globally" : "全局搜索",
+ "Search everywhere" : "在所有位置搜索",
"Guest" : "访客",
"Group" : "群组",
- "Email" : "电子邮箱",
+ "Email" : "电子邮件",
+ "Team" : "团队",
"Talk conversation" : "通话应用对话",
"Deck board" : "看板",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "在 {server} 上",
+ "Enter external recipients" : "输入外部接收者",
+ "Search for internal recipients" : "搜索内部接收者",
+ "Note from" : "备注来自",
+ "Note:" : "备注:",
+ "File drop" : "文件拖放",
+ "Upload files to {foldername}." : "将文件上传到 {foldername}。",
+ "By uploading files, you agree to the terms of service." : "上传文件即表示您同意服务条款。",
+ "Successfully uploaded files" : "已成功上传文件",
+ "View terms of service" : "查看服务条款",
+ "Terms of service" : "服务条款",
+ "Share with email {email}" : "与邮箱 {email} 分享",
+ "Share with group" : "分享至群组",
+ "Share in conversation" : "分享至对话",
+ "Share with {user} on remote server {server}" : "与服务器 {server} 上的用户 {user} 分享",
+ "Share with remote group" : "分享至远程群组",
+ "Share with guest" : "分享至访客",
+ "Update share" : "更新分享",
+ "Save share" : "保存分享",
+ "Read" : "读取",
+ "Create" : "创建",
+ "Edit" : "编辑",
+ "Share" : "共享",
+ "Delete" : "删除",
+ "Password field cannot be empty" : "密码字段不能为空",
+ "Replace current password" : "替换当前密码",
+ "Failed to generate a new token" : "无法生成新令牌",
"Allow upload and editing" : "允许上传和编辑",
"Allow editing" : "允许编辑",
"Upload only" : "仅上传",
"Advanced settings" : "高级选项",
- "Share label" : "分享标签",
+ "Share label" : "共享标签",
+ "Share link token" : "共享链接令牌",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "将公开共享链接令牌设置为易于记忆的令牌或生成新令牌。不建议对包含敏感信息的共享使用可猜测的令牌。",
+ "Generating…" : "正在生成…",
+ "Generate new token" : "生成新令牌",
"Set password" : "设置密码",
- "Password" : "密码",
"Password expires {passwordExpirationTime}" : "密码于 {passwordExpirationTime} 过期",
"Password expired" : "密码已过期",
"Video verification" : "视频验证",
+ "Expiration date (enforced)" : "过期日期(强制)",
"Set expiration date" : "设置过期日期",
- "Expiration date" : "过期日期 ",
"Hide download" : "隐藏下载",
- "Allow download" : "允许下载",
- "Note to recipient" : "接收人备注",
- "Enter a note for the share recipient" : "给共享接收人留备注",
- "Read" : "读取",
- "Create" : "创建",
- "Edit" : "编辑",
- "Share" : "共享",
+ "Allow download and sync" : "允许下载和同步",
+ "Note to recipient" : "接收者备注",
+ "Enter a note for the share recipient" : "为共享接收者输入备注",
+ "Show files in grid view" : "在网格视图中显示文件",
"Delete share" : "删除共享",
- "Share with {userName}" : "分享至 {userName}",
- "Share with group" : "分享至群组",
- "Share in conversation" : "分享至对话",
- "Share with remote group" : "分享至远程群组",
- "Share with guest" : "分享至访客",
- "Update share" : "更新分享",
- "Save share" : "保存分享",
"Others with access" : "其他具有访问权限的人",
+ "No other accounts with access found" : "未找到其他拥有访问权限的账号",
"Toggle list of others with access to this directory" : "切换有权访问此目录的其他人的列表",
"Toggle list of others with access to this file" : "切换有权访问此文件的其他人的列表",
"Unable to fetch inherited shares" : "无法获取继承的共享",
+ "Link shares" : "链接共享",
+ "Shares" : "共享",
"Unable to load the shares list" : "无法加载共享列表",
"Expires {relativetime}" : "过期 {relativetime}",
"this share just expired." : "此共享已过期。",
"Shared with you by {owner}" : "{owner} 与您共享",
+ "Internal shares" : "内部共享",
+ "Internal shares explanation" : "内部共享说明",
+ "External shares" : "外部共享",
+ "External shares explanation" : "外部共享说明",
+ "Additional shares" : "额外共享",
+ "Additional shares explanation" : "额外共享说明",
+ "Link to a file" : "链接到文件",
"_Accept share_::_Accept shares_" : ["接受共享"],
"Open in Files" : "在文件中打开",
"_Reject share_::_Reject shares_" : ["拒绝共享"],
"_Restore share_::_Restore shares_" : ["恢复共享"],
"Shared" : "已共享",
"Shared by {ownerDisplayName}" : "由 {ownerDisplayName} 分享",
- "Show sharing options" : "显示共享选项",
- "Link to a file" : "链接到文件",
- "Error creating the share: {errorMessage}" : "创建共享失败:{errorMessage}",
- "Error creating the share" : "创建共享时出错",
- "Error updating the share: {errorMessage}" : "更新共享失败:{errorMessage}",
- "Error updating the share" : "更新共享时出错",
- "File \"{path}\" has been unshared" : "文件“{path}”已取消共享",
- "Folder \"{path}\" has been unshared" : "文件夹“{path}”已取消共享",
- "Share {propertyName} saved" : "共享 {propertyName} 已保存",
- "Shared by" : "共享人",
- "Shared with" : "共享给",
- "Password created successfully" : "成功创建密码",
- "Error generating password from password policy" : "从密码策略生成密码时出错",
- "Shared with you and the group {group} by {owner}" : "{owner} 共享给您及 {group} 分组",
- "Shared with you and {circle} by {owner}" : "{owner} 共享给您及 {circle}",
- "Shared with you and the conversation {conversation} by {owner}" : "由{owner} 共享给您及对话 {conversation}",
- "Shared with you in a conversation by {owner}" : "由 {owner} 在一个会话中共享给您",
- "Shares" : "共享",
+ "Shared multiple times with different people" : "与不同的用户多次分享",
+ "Shared with others" : "你的共享",
+ "Create file request" : "创建文件请求",
+ "Upload files to {foldername}" : "将文件上传到 {foldername}",
+ "Public file share" : "公开文件共享",
+ "Publicly shared file." : "公开共享的文件。",
+ "No file" : "无文件",
+ "The file shared with you will show up here" : "与您共享的文件将显示在此处",
+ "Public share" : "公开共享",
+ "Publicly shared files." : "公开共享的文件。",
+ "No files" : "没有文件",
+ "Files and folders shared with you will show up here" : "与您共享的文件和文件夹将显示在此处",
"Overview of shared files." : "已分享文件的概览",
"No shares" : "没有共享",
- "Files and folders you shared or have been shared with you will show up here" : "您共享或已与您共享的文件与文件夹将显示在此处",
- "Shared with you" : "共享给您的",
- "List of files that are shared with you." : "与您共享的文件列表",
+ "Files and folders you shared or have been shared with you will show up here" : "你的共享或已与你共享的文件与文件夹将显示在此处",
+ "Shared with you" : "与你共享",
+ "List of files that are shared with you." : "与你共享的文件列表",
"Nothing shared with you yet" : "您还没有收到任何共享的文件",
"Files and folders others shared with you will show up here" : "其他人与您分享的文件与文件夹将显示在此处",
- "Shared with others" : "您共享的文件",
"List of files that you shared with others." : "你与其他人分享的文件列表。",
"Nothing shared yet" : "还没有共享过文件",
"Files and folders you shared will show up here" : "您分享的文件与文件夹将会显示在此处",
"Shared by link" : "通过链接共享",
"List of files that are shared by link." : "存在分享链接的文件列表",
"No shared links" : "无共享链接",
- "Files and folders you shared by link will show up here" : "此处会显示您使用链接分享的文件和文件夹",
+ "Files and folders you shared by link will show up here" : "你通过链接共享的文件和文件夹将显示在此处",
+ "File requests" : "文件请求",
+ "List of file requests." : "文件请求列表",
+ "No file requests" : "没有文件请求",
+ "File requests you have created will show up here" : "你已创建的文件请求将显示在这里",
"Deleted shares" : "已删除的共享",
"List of shares you left." : "您已退出的分享列表",
- "No deleted shares" : "没有删除的共享",
+ "No deleted shares" : "没有已删除的共享",
"Shares you have left will show up here" : "此处会显示您退出的分享",
"Pending shares" : "待定共享",
"List of unapproved shares." : "未批准的分享列表",
"No pending shares" : "没有待定共享",
"Shares you have received but not approved will show up here" : "您已收到但未批准的分享将显示在这里",
+ "Error deleting the share: {errorMessage}" : "删除共享时出错:{errorMessage}",
+ "Error deleting the share" : "删除共享时出错",
+ "Error updating the share: {errorMessage}" : "更新共享时出错:{errorMessage}",
+ "Error updating the share" : "更新共享时出错",
+ "File \"{path}\" has been unshared" : "文件“{path}”已取消共享",
+ "Folder \"{path}\" has been unshared" : "文件夹“{path}”已取消共享",
+ "Could not update share" : "无法更新共享",
+ "Share saved" : "共享已保存",
+ "Share expiry date saved" : "共享过期日期已保存",
+ "Share hide-download state saved" : "共享隐藏已下载的状态已保存",
+ "Share label saved" : "共享标签已保存",
+ "Share note for recipient saved" : "接收者的共享备注已保存",
+ "Share password saved" : "共享密码已保存",
+ "Share permissions saved" : "共享权限已保存",
+ "To upload files to {folder}, you need to provide your name first." : "要将文件上传到 {folder},您需要先提供名称。",
+ "Upload files to {folder}" : "将文件上传到 {folder}",
+ "Please confirm your name to upload files to {folder}" : "请确认名称以将文件上传到 {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} 与您分享了一个文件夹。",
+ "Names must not be empty." : "名称不能为空。",
+ "Names must not start with a dot." : "名称不能以点开头。",
+ "\"{char}\" is not allowed inside a name." : "名称中不允许使用“{char}”。",
+ "\"{segment}\" is a reserved name and not allowed." : "“{segment}”是保留名称,不允许使用。",
+ "\"{extension}\" is not an allowed name." : "“{extension}”不是允许的名称。",
+ "Names must not end with \"{extension}\"." : "名称不能以“{extension}”结尾。",
+ "Invalid name." : "无效名称。",
+ "Shared by" : "共享人",
+ "Shared with" : "共享给",
+ "Password created successfully" : "密码已创建成功",
+ "Error generating password from password policy" : "从密码策略生成密码时出错",
+ "Shared with you and the group {group} by {owner}" : "{owner} 共享给您及 {group} 分组",
+ "Shared with you and {circle} by {owner}" : "{owner} 共享给您及 {circle}",
+ "Shared with you and the conversation {conversation} by {owner}" : "由{owner} 共享给您及对话 {conversation}",
+ "Shared with you in a conversation by {owner}" : "由 {owner} 在一个会话中共享给您",
+ "Share not found" : "未找到共享",
+ "Back to %s" : "返回 %s",
+ "Add to your Nextcloud" : "添加到您的 Nextcloud",
+ "Waiting…" : "等待中...",
+ "error" : "错误",
+ "finished" : "完成",
+ "This will stop your current uploads." : "此操作将终止您当前的上传。",
+ "Move or copy" : "移动或复制",
+ "You can upload into this folder" : "您可以上传文件至此文件夹",
+ "Show list view" : "显示列表视图",
+ "Show grid view" : "显示网格视图",
+ "No compatible server found at {remote}" : " {remote} 未发现匹配的服务器",
+ "Invalid server URL" : "无效的服务器地址",
+ "Failed to add the public link to your Nextcloud" : "添加公开链接到您的Nextcloud失败",
+ "You are not allowed to edit link shares that you don't own" : "不允许编辑不属于您的链接共享",
+ "Download all files" : "下载所有文件",
+ "Link copied to clipboard" : "链接已复制到剪贴板",
+ "_1 email address already added_::_{count} email addresses already added_" : ["{count}个电子邮箱地址已添加"],
+ "_1 email address added_::_{count} email addresses added_" : ["{count}电子邮箱地址已添加"],
+ "Copy to clipboard" : "复制到剪贴板",
+ "Copy internal link to clipboard" : "复制内部链接到剪贴板",
+ "Only works for people with access to this folder" : "仅适用于可以访问该文件夹的用户",
+ "Only works for people with access to this file" : "仅适用于可以访问该文件的用户",
+ "Copy public link of \"{title}\" to clipboard" : "将“{title}”的公开链接复制到剪贴板",
+ "Search globally" : "全局搜索",
+ "Search for share recipients" : "查找共享参与者",
+ "No recommendations. Start typing." : "无建议。开始输入。",
+ "To upload files, you need to provide your name first." : "要上传文件,您需要先提供名称。",
+ "Enter your name" : "输入名称",
+ "Submit name" : "提交名称",
+ "Share with {userName}" : "分享至 {userName}",
+ "Show sharing options" : "显示共享选项",
"Share note" : "共享笔记",
"Upload files to %s" : "上传文件到 %s",
+ "%s shared a folder with you." : "%s 与您分享了一个文件夹。",
"Note" : "备注",
"Select or drop files" : "选择或拖放文件",
"Uploading files" : "正在上传文件",
"Uploaded files:" : "上传的文件: ",
"By uploading files, you agree to the %1$sterms of service%2$s." : "通过上传文件,您同意了 %1$s 服务条款 %2$s。",
- "Add to your Nextcloud" : "添加到您的 Nextcloud",
- "Files and folders others share with you will show up here" : "其它人共享给您的文件和文件夹将显示在这里",
- "Files and folders you share will show up here" : "您共享的文件和文件夹将显示在这里",
- "Files and folders you share by link will show up here" : "您通过链接共享的文件和文件夹将显示在这里",
- "Shares you deleted will show up here" : "您删除的共享将在这里显示",
- "Shares you have received but not confirmed will show up here" : "您收到但未确认的共享将显示在这里",
- "Shares will show up here" : "共享将在这里显示",
- "Restore" : "恢复",
- "Something happened. Unable to restore the share." : "发生了问题。无法恢复该共享。",
- "Something happened. Unable to accept the share." : "发生了问题。无法接受该共享。",
- "Something happened. Unable to reject the share." : "发生了问题。无法拒绝该共享。",
- "No expiration date set" : "未设置失效时间",
- "Please specify a valid user" : "请指定一个有效的用户",
- "Please specify a valid federated user ID" : "请指定一个有效的联合用户 ID",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "这个应用程序允许用户在 Nextcloud 内部共享文件。如果启用,管理员能够选择哪个组可以共享文件。然后,可用的用户能够共享文件和文件夹给 Nextcloud 中的其他用户和组。另外,如果管理员启用了共享链接功能,能够使用外部链接将文件共享给 Nextcloud 之外的其他用户。管理员也可以强制设置密码,过期日期,并且可以通过共享链接启用服务器到服务器的共享,以及从移动设备共享。\n关闭该功能将删除服务器上所有共享接收者以用同步客户端和移动应用上的共享文件和文件夹。更多信息可查阅 Nextcloud 文档。",
- "Accept user and group shares by default" : "默认接受用户和分组共享",
- "Read only" : "只读",
- "File drop (upload only)" : "文件拖放(仅上传)",
- "Upload" : "上传",
- "Bundled permissions" : "权限包",
- "Only works for users with access to this folder" : "仅适用于有权限访问此文件夹的用户",
- "Only works for users with access to this file" : "仅适用于有权限访问此文件的用户",
- "Circle" : "圈子",
- "Update" : "更新",
- "Share with " : "分享给",
- "No other users with access found" : "找不到其他具有访问权限的用户",
- "No entries found in this folder" : "在此文件夹中找不到项目",
"Name" : "名称",
- "Share time" : "共享时间",
- "Sorry, this link does not seem to work anymore." : "抱歉,此链接已失效。",
- "Reasons might be:" : "可能原因是:",
- "the item was removed" : "此项已移除",
- "the link expired" : "链接过期",
- "sharing is disabled" : "已禁用共享",
- "For more info, please ask the person who sent this link." : "如需了解更多信息,请联系发给您该链接的人。",
- "Share with remote" : "分享至远程",
- "Share with" : "共享给"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "使用此方法与组织内的个人或团队共享文件。如果接收者已经可以访问共享,但找不到它,您可以向他们发送内部共享链接以便于访问。",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "使用此方法与组织外部的个人或组织共享文件。文件和文件夹可以通过公开共享链接和电子邮件地址共享。您还可以使用其联合云 ID 共享给托管在不同实例上的其他 Nextcloud 账号。",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "不属于内部或外部共享的共享,这可以是来自应用或其他来源的共享。",
+ "Share with accounts, teams, federated cloud id" : "与账号、团队、联合云 ID 共享",
+ "Share with accounts and teams" : "与账号和团队共享",
+ "Federated cloud ID" : "联合云 ID",
+ "Email, federated cloud id" : "电子邮件、联合云 ID",
+ "Filename must not be empty." : "文件名不能为空。"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/zh_CN.json b/apps/files_sharing/l10n/zh_CN.json
index eb1f53efce9..39c2876cfd4 100644
--- a/apps/files_sharing/l10n/zh_CN.json
+++ b/apps/files_sharing/l10n/zh_CN.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "等待中...",
- "error" : "错误",
- "finished" : "完成",
- "This will stop your current uploads." : "此操作将终止您当前的上传。",
- "Move or copy" : "移动或复制",
- "Download" : "下载",
- "Delete" : "删除",
- "You can upload into this folder" : "您可以上传文件至此文件夹",
- "Terms of service" : "服务条款",
- "Show list view" : "显示列表视图",
- "Show grid view" : "显示网格视图",
- "No compatible server found at {remote}" : " {remote} 未发现匹配的服务器",
- "Invalid server URL" : "无效的服务器地址",
- "Failed to add the public link to your Nextcloud" : "添加公开链接到您的Nextcloud失败",
"File shares" : "文件共享",
"Downloaded via public link" : "通过公开链接下载",
"Downloaded by {email}" : "已被 {email} 下载",
@@ -22,12 +8,12 @@
"Removed share for group {group}" : "到群组 {group} 的共享已被移除 ",
"{actor} shared with group {group}" : "{actor} 被共享到群组 {group}",
"{actor} removed share for group {group}" : "{actor} 删除了群组 {group} 的共享",
- "Share for group {group} expired" : "给分组 {group} 的共享已过期",
+ "Share for group {group} expired" : "给群组 {group} 的共享已过期",
"You shared {file} with group {group}" : "您与群组 {group} 共享了 {file} ",
"You removed group {group} from {file}" : "已从 {file} 移除组 {group}",
"{actor} shared {file} with group {group}" : "{actor} 与群组 {group} 共享了 {file} ",
"{actor} removed group {group} from {file}" : "{actor} 从 {file} 删除群组 {group} ",
- "Share for file {file} with group {group} expired" : "与分组 {group} 的文件共享 {file} 已过期",
+ "Share for file {file} with group {group} expired" : "与群组 {group} 的文件共享 {file} 已过期",
"Shared as public link" : "共享为公开链接",
"Removed public link" : "移除公开链接",
"Public link expired" : "公开链接已过期",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "与 {user} 的文件共享 {file} 已过期",
"Share for file {file} expired" : "文件 {file} 的共享已过期",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "通过邮件或公共链接共享的文件或文件夹<strong>已下载</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "文件<strong>已上传</strong>到通过邮件或公共链接共享的文件夹",
"A file or folder was shared from <strong>another server</strong>" : "<strong>其它服务器</strong> 中一个文件或者文件夹被共享 ",
- "Files" : "文件",
+ "Sharing" : "共享",
"A file or folder has been <strong>shared</strong>" : "一个文件或文件夹已<strong>共享</strong>",
"Shared link" : "已共享的链接",
"Wrong share ID, share does not exist" : "错误的分享 ID,分享不存在",
@@ -76,32 +63,46 @@
"Please specify a file or folder path" : "请指定一个文件或文件夹路径",
"Wrong path, file/folder does not exist" : "错误的路径,文件/文件夹不存在",
"Could not create share" : "无法创建共享",
- "Invalid permissions" : "无效的权限 ",
- "Invalid date, date format must be YYYY-MM-DD" : "无效的日期,日期格式必须是 YYYY-MM-DD",
+ "Please specify a valid account to share with" : "请指定要分享的有效账号",
"Group sharing is disabled by the administrator" : "群组共享已被管理员禁用",
"Please specify a valid group" : "请指定一个有效的组",
"Public link sharing is disabled by the administrator" : "公共链接共享已被管理员禁用",
- "Public upload disabled by the administrator" : "公共上传已被管理员禁用",
- "Public upload is only possible for publicly shared folders" : "公共上传仅适用于公共共享文件夹",
+ "Please specify a valid email address" : "请指定有效得电子邮箱地址",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "由于 Nextcloud 通话应用没有启用,所以通过 Nextcloud 通话应用发送%s共享密码失败。",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "共享 %1$s 失败,后端不允许类型为 %2$s 的共享",
+ "Please specify a valid federated account ID" : "请指定有效的联合账号 ID",
"Please specify a valid federated group ID" : "请指定一个有效的联合群组 ID",
- "You cannot share to a Circle if the app is not enabled" : "如果这个应用程序不可用,您不能共享到圈子",
- "Please specify a valid circle" : "请指明一个可用圈子",
+ "You cannot share to a Team if the app is not enabled" : "如果未启用应用,则无法与团队共享",
+ "Please specify a valid team" : "请指定有效团队",
"Sharing %s failed because the back end does not support room shares" : "由于后端不支持房间共享,所以共享 %s 失败。",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "共享 %s 失败,因为后端不支持 ScienceMesh 共享。",
"Unknown share type" : "未知共享类型",
"Not a directory" : "不是一个目录",
"Could not lock node" : "无法锁定节点",
- "Could not lock path" : "无法锁定路径",
- "Wrong or no update parameter given" : "错误或没有更新参数给出",
+ "Public upload is only possible for publicly shared folders" : "公共上传仅适用于公共共享文件夹",
"Share must at least have READ or CREATE permissions" : "分享至少具有 READ 或 CREATE 权限",
"Share must have READ permission if UPDATE or DELETE permission is set" : "分享如果设置了 UPDATE 或 DELETE 权限,则必须具有 READ 权限",
+ "Public upload disabled by the administrator" : "公共上传已被管理员禁用",
+ "Could not lock path" : "无法锁定路径",
+ "no sharing rights on this item" : "此项目没有共享权限",
+ "You are not allowed to edit incoming shares" : "不允许编辑传入共享",
+ "Wrong or no update parameter given" : "错误或没有更新参数给出",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "“通过 Nextcloud 通话应用发送密码”共享文件或文件夹失败了,因为未启用Nextcloud 通话应用",
+ "Custom share link tokens have been disabled by the administrator" : "管理员已禁用自定义共享链接令牌",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "令牌必须至少包含 1 个字符,并且只能包含字母、数字或连字符",
+ "Invalid date. Format must be YYYY-MM-DD" : "日期无效,格式必须为 YYYY-MM-DD",
+ "No sharing rights on this item" : "此项目没有共享权限",
+ "Invalid share attributes provided: \"%s\"" : "提供的共享属性无效:“%s”",
+ "You are not allowed to send mail notifications" : "不允许您发送邮件通知",
+ "No mail notification configured for this share type" : "没有为此共享类型配置邮件通知",
+ "Wrong password" : "密码错误",
+ "Error while sending mail notification" : "发送邮件通知时发生错误",
+ "Failed to generate a unique token" : "无法生成唯一令牌",
+ "This share does not exist or is no longer available" : "此共享不存在或不再可用",
"shared by %s" : "共享者 %s",
- "Download all files" : "下载所有文件",
- "Direct link" : "直接链接",
+ "Download" : "下载",
"Add to your %s" : "添加到您的 %s",
+ "Direct link" : "直接链接",
"Share API is disabled" : "共享 API 已被禁用",
"File sharing" : "文件共享",
"Share will expire tomorrow" : "共享将在明天过期",
@@ -110,197 +111,329 @@
"You received {share} to group {group} as a share by {user}" : "您收到了来自 {user} 的共享给分组 {group} 的 {share}",
"Accept" : "接受",
"Decline" : "拒绝",
- "Sharing" : "共享",
+ "Remember to upload the files to %s" : "记得将文件上传到 %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "我们想提醒您,您尚未将任何文件上传到共享文件夹。",
+ "Open \"%s\"" : "打开“%s”",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "该应用程序允许用户在 Nextcloud 内部共享文件。启用该应用程序,管理员能够选择哪个群组可以分享文件。然后,适用用户能够分享文件和文件夹给其他用户和群组。除此之外,如果管理员启用共享链接功能,用户能够通过外部链接将文件分享给 Nextcloud 以外的用户。同时,管理员可以强制用户分享时设置密码,分享时效,并且可以启用服务端通过链接分享或从移动设备分享功能。\n关闭此功能,所有共享接收者的服务器上共享的文件和文件夹将被移除,同时也会在同步客户端和移动应用程序上移除。更多信息可查阅 Nextcloud 说明文档。",
+ "People" : "用户",
+ "Filter accounts" : "筛选账号",
+ "The request will expire on {date} at midnight and will be password protected." : "请求将于{date}凌晨过期,并将受到密码保护。",
+ "The request will expire on {date} at midnight." : "请求将于{date}凌晨过期。",
+ "The request will be password protected." : "请求将受到密码保护。",
+ "When should the request expire?" : "请求何时到期?",
+ "Set a submission expiration date" : "设置提交过期日期",
+ "Expiration date" : "过期日期 ",
+ "Select a date" : "选择一个日期",
+ "Your administrator has enforced a {count} days expiration policy." : "管理员已强制执行 {count} 天过期策略。",
+ "What password should be used for the request?" : "请求应使用什么密码?",
+ "Set a password" : "设置一个密码",
+ "Password" : "密码",
+ "Enter a valid password" : "请输入有效密码",
+ "Generate a new password" : "生成新密码",
+ "Your administrator has enforced a password protection." : "您的管理员已强制实施密码保护。",
+ "Automatically copying failed, please copy the share link manually" : "自动复制失败,请手动复制共享链接",
+ "Link copied" : "已复制链接",
+ "Email already added" : "电子邮箱已添加",
+ "Invalid email address" : "无效电子邮箱地址",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["以下电子邮箱地址无效:{emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["已添加 {count} 个电子邮件地址"],
+ "_{count} email address added_::_{count} email addresses added_" : ["已添加 {count} 个电子邮件地址"],
+ "You can now share the link below to allow people to upload files to your directory." : "现在,你可以分享下面的链接,允许人们将文件上传到你的目录。",
+ "Share link" : "共享链接",
+ "Copy" : "复制",
+ "Send link via email" : "通过邮件发送链接",
+ "Enter an email address or paste a list" : "输入电子邮箱地址或粘贴一个列表",
+ "Remove email" : "移除电子邮箱",
+ "Select a destination" : "选择目标",
+ "Select" : "选择",
+ "What are you requesting?" : "你正在请求什么?",
+ "Request subject" : "请求主题",
+ "Birthday party photos, History assignment…" : "生日聚会照片,历史作业…",
+ "Where should these files go?" : "这些文件应该放在哪里?",
+ "Upload destination" : "上传目标",
+ "Revert to default" : "恢复默认值",
+ "The uploaded files are visible only to you unless you choose to share them." : "上传的文件仅对您可见,除非您选择共享它们。",
+ "Add a note" : "添加备注",
+ "Note for recipient" : "接收者的备注",
+ "Add a note to help people understand what you are requesting." : "添加备注以帮助他人了解你的请求。",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "你可以添加链接、日期或任何其他信息,以帮助收件人了解你的请求。",
+ "Close" : "关闭",
+ "_Send email and close_::_Send {count} emails and close_" : ["发送{count}封电子邮件并关闭"],
+ "Please select a folder, you cannot share the root directory." : "请选择文件夹,您无法分享根目录。",
+ "File request created" : "创建了文件请求",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["文件请求已创建,{count}封电子邮件已发送"],
+ "Error creating the share: {errorMessage}" : "创建共享失败:{errorMessage}",
+ "Error creating the share" : "创建共享时出错",
+ "Error sending emails: {errorMessage}" : "发送电子邮件时出错:{errorMessage}",
+ "Error sending emails" : "发送电子邮件出错",
+ "Create a file request" : "创建文件请求",
+ "Collect files from others even if they do not have an account." : "即使对方没有账号,也可以收集文件。",
+ "To ensure you can receive files, verify you have enough storage available." : "为确保您可以接收文件,请验证您是否有足够的可用存储空间。",
+ "File request" : "文件请求",
+ "Previous step" : "上一步",
+ "Cancel" : "取消",
+ "Cancel the file request creation" : "取消文件请求创建",
+ "Close without sending emails" : "关闭而不发送电子邮件",
+ "Continue" : "继续",
"Error while toggling options" : "切换选项时出错",
- "Set default folder for accepted shares" : "设置已接受共享的默认文件夹",
- "Reset" : "重置",
- "Reset folder to system default" : "重置文件夹为系统默认值",
+ "Accept shares from other accounts and groups by default" : "默认接受其他账号和群组的分享",
"Choose a default folder for accepted shares" : "为已接受的共享选择一个默认文件夹",
"Invalid path selected" : "所选路径无效",
"Unknown error" : "未知错误",
- "Open Sharing Details" : "打开分享详细信息",
+ "Set default folder for accepted shares" : "设置已接受共享的默认文件夹",
+ "Reset" : "重置",
+ "Reset folder to system default" : "重置文件夹为系统默认值",
+ "Share expiration: {date}" : "分享过期日期:{date}",
+ "Share Expiration" : "分享过期日期",
"group" : "分组",
"conversation" : "会话",
"remote" : "远程",
"remote group" : "远程分组",
"guest" : "访客",
+ "by {initiator}" : "由 {initiator}",
"Shared with the group {user} by {owner}" : "{owner} 共享给分组 {user}",
"Shared with the conversation {user} by {owner}" : "由{owner}共享给会话{user}",
"Shared with {user} by {owner}" : "{owner} 共享给 {user}",
+ "Open Sharing Details" : "打开分享详细信息",
"Added by {initiator}" : "由 {initiator} 添加",
"Via “{folder}”" : "通过“{folder}”",
"Unshare" : "取消共享",
- "Internal link" : "内部链接",
"Cannot copy, please copy the link manually" : "无法复制,请手动复制链接",
- "Copy internal link to clipboard" : "复制内部链接到剪贴板",
- "Link copied" : "已复制链接",
- "Please enter the following required information before creating the share" : "请在创建共享前输入以下必填信息",
- "Password protection (enforced)" : "密码保护(强制)",
- "Password protection" : "密码保护",
- "Enter a password" : "输入密码",
- "Expiration date (enforced)" : "过期日期(强制)",
- "Enter a date" : "输入日期",
- "Create share" : "创建共享",
- "Cancel" : "取消",
- "Customize link" : "自定义链接",
- "Add another link" : "添加其他链接",
- "Create a new share link" : "创建新的共享链接",
+ "Copy internal link" : "复制内部链接",
+ "Internal link" : "内部链接",
"{shareWith} by {initiator}" : "由 {initiator} 通过 {shareWith} 共享",
"Shared via link by {initiator}" : "由 {initiator} 通过链接共享",
+ "File request ({label})" : "文件请求 ({label})",
"Mail share ({label})" : "邮件分享({label})",
"Share link ({label})" : "分享链接({label})",
+ "Mail share" : "邮件分享",
"Share link ({index})" : "分享链接({index})",
- "Share link" : "共享链接",
+ "Create public link" : "生成公开链接地址",
"Actions for \"{title}\"" : "“{title}”的动作",
- "Copy public link of \"{title}\" to clipboard" : "将“{title}”的公开链接复制到剪贴板",
"Error, please enter proper password and/or expiration date" : "错误,请输入正确的密码和/或过期日期",
"Link share created" : "已创建链接分享",
"Error while creating the share" : "创建共享时出错",
+ "Please enter the following required information before creating the share" : "请在创建共享前输入以下必填信息",
+ "Password protection (enforced)" : "密码保护(强制)",
+ "Password protection" : "密码保护",
+ "Enter a password" : "输入密码",
+ "Enable link expiration (enforced)" : "启用链接过期(强制)",
+ "Enable link expiration" : "启用链接过期",
+ "Enter expiration date (enforced)" : "输入过期日期(强制)",
+ "Enter expiration date" : "输入过期日期",
+ "Create share" : "创建共享",
+ "Customize link" : "自定义链接",
+ "Generate QR code" : "生成二维码",
+ "Add another link" : "添加其他链接",
+ "Create a new share link" : "创建新的共享链接",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "快速分享选项,当前选择为 “{selectedOption}”",
"View only" : "仅查看",
"Can edit" : "可以编辑",
- "File drop" : "文件拖放",
"Custom permissions" : "自定义权限",
- "Search for share recipients" : "查找共享参与者",
- "No recommendations. Start typing." : "没有建议。开始输入。",
- "Resharing is not allowed" : "不允许二次共享",
- "Name or email …" : "姓名或电子邮件 ...",
- "Name, email, or Federated Cloud ID …" : "名称、电子邮件或联合云 ID ...",
- "Searching …" : "正在搜索 ...",
+ "Resharing is not allowed" : "不允许再次共享",
+ "Name or email …" : "名称或电子邮件…",
+ "Name, email, or Federated Cloud ID …" : "名称、电子邮件或联合云 ID…",
+ "Searching …" : "正在搜索…",
"No elements found." : "未发现元素。",
- "Search globally" : "全局搜索",
+ "Search everywhere" : "在所有位置搜索",
"Guest" : "访客",
"Group" : "群组",
- "Email" : "电子邮箱",
+ "Email" : "电子邮件",
+ "Team" : "团队",
"Talk conversation" : "通话应用对话",
"Deck board" : "看板",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "在 {server} 上",
+ "Enter external recipients" : "输入外部接收者",
+ "Search for internal recipients" : "搜索内部接收者",
+ "Note from" : "备注来自",
+ "Note:" : "备注:",
+ "File drop" : "文件拖放",
+ "Upload files to {foldername}." : "将文件上传到 {foldername}。",
+ "By uploading files, you agree to the terms of service." : "上传文件即表示您同意服务条款。",
+ "Successfully uploaded files" : "已成功上传文件",
+ "View terms of service" : "查看服务条款",
+ "Terms of service" : "服务条款",
+ "Share with email {email}" : "与邮箱 {email} 分享",
+ "Share with group" : "分享至群组",
+ "Share in conversation" : "分享至对话",
+ "Share with {user} on remote server {server}" : "与服务器 {server} 上的用户 {user} 分享",
+ "Share with remote group" : "分享至远程群组",
+ "Share with guest" : "分享至访客",
+ "Update share" : "更新分享",
+ "Save share" : "保存分享",
+ "Read" : "读取",
+ "Create" : "创建",
+ "Edit" : "编辑",
+ "Share" : "共享",
+ "Delete" : "删除",
+ "Password field cannot be empty" : "密码字段不能为空",
+ "Replace current password" : "替换当前密码",
+ "Failed to generate a new token" : "无法生成新令牌",
"Allow upload and editing" : "允许上传和编辑",
"Allow editing" : "允许编辑",
"Upload only" : "仅上传",
"Advanced settings" : "高级选项",
- "Share label" : "分享标签",
+ "Share label" : "共享标签",
+ "Share link token" : "共享链接令牌",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "将公开共享链接令牌设置为易于记忆的令牌或生成新令牌。不建议对包含敏感信息的共享使用可猜测的令牌。",
+ "Generating…" : "正在生成…",
+ "Generate new token" : "生成新令牌",
"Set password" : "设置密码",
- "Password" : "密码",
"Password expires {passwordExpirationTime}" : "密码于 {passwordExpirationTime} 过期",
"Password expired" : "密码已过期",
"Video verification" : "视频验证",
+ "Expiration date (enforced)" : "过期日期(强制)",
"Set expiration date" : "设置过期日期",
- "Expiration date" : "过期日期 ",
"Hide download" : "隐藏下载",
- "Allow download" : "允许下载",
- "Note to recipient" : "接收人备注",
- "Enter a note for the share recipient" : "给共享接收人留备注",
- "Read" : "读取",
- "Create" : "创建",
- "Edit" : "编辑",
- "Share" : "共享",
+ "Allow download and sync" : "允许下载和同步",
+ "Note to recipient" : "接收者备注",
+ "Enter a note for the share recipient" : "为共享接收者输入备注",
+ "Show files in grid view" : "在网格视图中显示文件",
"Delete share" : "删除共享",
- "Share with {userName}" : "分享至 {userName}",
- "Share with group" : "分享至群组",
- "Share in conversation" : "分享至对话",
- "Share with remote group" : "分享至远程群组",
- "Share with guest" : "分享至访客",
- "Update share" : "更新分享",
- "Save share" : "保存分享",
"Others with access" : "其他具有访问权限的人",
+ "No other accounts with access found" : "未找到其他拥有访问权限的账号",
"Toggle list of others with access to this directory" : "切换有权访问此目录的其他人的列表",
"Toggle list of others with access to this file" : "切换有权访问此文件的其他人的列表",
"Unable to fetch inherited shares" : "无法获取继承的共享",
+ "Link shares" : "链接共享",
+ "Shares" : "共享",
"Unable to load the shares list" : "无法加载共享列表",
"Expires {relativetime}" : "过期 {relativetime}",
"this share just expired." : "此共享已过期。",
"Shared with you by {owner}" : "{owner} 与您共享",
+ "Internal shares" : "内部共享",
+ "Internal shares explanation" : "内部共享说明",
+ "External shares" : "外部共享",
+ "External shares explanation" : "外部共享说明",
+ "Additional shares" : "额外共享",
+ "Additional shares explanation" : "额外共享说明",
+ "Link to a file" : "链接到文件",
"_Accept share_::_Accept shares_" : ["接受共享"],
"Open in Files" : "在文件中打开",
"_Reject share_::_Reject shares_" : ["拒绝共享"],
"_Restore share_::_Restore shares_" : ["恢复共享"],
"Shared" : "已共享",
"Shared by {ownerDisplayName}" : "由 {ownerDisplayName} 分享",
- "Show sharing options" : "显示共享选项",
- "Link to a file" : "链接到文件",
- "Error creating the share: {errorMessage}" : "创建共享失败:{errorMessage}",
- "Error creating the share" : "创建共享时出错",
- "Error updating the share: {errorMessage}" : "更新共享失败:{errorMessage}",
- "Error updating the share" : "更新共享时出错",
- "File \"{path}\" has been unshared" : "文件“{path}”已取消共享",
- "Folder \"{path}\" has been unshared" : "文件夹“{path}”已取消共享",
- "Share {propertyName} saved" : "共享 {propertyName} 已保存",
- "Shared by" : "共享人",
- "Shared with" : "共享给",
- "Password created successfully" : "成功创建密码",
- "Error generating password from password policy" : "从密码策略生成密码时出错",
- "Shared with you and the group {group} by {owner}" : "{owner} 共享给您及 {group} 分组",
- "Shared with you and {circle} by {owner}" : "{owner} 共享给您及 {circle}",
- "Shared with you and the conversation {conversation} by {owner}" : "由{owner} 共享给您及对话 {conversation}",
- "Shared with you in a conversation by {owner}" : "由 {owner} 在一个会话中共享给您",
- "Shares" : "共享",
+ "Shared multiple times with different people" : "与不同的用户多次分享",
+ "Shared with others" : "你的共享",
+ "Create file request" : "创建文件请求",
+ "Upload files to {foldername}" : "将文件上传到 {foldername}",
+ "Public file share" : "公开文件共享",
+ "Publicly shared file." : "公开共享的文件。",
+ "No file" : "无文件",
+ "The file shared with you will show up here" : "与您共享的文件将显示在此处",
+ "Public share" : "公开共享",
+ "Publicly shared files." : "公开共享的文件。",
+ "No files" : "没有文件",
+ "Files and folders shared with you will show up here" : "与您共享的文件和文件夹将显示在此处",
"Overview of shared files." : "已分享文件的概览",
"No shares" : "没有共享",
- "Files and folders you shared or have been shared with you will show up here" : "您共享或已与您共享的文件与文件夹将显示在此处",
- "Shared with you" : "共享给您的",
- "List of files that are shared with you." : "与您共享的文件列表",
+ "Files and folders you shared or have been shared with you will show up here" : "你的共享或已与你共享的文件与文件夹将显示在此处",
+ "Shared with you" : "与你共享",
+ "List of files that are shared with you." : "与你共享的文件列表",
"Nothing shared with you yet" : "您还没有收到任何共享的文件",
"Files and folders others shared with you will show up here" : "其他人与您分享的文件与文件夹将显示在此处",
- "Shared with others" : "您共享的文件",
"List of files that you shared with others." : "你与其他人分享的文件列表。",
"Nothing shared yet" : "还没有共享过文件",
"Files and folders you shared will show up here" : "您分享的文件与文件夹将会显示在此处",
"Shared by link" : "通过链接共享",
"List of files that are shared by link." : "存在分享链接的文件列表",
"No shared links" : "无共享链接",
- "Files and folders you shared by link will show up here" : "此处会显示您使用链接分享的文件和文件夹",
+ "Files and folders you shared by link will show up here" : "你通过链接共享的文件和文件夹将显示在此处",
+ "File requests" : "文件请求",
+ "List of file requests." : "文件请求列表",
+ "No file requests" : "没有文件请求",
+ "File requests you have created will show up here" : "你已创建的文件请求将显示在这里",
"Deleted shares" : "已删除的共享",
"List of shares you left." : "您已退出的分享列表",
- "No deleted shares" : "没有删除的共享",
+ "No deleted shares" : "没有已删除的共享",
"Shares you have left will show up here" : "此处会显示您退出的分享",
"Pending shares" : "待定共享",
"List of unapproved shares." : "未批准的分享列表",
"No pending shares" : "没有待定共享",
"Shares you have received but not approved will show up here" : "您已收到但未批准的分享将显示在这里",
+ "Error deleting the share: {errorMessage}" : "删除共享时出错:{errorMessage}",
+ "Error deleting the share" : "删除共享时出错",
+ "Error updating the share: {errorMessage}" : "更新共享时出错:{errorMessage}",
+ "Error updating the share" : "更新共享时出错",
+ "File \"{path}\" has been unshared" : "文件“{path}”已取消共享",
+ "Folder \"{path}\" has been unshared" : "文件夹“{path}”已取消共享",
+ "Could not update share" : "无法更新共享",
+ "Share saved" : "共享已保存",
+ "Share expiry date saved" : "共享过期日期已保存",
+ "Share hide-download state saved" : "共享隐藏已下载的状态已保存",
+ "Share label saved" : "共享标签已保存",
+ "Share note for recipient saved" : "接收者的共享备注已保存",
+ "Share password saved" : "共享密码已保存",
+ "Share permissions saved" : "共享权限已保存",
+ "To upload files to {folder}, you need to provide your name first." : "要将文件上传到 {folder},您需要先提供名称。",
+ "Upload files to {folder}" : "将文件上传到 {folder}",
+ "Please confirm your name to upload files to {folder}" : "请确认名称以将文件上传到 {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} 与您分享了一个文件夹。",
+ "Names must not be empty." : "名称不能为空。",
+ "Names must not start with a dot." : "名称不能以点开头。",
+ "\"{char}\" is not allowed inside a name." : "名称中不允许使用“{char}”。",
+ "\"{segment}\" is a reserved name and not allowed." : "“{segment}”是保留名称,不允许使用。",
+ "\"{extension}\" is not an allowed name." : "“{extension}”不是允许的名称。",
+ "Names must not end with \"{extension}\"." : "名称不能以“{extension}”结尾。",
+ "Invalid name." : "无效名称。",
+ "Shared by" : "共享人",
+ "Shared with" : "共享给",
+ "Password created successfully" : "密码已创建成功",
+ "Error generating password from password policy" : "从密码策略生成密码时出错",
+ "Shared with you and the group {group} by {owner}" : "{owner} 共享给您及 {group} 分组",
+ "Shared with you and {circle} by {owner}" : "{owner} 共享给您及 {circle}",
+ "Shared with you and the conversation {conversation} by {owner}" : "由{owner} 共享给您及对话 {conversation}",
+ "Shared with you in a conversation by {owner}" : "由 {owner} 在一个会话中共享给您",
+ "Share not found" : "未找到共享",
+ "Back to %s" : "返回 %s",
+ "Add to your Nextcloud" : "添加到您的 Nextcloud",
+ "Waiting…" : "等待中...",
+ "error" : "错误",
+ "finished" : "完成",
+ "This will stop your current uploads." : "此操作将终止您当前的上传。",
+ "Move or copy" : "移动或复制",
+ "You can upload into this folder" : "您可以上传文件至此文件夹",
+ "Show list view" : "显示列表视图",
+ "Show grid view" : "显示网格视图",
+ "No compatible server found at {remote}" : " {remote} 未发现匹配的服务器",
+ "Invalid server URL" : "无效的服务器地址",
+ "Failed to add the public link to your Nextcloud" : "添加公开链接到您的Nextcloud失败",
+ "You are not allowed to edit link shares that you don't own" : "不允许编辑不属于您的链接共享",
+ "Download all files" : "下载所有文件",
+ "Link copied to clipboard" : "链接已复制到剪贴板",
+ "_1 email address already added_::_{count} email addresses already added_" : ["{count}个电子邮箱地址已添加"],
+ "_1 email address added_::_{count} email addresses added_" : ["{count}电子邮箱地址已添加"],
+ "Copy to clipboard" : "复制到剪贴板",
+ "Copy internal link to clipboard" : "复制内部链接到剪贴板",
+ "Only works for people with access to this folder" : "仅适用于可以访问该文件夹的用户",
+ "Only works for people with access to this file" : "仅适用于可以访问该文件的用户",
+ "Copy public link of \"{title}\" to clipboard" : "将“{title}”的公开链接复制到剪贴板",
+ "Search globally" : "全局搜索",
+ "Search for share recipients" : "查找共享参与者",
+ "No recommendations. Start typing." : "无建议。开始输入。",
+ "To upload files, you need to provide your name first." : "要上传文件,您需要先提供名称。",
+ "Enter your name" : "输入名称",
+ "Submit name" : "提交名称",
+ "Share with {userName}" : "分享至 {userName}",
+ "Show sharing options" : "显示共享选项",
"Share note" : "共享笔记",
"Upload files to %s" : "上传文件到 %s",
+ "%s shared a folder with you." : "%s 与您分享了一个文件夹。",
"Note" : "备注",
"Select or drop files" : "选择或拖放文件",
"Uploading files" : "正在上传文件",
"Uploaded files:" : "上传的文件: ",
"By uploading files, you agree to the %1$sterms of service%2$s." : "通过上传文件,您同意了 %1$s 服务条款 %2$s。",
- "Add to your Nextcloud" : "添加到您的 Nextcloud",
- "Files and folders others share with you will show up here" : "其它人共享给您的文件和文件夹将显示在这里",
- "Files and folders you share will show up here" : "您共享的文件和文件夹将显示在这里",
- "Files and folders you share by link will show up here" : "您通过链接共享的文件和文件夹将显示在这里",
- "Shares you deleted will show up here" : "您删除的共享将在这里显示",
- "Shares you have received but not confirmed will show up here" : "您收到但未确认的共享将显示在这里",
- "Shares will show up here" : "共享将在这里显示",
- "Restore" : "恢复",
- "Something happened. Unable to restore the share." : "发生了问题。无法恢复该共享。",
- "Something happened. Unable to accept the share." : "发生了问题。无法接受该共享。",
- "Something happened. Unable to reject the share." : "发生了问题。无法拒绝该共享。",
- "No expiration date set" : "未设置失效时间",
- "Please specify a valid user" : "请指定一个有效的用户",
- "Please specify a valid federated user ID" : "请指定一个有效的联合用户 ID",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "这个应用程序允许用户在 Nextcloud 内部共享文件。如果启用,管理员能够选择哪个组可以共享文件。然后,可用的用户能够共享文件和文件夹给 Nextcloud 中的其他用户和组。另外,如果管理员启用了共享链接功能,能够使用外部链接将文件共享给 Nextcloud 之外的其他用户。管理员也可以强制设置密码,过期日期,并且可以通过共享链接启用服务器到服务器的共享,以及从移动设备共享。\n关闭该功能将删除服务器上所有共享接收者以用同步客户端和移动应用上的共享文件和文件夹。更多信息可查阅 Nextcloud 文档。",
- "Accept user and group shares by default" : "默认接受用户和分组共享",
- "Read only" : "只读",
- "File drop (upload only)" : "文件拖放(仅上传)",
- "Upload" : "上传",
- "Bundled permissions" : "权限包",
- "Only works for users with access to this folder" : "仅适用于有权限访问此文件夹的用户",
- "Only works for users with access to this file" : "仅适用于有权限访问此文件的用户",
- "Circle" : "圈子",
- "Update" : "更新",
- "Share with " : "分享给",
- "No other users with access found" : "找不到其他具有访问权限的用户",
- "No entries found in this folder" : "在此文件夹中找不到项目",
"Name" : "名称",
- "Share time" : "共享时间",
- "Sorry, this link does not seem to work anymore." : "抱歉,此链接已失效。",
- "Reasons might be:" : "可能原因是:",
- "the item was removed" : "此项已移除",
- "the link expired" : "链接过期",
- "sharing is disabled" : "已禁用共享",
- "For more info, please ask the person who sent this link." : "如需了解更多信息,请联系发给您该链接的人。",
- "Share with remote" : "分享至远程",
- "Share with" : "共享给"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "使用此方法与组织内的个人或团队共享文件。如果接收者已经可以访问共享,但找不到它,您可以向他们发送内部共享链接以便于访问。",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "使用此方法与组织外部的个人或组织共享文件。文件和文件夹可以通过公开共享链接和电子邮件地址共享。您还可以使用其联合云 ID 共享给托管在不同实例上的其他 Nextcloud 账号。",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "不属于内部或外部共享的共享,这可以是来自应用或其他来源的共享。",
+ "Share with accounts, teams, federated cloud id" : "与账号、团队、联合云 ID 共享",
+ "Share with accounts and teams" : "与账号和团队共享",
+ "Federated cloud ID" : "联合云 ID",
+ "Email, federated cloud id" : "电子邮件、联合云 ID",
+ "Filename must not be empty." : "文件名不能为空。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/zh_HK.js b/apps/files_sharing/l10n/zh_HK.js
index 9ede602a194..78b0875a2bc 100644
--- a/apps/files_sharing/l10n/zh_HK.js
+++ b/apps/files_sharing/l10n/zh_HK.js
@@ -1,20 +1,6 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "正在等待……",
- "error" : "錯誤",
- "finished" : "已結束",
- "This will stop your current uploads." : "這會終止目前任何的上傳。",
- "Move or copy" : "移動或複製",
- "Download" : "下載",
- "Delete" : "移除",
- "You can upload into this folder" : "你可以上傳內容到此資料夾",
- "Terms of service" : "服務條款",
- "Show list view" : "顯示清單視圖",
- "Show grid view" : "顯示網格視圖",
- "No compatible server found at {remote}" : "沒有在 {remote} 找到相容的伺服器",
- "Invalid server URL" : "無效的伺服器 URL",
- "Failed to add the public link to your Nextcloud" : "無法將公開連結加入您的 Nextcloud",
"File shares" : "檔案分享",
"Downloaded via public link" : "透過公用連結下載",
"Downloaded by {email}" : "{email} 已下載",
@@ -69,8 +55,9 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "與 {user} 分享的檔案 {file} 已過期",
"Share for file {file} expired" : "檔案 {file} 的分享已過期",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "email或公開連結分享的檔案與資料夾已被 <strong>下載</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "檔案已<strong>上傳</strong>到透過郵件或公共連結的共享資料夾",
"A file or folder was shared from <strong>another server</strong>" : "檔案或目錄已被 <strong>其他伺服器</strong> 分享",
- "Files" : "檔案",
+ "Sharing" : "分享",
"A file or folder has been <strong>shared</strong>" : "檔案或目錄已被 <strong>分享</strong>",
"Shared link" : "已分享的連結",
"Wrong share ID, share does not exist" : "錯誤的分享 ID ,分享不存在",
@@ -78,34 +65,46 @@ OC.L10N.register(
"Please specify a file or folder path" : "請指定檔案或資料夾路徑",
"Wrong path, file/folder does not exist" : "錯誤的路徑,該檔案或資料夾不存在",
"Could not create share" : "無法建立分享",
- "Invalid permissions" : "無效的權限",
- "Invalid date, date format must be YYYY-MM-DD" : "無效的日期,需為 YYYY-MM-DD 格式",
"Please specify a valid account to share with" : "請指定要分享的有效帳戶",
"Group sharing is disabled by the administrator" : "群組分享已被管理員停用",
"Please specify a valid group" : "請指定一個有效的群組",
"Public link sharing is disabled by the administrator" : "公開連結分享已被管理員停用",
- "Public upload disabled by the administrator" : "公開上傳已被管理員停用",
- "Public upload is only possible for publicly shared folders" : "只有公開分享的資料夾可以接受公開上傳",
+ "Please specify a valid email address" : "請指定一個有效的電郵地址",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "因為未啟用 Nextcloud Talk,因此透過 Nextcloud Talk 傳送密碼分享 %s 失敗",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "分享 %1$s 失敗,因為後端不允許來自 %2$s 類型的分享",
"Please specify a valid federated account ID" : "請指定有效的聯盟帳戶 ID",
"Please specify a valid federated group ID" : "請指定一個有效的聯合群組 ID",
- "You cannot share to a Circle if the app is not enabled" : "當應用未被啟用,你無法分享到circle。",
- "Please specify a valid circle" : "請指定一個有效的circle",
+ "You cannot share to a Team if the app is not enabled" : "當應用未被啟用,你無法分享到團隊。",
+ "Please specify a valid team" : "請選擇一個有效的團隊",
"Sharing %s failed because the back end does not support room shares" : "分享 %s 失敗,因為後端不支援聊天室分享",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "分享 %s 失敗,因為後端不支援 ScienceMesh 分享",
"Unknown share type" : "分享類型不詳",
"Not a directory" : "這不是一個資料夾",
"Could not lock node" : "無法鎖定節點",
- "Could not lock path" : "無法鎖定路徑",
- "Wrong or no update parameter given" : "更新參數不正確或未提供",
+ "Public upload is only possible for publicly shared folders" : "只有公開分享的資料夾可以接受公開上傳",
"Share must at least have READ or CREATE permissions" : "分享必須至少具有 READ 或 CREATE 權限",
"Share must have READ permission if UPDATE or DELETE permission is set" : "如果設置了 UPDATE 或 DELETE 權限,則分享必須具有 READ 權限",
+ "Public upload disabled by the administrator" : "公開上傳已被管理員停用",
+ "Could not lock path" : "無法鎖定路徑",
+ "no sharing rights on this item" : "此項目無共享權限",
+ "You are not allowed to edit incoming shares" : "您無權編輯接收的共享項目",
+ "Wrong or no update parameter given" : "更新參數不正確或未提供",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "“通過 Nextcloud Talk 發送密碼”共享檔案或資料夾失敗,因為 Nextcloud Talk 未啟用。",
+ "Custom share link tokens have been disabled by the administrator" : "自訂分享連結權杖已被管理員停用",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "權杖必須至少包含 1 個字元,且只能包含字母、數字或連字符。",
+ "Invalid date. Format must be YYYY-MM-DD" : "無效的日期。需為 YYYY-MM-DD 格式",
+ "No sharing rights on this item" : "此項目無共享權限",
+ "Invalid share attributes provided: \"%s\"" : "提供的共享屬性無效:\"%s\"",
+ "You are not allowed to send mail notifications" : "您無權發送郵件通知",
+ "No mail notification configured for this share type" : "此共享類型未配置郵件通知。",
+ "Wrong password" : "密碼錯誤",
+ "Error while sending mail notification" : "發送郵件通知時發生錯誤",
+ "Failed to generate a unique token" : "產生獨一無二的權杖失敗",
+ "This share does not exist or is no longer available" : "此分享不存在或是不再提供",
"shared by %s" : "分享自 %s",
- "Download all files" : "下載所有檔案",
- "Direct link" : "直接連結",
+ "Download" : "下載",
"Add to your %s" : "新增至您的 %s",
+ "Direct link" : "直接連結",
"Share API is disabled" : "分享 API 已停用",
"File sharing" : "檔案分享",
"Share will expire tomorrow" : "分享將於明日到期",
@@ -114,70 +113,133 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "您收到了 {user} 分享的 {share} 到 {group} 群組",
"Accept" : "接受",
"Decline" : "婉拒",
- "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "該應用程序使用戶可以在Nextcloud中共享檔案。如果啟用,管理員可以選擇可以共享文件的群組。然後,適用的用戶可以與Nextcloud中的其他帳戶和群組共享檔案和資料夾。此外,如果管理員啟用了共享連結功能,則可以使用外部連結與Nextcloud之外的其他用戶分享檔案。管理員還可以實施密碼,有效期,並允許通過分享檔案進行伺服器到伺服器的分享以及從流動裝置進行分享。\n關閉此功能將刪除伺服器上所有分享收件人以及同步客戶端和流動應用程序上的分享了檔案和資料夾。Nextcloud文檔中提供了更多信息。",
- "Sharing" : "分享",
- "Accept shares from other accounts and groups by default" : "預設接受其他帳戶與群組的分享",
+ "Remember to upload the files to %s" : "記得將檔案上傳至 %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "我們謹提醒您,您尚未將任何檔案上傳到共用資料夾。",
+ "Open \"%s\"" : "開啟「%s」",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "該應用程序使用戶可以在Nextcloud中共享檔案。如果啟用,管理員可以選擇可以共享檔案的群組。然後,適用的用戶可以與Nextcloud中的其他帳戶和群組共享檔案和資料夾。此外,如果管理員啟用了共享連結功能,則可以使用外部連結與Nextcloud之外的其他用戶分享檔案。管理員還可以實施密碼,有效期,並允許通過分享檔案進行伺服器到伺服器的分享以及從流動裝置進行分享。\n關閉此功能將刪除伺服器上所有分享收件人以及同步客戶端和流動應用程序上的分享了檔案和資料夾。Nextcloud文檔中提供了更多信息。",
+ "People" : "人物",
+ "Filter accounts" : "過濾帳戶",
+ "The request will expire on {date} at midnight and will be password protected." : "請求將於 {date} 凌晨過期,並將受到密碼保護。",
+ "The request will expire on {date} at midnight." : "請求將於 {date} 凌晨過期。",
+ "The request will be password protected." : "請求將受到密碼保護。",
+ "When should the request expire?" : "請求應在何時過期?",
+ "Set a submission expiration date" : "設置提交屆滿日期",
+ "Expiration date" : "到期日",
+ "Select a date" : "選擇日期",
+ "Your administrator has enforced a {count} days expiration policy." : "您的管理員已強制執行 {count} 天過期政策。",
+ "What password should be used for the request?" : "請求應使用什麼密碼?",
+ "Set a password" : "設定密碼",
+ "Password" : "密碼",
+ "Enter a valid password" : "輸入有效的密碼",
+ "Generate a new password" : "生成新密碼",
+ "Your administrator has enforced a password protection." : "您的管理員已強制設置密碼保護。",
+ "Automatically copying failed, please copy the share link manually" : "自動複製失敗,請手動複製共享連結。",
+ "Link copied" : "連結已複製",
+ "Email already added" : "已加入電郵地址",
+ "Invalid email address" : "電郵地址無效",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["以下電子郵件地址無效:{emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["已添加 {count} 個電郵地址"],
+ "_{count} email address added_::_{count} email addresses added_" : ["添加了{count}個電郵地址"],
+ "You can now share the link below to allow people to upload files to your directory." : "您現在可以分享下面的連結,以允許其他人將檔案上傳到您的目錄中。",
+ "Share link" : "分享連結",
+ "Copy" : "複製",
+ "Send link via email" : "透過電郵寄送連結",
+ "Enter an email address or paste a list" : "請輸入電郵地址或粘貼一個清單",
+ "Remove email" : "移除電郵地址",
+ "Select a destination" : "選擇目的地",
+ "Select" : "選擇",
+ "What are you requesting?" : "您正在請求什麼?",
+ "Request subject" : "請求主題",
+ "Birthday party photos, History assignment…" : "生日派對照片、歷史作業 …",
+ "Where should these files go?" : "這些檔案應該放在哪裡?",
+ "Upload destination" : "上傳目標地",
+ "Revert to default" : "恢復默認值",
+ "The uploaded files are visible only to you unless you choose to share them." : "上傳的檔案僅對您可見,除非您選擇分享它們。",
+ "Add a note" : "添加筆記",
+ "Note for recipient" : "給收件人的備註",
+ "Add a note to help people understand what you are requesting." : "添加備註以幫助他人了解您的請求。",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "您可以新增連結、日期或任何其他訊息,以幫助收件人了解您的請求。",
+ "Close" : "關閉",
+ "_Send email and close_::_Send {count} emails and close_" : ["發送 {count} 封電子郵件並關閉"],
+ "Please select a folder, you cannot share the root directory." : "請選擇一個資料夾,您不能共享根目錄。",
+ "File request created" : "創建了檔案請求",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["檔案請求已創建,{count}封電子郵件已發送"],
+ "Error creating the share: {errorMessage}" : "創建分享出錯:{errorMessage}",
+ "Error creating the share" : "創建分享出錯",
+ "Error sending emails: {errorMessage}" : "發送電子郵件時出錯:{errorMessage}",
+ "Error sending emails" : "發送電子郵件時出錯",
+ "Create a file request" : "創建檔案請求",
+ "Collect files from others even if they do not have an account." : "即使對方沒有帳戶,也可以收集檔案。",
+ "To ensure you can receive files, verify you have enough storage available." : "為了確保您能接收檔案,請確認您有足夠的可用儲存空間。",
+ "File request" : "檔案請求",
+ "Previous step" : "上一步",
+ "Cancel" : "取消",
+ "Cancel the file request creation" : "取消檔案請求創建",
+ "Close without sending emails" : "關閉而不發送電子郵件",
+ "Continue" : "繼續",
"Error while toggling options" : "切換選項時出錯",
- "Set default folder for accepted shares" : "為已接受的分享選擇一個默認資料夾",
- "Reset" : "重設",
- "Reset folder to system default" : "將資料夾重置為系統默認值",
+ "Accept shares from other accounts and groups by default" : "預設接受其他帳戶與群組的分享",
"Choose a default folder for accepted shares" : "為已接受的分享選擇一個默認資料夾",
"Invalid path selected" : "所選的路徑無效",
"Unknown error" : "錯誤不詳",
- "Open Sharing Details" : "打開分享細節",
+ "Set default folder for accepted shares" : "為已接受的分享選擇一個默認資料夾",
+ "Reset" : "重設",
+ "Reset folder to system default" : "將資料夾重置為系統默認值",
+ "Share expiration: {date}" : "分享到期日:{date}",
+ "Share Expiration" : "共享有效期‌",
"group" : "群組",
"conversation" : "對話",
"remote" : "遠端",
"remote group" : "遠端群組",
"guest" : "訪客",
+ "by {initiator}" : "由 {initiator}",
"Shared with the group {user} by {owner}" : "由 {owner} 分享予群組 {user}",
"Shared with the conversation {user} by {owner}" : "{owner}與{user}共享",
"Shared with {user} by {owner}" : "{user}與{owner}共享",
+ "Open Sharing Details" : "打開分享細節",
"Added by {initiator}" : "由{initiator}添加",
"Via “{folder}”" : "透過 “{folder}”",
"Unshare" : "撤回分享",
- "Internal link" : "內部連結",
"Cannot copy, please copy the link manually" : "無法複製,請手動複製連結",
- "Copy internal link to clipboard" : "將內部連結複製到剪貼板",
- "Only works for people with access to this folder" : "只對可以存取此資料夾的人仕生效",
- "Only works for people with access to this file" : "只對可以存取此檔案的人仕生效",
- "Link copied" : "連結已複製",
- "Please enter the following required information before creating the share" : "創建分享之前,請輸入以下必填信息",
- "Password protection (enforced)" : "密碼保護(強制)",
- "Password protection" : "密碼保護",
- "Enter a password" : "輸入密碼",
- "Expiration date (enforced)" : "屆滿日期(強制)",
- "Enter a date" : "輸入日期",
- "Create share" : "創建分享",
- "Cancel" : "取消",
- "Customize link" : "自訂連結",
- "Generate QR code" : "生成 QR Code",
- "Add another link" : "加入另一個連結",
- "Create a new share link" : "建立新分享連結",
+ "Copy internal link" : "複製內部連結",
+ "For people who already have access" : "對於已有存取權限的人",
+ "Internal link" : "內部連結",
"{shareWith} by {initiator}" : "{initiator} 分享了 {shareWith}",
"Shared via link by {initiator}" : "由 {initiator} 透過連結分享",
+ "File request ({label})" : "檔案請求 ({label})",
"Mail share ({label})" : "分享郵件({label})",
"Share link ({label})" : "分享連結({label})",
+ "Mail share" : "郵件分享",
"Share link ({index})" : "分享連結({index})",
- "Share link" : "分享連結",
+ "Create public link" : "建立公共連結",
"Actions for \"{title}\"" : "“{title}” 的操作",
- "Copy public link of \"{title}\" to clipboard" : "將 “{title}” 的公共連結複製到剪貼板",
+ "Copy public link of \"{title}\"" : "複製「{title}」的公開連結",
"Error, please enter proper password and/or expiration date" : "錯誤,請輸入正確的密碼和/或有效期",
"Link share created" : "創建了連結分享",
"Error while creating the share" : "創建分享出錯",
+ "Please enter the following required information before creating the share" : "創建分享之前,請輸入以下必填信息",
+ "Password protection (enforced)" : "密碼保護(強制)",
+ "Password protection" : "密碼保護",
+ "Enter a password" : "輸入密碼",
+ "Enable link expiration (enforced)" : "啟用連結過期(已實施)",
+ "Enable link expiration" : "啟用連結過期",
+ "Enter expiration date (enforced)" : "輸入屆滿日期(已實施)",
+ "Enter expiration date" : "輸入屆滿日期",
+ "Create share" : "創建分享",
+ "Customize link" : "自訂連結",
+ "Generate QR code" : "生成 QR Code",
+ "Add another link" : "加入另一個連結",
+ "Create a new share link" : "建立新分享連結",
"Quick share options, the current selected is \"{selectedOption}\"" : "快速分享選項,目前已選擇 \"{selectedOption}\"",
"View only" : "僅檢視",
"Can edit" : "可編輯",
- "File drop" : "檔案拖放",
"Custom permissions" : "自訂權限",
- "Search for share recipients" : "搜尋分享參與者",
- "No recommendations. Start typing." : "沒有建議。開始輸入。",
"Resharing is not allowed" : "不允許重新分享",
"Name or email …" : "名字或電郵地址",
"Name, email, or Federated Cloud ID …" : "名字,電郵地址或 Federated Cloud ID …",
"Searching …" : "搜尋中 …",
"No elements found." : "找不到元素。",
- "Search globally" : "全域搜尋",
+ "Search everywhere" : "到處搜尋",
"Guest" : "訪客",
"Group" : "群組",
"Email" : "電郵地址",
@@ -186,70 +248,99 @@ OC.L10N.register(
"Deck board" : "Deck 面板",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "在 {server} 上",
+ "Enter external recipients" : "輸入外部收件人",
+ "Search for internal recipients" : "搜尋內部收件人",
+ "Note from" : "備註來自",
+ "Note:" : "備註:",
+ "File drop" : "檔案拖放",
+ "Upload files to {foldername}." : "上傳檔案至 {foldername}。",
+ "By uploading files, you agree to the terms of service." : "上傳檔案即表示您同意服務條款。",
+ "Successfully uploaded files" : "檔案上傳成功",
+ "View terms of service" : "檢視服務條款",
+ "Terms of service" : "服務條款",
+ "Share with {user}" : "與 {user} 分享",
+ "Share with email {email}" : "與電郵地址 {email} 分享",
+ "Share with group" : "與群組分享",
+ "Share in conversation" : "在對話中分享",
+ "Share with {user} on remote server {server}" : "與遠端伺服器 {server} 上的 {user} 分享",
+ "Share with remote group" : "與遠端群組分享",
+ "Share with guest" : "與訪客分享",
+ "Update share" : "更新分享",
+ "Save share" : "保存分享",
+ "Read" : "讀取",
+ "Create" : "創建",
+ "Edit" : "編輯",
+ "Share" : "分享",
+ "Delete" : "移除",
+ "Password field cannot be empty" : "密碼欄位不可為空白",
+ "Replace current password" : "取代目前密碼",
+ "Failed to generate a new token" : "產生新權杖失敗",
"Allow upload and editing" : "允許上傳及編輯",
"Allow editing" : "允許編輯",
"Upload only" : "僅上傳",
"Advanced settings" : "進階設定",
"Share label" : "分享標籤",
+ "Share link token" : "分享連結權杖",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "將公開分享連結權杖設定為容易記住的權杖,或產生新的權杖。不建議對包含敏感資訊的分享使用可猜測的權杖。",
+ "Generating…" : "正在產生 …",
+ "Generate new token" : "産生新權杖",
"Set password" : "設置密碼",
- "Password" : "密碼",
"Password expires {passwordExpirationTime}" : "密碼於 {passwordExpirationTime} 到期",
"Password expired" : "密碼已過期",
"Video verification" : "視像驗證",
+ "Expiration date (enforced)" : "屆滿日期(強制)",
"Set expiration date" : "設定到期日",
- "Expiration date" : "到期日",
"Hide download" : "隱藏下載",
- "Allow download" : "允許下載",
+ "Allow download and sync" : "允許下載及同步",
"Note to recipient" : "給接收者的訊息",
"Enter a note for the share recipient" : "輸入分享收件人的註釋",
- "Read" : "讀取",
- "Create" : "創建",
- "Edit" : "編輯",
- "Share" : "分享",
+ "Show files in grid view" : "以網格視圖顯示檔案",
"Delete share" : "刪除分享",
- "Share with {userName}" : "與 {userName} 分享",
- "Share with email {email}" : "與電郵地址 {email} 分享",
- "Share with group" : "與群組分享",
- "Share in conversation" : "在對話中分享",
- "Share with {user} on remote server {server}" : "與遠端伺服器 {server} 上的 {user} 分享",
- "Share with remote group" : "與遠端群組分享",
- "Share with guest" : "與訪客分享",
- "Update share" : "更新分享",
- "Save share" : "保存分享",
"Others with access" : "其他擁有存取權限的人",
"No other accounts with access found" : "找不到其他擁有存取權限的帳戶",
"Toggle list of others with access to this directory" : "切換有權存取此目錄的其他人的清單",
"Toggle list of others with access to this file" : "切換有權存取此檔案的其他人的清單",
"Unable to fetch inherited shares" : "無法獲取繼承的分享",
+ "Link shares" : "連結分享",
+ "Shares" : "分享",
+ "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "在您的組織內部分享檔案。已經可以檢視檔案的收件者也可以使用此連結以方便存取。",
+ "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "透過公開連結與電子郵件地址與組織外的其他人分享檔案。您也可以使用其他站台上的聯邦雲端 ID 將檔案分享至 Nextcloud 帳號。",
+ "Shares from apps or other sources which are not included in internal or external shares." : "來自應用程式或其他來源的分享,不包括在內部或外部分享中。",
+ "Type names, teams, federated cloud IDs" : "輸入名稱、團隊、聯邦雲端 ID",
+ "Type names or teams" : "輸入名稱或團隊",
+ "Type a federated cloud ID" : "輸入聯邦雲端 ID",
+ "Type an email" : "輸入電郵地址",
+ "Type an email or federated cloud ID" : "輸入電郵地址或聯邦雲端 ID",
"Unable to load the shares list" : "無法載入分享清單",
"Expires {relativetime}" : "有效期至 {relativetime}",
"this share just expired." : "此分享剛過期。",
"Shared with you by {owner}" : "{owner} 已經和您分享",
+ "Internal shares" : "內部分享",
+ "Internal shares explanation" : "內部分享說明",
+ "External shares" : "外部分享",
+ "External shares explanation" : "外部分享說明",
+ "Additional shares" : "額外分享",
+ "Additional shares explanation" : "額外分享說明",
+ "Link to a file" : "連結到一個檔案",
"_Accept share_::_Accept shares_" : ["接受分享"],
"Open in Files" : "在「檔案」應用程式中打開",
"_Reject share_::_Reject shares_" : ["拒絕分享"],
"_Restore share_::_Restore shares_" : ["還原分享"],
"Shared" : "已分享",
- "Shared multiple times with different people" : "與不同的人多次分享",
"Shared by {ownerDisplayName}" : "由 {ownerDisplayName} 分享",
- "Show sharing options" : "顯示分享選項",
- "Link to a file" : "連結到一個檔案",
- "Error creating the share: {errorMessage}" : "創建分享出錯:{errorMessage}",
- "Error creating the share" : "創建分享出錯",
- "Error updating the share: {errorMessage}" : "更新分享出錯:{errorMessage}",
- "Error updating the share" : "更新分享出錯",
- "File \"{path}\" has been unshared" : "檔案 “{path}” 已取消共享",
- "Folder \"{path}\" has been unshared" : "資料夾 “{path}” 已取消共享",
- "Share {propertyName} saved" : "分享 {propertyName} 已保存",
- "Shared by" : "分享自",
- "Shared with" : "分享給",
- "Password created successfully" : "成功創建了密碼",
- "Error generating password from password policy" : "從密碼策略生成密碼時出錯",
- "Shared with you and the group {group} by {owner}" : "由 {owner} 分享給您和 {group}群組",
- "Shared with you and {circle} by {owner}" : "{owner} 分享給您和 {circle}",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} 分享給您和 {conversation} 對話",
- "Shared with you in a conversation by {owner}" : "{owner} 在對話中分享給您",
- "Shares" : "分享",
+ "Shared multiple times with different people" : "與不同的人多次分享",
+ "Sharing options" : "分享選項",
+ "Shared with others" : "與其他人分享",
+ "Create file request" : "創建檔案請求",
+ "Upload files to {foldername}" : "上傳檔案至 {foldername}",
+ "Public file share" : "公共檔案分享",
+ "Publicly shared file." : "公開分享的檔案。",
+ "No file" : "無檔案",
+ "The file shared with you will show up here" : "其它人與您分享的檔案將會顯示在此處",
+ "Public share" : "公共分享",
+ "Publicly shared files." : "公開分享的檔案。",
+ "No files" : "沒有檔案",
+ "Files and folders shared with you will show up here" : "其它人與您分享的檔案與資料夾將會顯示在此處",
"Overview of shared files." : "已分享檔案的概覽。",
"No shares" : "無分享",
"Files and folders you shared or have been shared with you will show up here" : "您分享或已與您分享的檔案與資料夾將顯示在此處",
@@ -257,7 +348,6 @@ OC.L10N.register(
"List of files that are shared with you." : "與您分享的檔案清單。",
"Nothing shared with you yet" : "目前沒有任何與您分享的內容",
"Files and folders others shared with you will show up here" : "其它人與您分享的檔案與資料夾將會顯示在此處",
- "Shared with others" : "與其他人分享",
"List of files that you shared with others." : "您與其他人分享的檔案清單。",
"Nothing shared yet" : "目前沒有分享內容",
"Files and folders you shared will show up here" : "您分享的檔案與資料夾將會顯示在此處",
@@ -265,6 +355,10 @@ OC.L10N.register(
"List of files that are shared by link." : "透過連結分享的檔案清單。",
"No shared links" : "沒有已分享的連結",
"Files and folders you shared by link will show up here" : "您分享的檔案與資料夾連結將會顯示在此處",
+ "File requests" : "檔案請求",
+ "List of file requests." : "檔案請求清單",
+ "No file requests" : "沒有檔案請求",
+ "File requests you have created will show up here" : "您建立的檔案請求將會顯示在此處",
"Deleted shares" : "移除分享",
"List of shares you left." : "您已退出的分享的清單。",
"No deleted shares" : "沒有移除的分享",
@@ -273,49 +367,87 @@ OC.L10N.register(
"List of unapproved shares." : "未批准的分享清單。",
"No pending shares" : "沒有待處理的分享",
"Shares you have received but not approved will show up here" : "您收到但尚未核准的分享將會在此顯示",
+ "Error deleting the share: {errorMessage}" : "刪除分享時發生錯誤:{errorMessage}",
+ "Error deleting the share" : "刪除分享時發生錯誤",
+ "Error updating the share: {errorMessage}" : "更新分享出錯:{errorMessage}",
+ "Error updating the share" : "更新分享出錯",
+ "File \"{path}\" has been unshared" : "檔案 “{path}” 已取消共享",
+ "Folder \"{path}\" has been unshared" : "資料夾 “{path}” 已取消共享",
+ "Could not update share" : "無法更新分享",
+ "Share saved" : "已儲存分享",
+ "Share expiry date saved" : "已儲存分享過期日期",
+ "Share hide-download state saved" : "已儲存分享隱藏下載狀態",
+ "Share label saved" : "已保存分享標籤",
+ "Share note for recipient saved" : "已儲存給收件者的分享備註",
+ "Share password saved" : "已保存分享密碼",
+ "Share permissions saved" : "已儲存分享權限",
+ "To upload files to {folder}, you need to provide your name first." : "要上傳檔案至 {folder},您需要先提供您的姓名。",
+ "Upload files to {folder}" : "上傳檔案到 {folder}",
+ "Please confirm your name to upload files to {folder}" : "請確認您的姓名以上傳檔案至 {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} 與您分享了一個資料夾。",
+ "Names must not be empty." : "名稱不能為空。",
+ "Names must not start with a dot." : "名稱不能以「點」開始。",
+ "\"{char}\" is not allowed inside a name." : "名稱中不允許出現「{char}」。",
+ "\"{segment}\" is a reserved name and not allowed." : "「{segment}」是保留名稱,不允許用在名稱。",
+ "\"{extension}\" is not an allowed name." : "「{extension}」是不允許的名稱。",
+ "Names must not end with \"{extension}\"." : "名稱不能以「{extension}」結尾。",
+ "Invalid name." : "無效的名稱。",
+ "Shared by" : "分享自",
+ "Shared with" : "分享給",
+ "Password created successfully" : "成功創建了密碼",
+ "Error generating password from password policy" : "從密碼策略生成密碼時出錯",
+ "Shared with you and the group {group} by {owner}" : "由 {owner} 分享給您和 {group}群組",
+ "Shared with you and {circle} by {owner}" : "{owner} 分享給您和 {circle}",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} 分享給您和 {conversation} 對話",
+ "Shared with you in a conversation by {owner}" : "{owner} 在對話中分享給您",
+ "Share not found" : "找不到分享",
+ "Back to %s" : "返回 %s",
+ "Add to your Nextcloud" : "加入到您的 Nextcloud",
+ "Waiting…" : "正在等待……",
+ "error" : "錯誤",
+ "finished" : "已結束",
+ "This will stop your current uploads." : "這會終止目前任何的上傳。",
+ "Move or copy" : "移動或複製",
+ "You can upload into this folder" : "你可以上傳內容到此資料夾",
+ "Show list view" : "顯示清單視圖",
+ "Show grid view" : "顯示網格視圖",
+ "No compatible server found at {remote}" : "沒有在 {remote} 找到相容的伺服器",
+ "Invalid server URL" : "無效的伺服器 URL",
+ "Failed to add the public link to your Nextcloud" : "無法將公開連結加入您的 Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "您無權編輯不屬於您的鏈接共享",
+ "Download all files" : "下載所有檔案",
+ "Link copied to clipboard" : "已複製連結至剪貼板",
+ "_1 email address already added_::_{count} email addresses already added_" : ["已添加 {count} 個電郵地址"],
+ "_1 email address added_::_{count} email addresses added_" : ["添加了{count}個電郵地址"],
+ "Copy to clipboard" : "複製到剪貼板",
+ "Copy internal link to clipboard" : "將內部連結複製到剪貼板",
+ "Only works for people with access to this folder" : "只對可以存取此資料夾的人仕生效",
+ "Only works for people with access to this file" : "只對可以存取此檔案的人仕生效",
+ "Copy public link of \"{title}\" to clipboard" : "將 “{title}” 的公共連結複製到剪貼板",
+ "Search globally" : "全域搜尋",
+ "Search for share recipients" : "搜尋分享參與者",
+ "No recommendations. Start typing." : "沒有建議。開始輸入。",
+ "To upload files, you need to provide your name first." : "要上傳檔案,您需要先提供您的姓名。",
+ "Enter your name" : "輸入您的名稱",
+ "Submit name" : "遞交名字",
+ "Share with {userName}" : "與 {userName} 分享",
+ "Show sharing options" : "顯示分享選項",
"Share note" : "分享筆記",
"Upload files to %s" : "上傳檔案到 %s",
+ "%s shared a folder with you." : "%s 與您分享了一個資料夾。",
"Note" : "筆記",
"Select or drop files" : "選擇或拖曳檔案至此",
"Uploading files" : "檔案上傳中",
"Uploaded files:" : "已上傳的檔案:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "上傳檔案即表示您同意 %1$s服務條款%2$s。 ",
- "Add to your Nextcloud" : "加入到您的 Nextcloud",
- "Files and folders others share with you will show up here" : "與您分享的檔案與資料夾將會顯示在這裡",
- "Files and folders you share will show up here" : "您分享的檔案與資料夾將會顯示在這裡",
- "Files and folders you share by link will show up here" : "您分享的檔案與資料夾連結將會顯示在這裡",
- "Shares you deleted will show up here" : "您刪除的分享會在此顯示",
- "Shares you have received but not confirmed will show up here" : "您收到但尚未確認的分享將會在此顯示",
- "Shares will show up here" : "分享將會在此顯示",
- "Restore" : "回復",
- "Something happened. Unable to restore the share." : "出了些狀況,無法還原分享。",
- "Something happened. Unable to accept the share." : "好像有東西出錯了。無法接受分享。",
- "Something happened. Unable to reject the share." : "好像有東西出錯了。無法拒絕分享。",
- "No expiration date set" : "未指定到期日",
- "Please specify a valid user" : "請選擇一個有效的用戶",
- "Please specify a valid federated user ID" : "請指定一個有效的聯合用戶 ID",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "該應用程序使用戶可以在Nextcloud中共享檔案。如果啟用,管理員可以選擇可以共享文件的群組。然後,適用的用戶可以與Nextcloud中的其他用戶和群組共享檔案和資料夾。此外,如果管理員啟用了共享連結功能,則可以使用外部連結與Nextcloud之外的其他用戶分享檔案。管理員還可以實施密碼,有效期,並允許通過分享檔案進行伺服器到伺服器的分享以及從流動裝置進行分享。\n關閉此功能將刪除伺服器上所有分享收件人以及同步客戶端和流動應用程序上的分享了檔案和資料夾。Nextcloud文檔中提供了更多信息。",
- "Accept user and group shares by default" : "默認接受用戶和群組共享",
- "Read only" : "唯讀",
- "File drop (upload only)" : "拖曳檔案(僅供上傳)",
- "Upload" : "上傳",
- "Bundled permissions" : "權限包",
- "Only works for users with access to this folder" : "只對可以存取此資料夾的用戶生效",
- "Only works for users with access to this file" : "僅適用於有權存取此檔案的用戶",
- "Circle" : "社交圈子",
- "Update" : "更新",
- "Share with " : "分享給",
- "No other users with access found" : "找不到其他擁有存取權限的用戶",
- "No entries found in this folder" : "在此資料夾中沒有任何項目",
- "Name" : "名稱",
- "Share time" : "分享時間",
- "Sorry, this link does not seem to work anymore." : "抱歉,此連結已經失效",
- "Reasons might be:" : "可能的原因:",
- "the item was removed" : "項目已經移除",
- "the link expired" : "連結已過期",
- "sharing is disabled" : "分享功能已停用",
- "For more info, please ask the person who sent this link." : "請詢問告訴您此連結的人以瞭解更多",
- "Share with remote" : "與遠端分享",
- "Share with" : "分享與"
+ "Name" : "名字",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "使用此方法與組織內的個人或團隊分享檔案。如果收件者已經可以存取分享但找不到,您可以將內部分享連結傳送給他們,以方便存取。",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "使用此方法與組織外的個人或組織分享檔案。檔案與資料夾可以透過公開的分享連結與電子郵件地址來分享。您也可以使用其他 Nextcloud 帳號的聯邦雲端 ID,將檔案分享給託管在不同站台上的其他 Nextcloud 帳號。",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "不屬於內部或外部分享的分享。這可能是來自應用程式或其他來源的分享。",
+ "Share with accounts, teams, federated cloud id" : "與帳戶、團隊、聯邦雲端ID 分享",
+ "Share with accounts and teams" : "與帳號及團隊分享",
+ "Federated cloud ID" : "雲端聯邦 ID",
+ "Email, federated cloud id" : "電郵地址、聯邦雲端 ID",
+ "Filename must not be empty." : "檔案名稱不能為空。"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/zh_HK.json b/apps/files_sharing/l10n/zh_HK.json
index cb7ef1cbd5b..9e280ba8256 100644
--- a/apps/files_sharing/l10n/zh_HK.json
+++ b/apps/files_sharing/l10n/zh_HK.json
@@ -1,18 +1,4 @@
{ "translations": {
- "Waiting…" : "正在等待……",
- "error" : "錯誤",
- "finished" : "已結束",
- "This will stop your current uploads." : "這會終止目前任何的上傳。",
- "Move or copy" : "移動或複製",
- "Download" : "下載",
- "Delete" : "移除",
- "You can upload into this folder" : "你可以上傳內容到此資料夾",
- "Terms of service" : "服務條款",
- "Show list view" : "顯示清單視圖",
- "Show grid view" : "顯示網格視圖",
- "No compatible server found at {remote}" : "沒有在 {remote} 找到相容的伺服器",
- "Invalid server URL" : "無效的伺服器 URL",
- "Failed to add the public link to your Nextcloud" : "無法將公開連結加入您的 Nextcloud",
"File shares" : "檔案分享",
"Downloaded via public link" : "透過公用連結下載",
"Downloaded by {email}" : "{email} 已下載",
@@ -67,8 +53,9 @@
"Share for file {file} with {user} expired" : "與 {user} 分享的檔案 {file} 已過期",
"Share for file {file} expired" : "檔案 {file} 的分享已過期",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "email或公開連結分享的檔案與資料夾已被 <strong>下載</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "檔案已<strong>上傳</strong>到透過郵件或公共連結的共享資料夾",
"A file or folder was shared from <strong>another server</strong>" : "檔案或目錄已被 <strong>其他伺服器</strong> 分享",
- "Files" : "檔案",
+ "Sharing" : "分享",
"A file or folder has been <strong>shared</strong>" : "檔案或目錄已被 <strong>分享</strong>",
"Shared link" : "已分享的連結",
"Wrong share ID, share does not exist" : "錯誤的分享 ID ,分享不存在",
@@ -76,34 +63,46 @@
"Please specify a file or folder path" : "請指定檔案或資料夾路徑",
"Wrong path, file/folder does not exist" : "錯誤的路徑,該檔案或資料夾不存在",
"Could not create share" : "無法建立分享",
- "Invalid permissions" : "無效的權限",
- "Invalid date, date format must be YYYY-MM-DD" : "無效的日期,需為 YYYY-MM-DD 格式",
"Please specify a valid account to share with" : "請指定要分享的有效帳戶",
"Group sharing is disabled by the administrator" : "群組分享已被管理員停用",
"Please specify a valid group" : "請指定一個有效的群組",
"Public link sharing is disabled by the administrator" : "公開連結分享已被管理員停用",
- "Public upload disabled by the administrator" : "公開上傳已被管理員停用",
- "Public upload is only possible for publicly shared folders" : "只有公開分享的資料夾可以接受公開上傳",
+ "Please specify a valid email address" : "請指定一個有效的電郵地址",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "因為未啟用 Nextcloud Talk,因此透過 Nextcloud Talk 傳送密碼分享 %s 失敗",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "分享 %1$s 失敗,因為後端不允許來自 %2$s 類型的分享",
"Please specify a valid federated account ID" : "請指定有效的聯盟帳戶 ID",
"Please specify a valid federated group ID" : "請指定一個有效的聯合群組 ID",
- "You cannot share to a Circle if the app is not enabled" : "當應用未被啟用,你無法分享到circle。",
- "Please specify a valid circle" : "請指定一個有效的circle",
+ "You cannot share to a Team if the app is not enabled" : "當應用未被啟用,你無法分享到團隊。",
+ "Please specify a valid team" : "請選擇一個有效的團隊",
"Sharing %s failed because the back end does not support room shares" : "分享 %s 失敗,因為後端不支援聊天室分享",
"Sharing %s failed because the back end does not support ScienceMesh shares" : "分享 %s 失敗,因為後端不支援 ScienceMesh 分享",
"Unknown share type" : "分享類型不詳",
"Not a directory" : "這不是一個資料夾",
"Could not lock node" : "無法鎖定節點",
- "Could not lock path" : "無法鎖定路徑",
- "Wrong or no update parameter given" : "更新參數不正確或未提供",
+ "Public upload is only possible for publicly shared folders" : "只有公開分享的資料夾可以接受公開上傳",
"Share must at least have READ or CREATE permissions" : "分享必須至少具有 READ 或 CREATE 權限",
"Share must have READ permission if UPDATE or DELETE permission is set" : "如果設置了 UPDATE 或 DELETE 權限,則分享必須具有 READ 權限",
+ "Public upload disabled by the administrator" : "公開上傳已被管理員停用",
+ "Could not lock path" : "無法鎖定路徑",
+ "no sharing rights on this item" : "此項目無共享權限",
+ "You are not allowed to edit incoming shares" : "您無權編輯接收的共享項目",
+ "Wrong or no update parameter given" : "更新參數不正確或未提供",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "“通過 Nextcloud Talk 發送密碼”共享檔案或資料夾失敗,因為 Nextcloud Talk 未啟用。",
+ "Custom share link tokens have been disabled by the administrator" : "自訂分享連結權杖已被管理員停用",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "權杖必須至少包含 1 個字元,且只能包含字母、數字或連字符。",
+ "Invalid date. Format must be YYYY-MM-DD" : "無效的日期。需為 YYYY-MM-DD 格式",
+ "No sharing rights on this item" : "此項目無共享權限",
+ "Invalid share attributes provided: \"%s\"" : "提供的共享屬性無效:\"%s\"",
+ "You are not allowed to send mail notifications" : "您無權發送郵件通知",
+ "No mail notification configured for this share type" : "此共享類型未配置郵件通知。",
+ "Wrong password" : "密碼錯誤",
+ "Error while sending mail notification" : "發送郵件通知時發生錯誤",
+ "Failed to generate a unique token" : "產生獨一無二的權杖失敗",
+ "This share does not exist or is no longer available" : "此分享不存在或是不再提供",
"shared by %s" : "分享自 %s",
- "Download all files" : "下載所有檔案",
- "Direct link" : "直接連結",
+ "Download" : "下載",
"Add to your %s" : "新增至您的 %s",
+ "Direct link" : "直接連結",
"Share API is disabled" : "分享 API 已停用",
"File sharing" : "檔案分享",
"Share will expire tomorrow" : "分享將於明日到期",
@@ -112,70 +111,133 @@
"You received {share} to group {group} as a share by {user}" : "您收到了 {user} 分享的 {share} 到 {group} 群組",
"Accept" : "接受",
"Decline" : "婉拒",
- "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "該應用程序使用戶可以在Nextcloud中共享檔案。如果啟用,管理員可以選擇可以共享文件的群組。然後,適用的用戶可以與Nextcloud中的其他帳戶和群組共享檔案和資料夾。此外,如果管理員啟用了共享連結功能,則可以使用外部連結與Nextcloud之外的其他用戶分享檔案。管理員還可以實施密碼,有效期,並允許通過分享檔案進行伺服器到伺服器的分享以及從流動裝置進行分享。\n關閉此功能將刪除伺服器上所有分享收件人以及同步客戶端和流動應用程序上的分享了檔案和資料夾。Nextcloud文檔中提供了更多信息。",
- "Sharing" : "分享",
- "Accept shares from other accounts and groups by default" : "預設接受其他帳戶與群組的分享",
+ "Remember to upload the files to %s" : "記得將檔案上傳至 %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "我們謹提醒您,您尚未將任何檔案上傳到共用資料夾。",
+ "Open \"%s\"" : "開啟「%s」",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "該應用程序使用戶可以在Nextcloud中共享檔案。如果啟用,管理員可以選擇可以共享檔案的群組。然後,適用的用戶可以與Nextcloud中的其他帳戶和群組共享檔案和資料夾。此外,如果管理員啟用了共享連結功能,則可以使用外部連結與Nextcloud之外的其他用戶分享檔案。管理員還可以實施密碼,有效期,並允許通過分享檔案進行伺服器到伺服器的分享以及從流動裝置進行分享。\n關閉此功能將刪除伺服器上所有分享收件人以及同步客戶端和流動應用程序上的分享了檔案和資料夾。Nextcloud文檔中提供了更多信息。",
+ "People" : "人物",
+ "Filter accounts" : "過濾帳戶",
+ "The request will expire on {date} at midnight and will be password protected." : "請求將於 {date} 凌晨過期,並將受到密碼保護。",
+ "The request will expire on {date} at midnight." : "請求將於 {date} 凌晨過期。",
+ "The request will be password protected." : "請求將受到密碼保護。",
+ "When should the request expire?" : "請求應在何時過期?",
+ "Set a submission expiration date" : "設置提交屆滿日期",
+ "Expiration date" : "到期日",
+ "Select a date" : "選擇日期",
+ "Your administrator has enforced a {count} days expiration policy." : "您的管理員已強制執行 {count} 天過期政策。",
+ "What password should be used for the request?" : "請求應使用什麼密碼?",
+ "Set a password" : "設定密碼",
+ "Password" : "密碼",
+ "Enter a valid password" : "輸入有效的密碼",
+ "Generate a new password" : "生成新密碼",
+ "Your administrator has enforced a password protection." : "您的管理員已強制設置密碼保護。",
+ "Automatically copying failed, please copy the share link manually" : "自動複製失敗,請手動複製共享連結。",
+ "Link copied" : "連結已複製",
+ "Email already added" : "已加入電郵地址",
+ "Invalid email address" : "電郵地址無效",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["以下電子郵件地址無效:{emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["已添加 {count} 個電郵地址"],
+ "_{count} email address added_::_{count} email addresses added_" : ["添加了{count}個電郵地址"],
+ "You can now share the link below to allow people to upload files to your directory." : "您現在可以分享下面的連結,以允許其他人將檔案上傳到您的目錄中。",
+ "Share link" : "分享連結",
+ "Copy" : "複製",
+ "Send link via email" : "透過電郵寄送連結",
+ "Enter an email address or paste a list" : "請輸入電郵地址或粘貼一個清單",
+ "Remove email" : "移除電郵地址",
+ "Select a destination" : "選擇目的地",
+ "Select" : "選擇",
+ "What are you requesting?" : "您正在請求什麼?",
+ "Request subject" : "請求主題",
+ "Birthday party photos, History assignment…" : "生日派對照片、歷史作業 …",
+ "Where should these files go?" : "這些檔案應該放在哪裡?",
+ "Upload destination" : "上傳目標地",
+ "Revert to default" : "恢復默認值",
+ "The uploaded files are visible only to you unless you choose to share them." : "上傳的檔案僅對您可見,除非您選擇分享它們。",
+ "Add a note" : "添加筆記",
+ "Note for recipient" : "給收件人的備註",
+ "Add a note to help people understand what you are requesting." : "添加備註以幫助他人了解您的請求。",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "您可以新增連結、日期或任何其他訊息,以幫助收件人了解您的請求。",
+ "Close" : "關閉",
+ "_Send email and close_::_Send {count} emails and close_" : ["發送 {count} 封電子郵件並關閉"],
+ "Please select a folder, you cannot share the root directory." : "請選擇一個資料夾,您不能共享根目錄。",
+ "File request created" : "創建了檔案請求",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["檔案請求已創建,{count}封電子郵件已發送"],
+ "Error creating the share: {errorMessage}" : "創建分享出錯:{errorMessage}",
+ "Error creating the share" : "創建分享出錯",
+ "Error sending emails: {errorMessage}" : "發送電子郵件時出錯:{errorMessage}",
+ "Error sending emails" : "發送電子郵件時出錯",
+ "Create a file request" : "創建檔案請求",
+ "Collect files from others even if they do not have an account." : "即使對方沒有帳戶,也可以收集檔案。",
+ "To ensure you can receive files, verify you have enough storage available." : "為了確保您能接收檔案,請確認您有足夠的可用儲存空間。",
+ "File request" : "檔案請求",
+ "Previous step" : "上一步",
+ "Cancel" : "取消",
+ "Cancel the file request creation" : "取消檔案請求創建",
+ "Close without sending emails" : "關閉而不發送電子郵件",
+ "Continue" : "繼續",
"Error while toggling options" : "切換選項時出錯",
- "Set default folder for accepted shares" : "為已接受的分享選擇一個默認資料夾",
- "Reset" : "重設",
- "Reset folder to system default" : "將資料夾重置為系統默認值",
+ "Accept shares from other accounts and groups by default" : "預設接受其他帳戶與群組的分享",
"Choose a default folder for accepted shares" : "為已接受的分享選擇一個默認資料夾",
"Invalid path selected" : "所選的路徑無效",
"Unknown error" : "錯誤不詳",
- "Open Sharing Details" : "打開分享細節",
+ "Set default folder for accepted shares" : "為已接受的分享選擇一個默認資料夾",
+ "Reset" : "重設",
+ "Reset folder to system default" : "將資料夾重置為系統默認值",
+ "Share expiration: {date}" : "分享到期日:{date}",
+ "Share Expiration" : "共享有效期‌",
"group" : "群組",
"conversation" : "對話",
"remote" : "遠端",
"remote group" : "遠端群組",
"guest" : "訪客",
+ "by {initiator}" : "由 {initiator}",
"Shared with the group {user} by {owner}" : "由 {owner} 分享予群組 {user}",
"Shared with the conversation {user} by {owner}" : "{owner}與{user}共享",
"Shared with {user} by {owner}" : "{user}與{owner}共享",
+ "Open Sharing Details" : "打開分享細節",
"Added by {initiator}" : "由{initiator}添加",
"Via “{folder}”" : "透過 “{folder}”",
"Unshare" : "撤回分享",
- "Internal link" : "內部連結",
"Cannot copy, please copy the link manually" : "無法複製,請手動複製連結",
- "Copy internal link to clipboard" : "將內部連結複製到剪貼板",
- "Only works for people with access to this folder" : "只對可以存取此資料夾的人仕生效",
- "Only works for people with access to this file" : "只對可以存取此檔案的人仕生效",
- "Link copied" : "連結已複製",
- "Please enter the following required information before creating the share" : "創建分享之前,請輸入以下必填信息",
- "Password protection (enforced)" : "密碼保護(強制)",
- "Password protection" : "密碼保護",
- "Enter a password" : "輸入密碼",
- "Expiration date (enforced)" : "屆滿日期(強制)",
- "Enter a date" : "輸入日期",
- "Create share" : "創建分享",
- "Cancel" : "取消",
- "Customize link" : "自訂連結",
- "Generate QR code" : "生成 QR Code",
- "Add another link" : "加入另一個連結",
- "Create a new share link" : "建立新分享連結",
+ "Copy internal link" : "複製內部連結",
+ "For people who already have access" : "對於已有存取權限的人",
+ "Internal link" : "內部連結",
"{shareWith} by {initiator}" : "{initiator} 分享了 {shareWith}",
"Shared via link by {initiator}" : "由 {initiator} 透過連結分享",
+ "File request ({label})" : "檔案請求 ({label})",
"Mail share ({label})" : "分享郵件({label})",
"Share link ({label})" : "分享連結({label})",
+ "Mail share" : "郵件分享",
"Share link ({index})" : "分享連結({index})",
- "Share link" : "分享連結",
+ "Create public link" : "建立公共連結",
"Actions for \"{title}\"" : "“{title}” 的操作",
- "Copy public link of \"{title}\" to clipboard" : "將 “{title}” 的公共連結複製到剪貼板",
+ "Copy public link of \"{title}\"" : "複製「{title}」的公開連結",
"Error, please enter proper password and/or expiration date" : "錯誤,請輸入正確的密碼和/或有效期",
"Link share created" : "創建了連結分享",
"Error while creating the share" : "創建分享出錯",
+ "Please enter the following required information before creating the share" : "創建分享之前,請輸入以下必填信息",
+ "Password protection (enforced)" : "密碼保護(強制)",
+ "Password protection" : "密碼保護",
+ "Enter a password" : "輸入密碼",
+ "Enable link expiration (enforced)" : "啟用連結過期(已實施)",
+ "Enable link expiration" : "啟用連結過期",
+ "Enter expiration date (enforced)" : "輸入屆滿日期(已實施)",
+ "Enter expiration date" : "輸入屆滿日期",
+ "Create share" : "創建分享",
+ "Customize link" : "自訂連結",
+ "Generate QR code" : "生成 QR Code",
+ "Add another link" : "加入另一個連結",
+ "Create a new share link" : "建立新分享連結",
"Quick share options, the current selected is \"{selectedOption}\"" : "快速分享選項,目前已選擇 \"{selectedOption}\"",
"View only" : "僅檢視",
"Can edit" : "可編輯",
- "File drop" : "檔案拖放",
"Custom permissions" : "自訂權限",
- "Search for share recipients" : "搜尋分享參與者",
- "No recommendations. Start typing." : "沒有建議。開始輸入。",
"Resharing is not allowed" : "不允許重新分享",
"Name or email …" : "名字或電郵地址",
"Name, email, or Federated Cloud ID …" : "名字,電郵地址或 Federated Cloud ID …",
"Searching …" : "搜尋中 …",
"No elements found." : "找不到元素。",
- "Search globally" : "全域搜尋",
+ "Search everywhere" : "到處搜尋",
"Guest" : "訪客",
"Group" : "群組",
"Email" : "電郵地址",
@@ -184,70 +246,99 @@
"Deck board" : "Deck 面板",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "在 {server} 上",
+ "Enter external recipients" : "輸入外部收件人",
+ "Search for internal recipients" : "搜尋內部收件人",
+ "Note from" : "備註來自",
+ "Note:" : "備註:",
+ "File drop" : "檔案拖放",
+ "Upload files to {foldername}." : "上傳檔案至 {foldername}。",
+ "By uploading files, you agree to the terms of service." : "上傳檔案即表示您同意服務條款。",
+ "Successfully uploaded files" : "檔案上傳成功",
+ "View terms of service" : "檢視服務條款",
+ "Terms of service" : "服務條款",
+ "Share with {user}" : "與 {user} 分享",
+ "Share with email {email}" : "與電郵地址 {email} 分享",
+ "Share with group" : "與群組分享",
+ "Share in conversation" : "在對話中分享",
+ "Share with {user} on remote server {server}" : "與遠端伺服器 {server} 上的 {user} 分享",
+ "Share with remote group" : "與遠端群組分享",
+ "Share with guest" : "與訪客分享",
+ "Update share" : "更新分享",
+ "Save share" : "保存分享",
+ "Read" : "讀取",
+ "Create" : "創建",
+ "Edit" : "編輯",
+ "Share" : "分享",
+ "Delete" : "移除",
+ "Password field cannot be empty" : "密碼欄位不可為空白",
+ "Replace current password" : "取代目前密碼",
+ "Failed to generate a new token" : "產生新權杖失敗",
"Allow upload and editing" : "允許上傳及編輯",
"Allow editing" : "允許編輯",
"Upload only" : "僅上傳",
"Advanced settings" : "進階設定",
"Share label" : "分享標籤",
+ "Share link token" : "分享連結權杖",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "將公開分享連結權杖設定為容易記住的權杖,或產生新的權杖。不建議對包含敏感資訊的分享使用可猜測的權杖。",
+ "Generating…" : "正在產生 …",
+ "Generate new token" : "産生新權杖",
"Set password" : "設置密碼",
- "Password" : "密碼",
"Password expires {passwordExpirationTime}" : "密碼於 {passwordExpirationTime} 到期",
"Password expired" : "密碼已過期",
"Video verification" : "視像驗證",
+ "Expiration date (enforced)" : "屆滿日期(強制)",
"Set expiration date" : "設定到期日",
- "Expiration date" : "到期日",
"Hide download" : "隱藏下載",
- "Allow download" : "允許下載",
+ "Allow download and sync" : "允許下載及同步",
"Note to recipient" : "給接收者的訊息",
"Enter a note for the share recipient" : "輸入分享收件人的註釋",
- "Read" : "讀取",
- "Create" : "創建",
- "Edit" : "編輯",
- "Share" : "分享",
+ "Show files in grid view" : "以網格視圖顯示檔案",
"Delete share" : "刪除分享",
- "Share with {userName}" : "與 {userName} 分享",
- "Share with email {email}" : "與電郵地址 {email} 分享",
- "Share with group" : "與群組分享",
- "Share in conversation" : "在對話中分享",
- "Share with {user} on remote server {server}" : "與遠端伺服器 {server} 上的 {user} 分享",
- "Share with remote group" : "與遠端群組分享",
- "Share with guest" : "與訪客分享",
- "Update share" : "更新分享",
- "Save share" : "保存分享",
"Others with access" : "其他擁有存取權限的人",
"No other accounts with access found" : "找不到其他擁有存取權限的帳戶",
"Toggle list of others with access to this directory" : "切換有權存取此目錄的其他人的清單",
"Toggle list of others with access to this file" : "切換有權存取此檔案的其他人的清單",
"Unable to fetch inherited shares" : "無法獲取繼承的分享",
+ "Link shares" : "連結分享",
+ "Shares" : "分享",
+ "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "在您的組織內部分享檔案。已經可以檢視檔案的收件者也可以使用此連結以方便存取。",
+ "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "透過公開連結與電子郵件地址與組織外的其他人分享檔案。您也可以使用其他站台上的聯邦雲端 ID 將檔案分享至 Nextcloud 帳號。",
+ "Shares from apps or other sources which are not included in internal or external shares." : "來自應用程式或其他來源的分享,不包括在內部或外部分享中。",
+ "Type names, teams, federated cloud IDs" : "輸入名稱、團隊、聯邦雲端 ID",
+ "Type names or teams" : "輸入名稱或團隊",
+ "Type a federated cloud ID" : "輸入聯邦雲端 ID",
+ "Type an email" : "輸入電郵地址",
+ "Type an email or federated cloud ID" : "輸入電郵地址或聯邦雲端 ID",
"Unable to load the shares list" : "無法載入分享清單",
"Expires {relativetime}" : "有效期至 {relativetime}",
"this share just expired." : "此分享剛過期。",
"Shared with you by {owner}" : "{owner} 已經和您分享",
+ "Internal shares" : "內部分享",
+ "Internal shares explanation" : "內部分享說明",
+ "External shares" : "外部分享",
+ "External shares explanation" : "外部分享說明",
+ "Additional shares" : "額外分享",
+ "Additional shares explanation" : "額外分享說明",
+ "Link to a file" : "連結到一個檔案",
"_Accept share_::_Accept shares_" : ["接受分享"],
"Open in Files" : "在「檔案」應用程式中打開",
"_Reject share_::_Reject shares_" : ["拒絕分享"],
"_Restore share_::_Restore shares_" : ["還原分享"],
"Shared" : "已分享",
- "Shared multiple times with different people" : "與不同的人多次分享",
"Shared by {ownerDisplayName}" : "由 {ownerDisplayName} 分享",
- "Show sharing options" : "顯示分享選項",
- "Link to a file" : "連結到一個檔案",
- "Error creating the share: {errorMessage}" : "創建分享出錯:{errorMessage}",
- "Error creating the share" : "創建分享出錯",
- "Error updating the share: {errorMessage}" : "更新分享出錯:{errorMessage}",
- "Error updating the share" : "更新分享出錯",
- "File \"{path}\" has been unshared" : "檔案 “{path}” 已取消共享",
- "Folder \"{path}\" has been unshared" : "資料夾 “{path}” 已取消共享",
- "Share {propertyName} saved" : "分享 {propertyName} 已保存",
- "Shared by" : "分享自",
- "Shared with" : "分享給",
- "Password created successfully" : "成功創建了密碼",
- "Error generating password from password policy" : "從密碼策略生成密碼時出錯",
- "Shared with you and the group {group} by {owner}" : "由 {owner} 分享給您和 {group}群組",
- "Shared with you and {circle} by {owner}" : "{owner} 分享給您和 {circle}",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} 分享給您和 {conversation} 對話",
- "Shared with you in a conversation by {owner}" : "{owner} 在對話中分享給您",
- "Shares" : "分享",
+ "Shared multiple times with different people" : "與不同的人多次分享",
+ "Sharing options" : "分享選項",
+ "Shared with others" : "與其他人分享",
+ "Create file request" : "創建檔案請求",
+ "Upload files to {foldername}" : "上傳檔案至 {foldername}",
+ "Public file share" : "公共檔案分享",
+ "Publicly shared file." : "公開分享的檔案。",
+ "No file" : "無檔案",
+ "The file shared with you will show up here" : "其它人與您分享的檔案將會顯示在此處",
+ "Public share" : "公共分享",
+ "Publicly shared files." : "公開分享的檔案。",
+ "No files" : "沒有檔案",
+ "Files and folders shared with you will show up here" : "其它人與您分享的檔案與資料夾將會顯示在此處",
"Overview of shared files." : "已分享檔案的概覽。",
"No shares" : "無分享",
"Files and folders you shared or have been shared with you will show up here" : "您分享或已與您分享的檔案與資料夾將顯示在此處",
@@ -255,7 +346,6 @@
"List of files that are shared with you." : "與您分享的檔案清單。",
"Nothing shared with you yet" : "目前沒有任何與您分享的內容",
"Files and folders others shared with you will show up here" : "其它人與您分享的檔案與資料夾將會顯示在此處",
- "Shared with others" : "與其他人分享",
"List of files that you shared with others." : "您與其他人分享的檔案清單。",
"Nothing shared yet" : "目前沒有分享內容",
"Files and folders you shared will show up here" : "您分享的檔案與資料夾將會顯示在此處",
@@ -263,6 +353,10 @@
"List of files that are shared by link." : "透過連結分享的檔案清單。",
"No shared links" : "沒有已分享的連結",
"Files and folders you shared by link will show up here" : "您分享的檔案與資料夾連結將會顯示在此處",
+ "File requests" : "檔案請求",
+ "List of file requests." : "檔案請求清單",
+ "No file requests" : "沒有檔案請求",
+ "File requests you have created will show up here" : "您建立的檔案請求將會顯示在此處",
"Deleted shares" : "移除分享",
"List of shares you left." : "您已退出的分享的清單。",
"No deleted shares" : "沒有移除的分享",
@@ -271,49 +365,87 @@
"List of unapproved shares." : "未批准的分享清單。",
"No pending shares" : "沒有待處理的分享",
"Shares you have received but not approved will show up here" : "您收到但尚未核准的分享將會在此顯示",
+ "Error deleting the share: {errorMessage}" : "刪除分享時發生錯誤:{errorMessage}",
+ "Error deleting the share" : "刪除分享時發生錯誤",
+ "Error updating the share: {errorMessage}" : "更新分享出錯:{errorMessage}",
+ "Error updating the share" : "更新分享出錯",
+ "File \"{path}\" has been unshared" : "檔案 “{path}” 已取消共享",
+ "Folder \"{path}\" has been unshared" : "資料夾 “{path}” 已取消共享",
+ "Could not update share" : "無法更新分享",
+ "Share saved" : "已儲存分享",
+ "Share expiry date saved" : "已儲存分享過期日期",
+ "Share hide-download state saved" : "已儲存分享隱藏下載狀態",
+ "Share label saved" : "已保存分享標籤",
+ "Share note for recipient saved" : "已儲存給收件者的分享備註",
+ "Share password saved" : "已保存分享密碼",
+ "Share permissions saved" : "已儲存分享權限",
+ "To upload files to {folder}, you need to provide your name first." : "要上傳檔案至 {folder},您需要先提供您的姓名。",
+ "Upload files to {folder}" : "上傳檔案到 {folder}",
+ "Please confirm your name to upload files to {folder}" : "請確認您的姓名以上傳檔案至 {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} 與您分享了一個資料夾。",
+ "Names must not be empty." : "名稱不能為空。",
+ "Names must not start with a dot." : "名稱不能以「點」開始。",
+ "\"{char}\" is not allowed inside a name." : "名稱中不允許出現「{char}」。",
+ "\"{segment}\" is a reserved name and not allowed." : "「{segment}」是保留名稱,不允許用在名稱。",
+ "\"{extension}\" is not an allowed name." : "「{extension}」是不允許的名稱。",
+ "Names must not end with \"{extension}\"." : "名稱不能以「{extension}」結尾。",
+ "Invalid name." : "無效的名稱。",
+ "Shared by" : "分享自",
+ "Shared with" : "分享給",
+ "Password created successfully" : "成功創建了密碼",
+ "Error generating password from password policy" : "從密碼策略生成密碼時出錯",
+ "Shared with you and the group {group} by {owner}" : "由 {owner} 分享給您和 {group}群組",
+ "Shared with you and {circle} by {owner}" : "{owner} 分享給您和 {circle}",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} 分享給您和 {conversation} 對話",
+ "Shared with you in a conversation by {owner}" : "{owner} 在對話中分享給您",
+ "Share not found" : "找不到分享",
+ "Back to %s" : "返回 %s",
+ "Add to your Nextcloud" : "加入到您的 Nextcloud",
+ "Waiting…" : "正在等待……",
+ "error" : "錯誤",
+ "finished" : "已結束",
+ "This will stop your current uploads." : "這會終止目前任何的上傳。",
+ "Move or copy" : "移動或複製",
+ "You can upload into this folder" : "你可以上傳內容到此資料夾",
+ "Show list view" : "顯示清單視圖",
+ "Show grid view" : "顯示網格視圖",
+ "No compatible server found at {remote}" : "沒有在 {remote} 找到相容的伺服器",
+ "Invalid server URL" : "無效的伺服器 URL",
+ "Failed to add the public link to your Nextcloud" : "無法將公開連結加入您的 Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "您無權編輯不屬於您的鏈接共享",
+ "Download all files" : "下載所有檔案",
+ "Link copied to clipboard" : "已複製連結至剪貼板",
+ "_1 email address already added_::_{count} email addresses already added_" : ["已添加 {count} 個電郵地址"],
+ "_1 email address added_::_{count} email addresses added_" : ["添加了{count}個電郵地址"],
+ "Copy to clipboard" : "複製到剪貼板",
+ "Copy internal link to clipboard" : "將內部連結複製到剪貼板",
+ "Only works for people with access to this folder" : "只對可以存取此資料夾的人仕生效",
+ "Only works for people with access to this file" : "只對可以存取此檔案的人仕生效",
+ "Copy public link of \"{title}\" to clipboard" : "將 “{title}” 的公共連結複製到剪貼板",
+ "Search globally" : "全域搜尋",
+ "Search for share recipients" : "搜尋分享參與者",
+ "No recommendations. Start typing." : "沒有建議。開始輸入。",
+ "To upload files, you need to provide your name first." : "要上傳檔案,您需要先提供您的姓名。",
+ "Enter your name" : "輸入您的名稱",
+ "Submit name" : "遞交名字",
+ "Share with {userName}" : "與 {userName} 分享",
+ "Show sharing options" : "顯示分享選項",
"Share note" : "分享筆記",
"Upload files to %s" : "上傳檔案到 %s",
+ "%s shared a folder with you." : "%s 與您分享了一個資料夾。",
"Note" : "筆記",
"Select or drop files" : "選擇或拖曳檔案至此",
"Uploading files" : "檔案上傳中",
"Uploaded files:" : "已上傳的檔案:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "上傳檔案即表示您同意 %1$s服務條款%2$s。 ",
- "Add to your Nextcloud" : "加入到您的 Nextcloud",
- "Files and folders others share with you will show up here" : "與您分享的檔案與資料夾將會顯示在這裡",
- "Files and folders you share will show up here" : "您分享的檔案與資料夾將會顯示在這裡",
- "Files and folders you share by link will show up here" : "您分享的檔案與資料夾連結將會顯示在這裡",
- "Shares you deleted will show up here" : "您刪除的分享會在此顯示",
- "Shares you have received but not confirmed will show up here" : "您收到但尚未確認的分享將會在此顯示",
- "Shares will show up here" : "分享將會在此顯示",
- "Restore" : "回復",
- "Something happened. Unable to restore the share." : "出了些狀況,無法還原分享。",
- "Something happened. Unable to accept the share." : "好像有東西出錯了。無法接受分享。",
- "Something happened. Unable to reject the share." : "好像有東西出錯了。無法拒絕分享。",
- "No expiration date set" : "未指定到期日",
- "Please specify a valid user" : "請選擇一個有效的用戶",
- "Please specify a valid federated user ID" : "請指定一個有效的聯合用戶 ID",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "該應用程序使用戶可以在Nextcloud中共享檔案。如果啟用,管理員可以選擇可以共享文件的群組。然後,適用的用戶可以與Nextcloud中的其他用戶和群組共享檔案和資料夾。此外,如果管理員啟用了共享連結功能,則可以使用外部連結與Nextcloud之外的其他用戶分享檔案。管理員還可以實施密碼,有效期,並允許通過分享檔案進行伺服器到伺服器的分享以及從流動裝置進行分享。\n關閉此功能將刪除伺服器上所有分享收件人以及同步客戶端和流動應用程序上的分享了檔案和資料夾。Nextcloud文檔中提供了更多信息。",
- "Accept user and group shares by default" : "默認接受用戶和群組共享",
- "Read only" : "唯讀",
- "File drop (upload only)" : "拖曳檔案(僅供上傳)",
- "Upload" : "上傳",
- "Bundled permissions" : "權限包",
- "Only works for users with access to this folder" : "只對可以存取此資料夾的用戶生效",
- "Only works for users with access to this file" : "僅適用於有權存取此檔案的用戶",
- "Circle" : "社交圈子",
- "Update" : "更新",
- "Share with " : "分享給",
- "No other users with access found" : "找不到其他擁有存取權限的用戶",
- "No entries found in this folder" : "在此資料夾中沒有任何項目",
- "Name" : "名稱",
- "Share time" : "分享時間",
- "Sorry, this link does not seem to work anymore." : "抱歉,此連結已經失效",
- "Reasons might be:" : "可能的原因:",
- "the item was removed" : "項目已經移除",
- "the link expired" : "連結已過期",
- "sharing is disabled" : "分享功能已停用",
- "For more info, please ask the person who sent this link." : "請詢問告訴您此連結的人以瞭解更多",
- "Share with remote" : "與遠端分享",
- "Share with" : "分享與"
+ "Name" : "名字",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "使用此方法與組織內的個人或團隊分享檔案。如果收件者已經可以存取分享但找不到,您可以將內部分享連結傳送給他們,以方便存取。",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "使用此方法與組織外的個人或組織分享檔案。檔案與資料夾可以透過公開的分享連結與電子郵件地址來分享。您也可以使用其他 Nextcloud 帳號的聯邦雲端 ID,將檔案分享給託管在不同站台上的其他 Nextcloud 帳號。",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "不屬於內部或外部分享的分享。這可能是來自應用程式或其他來源的分享。",
+ "Share with accounts, teams, federated cloud id" : "與帳戶、團隊、聯邦雲端ID 分享",
+ "Share with accounts and teams" : "與帳號及團隊分享",
+ "Federated cloud ID" : "雲端聯邦 ID",
+ "Email, federated cloud id" : "電郵地址、聯邦雲端 ID",
+ "Filename must not be empty." : "檔案名稱不能為空。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/zh_TW.js b/apps/files_sharing/l10n/zh_TW.js
index f73e9f8163d..a4490796ddf 100644
--- a/apps/files_sharing/l10n/zh_TW.js
+++ b/apps/files_sharing/l10n/zh_TW.js
@@ -1,183 +1,245 @@
OC.L10N.register(
"files_sharing",
{
- "Waiting…" : "正在等待……",
- "error" : "錯誤",
- "finished" : "已結束",
- "This will stop your current uploads." : "這會停止您目前的上傳。",
- "Move or copy" : "移動或複製",
- "Download" : "下載",
- "Delete" : "刪除",
- "You can upload into this folder" : "您可以上傳到此資料夾",
- "Terms of service" : "服務條款",
- "Show list view" : "顯示清單檢視",
- "Show grid view" : "顯示網格檢視",
- "No compatible server found at {remote}" : "在 {remote} 找不到相容的伺服器",
- "Invalid server URL" : "無效的伺服器 URL",
- "Failed to add the public link to your Nextcloud" : "無法將公開連結新增到您的 Nextcloud",
"File shares" : "檔案分享",
"Downloaded via public link" : "透過公開連結下載",
- "Downloaded by {email}" : "{email} 已下載",
- "{file} downloaded via public link" : "{file} 已透過公開連結下載",
- "{email} downloaded {file}" : "{email} 已下載 {file}",
- "Shared with group {group}" : "與群組 {group} 分享",
- "Removed share for group {group}" : "移除與群組 {group} 分享",
- "{actor} shared with group {group}" : "{actor} 分享給群組 {group}",
+ "Downloaded by {email}" : "經由 {email} 下載",
+ "{file} downloaded via public link" : "透過公開連結下載了 {file}",
+ "{email} downloaded {file}" : "{email} 下載了 {file}",
+ "Shared with group {group}" : "已與群組 {group} 分享",
+ "Removed share for group {group}" : "移除了與群組 {group} 的分享",
+ "{actor} shared with group {group}" : "{actor} 已與群組 {group} 分享",
"{actor} removed share for group {group}" : "{actor} 移除了與群組 {group} 的分享",
"Share for group {group} expired" : "群組 {group} 的分享已過期",
- "You shared {file} with group {group}" : "你分享了 {file} 給群組 {group}",
- "You removed group {group} from {file}" : "你將群組 {group} 從 {file} 移除",
- "{actor} shared {file} with group {group}" : "{actor} 分享 {file} 給群組 {group}",
- "{actor} removed group {group} from {file}" : "{actor} 將群組 {group} 從 {file} 移除",
+ "You shared {file} with group {group}" : "您已與 {file} 群組 {group} 分享",
+ "You removed group {group} from {file}" : "您已將群組 {group} 從 {file} 移除",
+ "{actor} shared {file} with group {group}" : "{actor} 已將 {file} 與群組 {group} 分享",
+ "{actor} removed group {group} from {file}" : "{actor} 已將群組 {group} 從 {file} 移除",
"Share for file {file} with group {group} expired" : "與群組 {group} 分享的檔案 {file} 已過期",
- "Shared as public link" : "以公開連結分享",
+ "Shared as public link" : "已公開連結分享",
"Removed public link" : "已移除公開連結",
"Public link expired" : "公開連結已過期",
- "{actor} shared as public link" : "{actor} 透過公開連結分享",
- "{actor} removed public link" : "{actor} 移除公開連結分享",
+ "{actor} shared as public link" : "{actor} 已透過公開連結分享",
+ "{actor} removed public link" : "{actor} 移除了公開連結分享",
"Public link of {actor} expired" : "{actor} 的公開連結過期了",
- "You shared {file} as public link" : "您透過公開連結分享 {file}",
+ "You shared {file} as public link" : "您已透過公開連結分享 {file}",
"You removed public link for {file}" : "您移除了 {file} 的公開分享連結",
"Public link expired for {file}" : "{file} 的公開連結已過期",
- "{actor} shared {file} as public link" : "{actor} 透過公開連結分享 {file}",
+ "{actor} shared {file} as public link" : "{actor} 已透過公開連結分享 {file}",
"{actor} removed public link for {file}" : "{actor} 移除了 {file} 的公開連結分享",
"Public link of {actor} for {file} expired" : "{actor} 公開分享 {file} 的連結過期了",
"{user} accepted the remote share" : "{user} 接受了遠端分享",
"{user} declined the remote share" : "{user} 拒絕了遠端分享",
- "You received a new remote share {file} from {user}" : "您收到了一個遠端分享 {file} 來自於 {user}",
+ "You received a new remote share {file} from {user}" : "您收到了來自 {user} 的遠端分享 {file}",
"{user} accepted the remote share of {file}" : "{user} 接受了檔案 {file} 的遠端分享",
"{user} declined the remote share of {file}" : "{user} 拒絕了檔案 {file} 的遠端分享",
- "{user} unshared {file} from you" : "{user} 取消與你分享檔案 {file}",
- "Shared with {user}" : "與 {user} 分享",
- "Removed share for {user}" : "移除對 {user} 的分享",
+ "{user} unshared {file} from you" : "{user} 取消了與您分享的檔案 {file}",
+ "Shared with {user}" : "已與 {user} 分享",
+ "Removed share for {user}" : "移除了與 {user} 的分享",
"You removed yourself" : "您移除了自己",
"{actor} removed themselves" : "{actor} 已將自己移除",
- "{actor} shared with {user}" : "{actor} 分享給 {user}",
- "{actor} removed share for {user}" : "{actor} 移除了對 {user} 的分享",
+ "{actor} shared with {user}" : "{actor} 已與 {user} 分享",
+ "{actor} removed share for {user}" : "{actor} 移除了與 {user} 的分享",
"Shared by {actor}" : "由 {actor} 分享",
"{actor} removed share" : "{actor} 移除了分享",
"Share for {user} expired" : "{user} 的分享已過期",
"Share expired" : "分享已過期",
- "You shared {file} with {user}" : "你與 {user} 分享了 {file}",
- "You removed {user} from {file}" : "你將 {user} 從 {file} 移除",
+ "You shared {file} with {user}" : "您與 {user} 分享了 {file}",
+ "You removed {user} from {file}" : "您已將 {user} 從 {file} 移除",
"You removed yourself from {file}" : "您已將自己從 {file} 移除",
"{actor} removed themselves from {file}" : "{actor} 從 {file} 移除了自己",
- "{actor} shared {file} with {user}" : "{actor} 分享了 {file} 給 {user}",
- "{actor} removed {user} from {file}" : "{actor} 移除 {user} 從 {file}",
- "{actor} shared {file} with you" : "{actor} 與你分享了 {file}",
- "{actor} removed you from the share named {file}" : "{actor} 將您從名為 {file} 的分享中移除了",
+ "{actor} shared {file} with {user}" : "{actor} 與 {user} 分享了 {file}",
+ "{actor} removed {user} from {file}" : "{actor} 從 {file} 移除了 {user}",
+ "{actor} shared {file} with you" : "{actor} 與您分享了 {file}",
+ "{actor} removed you from the share named {file}" : "{actor} 已將您從名為 {file} 的分享中移除",
"Share for file {file} with {user} expired" : "與 {user} 分享的檔案 {file} 已過期",
"Share for file {file} expired" : "檔案 {file} 的分享已過期",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "透過電子郵件或公開連結分享的檔案或資料夾<strong>已被下載</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "檔案或資料夾是從<strong>其他伺服器</strong>分享的",
- "Files" : "檔案",
- "A file or folder has been <strong>shared</strong>" : "檔案或資料夾已被<strong>分享</strong>",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "透過電子郵件或公開連結分享的檔案或資料夾<strong>已下載</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "檔案已<strong>上傳</strong>至透過電子郵件或公開連結分享的資料夾",
+ "A file or folder was shared from <strong>another server</strong>" : "<strong>其他伺服器</strong>分享的檔案或資料夾",
+ "Sharing" : "分享",
+ "A file or folder has been <strong>shared</strong>" : "檔案或資料夾已<strong>分享</strong>",
"Shared link" : "已分享的連結",
"Wrong share ID, share does not exist" : "錯誤的分享 ID,分享不存在",
"Could not delete share" : "無法刪除分享",
"Please specify a file or folder path" : "請指定檔案或資料夾路徑",
"Wrong path, file/folder does not exist" : "錯誤的路徑,該檔案或資料夾不存在",
"Could not create share" : "無法建立分享",
- "Invalid permissions" : "無效的權限",
- "Invalid date, date format must be YYYY-MM-DD" : "無效的日期,需為 YYYY-MM-DD 格式",
"Please specify a valid account to share with" : "請指定要分享的有效帳號",
"Group sharing is disabled by the administrator" : "群組分享已被管理員停用",
"Please specify a valid group" : "請指定有效的群組",
"Public link sharing is disabled by the administrator" : "公開連結分享已被管理員停用",
- "Public upload disabled by the administrator" : "公開上傳已被管理員停用",
- "Public upload is only possible for publicly shared folders" : "只有公開分享的資料夾可以接受公開上傳",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "因為未啟用 Nextcloud Talk,因此透過 Nextcloud Talk 傳送密碼分享 %s 失敗",
- "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "分享 %1$s 失敗,因為後端不允許來自 %2$s 類型的分享",
+ "Please specify a valid email address" : "請指定有效的電子郵件地址",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "未啟用 Nextcloud Talk,因此透過 Nextcloud Talk 傳送密碼分享 %s 失敗",
+ "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "後端不允許 %2$s 類型的分享,因此 %1$s 分享失敗",
"Please specify a valid federated account ID" : "請指定有效的聯盟帳號 ID",
- "Please specify a valid federated group ID" : "請指定有效的聯盟群組 ID",
- "You cannot share to a Circle if the app is not enabled" : "因為應用程式未啟用,所以您無法分享至小圈圈",
- "Please specify a valid circle" : "請指定有效的小圈圈",
- "Sharing %s failed because the back end does not support room shares" : "分享 %s 失敗,因為後端不支援聊天室分享",
- "Sharing %s failed because the back end does not support ScienceMesh shares" : "分享 %s 失敗,因為後端不支援 ScienceMesh 分享",
+ "Please specify a valid federated group ID" : "請指定有效的聯邦群組 ID",
+ "You cannot share to a Team if the app is not enabled" : "因為應用程式未啟用,所以您無法分享至團隊",
+ "Please specify a valid team" : "請指定有效的團隊",
+ "Sharing %s failed because the back end does not support room shares" : "後端不支援聊天室分享,%s 分享失敗",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "後端不支援 ScienceMesh 分享,%s 分享失敗",
"Unknown share type" : "未知的分享類型",
"Not a directory" : "不是目錄",
"Could not lock node" : "無法鎖定節點",
+ "Public upload is only possible for publicly shared folders" : "只有公開分享的資料夾可以接受公開上傳",
+ "Share must at least have READ or CREATE permissions" : "分享必須至少具備 READ 或 CREATE 權能",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "若設定了 UPDATE 或 DELETE 權能,則分享必須具備 READ 權能",
+ "Public upload disabled by the administrator" : "公開上傳已被管理員停用",
"Could not lock path" : "無法鎖定路徑",
+ "no sharing rights on this item" : "沒有此項目的分享權限",
+ "You are not allowed to edit incoming shares" : "您無權編輯收到的分享",
"Wrong or no update parameter given" : "更新參數不正確或未提供",
- "Share must at least have READ or CREATE permissions" : "分享必須至少有 READ 或 CREATE 權限",
- "Share must have READ permission if UPDATE or DELETE permission is set" : "若設定了 UPDATE 或 DELETE 權限,則分享必須有 READ 權限",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "「透過 Nextcloud Talk 傳送密碼」分享檔案或資料夾失敗,因為未啟用 Nextcloud Talk。",
- "shared by %s" : "分享自 %s",
- "Download all files" : "下載所有檔案",
- "Direct link" : "直接連結",
+ "Custom share link tokens have been disabled by the administrator" : "自訂分享連結權杖已被管理員停用",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "權杖必須至少包含 1 個字元,且只能包含字母、數字或連字符。",
+ "Invalid date. Format must be YYYY-MM-DD" : "無效的日期。格式必須為 YYYY-MM-DD",
+ "No sharing rights on this item" : "沒有此項目的分享權限",
+ "Invalid share attributes provided: \"%s\"" : "提供的分享屬性無效:「%s」",
+ "You are not allowed to send mail notifications" : "您無權寄送郵件通知",
+ "No mail notification configured for this share type" : "此分享類型並未設定郵件通知",
+ "Wrong password" : "密碼錯誤",
+ "Error while sending mail notification" : "寄送郵件通知時發生錯誤",
+ "Failed to generate a unique token" : "產生獨一無二的權杖失敗",
+ "This share does not exist or is no longer available" : "此分享不存在或是不再提供",
+ "shared by %s" : "由 %s 分享",
+ "Download" : "下載",
"Add to your %s" : "新增至您的 %s",
+ "Direct link" : "直接連結",
"Share API is disabled" : "分享 API 已停用",
"File sharing" : "檔案分享",
"Share will expire tomorrow" : "分享將於明天到期",
"Your share of {node} will expire tomorrow" : "您 {node} 的分享將於明天到期",
- "You received {share} as a share by {user}" : "您收到 {user} 的分享 {share}",
- "You received {share} to group {group} as a share by {user}" : "您收到了來自 {user} 到 {group} 群組的 {share}",
+ "You received {share} as a share by {user}" : "您收到了 {user} 分享的 {share}",
+ "You received {share} to group {group} as a share by {user}" : "您收到了 {user} 與 {group} 群組分享的 {share}",
"Accept" : "接受",
"Decline" : "回絕",
+ "Remember to upload the files to %s" : "記得將檔案上傳至 %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "我們謹提醒您,您尚未將任何檔案上傳到共用資料夾。",
+ "Open \"%s\"" : "開啟「%s」",
"This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "此應用程式讓使用者可以在 Nextcloud 中分享檔案。若啟用,管理員可以選擇哪些群組可以分享檔案。應用程式使用者可以與其他在 Nextcloud 中的使用者與群組分享檔案與資料夾。此外,如果管理員啟用了分享連結的功能,則可以使用外部連結與 Nextcloud 之外的使用者分享檔案。管理員也可以啟用密碼、到期日以及啟用透過分享連結的伺服器到伺服器分享,並可從行動裝置分享。\n將此功能關閉會移除伺服器上、同步客戶端與行動應用程式所有的分享收件者,以及檔案與資料夾。更多資訊請見 Nextcloud 文件。",
- "Sharing" : "分享",
- "Accept shares from other accounts and groups by default" : "預設接受其他帳號與群組的分享",
+ "People" : "人物",
+ "Filter accounts" : "篩選帳號",
+ "The request will expire on {date} at midnight and will be password protected." : "請求將於{date}午夜過期,並將受到密碼保護。",
+ "The request will expire on {date} at midnight." : "請求將於{date}午夜過期。",
+ "The request will be password protected." : "請求將受到密碼保護。",
+ "When should the request expire?" : "請求應在何時過期?",
+ "Set a submission expiration date" : "設定遞交截止日期",
+ "Expiration date" : "到期日",
+ "Select a date" : "選取日期",
+ "Your administrator has enforced a {count} days expiration policy." : "您的管理員已強制執行{count}天的逾期政策。",
+ "What password should be used for the request?" : "請求應該使用什麼密碼?",
+ "Set a password" : "設定密碼",
+ "Password" : "密碼",
+ "Enter a valid password" : "輸入有效密碼",
+ "Generate a new password" : "產生新密碼",
+ "Your administrator has enforced a password protection." : "您的管理員已強制設定密碼保護。",
+ "Automatically copying failed, please copy the share link manually" : "自動複製失敗,請手動複製分享連結",
+ "Link copied" : "連結已複製",
+ "Email already added" : "已新增電子郵件",
+ "Invalid email address" : "無效的電子郵件地址",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["以下電子郵件地址無效:{emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["已新增 {count} 個電子郵件地址"],
+ "_{count} email address added_::_{count} email addresses added_" : ["新增了 {count} 個電子郵件地址"],
+ "You can now share the link below to allow people to upload files to your directory." : "您現在可以分享下面的連結,讓其他人將檔案上傳到您的目錄中。",
+ "Share link" : "分享連結",
+ "Copy" : "複製",
+ "Send link via email" : "透過 email 寄送連結",
+ "Enter an email address or paste a list" : "請輸入電子郵件地址或貼上清單",
+ "Remove email" : "移除電子郵件",
+ "Select a destination" : "選取目的地",
+ "Select" : "選取",
+ "What are you requesting?" : "您正在請求什麼?",
+ "Request subject" : "請求主旨",
+ "Birthday party photos, History assignment…" : "生日派對照片、歷史作業……",
+ "Where should these files go?" : "這些檔案應該放在哪裡?",
+ "Upload destination" : "上傳目的地",
+ "Revert to default" : "還原回預設值",
+ "The uploaded files are visible only to you unless you choose to share them." : "上傳的檔案僅對您可見,除非您選擇分享它們。",
+ "Add a note" : "新增備註",
+ "Note for recipient" : "給收件者的備註",
+ "Add a note to help people understand what you are requesting." : "新增備註以協助他人了解您的請求。",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "您可以新增連結、日期或任何資訊,以協助收件者了解您的請求。",
+ "Close" : "關閉",
+ "_Send email and close_::_Send {count} emails and close_" : ["寄送 {count} 封電子郵件並關閉"],
+ "Please select a folder, you cannot share the root directory." : "請選取資料夾,您無法分享根目錄。",
+ "File request created" : "已建立檔案請求",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["已建立檔案請求,已寄送 {count} 封電子郵件"],
+ "Error creating the share: {errorMessage}" : "建立分享時發生錯誤:{errorMessage}",
+ "Error creating the share" : "建立分享時發生錯誤",
+ "Error sending emails: {errorMessage}" : "寄送電子郵件時發生錯誤:{errorMessage}",
+ "Error sending emails" : "寄送電子郵件時發生錯誤",
+ "Create a file request" : "建立檔案請求",
+ "Collect files from others even if they do not have an account." : "即使對方沒有帳號,也可以蒐集檔案。",
+ "To ensure you can receive files, verify you have enough storage available." : "為了確保您能接收檔案,請確認您有足夠的可用儲存空間。",
+ "File request" : "檔案請求",
+ "Previous step" : "上一步",
+ "Cancel" : "取消",
+ "Cancel the file request creation" : "取消建立檔案請求",
+ "Close without sending emails" : "關閉而不寄送電子郵件",
+ "Continue" : "繼續",
"Error while toggling options" : "切換選項時發生錯誤",
- "Set default folder for accepted shares" : "為接受的分享設定預設資料夾",
- "Reset" : "重設",
- "Reset folder to system default" : "將資料夾重設回系統預設",
+ "Accept shares from other accounts and groups by default" : "預設接受其他帳號與群組的分享",
"Choose a default folder for accepted shares" : "為接受的分享選擇預設資料夾",
"Invalid path selected" : "選取的路徑無效",
"Unknown error" : "未知的錯誤",
- "Open Sharing Details" : "開啟分享詳細資訊",
+ "Set default folder for accepted shares" : "為接受的分享設定預設資料夾",
+ "Reset" : "重設",
+ "Reset folder to system default" : "將資料夾重設回系統預設",
+ "Share expiration: {date}" : "分享到期日:{date}",
+ "Share Expiration" : "分享過期",
"group" : "群組",
- "conversation" : "交談",
+ "conversation" : "對話",
"remote" : "遠端",
"remote group" : "遠端群組",
"guest" : "訪客",
- "Shared with the group {user} by {owner}" : "由 {owner} 與群組 {user} 分享",
- "Shared with the conversation {user} by {owner}" : "由 {owner} 與對話 {user} 分享",
- "Shared with {user} by {owner}" : "由 {owner} 與 {user} 分享",
- "Added by {initiator}" : "由 {initiator} 新增",
+ "by {initiator}" : "由 {initiator}",
+ "Shared with the group {user} by {owner}" : "{owner} 與群組 {user} 分享",
+ "Shared with the conversation {user} by {owner}" : "{owner} 與對話 {user} 分享",
+ "Shared with {user} by {owner}" : "{owner} 與 {user} 分享",
+ "Open Sharing Details" : "開啟分享詳細資訊",
+ "Added by {initiator}" : "{initiator} 新增",
"Via “{folder}”" : "透過「{folder}」",
"Unshare" : "取消分享",
- "Internal link" : "內部連結",
"Cannot copy, please copy the link manually" : "無法複製,請手動複製連結",
- "Copy internal link to clipboard" : "複製內部連結至剪貼簿",
- "Only works for people with access to this folder" : "只對可以存取此資料夾的使用者生效",
- "Only works for people with access to this file" : "只對可以存取此檔案的使用者生效",
- "Link copied" : "連結已複製",
+ "Copy internal link" : "複製內部連結",
+ "For people who already have access" : "對於已有存取權限的人",
+ "Internal link" : "內部連結",
+ "{shareWith} by {initiator}" : "{initiator} {shareWith}",
+ "Shared via link by {initiator}" : "{initiator} 透過連結分享",
+ "File request ({label})" : "檔案請求({label})",
+ "Mail share ({label})" : "經郵件分享 ({label})",
+ "Share link ({label})" : "分享連結 ({label})",
+ "Mail share" : "郵件分享",
+ "Share link ({index})" : "分享連結 ({index})",
+ "Create public link" : "建立公開連結",
+ "Actions for \"{title}\"" : "「{title}」的動作",
+ "Copy public link of \"{title}\"" : "複製「{title}」的公開連結",
+ "Error, please enter proper password and/or expiration date" : "錯誤,請輸入適當的密碼及/或到期日",
+ "Link share created" : "建立了連結分享",
+ "Error while creating the share" : "建立分享時發生錯誤",
"Please enter the following required information before creating the share" : "在建立分享前,請輸入以下的必要資訊",
"Password protection (enforced)" : "密碼保護(強制)",
"Password protection" : "密碼保護",
- "Enter a password" : "輸入密碼",
- "Expiration date (enforced)" : "到期日(強制)",
- "Enter a date" : "輸入日期",
+ "Enter a password" : "請輸入密碼",
+ "Enable link expiration (enforced)" : "啟用連結過期(強制執行)",
+ "Enable link expiration" : "啟用連結過期",
+ "Enter expiration date (enforced)" : "輸入到期日(強制執行)",
+ "Enter expiration date" : "輸入到期日",
"Create share" : "建立分享",
- "Cancel" : "取消",
"Customize link" : "自訂連結",
"Generate QR code" : "產生 QR code",
"Add another link" : "新增其他連結",
"Create a new share link" : "建立新分享連結",
- "{shareWith} by {initiator}" : "{shareWith} 由 {initiator}",
- "Shared via link by {initiator}" : "由 {initiator} 透過連結分享",
- "Mail share ({label})" : "郵件分享 ({label})",
- "Share link ({label})" : "分享連結 ({label})",
- "Share link ({index})" : "分享連結˙ ({index})",
- "Share link" : "分享連結",
- "Actions for \"{title}\"" : "「{title}」的動作",
- "Copy public link of \"{title}\" to clipboard" : "將「{title}」的公開連結複製到剪貼簿",
- "Error, please enter proper password and/or expiration date" : "錯誤,請輸入正確的密碼及/或到期日",
- "Link share created" : "已建立連結分享",
- "Error while creating the share" : "建立分享時發生錯誤",
"Quick share options, the current selected is \"{selectedOption}\"" : "快速分享選項,目前已選取「{selectedOption}」",
- "View only" : "僅檢視",
+ "View only" : "僅供檢視",
"Can edit" : "可以編輯",
- "File drop" : "檔案投放",
"Custom permissions" : "自訂權限",
- "Search for share recipients" : "搜尋分享參與者",
- "No recommendations. Start typing." : "沒有建議。開始輸入。",
- "Resharing is not allowed" : "不允許重新分享",
- "Name or email …" : "名稱或電子郵件……",
- "Name, email, or Federated Cloud ID …" : "名稱、電子郵件或雲端聯盟 ID……",
- "Searching …" : "正在搜尋……",
+ "Resharing is not allowed" : "不允許轉發分享",
+ "Name or email …" : "名稱或電子郵件…",
+ "Name, email, or Federated Cloud ID …" : "名稱、電子郵件或雲端聯邦 ID…",
+ "Searching …" : "正在搜尋…",
"No elements found." : "找不到元素。",
- "Search globally" : "全域搜尋",
+ "Search everywhere" : "到處搜尋",
"Guest" : "訪客",
"Group" : "群組",
"Email" : "電子郵件",
@@ -186,136 +248,206 @@ OC.L10N.register(
"Deck board" : "看板佈告欄",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "於 {server}",
+ "Enter external recipients" : "輸入外部接收者",
+ "Search for internal recipients" : "搜尋內部接收者",
+ "Note from" : "備註來自",
+ "Note:" : "備註:",
+ "File drop" : "檔案投遞",
+ "Upload files to {foldername}." : "上傳檔案至 {foldername}。",
+ "By uploading files, you agree to the terms of service." : "上傳檔案即表示您同意服務條款。",
+ "Successfully uploaded files" : "已成功上傳檔案",
+ "View terms of service" : "檢視服務條款",
+ "Terms of service" : "服務條款",
+ "Share with {user}" : "與 {user} 分享",
+ "Share with email {email}" : "與電子郵件 {email} 分享",
+ "Share with group" : "與群組分享",
+ "Share in conversation" : "在對話中分享",
+ "Share with {user} on remote server {server}" : "與遠端伺服器 {server} 上的 {user} 分享",
+ "Share with remote group" : "與遠端群組分享",
+ "Share with guest" : "與訪客分享",
+ "Update share" : "更新分享",
+ "Save share" : "儲存分享",
+ "Read" : "讀取",
+ "Create" : "建立",
+ "Edit" : "編輯",
+ "Share" : "分享",
+ "Delete" : "刪除",
+ "Password field cannot be empty" : "密碼欄位不能為空",
+ "Replace current password" : "取代目前密碼",
+ "Failed to generate a new token" : "產生新權杖失敗",
"Allow upload and editing" : "允許上傳及編輯",
"Allow editing" : "允許編輯",
- "Upload only" : "僅上傳",
+ "Upload only" : "僅供上傳",
"Advanced settings" : "進階設定",
"Share label" : "分享標籤",
+ "Share link token" : "分享連結權杖",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "將公開分享連結權杖設定為容易記住的權杖,或產生新的權杖。不建議對包含敏感資訊的分享使用可猜測的權杖。",
+ "Generating…" : "正在產生……",
+ "Generate new token" : "產生新權杖",
"Set password" : "設定密碼",
- "Password" : "密碼",
"Password expires {passwordExpirationTime}" : "密碼於 {passwordExpirationTime} 到期",
"Password expired" : "密碼已過期",
"Video verification" : "視訊驗證",
+ "Expiration date (enforced)" : "到期日(強制)",
"Set expiration date" : "設定到期日",
- "Expiration date" : "到期日",
"Hide download" : "隱藏下載",
- "Allow download" : "允許下載",
- "Note to recipient" : "給收件者的訊息",
- "Enter a note for the share recipient" : "輸入給分享收件者的訊息",
- "Read" : "讀取",
- "Create" : "建立",
- "Edit" : "編輯",
- "Share" : "分享",
+ "Allow download and sync" : "允許下載與同步",
+ "Note to recipient" : "給接收者的備註",
+ "Enter a note for the share recipient" : "輸入給分享接收者的備註",
+ "Show files in grid view" : "以網格檢視顯示檔案",
"Delete share" : "刪除分享",
- "Share with {userName}" : "與 {userName} 分享",
- "Share with email {email}" : "與電子郵件 {email} 分享",
- "Share with group" : "與群組分享",
- "Share in conversation" : "在對話中分享",
- "Share with {user} on remote server {server}" : "與遠端伺服器 {server} 上的 {user} 分享",
- "Share with remote group" : "與遠端群組分享",
- "Share with guest" : "與訪客分享",
- "Update share" : "更新分享",
- "Save share" : "儲存分享",
- "Others with access" : "有存取權的其他人",
+ "Others with access" : "擁有存取權的其他人",
"No other accounts with access found" : "找不到其他有存取權的使用者",
- "Toggle list of others with access to this directory" : "切換有權存取此目錄的其他人的列表",
- "Toggle list of others with access to this file" : "切換有權存取此檔案的其他人的列表",
+ "Toggle list of others with access to this directory" : "切換有權存取此目錄的其他人列表",
+ "Toggle list of others with access to this file" : "切換有權存取此檔案的其他人列表",
"Unable to fetch inherited shares" : "無法擷取繼承的分享",
+ "Link shares" : "連結分享",
+ "Shares" : "分享",
+ "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "在您的組織內部分享檔案。已經可以檢視檔案的收件者也可以使用此連結以方便存取。",
+ "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "透過公開連結與電子郵件地址與組織外的其他人分享檔案。您也可以使用其他站台上的聯邦雲端 ID 將檔案分享至 Nextcloud 帳號。",
+ "Shares from apps or other sources which are not included in internal or external shares." : "來自應用程式或其他來源的分享,不包括在內部或外部分享中。",
+ "Type names, teams, federated cloud IDs" : "輸入名稱、團隊、聯邦雲端 ID",
+ "Type names or teams" : "輸入名稱或團隊",
+ "Type a federated cloud ID" : "輸入聯邦雲端 ID",
+ "Type an email" : "輸入電子郵件",
+ "Type an email or federated cloud ID" : "輸入電子郵件或聯邦雲端 ID",
"Unable to load the shares list" : "無法載入分享列表",
"Expires {relativetime}" : "過期於 {relativetime}",
"this share just expired." : "此分享剛過期。",
- "Shared with you by {owner}" : "{owner} 已經和您分享",
+ "Shared with you by {owner}" : "{owner} 已與您分享",
+ "Internal shares" : "內部分享",
+ "Internal shares explanation" : "內部分享說明",
+ "External shares" : "外部分享",
+ "External shares explanation" : "外部分享說明",
+ "Additional shares" : "額外分享",
+ "Additional shares explanation" : "額外分享說明",
+ "Link to a file" : "檔案連結",
"_Accept share_::_Accept shares_" : ["接受分享"],
- "Open in Files" : "在「檔案」應用程式中開啟",
+ "Open in Files" : "以「檔案」開啟",
"_Reject share_::_Reject shares_" : ["拒絕分享"],
"_Restore share_::_Restore shares_" : ["還原分享"],
"Shared" : "已分享",
+ "Shared by {ownerDisplayName}" : "{ownerDisplayName} 分享",
"Shared multiple times with different people" : "與不同的人多次分享",
- "Shared by {ownerDisplayName}" : "由 {ownerDisplayName} 分享",
- "Show sharing options" : "顯示分享選項",
- "Link to a file" : "檔案連結",
- "Error creating the share: {errorMessage}" : "建立分享時發生錯誤:{errorMessage}",
- "Error creating the share" : "建立分享時發生錯誤",
- "Error updating the share: {errorMessage}" : "更新分享時發生錯誤:{errorMessage}",
- "Error updating the share" : "更新分享時發生錯誤:",
- "File \"{path}\" has been unshared" : "檔案「{path}」已取消分享",
- "Folder \"{path}\" has been unshared" : "資料夾「{path}」已取消分享",
- "Share {propertyName} saved" : "分享 {propertyName} 已儲存",
- "Shared by" : "分享自",
- "Shared with" : "分享給",
- "Password created successfully" : "成功建立密碼",
- "Error generating password from password policy" : "從密碼策略產生密碼時發生錯誤",
- "Shared with you and the group {group} by {owner}" : "由 {owner} 分享給您和 {group} 群組",
- "Shared with you and {circle} by {owner}" : "{owner} 分享給您和 {circle}",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} 分享給您和 {conversation} 對話",
- "Shared with you in a conversation by {owner}" : "{owner} 在對話中分享給您",
- "Shares" : "分享",
+ "Sharing options" : "分享選項",
+ "Shared with others" : "與其他人分享",
+ "Create file request" : "建立檔案請求",
+ "Upload files to {foldername}" : "上傳檔案至 {foldername}",
+ "Public file share" : "公開連結分享",
+ "Publicly shared file." : "公開分享的檔案。",
+ "No file" : "無檔案",
+ "The file shared with you will show up here" : "與您分享的檔案將會在此顯示",
+ "Public share" : "公開分享",
+ "Publicly shared files." : "公開分享的檔案。",
+ "No files" : "沒有檔案",
+ "Files and folders shared with you will show up here" : "與您分享的檔案與資料夾將會在此顯示",
"Overview of shared files." : "已分享檔案的概覽。",
"No shares" : "無分享",
- "Files and folders you shared or have been shared with you will show up here" : "您分享或已與您分享的檔案與資料夾將顯示在此處",
+ "Files and folders you shared or have been shared with you will show up here" : "您分享的或與您分享的檔案與資料夾將顯示在此處",
"Shared with you" : "與您分享",
"List of files that are shared with you." : "與您分享的檔案清單。",
"Nothing shared with you yet" : "目前沒有任何與您分享的內容",
"Files and folders others shared with you will show up here" : "與您分享的檔案與資料夾將會顯示在此處",
- "Shared with others" : "與其他人分享",
"List of files that you shared with others." : "您與其他人分享的檔案清單。",
"Nothing shared yet" : "目前沒有分享內容",
"Files and folders you shared will show up here" : "您分享的檔案與資料夾將會顯示在此處",
- "Shared by link" : "由連結分享",
+ "Shared by link" : "透過連結分享",
"List of files that are shared by link." : "透過連結分享的檔案清單。",
- "No shared links" : "沒有已分享的連結",
+ "No shared links" : "沒有分享的連結",
"Files and folders you shared by link will show up here" : "您分享的檔案與資料夾連結將會顯示在此處",
- "Deleted shares" : "已刪除的分享",
+ "File requests" : "檔案請求",
+ "List of file requests." : "檔案請求清單",
+ "No file requests" : "沒有檔案請求",
+ "File requests you have created will show up here" : "您建立的檔案請求將會顯示在此處",
+ "Deleted shares" : "刪除的分享",
"List of shares you left." : "您離開的分享清單。",
- "No deleted shares" : "沒有已刪除的分享",
+ "No deleted shares" : "沒有刪除的分享",
"Shares you have left will show up here" : "您離開的分享將會顯示在此處",
- "Pending shares" : "擱置中的分享",
+ "Pending shares" : "待處理的分享",
"List of unapproved shares." : "未批准的分享清單。",
- "No pending shares" : "沒有擱置中的分享",
+ "No pending shares" : "沒有待處理的分享",
"Shares you have received but not approved will show up here" : "您收到但尚未核准的分享將會在此顯示",
- "Share note" : "分享訊息",
+ "Error deleting the share: {errorMessage}" : "刪除分享時發生錯誤:{errorMessage}",
+ "Error deleting the share" : "刪除分享時發生錯誤",
+ "Error updating the share: {errorMessage}" : "更新分享時發生錯誤:{errorMessage}",
+ "Error updating the share" : "更新分享時發生錯誤",
+ "File \"{path}\" has been unshared" : "檔案「{path}」已取消分享",
+ "Folder \"{path}\" has been unshared" : "資料夾「{path}」已取消分享",
+ "Could not update share" : "無法更新分享",
+ "Share saved" : "已儲存分享",
+ "Share expiry date saved" : "已儲存分享過期日期",
+ "Share hide-download state saved" : "已儲存分享隱藏下載狀態",
+ "Share label saved" : "分享標籤已儲存",
+ "Share note for recipient saved" : "已儲存給收件者的分享備註",
+ "Share password saved" : "分享密碼已儲存",
+ "Share permissions saved" : "已儲存分享權限",
+ "To upload files to {folder}, you need to provide your name first." : "要上傳檔案至 {folder},您必須先提供您的名稱。",
+ "Upload files to {folder}" : "上傳檔案到 {folder}",
+ "Please confirm your name to upload files to {folder}" : "請確認您的名稱以上傳檔案至 {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} 與您分享了一個資料夾。",
+ "Names must not be empty." : "名稱不能為空。",
+ "Names must not start with a dot." : "名稱不能以點開頭。",
+ "\"{char}\" is not allowed inside a name." : "「{char}」不能在名稱內使用。",
+ "\"{segment}\" is a reserved name and not allowed." : "「{segment}」為保留名稱且不允許使用。",
+ "\"{extension}\" is not an allowed name." : "「{extension}」不是允許的名稱。",
+ "Names must not end with \"{extension}\"." : "名稱不能以「{extension}」結尾。",
+ "Invalid name." : "無效的名稱。",
+ "Shared by" : "分享者",
+ "Shared with" : "分享給",
+ "Password created successfully" : "成功建立密碼",
+ "Error generating password from password policy" : "從密碼策略產生密碼時發生錯誤",
+ "Shared with you and the group {group} by {owner}" : "{owner} 與您和群組 {group} 分享",
+ "Shared with you and {circle} by {owner}" : "{owner} 與您和 {circle} 分享",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} 與您和 {conversation} 對話分享",
+ "Shared with you in a conversation by {owner}" : "{owner} 在對話中與您分享",
+ "Share not found" : "找不到分享",
+ "Back to %s" : "回到 %s",
+ "Add to your Nextcloud" : "新增到您的 Nextcloud",
+ "Waiting…" : "正在等待…",
+ "error" : "錯誤",
+ "finished" : "已完成",
+ "This will stop your current uploads." : "這會停止您目前的上傳。",
+ "Move or copy" : "移動或複製",
+ "You can upload into this folder" : "您可以上傳到此資料夾",
+ "Show list view" : "顯示清單檢視",
+ "Show grid view" : "顯示格狀檢視",
+ "No compatible server found at {remote}" : "在 {remote} 找不到相容的伺服器",
+ "Invalid server URL" : "無效的伺服器 URL",
+ "Failed to add the public link to your Nextcloud" : "無法將公開連結新增到您的 Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "您無權編輯不屬於您的連結分享",
+ "Download all files" : "下載所有檔案",
+ "Link copied to clipboard" : "已複製連結至剪貼簿",
+ "_1 email address already added_::_{count} email addresses already added_" : ["已新增 {count} 個電子郵件地址"],
+ "_1 email address added_::_{count} email addresses added_" : ["已新增 {count} 個電子郵件地址"],
+ "Copy to clipboard" : "複製到剪貼簿",
+ "Copy internal link to clipboard" : "複製內部連結至剪貼簿",
+ "Only works for people with access to this folder" : "只對可以存取此資料夾的使用者生效",
+ "Only works for people with access to this file" : "只對可以存取此檔案的使用者生效",
+ "Copy public link of \"{title}\" to clipboard" : "將「{title}」的公開連結複製到剪貼簿",
+ "Search globally" : "全域搜尋",
+ "Search for share recipients" : "搜尋分享接收者",
+ "No recommendations. Start typing." : "沒有建議。請開始輸入。",
+ "To upload files, you need to provide your name first." : "要上傳檔案,您必須先提供您的名字。",
+ "Enter your name" : "輸入您的名稱",
+ "Submit name" : "遞交名稱",
+ "Share with {userName}" : "與 {userName} 分享",
+ "Show sharing options" : "顯示分享選項",
+ "Share note" : "分享備註",
"Upload files to %s" : "上傳檔案到 %s",
- "Note" : "筆記",
+ "%s shared a folder with you." : "%s 與您分享了一個資料夾。",
+ "Note" : "備註",
"Select or drop files" : "選取或拖曳檔案",
"Uploading files" : "正在上傳檔案",
"Uploaded files:" : "已上傳的檔案:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "上傳檔案即表示您同意%1$s服務條款%2$s。",
- "Add to your Nextcloud" : "新增到您的 Nextcloud",
- "Files and folders others share with you will show up here" : "與您分享的檔案與資料夾將會顯示在這裡",
- "Files and folders you share will show up here" : "您分享的檔案與資料夾將會顯示在這裡",
- "Files and folders you share by link will show up here" : "您分享的檔案與資料夾連結將會顯示在這裡",
- "Shares you deleted will show up here" : "您刪除的分享會在此顯示",
- "Shares you have received but not confirmed will show up here" : "您收到但尚未確認的分享將會在此顯示",
- "Shares will show up here" : "分享將會在此顯示",
- "Restore" : "還原",
- "Something happened. Unable to restore the share." : "好像有東西出錯了。無法還原分享。",
- "Something happened. Unable to accept the share." : "好像有東西出錯了。無法接受分享。",
- "Something happened. Unable to reject the share." : "好像有東西出錯了。無法拒絕分享。",
- "No expiration date set" : "未指定到期日",
- "Please specify a valid user" : "請指定有效使用者",
- "Please specify a valid federated user ID" : "請指定有效的聯盟使用者 ID",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "此應用程式讓使用者可以在 Nextcloud 中分享檔案。若啟用,管理員可以選擇哪些群組可以分享檔案。應用程式使用者可以與其他在 Nextcloud 中的使用者與群組分享檔案與資料夾。此外,如果管理員啟用了分享連結的功能,則可以使用外部連結與 Nextcloud 之外的使用者分享檔案。管理員也可以啟用密碼、到期日以及啟用透過分享連結的伺服器到伺服器分享,並可從行動裝置分享。\n將此功能關閉會移除伺服器上、同步客戶端與行動應用程式所有的分享收件者,以及檔案與資料夾。更多資訊請見 Nextcloud 文件。",
- "Accept user and group shares by default" : "預設接受使用者與群組分享",
- "Read only" : "唯讀",
- "File drop (upload only)" : "檔案投放(僅上傳)",
- "Upload" : "上傳",
- "Bundled permissions" : "權限套裝",
- "Only works for users with access to this folder" : "僅對可存取此資料夾的使用者有效",
- "Only works for users with access to this file" : "僅對可存取此檔案的使用者有效",
- "Circle" : "圈子",
- "Update" : "更新",
- "Share with " : "分享者",
- "No other users with access found" : "找不到其他有存取權的使用者",
- "No entries found in this folder" : "在此資料夾中沒有任何項目",
+ "By uploading files, you agree to the %1$sterms of service%2$s." : "上傳檔案即表示您同意 %1$s服務條款%2$s。",
"Name" : "名稱",
- "Share time" : "分享時間",
- "Sorry, this link does not seem to work anymore." : "抱歉,此連結似乎無法運作。",
- "Reasons might be:" : "可能的原因:",
- "the item was removed" : "項目已經移除",
- "the link expired" : "連結過期",
- "sharing is disabled" : "分享功能已停用",
- "For more info, please ask the person who sent this link." : "要取得更多資訊,請詢問傳送此連結給您的人。",
- "Share with remote" : "與遠端分享",
- "Share with" : "分享者"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "使用此方法與組織內的個人或團隊分享檔案。如果收件者已經可以存取分享但找不到,您可以將內部分享連結傳送給他們,以方便存取。",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "使用此方法與組織外的個人或組織分享檔案。檔案與資料夾可以透過公開的分享連結與電子郵件地址來分享。您也可以使用其他 Nextcloud 帳號的聯邦雲端 ID,將檔案分享給託管在不同站台上的其他 Nextcloud 帳號。",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "不屬於內部或外部分享的分享。這可能是來自應用程式或其他來源的分享。",
+ "Share with accounts, teams, federated cloud id" : "與帳號、團隊、聯邦雲端ID 分享",
+ "Share with accounts and teams" : "與帳號及團隊分享",
+ "Federated cloud ID" : "聯邦雲端 ID",
+ "Email, federated cloud id" : "電子郵件、聯邦雲端 ID",
+ "Filename must not be empty." : "檔案名稱不能為空。"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/zh_TW.json b/apps/files_sharing/l10n/zh_TW.json
index 8251f7980b1..883ff45d597 100644
--- a/apps/files_sharing/l10n/zh_TW.json
+++ b/apps/files_sharing/l10n/zh_TW.json
@@ -1,181 +1,243 @@
{ "translations": {
- "Waiting…" : "正在等待……",
- "error" : "錯誤",
- "finished" : "已結束",
- "This will stop your current uploads." : "這會停止您目前的上傳。",
- "Move or copy" : "移動或複製",
- "Download" : "下載",
- "Delete" : "刪除",
- "You can upload into this folder" : "您可以上傳到此資料夾",
- "Terms of service" : "服務條款",
- "Show list view" : "顯示清單檢視",
- "Show grid view" : "顯示網格檢視",
- "No compatible server found at {remote}" : "在 {remote} 找不到相容的伺服器",
- "Invalid server URL" : "無效的伺服器 URL",
- "Failed to add the public link to your Nextcloud" : "無法將公開連結新增到您的 Nextcloud",
"File shares" : "檔案分享",
"Downloaded via public link" : "透過公開連結下載",
- "Downloaded by {email}" : "{email} 已下載",
- "{file} downloaded via public link" : "{file} 已透過公開連結下載",
- "{email} downloaded {file}" : "{email} 已下載 {file}",
- "Shared with group {group}" : "與群組 {group} 分享",
- "Removed share for group {group}" : "移除與群組 {group} 分享",
- "{actor} shared with group {group}" : "{actor} 分享給群組 {group}",
+ "Downloaded by {email}" : "經由 {email} 下載",
+ "{file} downloaded via public link" : "透過公開連結下載了 {file}",
+ "{email} downloaded {file}" : "{email} 下載了 {file}",
+ "Shared with group {group}" : "已與群組 {group} 分享",
+ "Removed share for group {group}" : "移除了與群組 {group} 的分享",
+ "{actor} shared with group {group}" : "{actor} 已與群組 {group} 分享",
"{actor} removed share for group {group}" : "{actor} 移除了與群組 {group} 的分享",
"Share for group {group} expired" : "群組 {group} 的分享已過期",
- "You shared {file} with group {group}" : "你分享了 {file} 給群組 {group}",
- "You removed group {group} from {file}" : "你將群組 {group} 從 {file} 移除",
- "{actor} shared {file} with group {group}" : "{actor} 分享 {file} 給群組 {group}",
- "{actor} removed group {group} from {file}" : "{actor} 將群組 {group} 從 {file} 移除",
+ "You shared {file} with group {group}" : "您已與 {file} 群組 {group} 分享",
+ "You removed group {group} from {file}" : "您已將群組 {group} 從 {file} 移除",
+ "{actor} shared {file} with group {group}" : "{actor} 已將 {file} 與群組 {group} 分享",
+ "{actor} removed group {group} from {file}" : "{actor} 已將群組 {group} 從 {file} 移除",
"Share for file {file} with group {group} expired" : "與群組 {group} 分享的檔案 {file} 已過期",
- "Shared as public link" : "以公開連結分享",
+ "Shared as public link" : "已公開連結分享",
"Removed public link" : "已移除公開連結",
"Public link expired" : "公開連結已過期",
- "{actor} shared as public link" : "{actor} 透過公開連結分享",
- "{actor} removed public link" : "{actor} 移除公開連結分享",
+ "{actor} shared as public link" : "{actor} 已透過公開連結分享",
+ "{actor} removed public link" : "{actor} 移除了公開連結分享",
"Public link of {actor} expired" : "{actor} 的公開連結過期了",
- "You shared {file} as public link" : "您透過公開連結分享 {file}",
+ "You shared {file} as public link" : "您已透過公開連結分享 {file}",
"You removed public link for {file}" : "您移除了 {file} 的公開分享連結",
"Public link expired for {file}" : "{file} 的公開連結已過期",
- "{actor} shared {file} as public link" : "{actor} 透過公開連結分享 {file}",
+ "{actor} shared {file} as public link" : "{actor} 已透過公開連結分享 {file}",
"{actor} removed public link for {file}" : "{actor} 移除了 {file} 的公開連結分享",
"Public link of {actor} for {file} expired" : "{actor} 公開分享 {file} 的連結過期了",
"{user} accepted the remote share" : "{user} 接受了遠端分享",
"{user} declined the remote share" : "{user} 拒絕了遠端分享",
- "You received a new remote share {file} from {user}" : "您收到了一個遠端分享 {file} 來自於 {user}",
+ "You received a new remote share {file} from {user}" : "您收到了來自 {user} 的遠端分享 {file}",
"{user} accepted the remote share of {file}" : "{user} 接受了檔案 {file} 的遠端分享",
"{user} declined the remote share of {file}" : "{user} 拒絕了檔案 {file} 的遠端分享",
- "{user} unshared {file} from you" : "{user} 取消與你分享檔案 {file}",
- "Shared with {user}" : "與 {user} 分享",
- "Removed share for {user}" : "移除對 {user} 的分享",
+ "{user} unshared {file} from you" : "{user} 取消了與您分享的檔案 {file}",
+ "Shared with {user}" : "已與 {user} 分享",
+ "Removed share for {user}" : "移除了與 {user} 的分享",
"You removed yourself" : "您移除了自己",
"{actor} removed themselves" : "{actor} 已將自己移除",
- "{actor} shared with {user}" : "{actor} 分享給 {user}",
- "{actor} removed share for {user}" : "{actor} 移除了對 {user} 的分享",
+ "{actor} shared with {user}" : "{actor} 已與 {user} 分享",
+ "{actor} removed share for {user}" : "{actor} 移除了與 {user} 的分享",
"Shared by {actor}" : "由 {actor} 分享",
"{actor} removed share" : "{actor} 移除了分享",
"Share for {user} expired" : "{user} 的分享已過期",
"Share expired" : "分享已過期",
- "You shared {file} with {user}" : "你與 {user} 分享了 {file}",
- "You removed {user} from {file}" : "你將 {user} 從 {file} 移除",
+ "You shared {file} with {user}" : "您與 {user} 分享了 {file}",
+ "You removed {user} from {file}" : "您已將 {user} 從 {file} 移除",
"You removed yourself from {file}" : "您已將自己從 {file} 移除",
"{actor} removed themselves from {file}" : "{actor} 從 {file} 移除了自己",
- "{actor} shared {file} with {user}" : "{actor} 分享了 {file} 給 {user}",
- "{actor} removed {user} from {file}" : "{actor} 移除 {user} 從 {file}",
- "{actor} shared {file} with you" : "{actor} 與你分享了 {file}",
- "{actor} removed you from the share named {file}" : "{actor} 將您從名為 {file} 的分享中移除了",
+ "{actor} shared {file} with {user}" : "{actor} 與 {user} 分享了 {file}",
+ "{actor} removed {user} from {file}" : "{actor} 從 {file} 移除了 {user}",
+ "{actor} shared {file} with you" : "{actor} 與您分享了 {file}",
+ "{actor} removed you from the share named {file}" : "{actor} 已將您從名為 {file} 的分享中移除",
"Share for file {file} with {user} expired" : "與 {user} 分享的檔案 {file} 已過期",
"Share for file {file} expired" : "檔案 {file} 的分享已過期",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "透過電子郵件或公開連結分享的檔案或資料夾<strong>已被下載</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "檔案或資料夾是從<strong>其他伺服器</strong>分享的",
- "Files" : "檔案",
- "A file or folder has been <strong>shared</strong>" : "檔案或資料夾已被<strong>分享</strong>",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "透過電子郵件或公開連結分享的檔案或資料夾<strong>已下載</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "檔案已<strong>上傳</strong>至透過電子郵件或公開連結分享的資料夾",
+ "A file or folder was shared from <strong>another server</strong>" : "<strong>其他伺服器</strong>分享的檔案或資料夾",
+ "Sharing" : "分享",
+ "A file or folder has been <strong>shared</strong>" : "檔案或資料夾已<strong>分享</strong>",
"Shared link" : "已分享的連結",
"Wrong share ID, share does not exist" : "錯誤的分享 ID,分享不存在",
"Could not delete share" : "無法刪除分享",
"Please specify a file or folder path" : "請指定檔案或資料夾路徑",
"Wrong path, file/folder does not exist" : "錯誤的路徑,該檔案或資料夾不存在",
"Could not create share" : "無法建立分享",
- "Invalid permissions" : "無效的權限",
- "Invalid date, date format must be YYYY-MM-DD" : "無效的日期,需為 YYYY-MM-DD 格式",
"Please specify a valid account to share with" : "請指定要分享的有效帳號",
"Group sharing is disabled by the administrator" : "群組分享已被管理員停用",
"Please specify a valid group" : "請指定有效的群組",
"Public link sharing is disabled by the administrator" : "公開連結分享已被管理員停用",
- "Public upload disabled by the administrator" : "公開上傳已被管理員停用",
- "Public upload is only possible for publicly shared folders" : "只有公開分享的資料夾可以接受公開上傳",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "因為未啟用 Nextcloud Talk,因此透過 Nextcloud Talk 傳送密碼分享 %s 失敗",
- "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "分享 %1$s 失敗,因為後端不允許來自 %2$s 類型的分享",
+ "Please specify a valid email address" : "請指定有效的電子郵件地址",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "未啟用 Nextcloud Talk,因此透過 Nextcloud Talk 傳送密碼分享 %s 失敗",
+ "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "後端不允許 %2$s 類型的分享,因此 %1$s 分享失敗",
"Please specify a valid federated account ID" : "請指定有效的聯盟帳號 ID",
- "Please specify a valid federated group ID" : "請指定有效的聯盟群組 ID",
- "You cannot share to a Circle if the app is not enabled" : "因為應用程式未啟用,所以您無法分享至小圈圈",
- "Please specify a valid circle" : "請指定有效的小圈圈",
- "Sharing %s failed because the back end does not support room shares" : "分享 %s 失敗,因為後端不支援聊天室分享",
- "Sharing %s failed because the back end does not support ScienceMesh shares" : "分享 %s 失敗,因為後端不支援 ScienceMesh 分享",
+ "Please specify a valid federated group ID" : "請指定有效的聯邦群組 ID",
+ "You cannot share to a Team if the app is not enabled" : "因為應用程式未啟用,所以您無法分享至團隊",
+ "Please specify a valid team" : "請指定有效的團隊",
+ "Sharing %s failed because the back end does not support room shares" : "後端不支援聊天室分享,%s 分享失敗",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "後端不支援 ScienceMesh 分享,%s 分享失敗",
"Unknown share type" : "未知的分享類型",
"Not a directory" : "不是目錄",
"Could not lock node" : "無法鎖定節點",
+ "Public upload is only possible for publicly shared folders" : "只有公開分享的資料夾可以接受公開上傳",
+ "Share must at least have READ or CREATE permissions" : "分享必須至少具備 READ 或 CREATE 權能",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "若設定了 UPDATE 或 DELETE 權能,則分享必須具備 READ 權能",
+ "Public upload disabled by the administrator" : "公開上傳已被管理員停用",
"Could not lock path" : "無法鎖定路徑",
+ "no sharing rights on this item" : "沒有此項目的分享權限",
+ "You are not allowed to edit incoming shares" : "您無權編輯收到的分享",
"Wrong or no update parameter given" : "更新參數不正確或未提供",
- "Share must at least have READ or CREATE permissions" : "分享必須至少有 READ 或 CREATE 權限",
- "Share must have READ permission if UPDATE or DELETE permission is set" : "若設定了 UPDATE 或 DELETE 權限,則分享必須有 READ 權限",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "「透過 Nextcloud Talk 傳送密碼」分享檔案或資料夾失敗,因為未啟用 Nextcloud Talk。",
- "shared by %s" : "分享自 %s",
- "Download all files" : "下載所有檔案",
- "Direct link" : "直接連結",
+ "Custom share link tokens have been disabled by the administrator" : "自訂分享連結權杖已被管理員停用",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "權杖必須至少包含 1 個字元,且只能包含字母、數字或連字符。",
+ "Invalid date. Format must be YYYY-MM-DD" : "無效的日期。格式必須為 YYYY-MM-DD",
+ "No sharing rights on this item" : "沒有此項目的分享權限",
+ "Invalid share attributes provided: \"%s\"" : "提供的分享屬性無效:「%s」",
+ "You are not allowed to send mail notifications" : "您無權寄送郵件通知",
+ "No mail notification configured for this share type" : "此分享類型並未設定郵件通知",
+ "Wrong password" : "密碼錯誤",
+ "Error while sending mail notification" : "寄送郵件通知時發生錯誤",
+ "Failed to generate a unique token" : "產生獨一無二的權杖失敗",
+ "This share does not exist or is no longer available" : "此分享不存在或是不再提供",
+ "shared by %s" : "由 %s 分享",
+ "Download" : "下載",
"Add to your %s" : "新增至您的 %s",
+ "Direct link" : "直接連結",
"Share API is disabled" : "分享 API 已停用",
"File sharing" : "檔案分享",
"Share will expire tomorrow" : "分享將於明天到期",
"Your share of {node} will expire tomorrow" : "您 {node} 的分享將於明天到期",
- "You received {share} as a share by {user}" : "您收到 {user} 的分享 {share}",
- "You received {share} to group {group} as a share by {user}" : "您收到了來自 {user} 到 {group} 群組的 {share}",
+ "You received {share} as a share by {user}" : "您收到了 {user} 分享的 {share}",
+ "You received {share} to group {group} as a share by {user}" : "您收到了 {user} 與 {group} 群組分享的 {share}",
"Accept" : "接受",
"Decline" : "回絕",
+ "Remember to upload the files to %s" : "記得將檔案上傳至 %s",
+ "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "我們謹提醒您,您尚未將任何檔案上傳到共用資料夾。",
+ "Open \"%s\"" : "開啟「%s」",
"This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "此應用程式讓使用者可以在 Nextcloud 中分享檔案。若啟用,管理員可以選擇哪些群組可以分享檔案。應用程式使用者可以與其他在 Nextcloud 中的使用者與群組分享檔案與資料夾。此外,如果管理員啟用了分享連結的功能,則可以使用外部連結與 Nextcloud 之外的使用者分享檔案。管理員也可以啟用密碼、到期日以及啟用透過分享連結的伺服器到伺服器分享,並可從行動裝置分享。\n將此功能關閉會移除伺服器上、同步客戶端與行動應用程式所有的分享收件者,以及檔案與資料夾。更多資訊請見 Nextcloud 文件。",
- "Sharing" : "分享",
- "Accept shares from other accounts and groups by default" : "預設接受其他帳號與群組的分享",
+ "People" : "人物",
+ "Filter accounts" : "篩選帳號",
+ "The request will expire on {date} at midnight and will be password protected." : "請求將於{date}午夜過期,並將受到密碼保護。",
+ "The request will expire on {date} at midnight." : "請求將於{date}午夜過期。",
+ "The request will be password protected." : "請求將受到密碼保護。",
+ "When should the request expire?" : "請求應在何時過期?",
+ "Set a submission expiration date" : "設定遞交截止日期",
+ "Expiration date" : "到期日",
+ "Select a date" : "選取日期",
+ "Your administrator has enforced a {count} days expiration policy." : "您的管理員已強制執行{count}天的逾期政策。",
+ "What password should be used for the request?" : "請求應該使用什麼密碼?",
+ "Set a password" : "設定密碼",
+ "Password" : "密碼",
+ "Enter a valid password" : "輸入有效密碼",
+ "Generate a new password" : "產生新密碼",
+ "Your administrator has enforced a password protection." : "您的管理員已強制設定密碼保護。",
+ "Automatically copying failed, please copy the share link manually" : "自動複製失敗,請手動複製分享連結",
+ "Link copied" : "連結已複製",
+ "Email already added" : "已新增電子郵件",
+ "Invalid email address" : "無效的電子郵件地址",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["以下電子郵件地址無效:{emails}"],
+ "_{count} email address already added_::_{count} email addresses already added_" : ["已新增 {count} 個電子郵件地址"],
+ "_{count} email address added_::_{count} email addresses added_" : ["新增了 {count} 個電子郵件地址"],
+ "You can now share the link below to allow people to upload files to your directory." : "您現在可以分享下面的連結,讓其他人將檔案上傳到您的目錄中。",
+ "Share link" : "分享連結",
+ "Copy" : "複製",
+ "Send link via email" : "透過 email 寄送連結",
+ "Enter an email address or paste a list" : "請輸入電子郵件地址或貼上清單",
+ "Remove email" : "移除電子郵件",
+ "Select a destination" : "選取目的地",
+ "Select" : "選取",
+ "What are you requesting?" : "您正在請求什麼?",
+ "Request subject" : "請求主旨",
+ "Birthday party photos, History assignment…" : "生日派對照片、歷史作業……",
+ "Where should these files go?" : "這些檔案應該放在哪裡?",
+ "Upload destination" : "上傳目的地",
+ "Revert to default" : "還原回預設值",
+ "The uploaded files are visible only to you unless you choose to share them." : "上傳的檔案僅對您可見,除非您選擇分享它們。",
+ "Add a note" : "新增備註",
+ "Note for recipient" : "給收件者的備註",
+ "Add a note to help people understand what you are requesting." : "新增備註以協助他人了解您的請求。",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "您可以新增連結、日期或任何資訊,以協助收件者了解您的請求。",
+ "Close" : "關閉",
+ "_Send email and close_::_Send {count} emails and close_" : ["寄送 {count} 封電子郵件並關閉"],
+ "Please select a folder, you cannot share the root directory." : "請選取資料夾,您無法分享根目錄。",
+ "File request created" : "已建立檔案請求",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["已建立檔案請求,已寄送 {count} 封電子郵件"],
+ "Error creating the share: {errorMessage}" : "建立分享時發生錯誤:{errorMessage}",
+ "Error creating the share" : "建立分享時發生錯誤",
+ "Error sending emails: {errorMessage}" : "寄送電子郵件時發生錯誤:{errorMessage}",
+ "Error sending emails" : "寄送電子郵件時發生錯誤",
+ "Create a file request" : "建立檔案請求",
+ "Collect files from others even if they do not have an account." : "即使對方沒有帳號,也可以蒐集檔案。",
+ "To ensure you can receive files, verify you have enough storage available." : "為了確保您能接收檔案,請確認您有足夠的可用儲存空間。",
+ "File request" : "檔案請求",
+ "Previous step" : "上一步",
+ "Cancel" : "取消",
+ "Cancel the file request creation" : "取消建立檔案請求",
+ "Close without sending emails" : "關閉而不寄送電子郵件",
+ "Continue" : "繼續",
"Error while toggling options" : "切換選項時發生錯誤",
- "Set default folder for accepted shares" : "為接受的分享設定預設資料夾",
- "Reset" : "重設",
- "Reset folder to system default" : "將資料夾重設回系統預設",
+ "Accept shares from other accounts and groups by default" : "預設接受其他帳號與群組的分享",
"Choose a default folder for accepted shares" : "為接受的分享選擇預設資料夾",
"Invalid path selected" : "選取的路徑無效",
"Unknown error" : "未知的錯誤",
- "Open Sharing Details" : "開啟分享詳細資訊",
+ "Set default folder for accepted shares" : "為接受的分享設定預設資料夾",
+ "Reset" : "重設",
+ "Reset folder to system default" : "將資料夾重設回系統預設",
+ "Share expiration: {date}" : "分享到期日:{date}",
+ "Share Expiration" : "分享過期",
"group" : "群組",
- "conversation" : "交談",
+ "conversation" : "對話",
"remote" : "遠端",
"remote group" : "遠端群組",
"guest" : "訪客",
- "Shared with the group {user} by {owner}" : "由 {owner} 與群組 {user} 分享",
- "Shared with the conversation {user} by {owner}" : "由 {owner} 與對話 {user} 分享",
- "Shared with {user} by {owner}" : "由 {owner} 與 {user} 分享",
- "Added by {initiator}" : "由 {initiator} 新增",
+ "by {initiator}" : "由 {initiator}",
+ "Shared with the group {user} by {owner}" : "{owner} 與群組 {user} 分享",
+ "Shared with the conversation {user} by {owner}" : "{owner} 與對話 {user} 分享",
+ "Shared with {user} by {owner}" : "{owner} 與 {user} 分享",
+ "Open Sharing Details" : "開啟分享詳細資訊",
+ "Added by {initiator}" : "{initiator} 新增",
"Via “{folder}”" : "透過「{folder}」",
"Unshare" : "取消分享",
- "Internal link" : "內部連結",
"Cannot copy, please copy the link manually" : "無法複製,請手動複製連結",
- "Copy internal link to clipboard" : "複製內部連結至剪貼簿",
- "Only works for people with access to this folder" : "只對可以存取此資料夾的使用者生效",
- "Only works for people with access to this file" : "只對可以存取此檔案的使用者生效",
- "Link copied" : "連結已複製",
+ "Copy internal link" : "複製內部連結",
+ "For people who already have access" : "對於已有存取權限的人",
+ "Internal link" : "內部連結",
+ "{shareWith} by {initiator}" : "{initiator} {shareWith}",
+ "Shared via link by {initiator}" : "{initiator} 透過連結分享",
+ "File request ({label})" : "檔案請求({label})",
+ "Mail share ({label})" : "經郵件分享 ({label})",
+ "Share link ({label})" : "分享連結 ({label})",
+ "Mail share" : "郵件分享",
+ "Share link ({index})" : "分享連結 ({index})",
+ "Create public link" : "建立公開連結",
+ "Actions for \"{title}\"" : "「{title}」的動作",
+ "Copy public link of \"{title}\"" : "複製「{title}」的公開連結",
+ "Error, please enter proper password and/or expiration date" : "錯誤,請輸入適當的密碼及/或到期日",
+ "Link share created" : "建立了連結分享",
+ "Error while creating the share" : "建立分享時發生錯誤",
"Please enter the following required information before creating the share" : "在建立分享前,請輸入以下的必要資訊",
"Password protection (enforced)" : "密碼保護(強制)",
"Password protection" : "密碼保護",
- "Enter a password" : "輸入密碼",
- "Expiration date (enforced)" : "到期日(強制)",
- "Enter a date" : "輸入日期",
+ "Enter a password" : "請輸入密碼",
+ "Enable link expiration (enforced)" : "啟用連結過期(強制執行)",
+ "Enable link expiration" : "啟用連結過期",
+ "Enter expiration date (enforced)" : "輸入到期日(強制執行)",
+ "Enter expiration date" : "輸入到期日",
"Create share" : "建立分享",
- "Cancel" : "取消",
"Customize link" : "自訂連結",
"Generate QR code" : "產生 QR code",
"Add another link" : "新增其他連結",
"Create a new share link" : "建立新分享連結",
- "{shareWith} by {initiator}" : "{shareWith} 由 {initiator}",
- "Shared via link by {initiator}" : "由 {initiator} 透過連結分享",
- "Mail share ({label})" : "郵件分享 ({label})",
- "Share link ({label})" : "分享連結 ({label})",
- "Share link ({index})" : "分享連結˙ ({index})",
- "Share link" : "分享連結",
- "Actions for \"{title}\"" : "「{title}」的動作",
- "Copy public link of \"{title}\" to clipboard" : "將「{title}」的公開連結複製到剪貼簿",
- "Error, please enter proper password and/or expiration date" : "錯誤,請輸入正確的密碼及/或到期日",
- "Link share created" : "已建立連結分享",
- "Error while creating the share" : "建立分享時發生錯誤",
"Quick share options, the current selected is \"{selectedOption}\"" : "快速分享選項,目前已選取「{selectedOption}」",
- "View only" : "僅檢視",
+ "View only" : "僅供檢視",
"Can edit" : "可以編輯",
- "File drop" : "檔案投放",
"Custom permissions" : "自訂權限",
- "Search for share recipients" : "搜尋分享參與者",
- "No recommendations. Start typing." : "沒有建議。開始輸入。",
- "Resharing is not allowed" : "不允許重新分享",
- "Name or email …" : "名稱或電子郵件……",
- "Name, email, or Federated Cloud ID …" : "名稱、電子郵件或雲端聯盟 ID……",
- "Searching …" : "正在搜尋……",
+ "Resharing is not allowed" : "不允許轉發分享",
+ "Name or email …" : "名稱或電子郵件…",
+ "Name, email, or Federated Cloud ID …" : "名稱、電子郵件或雲端聯邦 ID…",
+ "Searching …" : "正在搜尋…",
"No elements found." : "找不到元素。",
- "Search globally" : "全域搜尋",
+ "Search everywhere" : "到處搜尋",
"Guest" : "訪客",
"Group" : "群組",
"Email" : "電子郵件",
@@ -184,136 +246,206 @@
"Deck board" : "看板佈告欄",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "於 {server}",
+ "Enter external recipients" : "輸入外部接收者",
+ "Search for internal recipients" : "搜尋內部接收者",
+ "Note from" : "備註來自",
+ "Note:" : "備註:",
+ "File drop" : "檔案投遞",
+ "Upload files to {foldername}." : "上傳檔案至 {foldername}。",
+ "By uploading files, you agree to the terms of service." : "上傳檔案即表示您同意服務條款。",
+ "Successfully uploaded files" : "已成功上傳檔案",
+ "View terms of service" : "檢視服務條款",
+ "Terms of service" : "服務條款",
+ "Share with {user}" : "與 {user} 分享",
+ "Share with email {email}" : "與電子郵件 {email} 分享",
+ "Share with group" : "與群組分享",
+ "Share in conversation" : "在對話中分享",
+ "Share with {user} on remote server {server}" : "與遠端伺服器 {server} 上的 {user} 分享",
+ "Share with remote group" : "與遠端群組分享",
+ "Share with guest" : "與訪客分享",
+ "Update share" : "更新分享",
+ "Save share" : "儲存分享",
+ "Read" : "讀取",
+ "Create" : "建立",
+ "Edit" : "編輯",
+ "Share" : "分享",
+ "Delete" : "刪除",
+ "Password field cannot be empty" : "密碼欄位不能為空",
+ "Replace current password" : "取代目前密碼",
+ "Failed to generate a new token" : "產生新權杖失敗",
"Allow upload and editing" : "允許上傳及編輯",
"Allow editing" : "允許編輯",
- "Upload only" : "僅上傳",
+ "Upload only" : "僅供上傳",
"Advanced settings" : "進階設定",
"Share label" : "分享標籤",
+ "Share link token" : "分享連結權杖",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "將公開分享連結權杖設定為容易記住的權杖,或產生新的權杖。不建議對包含敏感資訊的分享使用可猜測的權杖。",
+ "Generating…" : "正在產生……",
+ "Generate new token" : "產生新權杖",
"Set password" : "設定密碼",
- "Password" : "密碼",
"Password expires {passwordExpirationTime}" : "密碼於 {passwordExpirationTime} 到期",
"Password expired" : "密碼已過期",
"Video verification" : "視訊驗證",
+ "Expiration date (enforced)" : "到期日(強制)",
"Set expiration date" : "設定到期日",
- "Expiration date" : "到期日",
"Hide download" : "隱藏下載",
- "Allow download" : "允許下載",
- "Note to recipient" : "給收件者的訊息",
- "Enter a note for the share recipient" : "輸入給分享收件者的訊息",
- "Read" : "讀取",
- "Create" : "建立",
- "Edit" : "編輯",
- "Share" : "分享",
+ "Allow download and sync" : "允許下載與同步",
+ "Note to recipient" : "給接收者的備註",
+ "Enter a note for the share recipient" : "輸入給分享接收者的備註",
+ "Show files in grid view" : "以網格檢視顯示檔案",
"Delete share" : "刪除分享",
- "Share with {userName}" : "與 {userName} 分享",
- "Share with email {email}" : "與電子郵件 {email} 分享",
- "Share with group" : "與群組分享",
- "Share in conversation" : "在對話中分享",
- "Share with {user} on remote server {server}" : "與遠端伺服器 {server} 上的 {user} 分享",
- "Share with remote group" : "與遠端群組分享",
- "Share with guest" : "與訪客分享",
- "Update share" : "更新分享",
- "Save share" : "儲存分享",
- "Others with access" : "有存取權的其他人",
+ "Others with access" : "擁有存取權的其他人",
"No other accounts with access found" : "找不到其他有存取權的使用者",
- "Toggle list of others with access to this directory" : "切換有權存取此目錄的其他人的列表",
- "Toggle list of others with access to this file" : "切換有權存取此檔案的其他人的列表",
+ "Toggle list of others with access to this directory" : "切換有權存取此目錄的其他人列表",
+ "Toggle list of others with access to this file" : "切換有權存取此檔案的其他人列表",
"Unable to fetch inherited shares" : "無法擷取繼承的分享",
+ "Link shares" : "連結分享",
+ "Shares" : "分享",
+ "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "在您的組織內部分享檔案。已經可以檢視檔案的收件者也可以使用此連結以方便存取。",
+ "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "透過公開連結與電子郵件地址與組織外的其他人分享檔案。您也可以使用其他站台上的聯邦雲端 ID 將檔案分享至 Nextcloud 帳號。",
+ "Shares from apps or other sources which are not included in internal or external shares." : "來自應用程式或其他來源的分享,不包括在內部或外部分享中。",
+ "Type names, teams, federated cloud IDs" : "輸入名稱、團隊、聯邦雲端 ID",
+ "Type names or teams" : "輸入名稱或團隊",
+ "Type a federated cloud ID" : "輸入聯邦雲端 ID",
+ "Type an email" : "輸入電子郵件",
+ "Type an email or federated cloud ID" : "輸入電子郵件或聯邦雲端 ID",
"Unable to load the shares list" : "無法載入分享列表",
"Expires {relativetime}" : "過期於 {relativetime}",
"this share just expired." : "此分享剛過期。",
- "Shared with you by {owner}" : "{owner} 已經和您分享",
+ "Shared with you by {owner}" : "{owner} 已與您分享",
+ "Internal shares" : "內部分享",
+ "Internal shares explanation" : "內部分享說明",
+ "External shares" : "外部分享",
+ "External shares explanation" : "外部分享說明",
+ "Additional shares" : "額外分享",
+ "Additional shares explanation" : "額外分享說明",
+ "Link to a file" : "檔案連結",
"_Accept share_::_Accept shares_" : ["接受分享"],
- "Open in Files" : "在「檔案」應用程式中開啟",
+ "Open in Files" : "以「檔案」開啟",
"_Reject share_::_Reject shares_" : ["拒絕分享"],
"_Restore share_::_Restore shares_" : ["還原分享"],
"Shared" : "已分享",
+ "Shared by {ownerDisplayName}" : "{ownerDisplayName} 分享",
"Shared multiple times with different people" : "與不同的人多次分享",
- "Shared by {ownerDisplayName}" : "由 {ownerDisplayName} 分享",
- "Show sharing options" : "顯示分享選項",
- "Link to a file" : "檔案連結",
- "Error creating the share: {errorMessage}" : "建立分享時發生錯誤:{errorMessage}",
- "Error creating the share" : "建立分享時發生錯誤",
- "Error updating the share: {errorMessage}" : "更新分享時發生錯誤:{errorMessage}",
- "Error updating the share" : "更新分享時發生錯誤:",
- "File \"{path}\" has been unshared" : "檔案「{path}」已取消分享",
- "Folder \"{path}\" has been unshared" : "資料夾「{path}」已取消分享",
- "Share {propertyName} saved" : "分享 {propertyName} 已儲存",
- "Shared by" : "分享自",
- "Shared with" : "分享給",
- "Password created successfully" : "成功建立密碼",
- "Error generating password from password policy" : "從密碼策略產生密碼時發生錯誤",
- "Shared with you and the group {group} by {owner}" : "由 {owner} 分享給您和 {group} 群組",
- "Shared with you and {circle} by {owner}" : "{owner} 分享給您和 {circle}",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} 分享給您和 {conversation} 對話",
- "Shared with you in a conversation by {owner}" : "{owner} 在對話中分享給您",
- "Shares" : "分享",
+ "Sharing options" : "分享選項",
+ "Shared with others" : "與其他人分享",
+ "Create file request" : "建立檔案請求",
+ "Upload files to {foldername}" : "上傳檔案至 {foldername}",
+ "Public file share" : "公開連結分享",
+ "Publicly shared file." : "公開分享的檔案。",
+ "No file" : "無檔案",
+ "The file shared with you will show up here" : "與您分享的檔案將會在此顯示",
+ "Public share" : "公開分享",
+ "Publicly shared files." : "公開分享的檔案。",
+ "No files" : "沒有檔案",
+ "Files and folders shared with you will show up here" : "與您分享的檔案與資料夾將會在此顯示",
"Overview of shared files." : "已分享檔案的概覽。",
"No shares" : "無分享",
- "Files and folders you shared or have been shared with you will show up here" : "您分享或已與您分享的檔案與資料夾將顯示在此處",
+ "Files and folders you shared or have been shared with you will show up here" : "您分享的或與您分享的檔案與資料夾將顯示在此處",
"Shared with you" : "與您分享",
"List of files that are shared with you." : "與您分享的檔案清單。",
"Nothing shared with you yet" : "目前沒有任何與您分享的內容",
"Files and folders others shared with you will show up here" : "與您分享的檔案與資料夾將會顯示在此處",
- "Shared with others" : "與其他人分享",
"List of files that you shared with others." : "您與其他人分享的檔案清單。",
"Nothing shared yet" : "目前沒有分享內容",
"Files and folders you shared will show up here" : "您分享的檔案與資料夾將會顯示在此處",
- "Shared by link" : "由連結分享",
+ "Shared by link" : "透過連結分享",
"List of files that are shared by link." : "透過連結分享的檔案清單。",
- "No shared links" : "沒有已分享的連結",
+ "No shared links" : "沒有分享的連結",
"Files and folders you shared by link will show up here" : "您分享的檔案與資料夾連結將會顯示在此處",
- "Deleted shares" : "已刪除的分享",
+ "File requests" : "檔案請求",
+ "List of file requests." : "檔案請求清單",
+ "No file requests" : "沒有檔案請求",
+ "File requests you have created will show up here" : "您建立的檔案請求將會顯示在此處",
+ "Deleted shares" : "刪除的分享",
"List of shares you left." : "您離開的分享清單。",
- "No deleted shares" : "沒有已刪除的分享",
+ "No deleted shares" : "沒有刪除的分享",
"Shares you have left will show up here" : "您離開的分享將會顯示在此處",
- "Pending shares" : "擱置中的分享",
+ "Pending shares" : "待處理的分享",
"List of unapproved shares." : "未批准的分享清單。",
- "No pending shares" : "沒有擱置中的分享",
+ "No pending shares" : "沒有待處理的分享",
"Shares you have received but not approved will show up here" : "您收到但尚未核准的分享將會在此顯示",
- "Share note" : "分享訊息",
+ "Error deleting the share: {errorMessage}" : "刪除分享時發生錯誤:{errorMessage}",
+ "Error deleting the share" : "刪除分享時發生錯誤",
+ "Error updating the share: {errorMessage}" : "更新分享時發生錯誤:{errorMessage}",
+ "Error updating the share" : "更新分享時發生錯誤",
+ "File \"{path}\" has been unshared" : "檔案「{path}」已取消分享",
+ "Folder \"{path}\" has been unshared" : "資料夾「{path}」已取消分享",
+ "Could not update share" : "無法更新分享",
+ "Share saved" : "已儲存分享",
+ "Share expiry date saved" : "已儲存分享過期日期",
+ "Share hide-download state saved" : "已儲存分享隱藏下載狀態",
+ "Share label saved" : "分享標籤已儲存",
+ "Share note for recipient saved" : "已儲存給收件者的分享備註",
+ "Share password saved" : "分享密碼已儲存",
+ "Share permissions saved" : "已儲存分享權限",
+ "To upload files to {folder}, you need to provide your name first." : "要上傳檔案至 {folder},您必須先提供您的名稱。",
+ "Upload files to {folder}" : "上傳檔案到 {folder}",
+ "Please confirm your name to upload files to {folder}" : "請確認您的名稱以上傳檔案至 {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} 與您分享了一個資料夾。",
+ "Names must not be empty." : "名稱不能為空。",
+ "Names must not start with a dot." : "名稱不能以點開頭。",
+ "\"{char}\" is not allowed inside a name." : "「{char}」不能在名稱內使用。",
+ "\"{segment}\" is a reserved name and not allowed." : "「{segment}」為保留名稱且不允許使用。",
+ "\"{extension}\" is not an allowed name." : "「{extension}」不是允許的名稱。",
+ "Names must not end with \"{extension}\"." : "名稱不能以「{extension}」結尾。",
+ "Invalid name." : "無效的名稱。",
+ "Shared by" : "分享者",
+ "Shared with" : "分享給",
+ "Password created successfully" : "成功建立密碼",
+ "Error generating password from password policy" : "從密碼策略產生密碼時發生錯誤",
+ "Shared with you and the group {group} by {owner}" : "{owner} 與您和群組 {group} 分享",
+ "Shared with you and {circle} by {owner}" : "{owner} 與您和 {circle} 分享",
+ "Shared with you and the conversation {conversation} by {owner}" : "{owner} 與您和 {conversation} 對話分享",
+ "Shared with you in a conversation by {owner}" : "{owner} 在對話中與您分享",
+ "Share not found" : "找不到分享",
+ "Back to %s" : "回到 %s",
+ "Add to your Nextcloud" : "新增到您的 Nextcloud",
+ "Waiting…" : "正在等待…",
+ "error" : "錯誤",
+ "finished" : "已完成",
+ "This will stop your current uploads." : "這會停止您目前的上傳。",
+ "Move or copy" : "移動或複製",
+ "You can upload into this folder" : "您可以上傳到此資料夾",
+ "Show list view" : "顯示清單檢視",
+ "Show grid view" : "顯示格狀檢視",
+ "No compatible server found at {remote}" : "在 {remote} 找不到相容的伺服器",
+ "Invalid server URL" : "無效的伺服器 URL",
+ "Failed to add the public link to your Nextcloud" : "無法將公開連結新增到您的 Nextcloud",
+ "You are not allowed to edit link shares that you don't own" : "您無權編輯不屬於您的連結分享",
+ "Download all files" : "下載所有檔案",
+ "Link copied to clipboard" : "已複製連結至剪貼簿",
+ "_1 email address already added_::_{count} email addresses already added_" : ["已新增 {count} 個電子郵件地址"],
+ "_1 email address added_::_{count} email addresses added_" : ["已新增 {count} 個電子郵件地址"],
+ "Copy to clipboard" : "複製到剪貼簿",
+ "Copy internal link to clipboard" : "複製內部連結至剪貼簿",
+ "Only works for people with access to this folder" : "只對可以存取此資料夾的使用者生效",
+ "Only works for people with access to this file" : "只對可以存取此檔案的使用者生效",
+ "Copy public link of \"{title}\" to clipboard" : "將「{title}」的公開連結複製到剪貼簿",
+ "Search globally" : "全域搜尋",
+ "Search for share recipients" : "搜尋分享接收者",
+ "No recommendations. Start typing." : "沒有建議。請開始輸入。",
+ "To upload files, you need to provide your name first." : "要上傳檔案,您必須先提供您的名字。",
+ "Enter your name" : "輸入您的名稱",
+ "Submit name" : "遞交名稱",
+ "Share with {userName}" : "與 {userName} 分享",
+ "Show sharing options" : "顯示分享選項",
+ "Share note" : "分享備註",
"Upload files to %s" : "上傳檔案到 %s",
- "Note" : "筆記",
+ "%s shared a folder with you." : "%s 與您分享了一個資料夾。",
+ "Note" : "備註",
"Select or drop files" : "選取或拖曳檔案",
"Uploading files" : "正在上傳檔案",
"Uploaded files:" : "已上傳的檔案:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "上傳檔案即表示您同意%1$s服務條款%2$s。",
- "Add to your Nextcloud" : "新增到您的 Nextcloud",
- "Files and folders others share with you will show up here" : "與您分享的檔案與資料夾將會顯示在這裡",
- "Files and folders you share will show up here" : "您分享的檔案與資料夾將會顯示在這裡",
- "Files and folders you share by link will show up here" : "您分享的檔案與資料夾連結將會顯示在這裡",
- "Shares you deleted will show up here" : "您刪除的分享會在此顯示",
- "Shares you have received but not confirmed will show up here" : "您收到但尚未確認的分享將會在此顯示",
- "Shares will show up here" : "分享將會在此顯示",
- "Restore" : "還原",
- "Something happened. Unable to restore the share." : "好像有東西出錯了。無法還原分享。",
- "Something happened. Unable to accept the share." : "好像有東西出錯了。無法接受分享。",
- "Something happened. Unable to reject the share." : "好像有東西出錯了。無法拒絕分享。",
- "No expiration date set" : "未指定到期日",
- "Please specify a valid user" : "請指定有效使用者",
- "Please specify a valid federated user ID" : "請指定有效的聯盟使用者 ID",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "此應用程式讓使用者可以在 Nextcloud 中分享檔案。若啟用,管理員可以選擇哪些群組可以分享檔案。應用程式使用者可以與其他在 Nextcloud 中的使用者與群組分享檔案與資料夾。此外,如果管理員啟用了分享連結的功能,則可以使用外部連結與 Nextcloud 之外的使用者分享檔案。管理員也可以啟用密碼、到期日以及啟用透過分享連結的伺服器到伺服器分享,並可從行動裝置分享。\n將此功能關閉會移除伺服器上、同步客戶端與行動應用程式所有的分享收件者,以及檔案與資料夾。更多資訊請見 Nextcloud 文件。",
- "Accept user and group shares by default" : "預設接受使用者與群組分享",
- "Read only" : "唯讀",
- "File drop (upload only)" : "檔案投放(僅上傳)",
- "Upload" : "上傳",
- "Bundled permissions" : "權限套裝",
- "Only works for users with access to this folder" : "僅對可存取此資料夾的使用者有效",
- "Only works for users with access to this file" : "僅對可存取此檔案的使用者有效",
- "Circle" : "圈子",
- "Update" : "更新",
- "Share with " : "分享者",
- "No other users with access found" : "找不到其他有存取權的使用者",
- "No entries found in this folder" : "在此資料夾中沒有任何項目",
+ "By uploading files, you agree to the %1$sterms of service%2$s." : "上傳檔案即表示您同意 %1$s服務條款%2$s。",
"Name" : "名稱",
- "Share time" : "分享時間",
- "Sorry, this link does not seem to work anymore." : "抱歉,此連結似乎無法運作。",
- "Reasons might be:" : "可能的原因:",
- "the item was removed" : "項目已經移除",
- "the link expired" : "連結過期",
- "sharing is disabled" : "分享功能已停用",
- "For more info, please ask the person who sent this link." : "要取得更多資訊,請詢問傳送此連結給您的人。",
- "Share with remote" : "與遠端分享",
- "Share with" : "分享者"
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "使用此方法與組織內的個人或團隊分享檔案。如果收件者已經可以存取分享但找不到,您可以將內部分享連結傳送給他們,以方便存取。",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "使用此方法與組織外的個人或組織分享檔案。檔案與資料夾可以透過公開的分享連結與電子郵件地址來分享。您也可以使用其他 Nextcloud 帳號的聯邦雲端 ID,將檔案分享給託管在不同站台上的其他 Nextcloud 帳號。",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "不屬於內部或外部分享的分享。這可能是來自應用程式或其他來源的分享。",
+ "Share with accounts, teams, federated cloud id" : "與帳號、團隊、聯邦雲端ID 分享",
+ "Share with accounts and teams" : "與帳號及團隊分享",
+ "Federated cloud ID" : "聯邦雲端 ID",
+ "Email, federated cloud id" : "電子郵件、聯邦雲端 ID",
+ "Filename must not be empty." : "檔案名稱不能為空。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_sharing/lib/Activity/Filter.php b/apps/files_sharing/lib/Activity/Filter.php
index 0ac64301ec8..4f3c4a7c914 100644
--- a/apps/files_sharing/lib/Activity/Filter.php
+++ b/apps/files_sharing/lib/Activity/Filter.php
@@ -1,25 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Activity;
@@ -31,15 +14,10 @@ class Filter implements IFilter {
public const TYPE_REMOTE_SHARE = 'remote_share';
public const TYPE_SHARED = 'shared';
- /** @var IL10N */
- protected $l;
-
- /** @var IURLGenerator */
- protected $url;
-
- public function __construct(IL10N $l, IURLGenerator $url) {
- $this->l = $l;
- $this->url = $url;
+ public function __construct(
+ protected IL10N $l,
+ protected IURLGenerator $url,
+ ) {
}
/**
diff --git a/apps/files_sharing/lib/Activity/Providers/Base.php b/apps/files_sharing/lib/Activity/Providers/Base.php
index af5f7cd2698..7428af382fc 100644
--- a/apps/files_sharing/lib/Activity/Providers/Base.php
+++ b/apps/files_sharing/lib/Activity/Providers/Base.php
@@ -1,28 +1,12 @@
<?php
+
/**
- * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Activity\Providers;
+use OCP\Activity\Exceptions\UnknownActivityException;
use OCP\Activity\IEvent;
use OCP\Activity\IEventMerger;
use OCP\Activity\IManager;
@@ -35,47 +19,21 @@ use OCP\IUserManager;
use OCP\L10N\IFactory;
abstract class Base implements IProvider {
- /** @var IFactory */
- protected $languageFactory;
-
/** @var IL10N */
protected $l;
- /** @var IURLGenerator */
- protected $url;
-
- /** @var IManager */
- protected $activityManager;
-
- /** @var IUserManager */
- protected $userManager;
-
- /** @var IEventMerger */
- protected $eventMerger;
-
- /** @var IContactsManager */
- protected $contactsManager;
-
- /** @var ICloudIdManager */
- protected $cloudIdManager;
-
/** @var array */
protected $displayNames = [];
- public function __construct(IFactory $languageFactory,
- IURLGenerator $url,
- IManager $activityManager,
- IUserManager $userManager,
- ICloudIdManager $cloudIdManager,
- IContactsManager $contactsManager,
- IEventMerger $eventMerger) {
- $this->languageFactory = $languageFactory;
- $this->url = $url;
- $this->activityManager = $activityManager;
- $this->userManager = $userManager;
- $this->cloudIdManager = $cloudIdManager;
- $this->contactsManager = $contactsManager;
- $this->eventMerger = $eventMerger;
+ public function __construct(
+ protected IFactory $languageFactory,
+ protected IURLGenerator $url,
+ protected IManager $activityManager,
+ protected IUserManager $userManager,
+ protected ICloudIdManager $cloudIdManager,
+ protected IContactsManager $contactsManager,
+ protected IEventMerger $eventMerger,
+ ) {
}
/**
@@ -83,12 +41,12 @@ abstract class Base implements IProvider {
* @param IEvent $event
* @param IEvent|null $previousEvent
* @return IEvent
- * @throws \InvalidArgumentException
+ * @throws UnknownActivityException
* @since 11.0.0
*/
public function parse($language, IEvent $event, ?IEvent $previousEvent = null) {
if ($event->getApp() !== 'files_sharing') {
- throw new \InvalidArgumentException();
+ throw new UnknownActivityException();
}
$this->l = $this->languageFactory->get('files_sharing', $language);
@@ -137,11 +95,10 @@ abstract class Base implements IProvider {
protected function getFile($parameter, ?IEvent $event = null) {
if (is_array($parameter)) {
$path = reset($parameter);
- $id = (string) key($parameter);
+ $id = (string)key($parameter);
} elseif ($event !== null) {
- // Legacy from before ownCloud 8.2
$path = $parameter;
- $id = $event->getObjectId();
+ $id = (string)$event->getObjectId();
} else {
throw new \InvalidArgumentException('Could not generate file parameter');
}
diff --git a/apps/files_sharing/lib/Activity/Providers/Downloads.php b/apps/files_sharing/lib/Activity/Providers/Downloads.php
index 3566431757d..bddf2d30f73 100644
--- a/apps/files_sharing/lib/Activity/Providers/Downloads.php
+++ b/apps/files_sharing/lib/Activity/Providers/Downloads.php
@@ -1,25 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Activity\Providers;
@@ -41,11 +24,11 @@ class Downloads extends Base {
public function parseShortVersion(IEvent $event) {
$parsedParameters = $this->getParsedParameters($event);
- if ($event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED ||
- $event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED) {
+ if ($event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED
+ || $event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED) {
$subject = $this->l->t('Downloaded via public link');
- } elseif ($event->getSubject() === self::SUBJECT_SHARED_FILE_BY_EMAIL_DOWNLOADED ||
- $event->getSubject() === self::SUBJECT_SHARED_FOLDER_BY_EMAIL_DOWNLOADED) {
+ } elseif ($event->getSubject() === self::SUBJECT_SHARED_FILE_BY_EMAIL_DOWNLOADED
+ || $event->getSubject() === self::SUBJECT_SHARED_FOLDER_BY_EMAIL_DOWNLOADED) {
$subject = $this->l->t('Downloaded by {email}');
} else {
throw new \InvalidArgumentException();
@@ -71,8 +54,8 @@ class Downloads extends Base {
public function parseLongVersion(IEvent $event, ?IEvent $previousEvent = null) {
$parsedParameters = $this->getParsedParameters($event);
- if ($event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED ||
- $event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED) {
+ if ($event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED
+ || $event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED) {
if (!isset($parsedParameters['remote-address-hash']['type'])) {
$subject = $this->l->t('{file} downloaded via public link');
$this->setSubjects($event, $subject, $parsedParameters);
@@ -81,8 +64,8 @@ class Downloads extends Base {
$this->setSubjects($event, $subject, $parsedParameters);
$event = $this->eventMerger->mergeEvents('file', $event, $previousEvent);
}
- } elseif ($event->getSubject() === self::SUBJECT_SHARED_FILE_BY_EMAIL_DOWNLOADED ||
- $event->getSubject() === self::SUBJECT_SHARED_FOLDER_BY_EMAIL_DOWNLOADED) {
+ } elseif ($event->getSubject() === self::SUBJECT_SHARED_FILE_BY_EMAIL_DOWNLOADED
+ || $event->getSubject() === self::SUBJECT_SHARED_FOLDER_BY_EMAIL_DOWNLOADED) {
$subject = $this->l->t('{email} downloaded {file}');
$this->setSubjects($event, $subject, $parsedParameters);
} else {
diff --git a/apps/files_sharing/lib/Activity/Providers/Groups.php b/apps/files_sharing/lib/Activity/Providers/Groups.php
index ac6aaba9dbf..d0086c05ced 100644
--- a/apps/files_sharing/lib/Activity/Providers/Groups.php
+++ b/apps/files_sharing/lib/Activity/Providers/Groups.php
@@ -1,26 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Activity\Providers;
@@ -44,22 +26,20 @@ class Groups extends Base {
public const SUBJECT_EXPIRED_GROUP = 'expired_group';
- /** @var IGroupManager */
- protected $groupManager;
-
/** @var string[] */
protected $groupDisplayNames = [];
- public function __construct(IFactory $languageFactory,
+ public function __construct(
+ IFactory $languageFactory,
IURLGenerator $url,
IManager $activityManager,
IUserManager $userManager,
ICloudIdManager $cloudIdManager,
IContactsManager $contactsManager,
IEventMerger $eventMerger,
- IGroupManager $groupManager) {
+ protected IGroupManager $groupManager,
+ ) {
parent::__construct($languageFactory, $url, $activityManager, $userManager, $cloudIdManager, $contactsManager, $eventMerger);
- $this->groupManager = $groupManager;
}
/**
diff --git a/apps/files_sharing/lib/Activity/Providers/PublicLinks.php b/apps/files_sharing/lib/Activity/Providers/PublicLinks.php
index 264e3c7d5f7..15ffaf2cdb0 100644
--- a/apps/files_sharing/lib/Activity/Providers/PublicLinks.php
+++ b/apps/files_sharing/lib/Activity/Providers/PublicLinks.php
@@ -1,25 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Activity\Providers;
diff --git a/apps/files_sharing/lib/Activity/Providers/RemoteShares.php b/apps/files_sharing/lib/Activity/Providers/RemoteShares.php
index ea9e6895586..750d0747b62 100644
--- a/apps/files_sharing/lib/Activity/Providers/RemoteShares.php
+++ b/apps/files_sharing/lib/Activity/Providers/RemoteShares.php
@@ -1,26 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Robin Appelman <robin@icewind.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Activity\Providers;
diff --git a/apps/files_sharing/lib/Activity/Providers/Users.php b/apps/files_sharing/lib/Activity/Providers/Users.php
index 26ddbb06318..5c833ffae93 100644
--- a/apps/files_sharing/lib/Activity/Providers/Users.php
+++ b/apps/files_sharing/lib/Activity/Providers/Users.php
@@ -1,27 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Kevin Ndung'u <kevgathuku@gmail.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Activity\Providers;
diff --git a/apps/files_sharing/lib/Activity/Settings/PublicLinks.php b/apps/files_sharing/lib/Activity/Settings/PublicLinks.php
index 6d91bf16ce2..0d3d00d2a7b 100644
--- a/apps/files_sharing/lib/Activity/Settings/PublicLinks.php
+++ b/apps/files_sharing/lib/Activity/Settings/PublicLinks.php
@@ -1,25 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Robin Appelman <robin@icewind.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Activity\Settings;
@@ -42,8 +25,8 @@ class PublicLinks extends ShareActivitySettings {
/**
* @return int whether the filter should be rather on the top or bottom of
- * the admin section. The filters are arranged in ascending order of the
- * priority values. It is required to return a value between 0 and 100.
+ * the admin section. The filters are arranged in ascending order of the
+ * priority values. It is required to return a value between 0 and 100.
* @since 11.0.0
*/
public function getPriority() {
diff --git a/apps/files_sharing/lib/Activity/Settings/PublicLinksUpload.php b/apps/files_sharing/lib/Activity/Settings/PublicLinksUpload.php
new file mode 100644
index 00000000000..fd55752632d
--- /dev/null
+++ b/apps/files_sharing/lib/Activity/Settings/PublicLinksUpload.php
@@ -0,0 +1,67 @@
+<?php
+
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\Files_Sharing\Activity\Settings;
+
+class PublicLinksUpload extends ShareActivitySettings {
+ /**
+ * @return string Lowercase a-z and underscore only identifier
+ * @since 11.0.0
+ */
+ public function getIdentifier() {
+ return 'public_links_upload';
+ }
+
+ /**
+ * @return string A translated string
+ * @since 11.0.0
+ */
+ public function getName() {
+ return $this->l->t('Files have been <strong>uploaded</strong> to a folder shared by mail or by public link');
+ }
+
+ /**
+ * @return int whether the filter should be rather on the top or bottom of
+ * the admin section. The filters are arranged in ascending order of the
+ * priority values. It is required to return a value between 0 and 100.
+ * @since 11.0.0
+ */
+ public function getPriority() {
+ return 20;
+ }
+
+ /**
+ * @return bool True when the option can be changed for the stream
+ * @since 11.0.0
+ */
+ public function canChangeStream() {
+ return true;
+ }
+
+ /**
+ * @return bool True when the option can be changed for the stream
+ * @since 11.0.0
+ */
+ public function isDefaultEnabledStream() {
+ return true;
+ }
+
+ /**
+ * @return bool True when the option can be changed for the mail
+ * @since 11.0.0
+ */
+ public function canChangeMail() {
+ return true;
+ }
+
+ /**
+ * @return bool True when the option can be changed for the stream
+ * @since 11.0.0
+ */
+ public function isDefaultEnabledMail() {
+ return false;
+ }
+}
diff --git a/apps/files_sharing/lib/Activity/Settings/RemoteShare.php b/apps/files_sharing/lib/Activity/Settings/RemoteShare.php
index 4a796132612..c04364bef20 100644
--- a/apps/files_sharing/lib/Activity/Settings/RemoteShare.php
+++ b/apps/files_sharing/lib/Activity/Settings/RemoteShare.php
@@ -1,26 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Activity\Settings;
@@ -43,8 +25,8 @@ class RemoteShare extends ShareActivitySettings {
/**
* @return int whether the filter should be rather on the top or bottom of
- * the admin section. The filters are arranged in ascending order of the
- * priority values. It is required to return a value between 0 and 100.
+ * the admin section. The filters are arranged in ascending order of the
+ * priority values. It is required to return a value between 0 and 100.
* @since 11.0.0
*/
public function getPriority() {
diff --git a/apps/files_sharing/lib/Activity/Settings/ShareActivitySettings.php b/apps/files_sharing/lib/Activity/Settings/ShareActivitySettings.php
index e7de3dff8ee..4d8d8278433 100644
--- a/apps/files_sharing/lib/Activity/Settings/ShareActivitySettings.php
+++ b/apps/files_sharing/lib/Activity/Settings/ShareActivitySettings.php
@@ -3,25 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2020 Robin Appelman <robin@icewind.nl>
- *
- * @author Robin Appelman <robin@icewind.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Activity\Settings;
@@ -29,21 +12,19 @@ use OCP\Activity\ActivitySettings;
use OCP\IL10N;
abstract class ShareActivitySettings extends ActivitySettings {
- /** @var IL10N */
- protected $l;
-
/**
* @param IL10N $l
*/
- public function __construct(IL10N $l) {
- $this->l = $l;
+ public function __construct(
+ protected IL10N $l,
+ ) {
}
public function getGroupIdentifier() {
- return 'files';
+ return 'sharing';
}
public function getGroupName() {
- return $this->l->t('Files');
+ return $this->l->t('Sharing');
}
}
diff --git a/apps/files_sharing/lib/Activity/Settings/Shared.php b/apps/files_sharing/lib/Activity/Settings/Shared.php
index eaef23c1c92..3717512eebd 100644
--- a/apps/files_sharing/lib/Activity/Settings/Shared.php
+++ b/apps/files_sharing/lib/Activity/Settings/Shared.php
@@ -1,26 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Activity\Settings;
@@ -43,8 +25,8 @@ class Shared extends ShareActivitySettings {
/**
* @return int whether the filter should be rather on the top or bottom of
- * the admin section. The filters are arranged in ascending order of the
- * priority values. It is required to return a value between 0 and 100.
+ * the admin section. The filters are arranged in ascending order of the
+ * priority values. It is required to return a value between 0 and 100.
* @since 11.0.0
*/
public function getPriority() {
diff --git a/apps/files_sharing/lib/AppInfo/Application.php b/apps/files_sharing/lib/AppInfo/Application.php
index fc305e58dbe..8ddb3afaf33 100644
--- a/apps/files_sharing/lib/AppInfo/Application.php
+++ b/apps/files_sharing/lib/AppInfo/Application.php
@@ -1,31 +1,9 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\AppInfo;
@@ -35,10 +13,15 @@ use OC\User\DisplayNameCache;
use OCA\Files\Event\LoadAdditionalScriptsEvent;
use OCA\Files\Event\LoadSidebar;
use OCA\Files_Sharing\Capabilities;
+use OCA\Files_Sharing\Config\ConfigLexicon;
use OCA\Files_Sharing\External\Manager;
use OCA\Files_Sharing\External\MountProvider as ExternalMountProvider;
use OCA\Files_Sharing\Helper;
+use OCA\Files_Sharing\Listener\BeforeDirectFileDownloadListener;
+use OCA\Files_Sharing\Listener\BeforeNodeReadListener;
+use OCA\Files_Sharing\Listener\BeforeZipCreatedListener;
use OCA\Files_Sharing\Listener\LoadAdditionalListener;
+use OCA\Files_Sharing\Listener\LoadPublicFileRequestAuthListener;
use OCA\Files_Sharing\Listener\LoadSidebarListener;
use OCA\Files_Sharing\Listener\ShareInteractionListener;
use OCA\Files_Sharing\Listener\UserAddedToGroupListener;
@@ -51,24 +34,23 @@ use OCA\Files_Sharing\Notification\Listener;
use OCA\Files_Sharing\Notification\Notifier;
use OCA\Files_Sharing\ShareBackend\File;
use OCA\Files_Sharing\ShareBackend\Folder;
-use OCA\Files_Sharing\ViewOnly;
use OCP\AppFramework\App;
use OCP\AppFramework\Bootstrap\IBootContext;
use OCP\AppFramework\Bootstrap\IBootstrap;
use OCP\AppFramework\Bootstrap\IRegistrationContext;
+use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent;
use OCP\Collaboration\Resources\LoadAdditionalScriptsEvent as ResourcesLoadAdditionalScriptsEvent;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Federation\ICloudIdManager;
use OCP\Files\Config\IMountProviderCollection;
use OCP\Files\Events\BeforeDirectFileDownloadEvent;
use OCP\Files\Events\BeforeZipCreatedEvent;
-use OCP\Files\IRootFolder;
+use OCP\Files\Events\Node\BeforeNodeReadEvent;
use OCP\Group\Events\GroupChangedEvent;
use OCP\Group\Events\GroupDeletedEvent;
use OCP\Group\Events\UserAddedEvent;
use OCP\IDBConnection;
use OCP\IGroup;
-use OCP\IUserSession;
use OCP\Share\Events\ShareCreatedEvent;
use OCP\User\Events\UserChangedEvent;
use OCP\User\Events\UserDeletedEvent;
@@ -108,12 +90,31 @@ class Application extends App implements IBootstrap {
$context->registerEventListener(UserDeletedEvent::class, DisplayNameCache::class);
$context->registerEventListener(GroupChangedEvent::class, GroupDisplayNameCache::class);
$context->registerEventListener(GroupDeletedEvent::class, GroupDisplayNameCache::class);
+
+ // Sidebar and files scripts
+ $context->registerEventListener(LoadAdditionalScriptsEvent::class, LoadAdditionalListener::class);
+ $context->registerEventListener(LoadSidebar::class, LoadSidebarListener::class);
+ $context->registerEventListener(ShareCreatedEvent::class, ShareInteractionListener::class);
+ $context->registerEventListener(ShareCreatedEvent::class, UserShareAcceptanceListener::class);
+ $context->registerEventListener(UserAddedEvent::class, UserAddedToGroupListener::class);
+
+ // Publish activity for public download
+ $context->registerEventListener(BeforeNodeReadEvent::class, BeforeNodeReadListener::class);
+ $context->registerEventListener(BeforeZipCreatedEvent::class, BeforeNodeReadListener::class);
+
+ // Handle download events for view only checks. Priority higher than 0 to run early.
+ $context->registerEventListener(BeforeZipCreatedEvent::class, BeforeZipCreatedListener::class, 5);
+ $context->registerEventListener(BeforeDirectFileDownloadEvent::class, BeforeDirectFileDownloadListener::class, 5);
+
+ // File request auth
+ $context->registerEventListener(BeforeTemplateRenderedEvent::class, LoadPublicFileRequestAuthListener::class);
+
+ $context->registerConfigLexicon(ConfigLexicon::class);
}
public function boot(IBootContext $context): void {
$context->injectFn([$this, 'registerMountProviders']);
$context->injectFn([$this, 'registerEventsScripts']);
- $context->injectFn([$this, 'registerDownloadEvents']);
Helper::registerHooks();
@@ -128,16 +129,10 @@ class Application extends App implements IBootstrap {
}
public function registerEventsScripts(IEventDispatcher $dispatcher): void {
- // sidebar and files scripts
- $dispatcher->addServiceListener(LoadAdditionalScriptsEvent::class, LoadAdditionalListener::class);
- $dispatcher->addServiceListener(LoadSidebar::class, LoadSidebarListener::class);
- $dispatcher->addServiceListener(ShareCreatedEvent::class, ShareInteractionListener::class);
- $dispatcher->addServiceListener(ShareCreatedEvent::class, UserShareAcceptanceListener::class);
- $dispatcher->addServiceListener(UserAddedEvent::class, UserAddedToGroupListener::class);
- $dispatcher->addListener(ResourcesLoadAdditionalScriptsEvent::class, function () {
- \OCP\Util::addScript('files_sharing', 'collaboration');
+ $dispatcher->addListener(ResourcesLoadAdditionalScriptsEvent::class, function (): void {
+ Util::addScript('files_sharing', 'collaboration');
});
- $dispatcher->addListener(\OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent::class, function () {
+ $dispatcher->addListener(BeforeTemplateRenderedEvent::class, function (): void {
/**
* Always add main sharing script
*/
@@ -145,12 +140,12 @@ class Application extends App implements IBootstrap {
});
// notifications api to accept incoming user shares
- $dispatcher->addListener(ShareCreatedEvent::class, function (ShareCreatedEvent $event) {
+ $dispatcher->addListener(ShareCreatedEvent::class, function (ShareCreatedEvent $event): void {
/** @var Listener $listener */
$listener = $this->getContainer()->query(Listener::class);
$listener->shareNotification($event);
});
- $dispatcher->addListener(IGroup::class . '::postAddUser', function ($event) {
+ $dispatcher->addListener(IGroup::class . '::postAddUser', function ($event): void {
if (!$event instanceof OldGenericEvent) {
return;
}
@@ -159,58 +154,4 @@ class Application extends App implements IBootstrap {
$listener->userAddedToGroup($event);
});
}
-
- public function registerDownloadEvents(
- IEventDispatcher $dispatcher,
- IUserSession $userSession,
- IRootFolder $rootFolder
- ): void {
-
- $dispatcher->addListener(
- BeforeDirectFileDownloadEvent::class,
- function (BeforeDirectFileDownloadEvent $event) use ($userSession, $rootFolder): void {
- $pathsToCheck = [$event->getPath()];
- // Check only for user/group shares. Don't restrict e.g. share links
- $user = $userSession->getUser();
- if ($user) {
- $viewOnlyHandler = new ViewOnly(
- $rootFolder->getUserFolder($user->getUID())
- );
- if (!$viewOnlyHandler->check($pathsToCheck)) {
- $event->setSuccessful(false);
- $event->setErrorMessage('Access to this resource or one of its sub-items has been denied.');
- }
- }
- }
- );
-
- $dispatcher->addListener(
- BeforeZipCreatedEvent::class,
- function (BeforeZipCreatedEvent $event) use ($userSession, $rootFolder): void {
- $dir = $event->getDirectory();
- $files = $event->getFiles();
-
- $pathsToCheck = [];
- foreach ($files as $file) {
- $pathsToCheck[] = $dir . '/' . $file;
- }
-
- // Check only for user/group shares. Don't restrict e.g. share links
- $user = $userSession->getUser();
- if ($user) {
- $viewOnlyHandler = new ViewOnly(
- $rootFolder->getUserFolder($user->getUID())
- );
- if (!$viewOnlyHandler->check($pathsToCheck)) {
- $event->setErrorMessage('Access to this resource or one of its sub-items has been denied.');
- $event->setSuccessful(false);
- } else {
- $event->setSuccessful(true);
- }
- } else {
- $event->setSuccessful(true);
- }
- }
- );
- }
}
diff --git a/apps/files_sharing/lib/BackgroundJob/FederatedSharesDiscoverJob.php b/apps/files_sharing/lib/BackgroundJob/FederatedSharesDiscoverJob.php
index 75606960e4b..ca4c82c03d7 100644
--- a/apps/files_sharing/lib/BackgroundJob/FederatedSharesDiscoverJob.php
+++ b/apps/files_sharing/lib/BackgroundJob/FederatedSharesDiscoverJob.php
@@ -3,27 +3,8 @@
declare(strict_types=1);
/**
- * @copyright 2018, Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Maxence Lange <maxence@artificial-owl.com>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\BackgroundJob;
@@ -45,7 +26,8 @@ class FederatedSharesDiscoverJob extends TimedJob {
private LoggerInterface $logger,
) {
parent::__construct($time);
- $this->setInterval(86400);
+ $this->setInterval(24 * 60 * 60);
+ $this->setTimeSensitivity(self::TIME_INSENSITIVE);
}
public function run($argument) {
@@ -54,7 +36,7 @@ class FederatedSharesDiscoverJob extends TimedJob {
$qb->selectDistinct('remote')
->from('share_external');
- $result = $qb->execute();
+ $result = $qb->executeQuery();
while ($row = $result->fetch()) {
$this->discoveryService->discover($row['remote'], 'FEDERATED_SHARING', true);
try {
diff --git a/apps/files_sharing/lib/Cache.php b/apps/files_sharing/lib/Cache.php
index 5160b7e821a..f9042fc0765 100644
--- a/apps/files_sharing/lib/Cache.php
+++ b/apps/files_sharing/lib/Cache.php
@@ -1,30 +1,9 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- * @author Christopher Schäpers <kondou@ts.unde.re>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Jörn Friedrich Dreyer <jfd@butonic.de>
- * @author Michael Gapczynski <GapczynskiM@gmail.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing;
@@ -49,29 +28,22 @@ use OCP\Share\IShare;
* don't use this class directly if you need to get metadata, use \OC\Files\Filesystem::getFileInfo instead
*/
class Cache extends CacheJail {
- /** @var SharedStorage */
- private $storage;
- private ICacheEntry $sourceRootInfo;
private bool $rootUnchanged = true;
private ?string $ownerDisplayName = null;
private $numericId;
private DisplayNameCache $displayNameCache;
- private IShare $share;
/**
* @param SharedStorage $storage
*/
public function __construct(
- $storage,
- ICacheEntry $sourceRootInfo,
+ private $storage,
+ private ICacheEntry $sourceRootInfo,
CacheDependencies $dependencies,
- IShare $share
+ private IShare $share,
) {
- $this->storage = $storage;
- $this->sourceRootInfo = $sourceRootInfo;
- $this->numericId = $sourceRootInfo->getStorageId();
+ $this->numericId = $this->sourceRootInfo->getStorageId();
$this->displayNameCache = $dependencies->getDisplayNameCache();
- $this->share = $share;
parent::__construct(
null,
@@ -92,12 +64,12 @@ class Cache extends CacheJail {
/** @var Jail $currentStorage */
$absoluteRoot = $currentStorage->getJailedPath($absoluteRoot);
}
- $this->root = $absoluteRoot;
+ $this->root = $absoluteRoot ?? '';
}
return $this->root;
}
- protected function getGetUnjailedRoot() {
+ public function getGetUnjailedRoot(): string {
return $this->sourceRootInfo->getPath();
}
@@ -144,7 +116,7 @@ class Cache extends CacheJail {
parent::remove($file);
}
- public function moveFromCache(\OCP\Files\Cache\ICache $sourceCache, $sourcePath, $targetPath) {
+ public function moveFromCache(ICache $sourceCache, $sourcePath, $targetPath) {
$this->rootUnchanged = false;
return parent::moveFromCache($sourceCache, $sourcePath, $targetPath);
}
@@ -220,4 +192,8 @@ class Cache extends CacheJail {
return null;
}
}
+
+ public function markRootChanged(): void {
+ $this->rootUnchanged = false;
+ }
}
diff --git a/apps/files_sharing/lib/Capabilities.php b/apps/files_sharing/lib/Capabilities.php
index defeb517a01..06aa1271c8f 100644
--- a/apps/files_sharing/lib/Capabilities.php
+++ b/apps/files_sharing/lib/Capabilities.php
@@ -1,34 +1,17 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Tobias Kaminsky <tobias@kaminsky.me>
- * @author Vincent Petry <vincent@nextcloud.com>
- * @author Kate Döen <kate.doeen@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing;
+use OC\Core\AppInfo\ConfigLexicon;
+use OCP\App\IAppManager;
use OCP\Capabilities\ICapability;
use OCP\Constants;
+use OCP\IAppConfig;
use OCP\IConfig;
use OCP\Share\IManager;
@@ -38,15 +21,12 @@ use OCP\Share\IManager;
* @package OCA\Files_Sharing
*/
class Capabilities implements ICapability {
-
- /** @var IConfig */
- private $config;
- /** @var IManager */
- private $shareManager;
-
- public function __construct(IConfig $config, IManager $shareManager) {
- $this->config = $config;
- $this->shareManager = $shareManager;
+ public function __construct(
+ private IConfig $config,
+ private readonly IAppConfig $appConfig,
+ private IManager $shareManager,
+ private IAppManager $appManager,
+ ) {
}
/**
@@ -80,6 +60,7 @@ class Capabilities implements ICapability {
* send_mail?: bool,
* upload?: bool,
* upload_files_drop?: bool,
+ * custom_tokens?: bool,
* },
* user: array{
* send_mail: bool,
@@ -133,7 +114,7 @@ class Capabilities implements ICapability {
if ($public['password']['enforced']) {
$public['password']['askForOptionalPassword'] = false;
} else {
- $public['password']['askForOptionalPassword'] = ($this->config->getAppValue('core', 'shareapi_enable_link_password_by_default', 'no') === 'yes');
+ $public['password']['askForOptionalPassword'] = $this->appConfig->getValueBool('core', ConfigLexicon::SHARE_LINK_PASSWORD_DEFAULT);
}
$public['expire_date'] = [];
@@ -161,6 +142,7 @@ class Capabilities implements ICapability {
$public['send_mail'] = $this->config->getAppValue('core', 'shareapi_allow_public_notification', 'no') === 'yes';
$public['upload'] = $this->shareManager->shareApiLinkAllowPublicUpload();
$public['upload_files_drop'] = $public['upload'];
+ $public['custom_tokens'] = $this->shareManager->allowCustomTokens();
}
$res['public'] = $public;
@@ -180,14 +162,23 @@ class Capabilities implements ICapability {
}
//Federated sharing
- $res['federation'] = [
- 'outgoing' => $this->shareManager->outgoingServer2ServerSharesAllowed(),
- 'incoming' => $this->config->getAppValue('files_sharing', 'incoming_server2server_share_enabled', 'yes') === 'yes',
- // old bogus one, expire_date was not working before, keeping for compatibility
- 'expire_date' => ['enabled' => true],
- // the real deal, signifies that expiration date can be set on federated shares
- 'expire_date_supported' => ['enabled' => true],
- ];
+ if ($this->appManager->isEnabledForAnyone('federation')) {
+ $res['federation'] = [
+ 'outgoing' => $this->shareManager->outgoingServer2ServerSharesAllowed(),
+ 'incoming' => $this->config->getAppValue('files_sharing', 'incoming_server2server_share_enabled', 'yes') === 'yes',
+ // old bogus one, expire_date was not working before, keeping for compatibility
+ 'expire_date' => ['enabled' => true],
+ // the real deal, signifies that expiration date can be set on federated shares
+ 'expire_date_supported' => ['enabled' => true],
+ ];
+ } else {
+ $res['federation'] = [
+ 'outgoing' => false,
+ 'incoming' => false,
+ 'expire_date' => ['enabled' => false],
+ 'expire_date_supported' => ['enabled' => false],
+ ];
+ }
// Sharee searches
$res['sharee'] = [
diff --git a/apps/files_sharing/lib/Collaboration/ShareRecipientSorter.php b/apps/files_sharing/lib/Collaboration/ShareRecipientSorter.php
index ee2d0e9885e..803dfd6325f 100644
--- a/apps/files_sharing/lib/Collaboration/ShareRecipientSorter.php
+++ b/apps/files_sharing/lib/Collaboration/ShareRecipientSorter.php
@@ -1,25 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de>
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Collaboration;
@@ -31,14 +14,11 @@ use OCP\Share\IManager;
class ShareRecipientSorter implements ISorter {
- private IManager $shareManager;
- private IRootFolder $rootFolder;
- private IUserSession $userSession;
-
- public function __construct(IManager $shareManager, IRootFolder $rootFolder, IUserSession $userSession) {
- $this->shareManager = $shareManager;
- $this->rootFolder = $rootFolder;
- $this->userSession = $userSession;
+ public function __construct(
+ private IManager $shareManager,
+ private IRootFolder $rootFolder,
+ private IUserSession $userSession,
+ ) {
}
public function getId(): string {
diff --git a/apps/files_sharing/lib/Command/CleanupRemoteStorages.php b/apps/files_sharing/lib/Command/CleanupRemoteStorages.php
index de4c7862785..809481e5c0f 100644
--- a/apps/files_sharing/lib/Command/CleanupRemoteStorages.php
+++ b/apps/files_sharing/lib/Command/CleanupRemoteStorages.php
@@ -1,27 +1,9 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud GmbH.
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Calviño Sánchez <danxuliu@gmail.com>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Jörn Friedrich Dreyer <jfd@butonic.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud GmbH.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Command;
@@ -39,19 +21,10 @@ use Symfony\Component\Console\Output\OutputInterface;
*/
class CleanupRemoteStorages extends Command {
- /**
- * @var IDBConnection
- */
- protected $connection;
-
- /**
- * @var ICloudIdManager
- */
- private $cloudIdManager;
-
- public function __construct(IDBConnection $connection, ICloudIdManager $cloudIdManager) {
- $this->connection = $connection;
- $this->cloudIdManager = $cloudIdManager;
+ public function __construct(
+ protected IDBConnection $connection,
+ private ICloudIdManager $cloudIdManager,
+ ) {
parent::__construct();
}
diff --git a/apps/files_sharing/lib/Command/DeleteOrphanShares.php b/apps/files_sharing/lib/Command/DeleteOrphanShares.php
index 57158774758..a7e96387d60 100644
--- a/apps/files_sharing/lib/Command/DeleteOrphanShares.php
+++ b/apps/files_sharing/lib/Command/DeleteOrphanShares.php
@@ -2,23 +2,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2023 Robin Appelman <robin@icewind.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Command;
@@ -32,11 +17,10 @@ use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Question\ConfirmationQuestion;
class DeleteOrphanShares extends Base {
- private OrphanHelper $orphanHelper;
-
- public function __construct(OrphanHelper $orphanHelper) {
+ public function __construct(
+ private OrphanHelper $orphanHelper,
+ ) {
parent::__construct();
- $this->orphanHelper = $orphanHelper;
}
protected function configure(): void {
@@ -64,7 +48,7 @@ class DeleteOrphanShares extends Base {
if ($exists) {
$output->writeln(" file still exists but the share owner lost access to it, run <info>occ info:file {$share['fileid']}</info> for more information about the file");
} else {
- $output->writeln(" file no longer exists");
+ $output->writeln(' file no longer exists');
}
}
}
@@ -72,14 +56,14 @@ class DeleteOrphanShares extends Base {
$count = count($orphans);
if ($count === 0) {
- $output->writeln("No orphan shares detected");
+ $output->writeln('No orphan shares detected');
return 0;
}
if ($force) {
$doDelete = true;
} else {
- $output->writeln("");
+ $output->writeln('');
/** @var QuestionHelper $helper */
$helper = $this->getHelper('question');
$question = new ConfirmationQuestion("Delete <info>$count</info> orphan shares? [y/N] ", false);
diff --git a/apps/files_sharing/lib/Command/ExiprationNotification.php b/apps/files_sharing/lib/Command/ExiprationNotification.php
index b0311e09221..b7ea5c5f14e 100644
--- a/apps/files_sharing/lib/Command/ExiprationNotification.php
+++ b/apps/files_sharing/lib/Command/ExiprationNotification.php
@@ -3,29 +3,12 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2019, Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Command;
+use OCA\Files_Sharing\OrphanHelper;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\IDBConnection;
use OCP\Notification\IManager as NotificationManager;
@@ -36,25 +19,14 @@ use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class ExiprationNotification extends Command {
- /** @var NotificationManager */
- private $notificationManager;
- /** @var IDBConnection */
- private $connection;
- /** @var ITimeFactory */
- private $time;
- /** @var ShareManager */
- private $shareManager;
-
- public function __construct(ITimeFactory $time,
- NotificationManager $notificationManager,
- IDBConnection $connection,
- ShareManager $shareManager) {
+ public function __construct(
+ private ITimeFactory $time,
+ private NotificationManager $notificationManager,
+ private IDBConnection $connection,
+ private ShareManager $shareManager,
+ private OrphanHelper $orphanHelper,
+ ) {
parent::__construct();
-
- $this->notificationManager = $notificationManager;
- $this->connection = $connection;
- $this->time = $time;
- $this->shareManager = $shareManager;
}
protected function configure() {
@@ -80,7 +52,8 @@ class ExiprationNotification extends Command {
foreach ($shares as $share) {
if ($share->getExpirationDate() === null
|| $share->getExpirationDate()->getTimestamp() < $minTime->getTimestamp()
- || $share->getExpirationDate()->getTimestamp() > $maxTime->getTimestamp()) {
+ || $share->getExpirationDate()->getTimestamp() > $maxTime->getTimestamp()
+ || !$this->orphanHelper->isShareValid($share->getSharedBy(), $share->getNodeId())) {
continue;
}
diff --git a/apps/files_sharing/lib/Command/FixShareOwners.php b/apps/files_sharing/lib/Command/FixShareOwners.php
new file mode 100644
index 00000000000..1cf5f82f5a8
--- /dev/null
+++ b/apps/files_sharing/lib/Command/FixShareOwners.php
@@ -0,0 +1,65 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\Files_Sharing\Command;
+
+use OC\Core\Command\Base;
+use OCA\Files_Sharing\OrphanHelper;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class FixShareOwners extends Base {
+ public function __construct(
+ private readonly OrphanHelper $orphanHelper,
+ ) {
+ parent::__construct();
+ }
+
+ protected function configure(): void {
+ $this
+ ->setName('sharing:fix-share-owners')
+ ->setDescription('Fix owner of broken shares after transfer ownership on old versions')
+ ->addOption(
+ 'dry-run',
+ null,
+ InputOption::VALUE_NONE,
+ 'only show which shares would be updated'
+ );
+ }
+
+ public function execute(InputInterface $input, OutputInterface $output): int {
+ $shares = $this->orphanHelper->getAllShares();
+ $dryRun = $input->getOption('dry-run');
+ $count = 0;
+
+ foreach ($shares as $share) {
+ if ($this->orphanHelper->isShareValid($share['owner'], $share['fileid']) || !$this->orphanHelper->fileExists($share['fileid'])) {
+ continue;
+ }
+
+ $owner = $this->orphanHelper->findOwner($share['fileid']);
+
+ if ($owner !== null) {
+ if ($dryRun) {
+ $output->writeln("Share with id <info>{$share['id']}</info> (target: <info>{$share['target']}</info>) can be updated to owner <info>$owner</info>");
+ } else {
+ $this->orphanHelper->updateShareOwner($share['id'], $owner);
+ $output->writeln("Share with id <info>{$share['id']}</info> (target: <info>{$share['target']}</info>) updated to owner <info>$owner</info>");
+ }
+ $count++;
+ }
+ }
+
+ if ($count === 0) {
+ $output->writeln('No broken shares detected');
+ }
+
+ return static::SUCCESS;
+ }
+}
diff --git a/apps/files_sharing/lib/Command/ListShares.php b/apps/files_sharing/lib/Command/ListShares.php
new file mode 100644
index 00000000000..2d5cdbf7812
--- /dev/null
+++ b/apps/files_sharing/lib/Command/ListShares.php
@@ -0,0 +1,161 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2025 Robin Appelman <robin@icewind.nl>
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\Files_Sharing\Command;
+
+use OC\Core\Command\Base;
+use OCP\Files\Folder;
+use OCP\Files\IRootFolder;
+use OCP\Files\Node;
+use OCP\Files\NotFoundException;
+use OCP\Share\IManager;
+use OCP\Share\IShare;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class ListShares extends Base {
+ /** @var array<string, Node> */
+ private array $fileCache = [];
+
+ private const SHARE_TYPE_NAMES = [
+ IShare::TYPE_USER => 'user',
+ IShare::TYPE_GROUP => 'group',
+ IShare::TYPE_LINK => 'link',
+ IShare::TYPE_EMAIL => 'email',
+ IShare::TYPE_REMOTE => 'remote',
+ IShare::TYPE_REMOTE_GROUP => 'group',
+ IShare::TYPE_ROOM => 'room',
+ IShare::TYPE_DECK => 'deck',
+ ];
+
+ public function __construct(
+ private readonly IManager $shareManager,
+ private readonly IRootFolder $rootFolder,
+ ) {
+ parent::__construct();
+ }
+
+ protected function configure() {
+ parent::configure();
+ $this
+ ->setName('share:list')
+ ->setDescription('List available shares')
+ ->addOption('owner', null, InputOption::VALUE_REQUIRED, 'only show shares owned by a specific user')
+ ->addOption('recipient', null, InputOption::VALUE_REQUIRED, 'only show shares with a specific recipient')
+ ->addOption('by', null, InputOption::VALUE_REQUIRED, 'only show shares with by as specific user')
+ ->addOption('file', null, InputOption::VALUE_REQUIRED, 'only show shares of a specific file')
+ ->addOption('parent', null, InputOption::VALUE_REQUIRED, 'only show shares of files inside a specific folder')
+ ->addOption('recursive', null, InputOption::VALUE_NONE, 'also show shares nested deep inside the specified parent folder')
+ ->addOption('type', null, InputOption::VALUE_REQUIRED, 'only show shares of a specific type')
+ ->addOption('status', null, InputOption::VALUE_REQUIRED, 'only show shares with a specific status');
+ }
+
+ public function execute(InputInterface $input, OutputInterface $output): int {
+ if ($input->getOption('recursive') && !$input->getOption('parent')) {
+ $output->writeln("<error>recursive option can't be used without parent option</error>");
+ return 1;
+ }
+
+ // todo: do some pre-filtering instead of first querying all shares
+ /** @var \Iterator<IShare> $allShares */
+ $allShares = $this->shareManager->getAllShares();
+ $shares = new \CallbackFilterIterator($allShares, function (IShare $share) use ($input) {
+ return $this->shouldShowShare($input, $share);
+ });
+ $shares = iterator_to_array($shares);
+ $data = array_map(function (IShare $share) {
+ return [
+ 'id' => $share->getId(),
+ 'file' => $share->getNodeId(),
+ 'target-path' => $share->getTarget(),
+ 'source-path' => $share->getNode()->getPath(),
+ 'owner' => $share->getShareOwner(),
+ 'recipient' => $share->getSharedWith(),
+ 'by' => $share->getSharedBy(),
+ 'type' => self::SHARE_TYPE_NAMES[$share->getShareType()] ?? 'unknown',
+ ];
+ }, $shares);
+
+ $this->writeTableInOutputFormat($input, $output, $data);
+ return 0;
+ }
+
+ private function getFileId(string $file): int {
+ if (is_numeric($file)) {
+ return (int)$file;
+ }
+ return $this->getFile($file)->getId();
+ }
+
+ private function getFile(string $file): Node {
+ if (isset($this->fileCache[$file])) {
+ return $this->fileCache[$file];
+ }
+
+ if (is_numeric($file)) {
+ $node = $this->rootFolder->getFirstNodeById((int)$file);
+ if (!$node) {
+ throw new NotFoundException("File with id $file not found");
+ }
+ } else {
+ $node = $this->rootFolder->get($file);
+ }
+ $this->fileCache[$file] = $node;
+ return $node;
+ }
+
+ private function getShareType(string $type): int {
+ foreach (self::SHARE_TYPE_NAMES as $shareType => $shareTypeName) {
+ if ($shareTypeName === $type) {
+ return $shareType;
+ }
+ }
+ throw new \Exception("Unknown share type $type");
+ }
+
+ private function shouldShowShare(InputInterface $input, IShare $share): bool {
+ if ($input->getOption('owner') && $share->getShareOwner() !== $input->getOption('owner')) {
+ return false;
+ }
+ if ($input->getOption('recipient') && $share->getSharedWith() !== $input->getOption('recipient')) {
+ return false;
+ }
+ if ($input->getOption('by') && $share->getSharedBy() !== $input->getOption('by')) {
+ return false;
+ }
+ if ($input->getOption('file') && $share->getNodeId() !== $this->getFileId($input->getOption('file'))) {
+ return false;
+ }
+ if ($input->getOption('parent')) {
+ $parent = $this->getFile($input->getOption('parent'));
+ if (!$parent instanceof Folder) {
+ throw new \Exception("Parent {$parent->getPath()} is not a folder");
+ }
+ $recursive = $input->getOption('recursive');
+ if (!$recursive) {
+ $shareCacheEntry = $share->getNodeCacheEntry();
+ if (!$shareCacheEntry) {
+ $shareCacheEntry = $share->getNode();
+ }
+ if ($shareCacheEntry->getParentId() !== $parent->getId()) {
+ return false;
+ }
+ } else {
+ $shareNode = $share->getNode();
+ if ($parent->getRelativePath($shareNode->getPath()) === null) {
+ return false;
+ }
+ }
+ }
+ if ($input->getOption('type') && $share->getShareType() !== $this->getShareType($input->getOption('type'))) {
+ return false;
+ }
+ return true;
+ }
+}
diff --git a/apps/files_sharing/lib/Config/ConfigLexicon.php b/apps/files_sharing/lib/Config/ConfigLexicon.php
new file mode 100644
index 00000000000..c2743a2c4ce
--- /dev/null
+++ b/apps/files_sharing/lib/Config/ConfigLexicon.php
@@ -0,0 +1,41 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\Files_Sharing\Config;
+
+use OCP\Config\Lexicon\Entry;
+use OCP\Config\Lexicon\ILexicon;
+use OCP\Config\Lexicon\Strictness;
+use OCP\Config\ValueType;
+
+/**
+ * Config Lexicon for files_sharing.
+ *
+ * Please Add & Manage your Config Keys in that file and keep the Lexicon up to date!
+ *
+ * {@see ILexicon}
+ */
+class ConfigLexicon implements ILexicon {
+ public const SHOW_FEDERATED_AS_INTERNAL = 'show_federated_shares_as_internal';
+ public const SHOW_FEDERATED_TO_TRUSTED_AS_INTERNAL = 'show_federated_shares_to_trusted_servers_as_internal';
+
+ public function getStrictness(): Strictness {
+ return Strictness::IGNORE;
+ }
+
+ public function getAppConfigs(): array {
+ return [
+ new Entry(self::SHOW_FEDERATED_AS_INTERNAL, ValueType::BOOL, false, 'shows federated shares as internal shares', true),
+ new Entry(self::SHOW_FEDERATED_TO_TRUSTED_AS_INTERNAL, ValueType::BOOL, false, 'shows federated shares to trusted servers as internal shares', true),
+ ];
+ }
+
+ public function getUserConfigs(): array {
+ return [];
+ }
+}
diff --git a/apps/files_sharing/lib/Controller/AcceptController.php b/apps/files_sharing/lib/Controller/AcceptController.php
index 603f0089ba8..721ddec7d2b 100644
--- a/apps/files_sharing/lib/Controller/AcceptController.php
+++ b/apps/files_sharing/lib/Controller/AcceptController.php
@@ -3,31 +3,15 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2020, Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Kate Döen <kate.doeen@nextcloud.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Controller;
use OCA\Files_Sharing\AppInfo\Application;
use OCP\AppFramework\Controller;
+use OCP\AppFramework\Http\Attribute\NoAdminRequired;
+use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
use OCP\AppFramework\Http\Attribute\OpenAPI;
use OCP\AppFramework\Http\NotFoundResponse;
use OCP\AppFramework\Http\RedirectResponse;
@@ -41,27 +25,17 @@ use OCP\Share\IManager as ShareManager;
#[OpenAPI(scope: OpenAPI::SCOPE_IGNORE)]
class AcceptController extends Controller {
- /** @var ShareManager */
- private $shareManager;
-
- /** @var IUserSession */
- private $userSession;
-
- /** @var IURLGenerator */
- private $urlGenerator;
-
- public function __construct(IRequest $request, ShareManager $shareManager, IUserSession $userSession, IURLGenerator $urlGenerator) {
+ public function __construct(
+ IRequest $request,
+ private ShareManager $shareManager,
+ private IUserSession $userSession,
+ private IURLGenerator $urlGenerator,
+ ) {
parent::__construct(Application::APP_ID, $request);
-
- $this->shareManager = $shareManager;
- $this->userSession = $userSession;
- $this->urlGenerator = $urlGenerator;
}
- /**
- * @NoAdminRequired
- * @NoCSRFRequired
- */
+ #[NoAdminRequired]
+ #[NoCSRFRequired]
public function accept(string $shareId): Response {
try {
$share = $this->shareManager->getShareById($shareId);
diff --git a/apps/files_sharing/lib/Controller/DeletedShareAPIController.php b/apps/files_sharing/lib/Controller/DeletedShareAPIController.php
index c405c382329..2fa4d7c668f 100644
--- a/apps/files_sharing/lib/Controller/DeletedShareAPIController.php
+++ b/apps/files_sharing/lib/Controller/DeletedShareAPIController.php
@@ -3,48 +3,28 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2016 Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Calviño Sánchez <danxuliu@gmail.com>
- * @author Joas Schilling <coding@schilljs.com>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Kate Döen <kate.doeen@nextcloud.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Controller;
+use OCA\Deck\Sharing\ShareAPIHelper;
use OCA\Files_Sharing\ResponseDefinitions;
use OCP\App\IAppManager;
use OCP\AppFramework\Http;
+use OCP\AppFramework\Http\Attribute\NoAdminRequired;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCS\OCSException;
use OCP\AppFramework\OCS\OCSNotFoundException;
use OCP\AppFramework\OCSController;
use OCP\AppFramework\QueryException;
+use OCP\Files\Folder;
use OCP\Files\IRootFolder;
use OCP\Files\NotFoundException;
use OCP\IGroupManager;
use OCP\IRequest;
-use OCP\IServerContainer;
use OCP\IUserManager;
+use OCP\Server;
use OCP\Share\Exceptions\GenericShareException;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IManager as ShareManager;
@@ -55,45 +35,17 @@ use OCP\Share\IShare;
*/
class DeletedShareAPIController extends OCSController {
- /** @var ShareManager */
- private $shareManager;
-
- /** @var string */
- private $userId;
-
- /** @var IUserManager */
- private $userManager;
-
- /** @var IGroupManager */
- private $groupManager;
-
- /** @var IRootFolder */
- private $rootFolder;
-
- /** @var IAppManager */
- private $appManager;
-
- /** @var IServerContainer */
- private $serverContainer;
-
- public function __construct(string $appName,
+ public function __construct(
+ string $appName,
IRequest $request,
- ShareManager $shareManager,
- string $UserId,
- IUserManager $userManager,
- IGroupManager $groupManager,
- IRootFolder $rootFolder,
- IAppManager $appManager,
- IServerContainer $serverContainer) {
+ private ShareManager $shareManager,
+ private ?string $userId,
+ private IUserManager $userManager,
+ private IGroupManager $groupManager,
+ private IRootFolder $rootFolder,
+ private IAppManager $appManager,
+ ) {
parent::__construct($appName, $request);
-
- $this->shareManager = $shareManager;
- $this->userId = $UserId;
- $this->userManager = $userManager;
- $this->groupManager = $groupManager;
- $this->rootFolder = $rootFolder;
- $this->appManager = $appManager;
- $this->serverContainer = $serverContainer;
}
/**
@@ -127,7 +79,7 @@ class DeletedShareAPIController extends OCSController {
}
$result['path'] = $userFolder->getRelativePath($node->getPath());
- if ($node instanceof \OCP\Files\Folder) {
+ if ($node instanceof Folder) {
$result['item_type'] = 'folder';
} else {
$result['item_type'] = 'file';
@@ -181,41 +133,40 @@ class DeletedShareAPIController extends OCSController {
}
/**
- * @NoAdminRequired
- *
* Get a list of all deleted shares
*
- * @return DataResponse<Http::STATUS_OK, Files_SharingDeletedShare[], array{}>
+ * @return DataResponse<Http::STATUS_OK, list<Files_SharingDeletedShare>, array{}>
*
* 200: Deleted shares returned
*/
+ #[NoAdminRequired]
public function index(): DataResponse {
$groupShares = $this->shareManager->getDeletedSharedWith($this->userId, IShare::TYPE_GROUP, null, -1, 0);
+ $teamShares = $this->shareManager->getDeletedSharedWith($this->userId, IShare::TYPE_CIRCLE, null, -1, 0);
$roomShares = $this->shareManager->getDeletedSharedWith($this->userId, IShare::TYPE_ROOM, null, -1, 0);
$deckShares = $this->shareManager->getDeletedSharedWith($this->userId, IShare::TYPE_DECK, null, -1, 0);
$sciencemeshShares = $this->shareManager->getDeletedSharedWith($this->userId, IShare::TYPE_SCIENCEMESH, null, -1, 0);
- $shares = array_merge($groupShares, $roomShares, $deckShares, $sciencemeshShares);
+ $shares = array_merge($groupShares, $teamShares, $roomShares, $deckShares, $sciencemeshShares);
- $shares = array_map(function (IShare $share) {
+ $shares = array_values(array_map(function (IShare $share) {
return $this->formatShare($share);
- }, $shares);
+ }, $shares));
return new DataResponse($shares);
}
/**
- * @NoAdminRequired
- *
* Undelete a deleted share
*
* @param string $id ID of the share
- * @return DataResponse<Http::STATUS_OK, array<empty>, array{}>
+ * @return DataResponse<Http::STATUS_OK, list<empty>, array{}>
* @throws OCSException
* @throws OCSNotFoundException Share not found
*
* 200: Share undeleted successfully
*/
+ #[NoAdminRequired]
public function undelete(string $id): DataResponse {
try {
$share = $this->shareManager->getShareById($id, $this->userId);
@@ -250,7 +201,7 @@ class DeletedShareAPIController extends OCSController {
throw new QueryException();
}
- return $this->serverContainer->get('\OCA\Talk\Share\Helper\DeletedShareAPIController');
+ return Server::get('\OCA\Talk\Share\Helper\DeletedShareAPIController');
}
/**
@@ -259,7 +210,7 @@ class DeletedShareAPIController extends OCSController {
* If the Deck application is not enabled or the helper is not available
* a QueryException is thrown instead.
*
- * @return \OCA\Deck\Sharing\ShareAPIHelper
+ * @return ShareAPIHelper
* @throws QueryException
*/
private function getDeckShareHelper() {
@@ -267,7 +218,7 @@ class DeletedShareAPIController extends OCSController {
throw new QueryException();
}
- return $this->serverContainer->get('\OCA\Deck\Sharing\ShareAPIHelper');
+ return Server::get('\OCA\Deck\Sharing\ShareAPIHelper');
}
/**
@@ -276,7 +227,7 @@ class DeletedShareAPIController extends OCSController {
* If the sciencemesh application is not enabled or the helper is not available
* a QueryException is thrown instead.
*
- * @return \OCA\Deck\Sharing\ShareAPIHelper
+ * @return ShareAPIHelper
* @throws QueryException
*/
private function getSciencemeshShareHelper() {
@@ -284,6 +235,6 @@ class DeletedShareAPIController extends OCSController {
throw new QueryException();
}
- return $this->serverContainer->get('\OCA\ScienceMesh\Sharing\ShareAPIHelper');
+ return Server::get('\OCA\ScienceMesh\Sharing\ShareAPIHelper');
}
}
diff --git a/apps/files_sharing/lib/Controller/ExternalSharesController.php b/apps/files_sharing/lib/Controller/ExternalSharesController.php
index 726e99345fa..fa828a9d2c2 100644
--- a/apps/files_sharing/lib/Controller/ExternalSharesController.php
+++ b/apps/files_sharing/lib/Controller/ExternalSharesController.php
@@ -1,35 +1,15 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Controller;
use OCP\AppFramework\Controller;
-use OCP\AppFramework\Http\DataResponse;
+use OCP\AppFramework\Http\Attribute\NoAdminRequired;
use OCP\AppFramework\Http\JSONResponse;
-use OCP\Http\Client\IClientService;
-use OCP\IConfig;
use OCP\IRequest;
/**
@@ -42,102 +22,41 @@ class ExternalSharesController extends Controller {
string $appName,
IRequest $request,
private \OCA\Files_Sharing\External\Manager $externalManager,
- private IClientService $clientService,
- private IConfig $config,
) {
parent::__construct($appName, $request);
}
/**
- * @NoAdminRequired
* @NoOutgoingFederatedSharingRequired
*
* @return JSONResponse
*/
+ #[NoAdminRequired]
public function index() {
return new JSONResponse($this->externalManager->getOpenShares());
}
/**
- * @NoAdminRequired
* @NoOutgoingFederatedSharingRequired
*
* @param int $id
* @return JSONResponse
*/
+ #[NoAdminRequired]
public function create($id) {
$this->externalManager->acceptShare($id);
return new JSONResponse();
}
/**
- * @NoAdminRequired
* @NoOutgoingFederatedSharingRequired
*
* @param integer $id
* @return JSONResponse
*/
+ #[NoAdminRequired]
public function destroy($id) {
$this->externalManager->declineShare($id);
return new JSONResponse();
}
-
- /**
- * Test whether the specified remote is accessible
- *
- * @param string $remote
- * @param bool $checkVersion
- * @return bool
- */
- protected function testUrl($remote, $checkVersion = false) {
- try {
- $client = $this->clientService->newClient();
- $response = json_decode($client->get(
- $remote,
- [
- 'timeout' => 3,
- 'connect_timeout' => 3,
- 'verify' => !$this->config->getSystemValueBool('sharing.federation.allowSelfSignedCertificates', false),
- ]
- )->getBody());
-
- if ($checkVersion) {
- return !empty($response->version) && version_compare($response->version, '7.0.0', '>=');
- } else {
- return is_object($response);
- }
- } catch (\Exception $e) {
- return false;
- }
- }
-
- /**
- * @PublicPage
- * @NoOutgoingFederatedSharingRequired
- * @NoIncomingFederatedSharingRequired
- *
- * @param string $remote
- * @return DataResponse
- */
- public function testRemote($remote) {
- if (str_contains($remote, '#') || str_contains($remote, '?') || str_contains($remote, ';')) {
- return new DataResponse(false);
- }
-
- if (
- $this->testUrl('https://' . $remote . '/ocm-provider/') ||
- $this->testUrl('https://' . $remote . '/ocm-provider/index.php') ||
- $this->testUrl('https://' . $remote . '/status.php', true)
- ) {
- return new DataResponse('https');
- } elseif (
- $this->testUrl('http://' . $remote . '/ocm-provider/') ||
- $this->testUrl('http://' . $remote . '/ocm-provider/index.php') ||
- $this->testUrl('http://' . $remote . '/status.php', true)
- ) {
- return new DataResponse('http');
- } else {
- return new DataResponse(false);
- }
- }
}
diff --git a/apps/files_sharing/lib/Controller/PublicPreviewController.php b/apps/files_sharing/lib/Controller/PublicPreviewController.php
index c59baac73c4..d917f6e0ebb 100644
--- a/apps/files_sharing/lib/Controller/PublicPreviewController.php
+++ b/apps/files_sharing/lib/Controller/PublicPreviewController.php
@@ -1,33 +1,18 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Kate Döen <kate.doeen@nextcloud.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Controller;
use OCP\AppFramework\Http;
+use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
+use OCP\AppFramework\Http\Attribute\OpenAPI;
+use OCP\AppFramework\Http\Attribute\PublicPage;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Http\FileDisplayResponse;
+use OCP\AppFramework\Http\RedirectResponse;
use OCP\AppFramework\PublicShareController;
use OCP\Constants;
use OCP\Files\Folder;
@@ -35,30 +20,25 @@ use OCP\Files\NotFoundException;
use OCP\IPreview;
use OCP\IRequest;
use OCP\ISession;
+use OCP\Preview\IMimeIconProvider;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IManager as ShareManager;
use OCP\Share\IShare;
class PublicPreviewController extends PublicShareController {
- /** @var ShareManager */
- private $shareManager;
-
- /** @var IPreview */
- private $previewManager;
-
/** @var IShare */
private $share;
- public function __construct(string $appName,
+ public function __construct(
+ string $appName,
IRequest $request,
- ShareManager $shareManger,
+ private ShareManager $shareManager,
ISession $session,
- IPreview $previewManager) {
+ private IPreview $previewManager,
+ private IMimeIconProvider $mimeIconProvider,
+ ) {
parent::__construct($appName, $request, $session);
-
- $this->shareManager = $shareManger;
- $this->previewManager = $previewManager;
}
protected function getPasswordHash(): ?string {
@@ -80,9 +60,6 @@ class PublicPreviewController extends PublicShareController {
/**
- * @PublicPage
- * @NoCSRFRequired
- *
* Get a preview for a shared file
*
* @param string $token Token of the share
@@ -90,20 +67,28 @@ class PublicPreviewController extends PublicShareController {
* @param int $x Width of the preview
* @param int $y Height of the preview
* @param bool $a Whether to not crop the preview
- * @return FileDisplayResponse<Http::STATUS_OK, array{Content-Type: string}>|DataResponse<Http::STATUS_BAD_REQUEST|Http::STATUS_FORBIDDEN|Http::STATUS_NOT_FOUND, array<empty>, array{}>
+ * @param bool $mimeFallback Whether to fallback to the mime icon if no preview is available
+ * @return FileDisplayResponse<Http::STATUS_OK, array{Content-Type: string}>|DataResponse<Http::STATUS_BAD_REQUEST|Http::STATUS_FORBIDDEN|Http::STATUS_NOT_FOUND, list<empty>, array{}>|RedirectResponse<Http::STATUS_SEE_OTHER, array{}>
*
* 200: Preview returned
+ * 303: Redirect to the mime icon url if mimeFallback is true
* 400: Getting preview is not possible
* 403: Getting preview is not allowed
* 404: Share or preview not found
*/
+ #[PublicPage]
+ #[NoCSRFRequired]
+ #[OpenAPI(scope: OpenAPI::SCOPE_DEFAULT)]
public function getPreview(
string $token,
string $file = '',
int $x = 32,
int $y = 32,
- $a = false
+ $a = false,
+ bool $mimeFallback = false,
) {
+ $cacheForSeconds = 60 * 60 * 24; // 1 day
+
if ($token === '' || $x === 0 || $y === 0) {
return new DataResponse([], Http::STATUS_BAD_REQUEST);
}
@@ -118,8 +103,18 @@ class PublicPreviewController extends PublicShareController {
return new DataResponse([], Http::STATUS_FORBIDDEN);
}
- $attributes = $share->getAttributes();
- if ($attributes !== null && $attributes->getAttribute('permissions', 'download') === false) {
+ // Only explicitly set to false will forbid the download!
+ $downloadForbidden = !$share->canSeeContent();
+
+ // Is this header is set it means our UI is doing a preview for no-download shares
+ // we check a header so we at least prevent people from using the link directly (obfuscation)
+ $isPublicPreview = $this->request->getHeader('x-nc-preview') === 'true';
+
+ if ($isPublicPreview && $downloadForbidden) {
+ // Only cache for 15 minutes on public preview requests to quickly remove from cache
+ $cacheForSeconds = 15 * 60;
+ } elseif ($downloadForbidden) {
+ // This is not a public share preview so we only allow a preview if download permissions are granted
return new DataResponse([], Http::STATUS_FORBIDDEN);
}
@@ -133,9 +128,15 @@ class PublicPreviewController extends PublicShareController {
$f = $this->previewManager->getPreview($file, $x, $y, !$a);
$response = new FileDisplayResponse($f, Http::STATUS_OK, ['Content-Type' => $f->getMimeType()]);
- $response->cacheFor(3600 * 24);
+ $response->cacheFor($cacheForSeconds);
return $response;
} catch (NotFoundException $e) {
+ // If we have no preview enabled, we can redirect to the mime icon if any
+ if ($mimeFallback) {
+ if ($url = $this->mimeIconProvider->getMimeIconUrl($file->getMimeType())) {
+ return new RedirectResponse($url);
+ }
+ }
return new DataResponse([], Http::STATUS_NOT_FOUND);
} catch (\InvalidArgumentException $e) {
return new DataResponse([], Http::STATUS_BAD_REQUEST);
@@ -143,20 +144,21 @@ class PublicPreviewController extends PublicShareController {
}
/**
- * @PublicPage
- * @NoCSRFRequired
* @NoSameSiteCookieRequired
*
* Get a direct link preview for a shared file
*
* @param string $token Token of the share
- * @return FileDisplayResponse<Http::STATUS_OK, array{Content-Type: string}>|DataResponse<Http::STATUS_BAD_REQUEST|Http::STATUS_FORBIDDEN|Http::STATUS_NOT_FOUND, array<empty>, array{}>
+ * @return FileDisplayResponse<Http::STATUS_OK, array{Content-Type: string}>|DataResponse<Http::STATUS_BAD_REQUEST|Http::STATUS_FORBIDDEN|Http::STATUS_NOT_FOUND, list<empty>, array{}>
*
* 200: Preview returned
* 400: Getting preview is not possible
* 403: Getting preview is not allowed
* 404: Share or preview not found
*/
+ #[PublicPage]
+ #[NoCSRFRequired]
+ #[OpenAPI(scope: OpenAPI::SCOPE_DEFAULT)]
public function directLink(string $token) {
// No token no image
if ($token === '') {
@@ -180,8 +182,7 @@ class PublicPreviewController extends PublicShareController {
return new DataResponse([], Http::STATUS_FORBIDDEN);
}
- $attributes = $share->getAttributes();
- if ($attributes !== null && $attributes->getAttribute('permissions', 'download') === false) {
+ if (!$share->canSeeContent()) {
return new DataResponse([], Http::STATUS_FORBIDDEN);
}
diff --git a/apps/files_sharing/lib/Controller/RemoteController.php b/apps/files_sharing/lib/Controller/RemoteController.php
index b507bf6a04a..8c15cd8463e 100644
--- a/apps/files_sharing/lib/Controller/RemoteController.php
+++ b/apps/files_sharing/lib/Controller/RemoteController.php
@@ -1,32 +1,17 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Kate Döen <kate.doeen@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Controller;
+use OC\Files\View;
use OCA\Files_Sharing\External\Manager;
use OCA\Files_Sharing\ResponseDefinitions;
use OCP\AppFramework\Http;
+use OCP\AppFramework\Http\Attribute\NoAdminRequired;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCS\OCSForbiddenException;
use OCP\AppFramework\OCS\OCSNotFoundException;
@@ -39,8 +24,6 @@ use Psr\Log\LoggerInterface;
*/
class RemoteController extends OCSController {
/**
- * @NoAdminRequired
- *
* Remote constructor.
*
* @param string $appName
@@ -57,29 +40,27 @@ class RemoteController extends OCSController {
}
/**
- * @NoAdminRequired
- *
* Get list of pending remote shares
*
- * @return DataResponse<Http::STATUS_OK, Files_SharingRemoteShare[], array{}>
+ * @return DataResponse<Http::STATUS_OK, list<Files_SharingRemoteShare>, array{}>
*
* 200: Pending remote shares returned
*/
+ #[NoAdminRequired]
public function getOpenShares() {
return new DataResponse($this->externalManager->getOpenShares());
}
/**
- * @NoAdminRequired
- *
* Accept a remote share
*
* @param int $id ID of the share
- * @return DataResponse<Http::STATUS_OK, array<empty>, array{}>
+ * @return DataResponse<Http::STATUS_OK, list<empty>, array{}>
* @throws OCSNotFoundException Share not found
*
* 200: Share accepted successfully
*/
+ #[NoAdminRequired]
public function acceptShare($id) {
if ($this->externalManager->acceptShare($id)) {
return new DataResponse();
@@ -92,16 +73,15 @@ class RemoteController extends OCSController {
}
/**
- * @NoAdminRequired
- *
* Decline a remote share
*
* @param int $id ID of the share
- * @return DataResponse<Http::STATUS_OK, array<empty>, array{}>
+ * @return DataResponse<Http::STATUS_OK, list<empty>, array{}>
* @throws OCSNotFoundException Share not found
*
* 200: Share declined successfully
*/
+ #[NoAdminRequired]
public function declineShare($id) {
if ($this->externalManager->declineShare($id)) {
return new DataResponse();
@@ -118,7 +98,7 @@ class RemoteController extends OCSController {
* @return array enriched share info with data from the filecache
*/
private static function extendShareInfo($share) {
- $view = new \OC\Files\View('/' . \OC_User::getUser() . '/files/');
+ $view = new View('/' . \OC_User::getUser() . '/files/');
$info = $view->getFileInfo($share['mountpoint']);
if ($info === false) {
@@ -135,24 +115,21 @@ class RemoteController extends OCSController {
}
/**
- * @NoAdminRequired
- *
* Get a list of accepted remote shares
*
- * @return DataResponse<Http::STATUS_OK, Files_SharingRemoteShare[], array{}>
+ * @return DataResponse<Http::STATUS_OK, list<Files_SharingRemoteShare>, array{}>
*
* 200: Accepted remote shares returned
*/
+ #[NoAdminRequired]
public function getShares() {
$shares = $this->externalManager->getAcceptedShares();
- $shares = array_map('self::extendShareInfo', $shares);
+ $shares = array_map(self::extendShareInfo(...), $shares);
return new DataResponse($shares);
}
/**
- * @NoAdminRequired
- *
* Get info of a remote share
*
* @param int $id ID of the share
@@ -161,6 +138,7 @@ class RemoteController extends OCSController {
*
* 200: Share returned
*/
+ #[NoAdminRequired]
public function getShare($id) {
$shareInfo = $this->externalManager->getShare($id);
@@ -173,17 +151,16 @@ class RemoteController extends OCSController {
}
/**
- * @NoAdminRequired
- *
* Unshare a remote share
*
* @param int $id ID of the share
- * @return DataResponse<Http::STATUS_OK, array<empty>, array{}>
+ * @return DataResponse<Http::STATUS_OK, list<empty>, array{}>
* @throws OCSNotFoundException Share not found
* @throws OCSForbiddenException Unsharing is not possible
*
* 200: Share unshared successfully
*/
+ #[NoAdminRequired]
public function unshare($id) {
$shareInfo = $this->externalManager->getShare($id);
diff --git a/apps/files_sharing/lib/Controller/SettingsController.php b/apps/files_sharing/lib/Controller/SettingsController.php
index ff087d4a196..67d9193be78 100644
--- a/apps/files_sharing/lib/Controller/SettingsController.php
+++ b/apps/files_sharing/lib/Controller/SettingsController.php
@@ -3,71 +3,41 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2019, Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Hinrich Mahler <nextcloud@mahlerhome.de>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Controller;
use OCA\Files_Sharing\AppInfo\Application;
use OCP\AppFramework\Controller;
+use OCP\AppFramework\Http\Attribute\NoAdminRequired;
use OCP\AppFramework\Http\JSONResponse;
use OCP\IConfig;
use OCP\IRequest;
class SettingsController extends Controller {
- /** @var IConfig */
- private $config;
-
- /** @var string */
- private $userId;
-
- public function __construct(IRequest $request,
- IConfig $config,
- string $userId) {
+ public function __construct(
+ IRequest $request,
+ private IConfig $config,
+ private string $userId,
+ ) {
parent::__construct(Application::APP_ID, $request);
-
- $this->config = $config;
- $this->userId = $userId;
}
- /**
- * @NoAdminRequired
- */
+ #[NoAdminRequired]
public function setDefaultAccept(bool $accept): JSONResponse {
$this->config->setUserValue($this->userId, Application::APP_ID, 'default_accept', $accept ? 'yes' : 'no');
return new JSONResponse();
}
- /**
- * @NoAdminRequired
- */
+ #[NoAdminRequired]
public function setUserShareFolder(string $shareFolder): JSONResponse {
$this->config->setUserValue($this->userId, Application::APP_ID, 'share_folder', $shareFolder);
return new JSONResponse();
}
- /**
- * @NoAdminRequired
- */
+ #[NoAdminRequired]
public function resetUserShareFolder(): JSONResponse {
$this->config->deleteUserValue($this->userId, Application::APP_ID, 'share_folder');
return new JSONResponse();
diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php
index 1bdcee11c45..095a8a75963 100644
--- a/apps/files_sharing/lib/Controller/ShareAPIController.php
+++ b/apps/files_sharing/lib/Controller/ShareAPIController.php
@@ -1,61 +1,32 @@
<?php
declare(strict_types=1);
-
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author castillo92 <37965565+castillo92@users.noreply.github.com>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Calviño Sánchez <danxuliu@gmail.com>
- * @author Daniel Kesselberg <mail@danielkesselberg.de>
- * @author Gary Kim <gary@garykim.dev>
- * @author Georg Ehrke <oc.list@georgehrke.com>
- * @author Joas Schilling <coding@schilljs.com>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Maxence Lange <maxence@artificial-owl.com>
- * @author Maxence Lange <maxence@nextcloud.com>
- * @author Michael Jobst <mjobst+github@tecratech.de>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Richard Steinmetz <richard@steinmetz.cloud>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Valdnet <47037905+Valdnet@users.noreply.github.com>
- * @author Vincent Petry <vincent@nextcloud.com>
- * @author waleczny <michal@walczak.xyz>
- * @author Kate Döen <kate.doeen@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Controller;
use Exception;
+use OC\Core\AppInfo\ConfigLexicon;
use OC\Files\FileInfo;
use OC\Files\Storage\Wrapper\Wrapper;
+use OCA\Circles\Api\v1\Circles;
+use OCA\Deck\Sharing\ShareAPIHelper;
+use OCA\Federation\TrustedServers;
use OCA\Files\Helper;
use OCA\Files_Sharing\Exceptions\SharingRightsException;
use OCA\Files_Sharing\External\Storage;
use OCA\Files_Sharing\ResponseDefinitions;
use OCA\Files_Sharing\SharedStorage;
+use OCA\GlobalSiteSelector\Service\SlaveService;
use OCP\App\IAppManager;
use OCP\AppFramework\Http;
+use OCP\AppFramework\Http\Attribute\ApiRoute;
+use OCP\AppFramework\Http\Attribute\NoAdminRequired;
+use OCP\AppFramework\Http\Attribute\UserRateLimit;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCS\OCSBadRequestException;
use OCP\AppFramework\OCS\OCSException;
@@ -64,26 +35,35 @@ use OCP\AppFramework\OCS\OCSNotFoundException;
use OCP\AppFramework\OCSController;
use OCP\AppFramework\QueryException;
use OCP\Constants;
+use OCP\Files\File;
use OCP\Files\Folder;
use OCP\Files\InvalidPathException;
use OCP\Files\IRootFolder;
+use OCP\Files\Mount\IShareOwnerlessMount;
use OCP\Files\Node;
use OCP\Files\NotFoundException;
+use OCP\HintException;
+use OCP\IAppConfig;
use OCP\IConfig;
use OCP\IDateTimeZone;
use OCP\IGroupManager;
use OCP\IL10N;
use OCP\IPreview;
use OCP\IRequest;
+use OCP\ITagManager;
use OCP\IURLGenerator;
use OCP\IUserManager;
use OCP\Lock\ILockingProvider;
use OCP\Lock\LockedException;
+use OCP\Mail\IMailer;
use OCP\Server;
use OCP\Share\Exceptions\GenericShareException;
use OCP\Share\Exceptions\ShareNotFound;
+use OCP\Share\Exceptions\ShareTokenException;
use OCP\Share\IManager;
+use OCP\Share\IProviderFactory;
use OCP\Share\IShare;
+use OCP\Share\IShareProviderWithNotification;
use OCP\UserStatus\IManager as IUserStatusManager;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\ContainerInterface;
@@ -97,7 +77,7 @@ use Psr\Log\LoggerInterface;
class ShareAPIController extends OCSController {
private ?Node $lockedNode = null;
- private string $currentUser;
+ private array $trustedServerCache = [];
/**
* Share20OCS constructor.
@@ -112,22 +92,26 @@ class ShareAPIController extends OCSController {
private IURLGenerator $urlGenerator,
private IL10N $l,
private IConfig $config,
+ private IAppConfig $appConfig,
private IAppManager $appManager,
private ContainerInterface $serverContainer,
private IUserStatusManager $userStatusManager,
private IPreview $previewManager,
private IDateTimeZone $dateTimeZone,
private LoggerInterface $logger,
- ?string $userId = null
+ private IProviderFactory $factory,
+ private IMailer $mailer,
+ private ITagManager $tagManager,
+ private ?TrustedServers $trustedServers,
+ private ?string $userId = null,
) {
parent::__construct($appName, $request);
- $this->currentUser = $userId;
}
/**
* Convert an IShare to an array for OCS output
*
- * @param \OCP\Share\IShare $share
+ * @param IShare $share
* @param Node|null $recipientNode
* @return Files_SharingShare
* @throws NotFoundException In case the node can't be resolved.
@@ -140,7 +124,7 @@ class ShareAPIController extends OCSController {
$isOwnShare = false;
if ($shareOwner !== null) {
- $isOwnShare = $shareOwner->getUID() === $this->currentUser;
+ $isOwnShare = $shareOwner->getUID() === $this->userId;
}
$result = [
@@ -163,7 +147,7 @@ class ShareAPIController extends OCSController {
'displayname_file_owner' => $shareOwner !== null ? $shareOwner->getDisplayName() : $share->getShareOwner(),
];
- $userFolder = $this->rootFolder->getUserFolder($this->currentUser);
+ $userFolder = $this->rootFolder->getUserFolder($this->userId);
if ($recipientNode) {
$node = $recipientNode;
} else {
@@ -189,6 +173,27 @@ class ShareAPIController extends OCSController {
$result['item_permissions'] = $node->getPermissions();
}
+ // If we're on the recipient side, the node permissions
+ // are bound to the share permissions. So we need to
+ // adjust the permissions to the share permissions if necessary.
+ if (!$isOwnShare) {
+ $result['item_permissions'] = $share->getPermissions();
+
+ // For some reason, single files share are forbidden to have the delete permission
+ // since we have custom methods to check those, let's adjust straight away.
+ // DAV permissions does not have that issue though.
+ if ($this->canDeleteShare($share) || $this->canDeleteShareFromSelf($share)) {
+ $result['item_permissions'] |= Constants::PERMISSION_DELETE;
+ }
+ if ($this->canEditShare($share)) {
+ $result['item_permissions'] |= Constants::PERMISSION_UPDATE;
+ }
+ }
+
+ // See MOUNT_ROOT_PROPERTYNAME dav property
+ $result['is-mount-root'] = $node->getInternalPath() === '';
+ $result['mount-type'] = $node->getMountPoint()->getMountType();
+
$result['mimetype'] = $node->getMimetype();
$result['has_preview'] = $this->previewManager->isAvailable($node);
$result['storage_id'] = $node->getStorage()->getId();
@@ -200,6 +205,32 @@ class ShareAPIController extends OCSController {
$result['item_size'] = $node->getSize();
$result['item_mtime'] = $node->getMTime();
+ if ($this->trustedServers !== null && in_array($share->getShareType(), [IShare::TYPE_REMOTE, IShare::TYPE_REMOTE_GROUP], true)) {
+ $result['is_trusted_server'] = false;
+ $sharedWith = $share->getSharedWith();
+ $remoteIdentifier = is_string($sharedWith) ? strrchr($sharedWith, '@') : false;
+ if ($remoteIdentifier !== false) {
+ $remote = substr($remoteIdentifier, 1);
+
+ if (isset($this->trustedServerCache[$remote])) {
+ $result['is_trusted_server'] = $this->trustedServerCache[$remote];
+ } else {
+ try {
+ $isTrusted = $this->trustedServers->isTrustedServer($remote);
+ $this->trustedServerCache[$remote] = $isTrusted;
+ $result['is_trusted_server'] = $isTrusted;
+ } catch (\Exception $e) {
+ // Server not found or other issue, we consider it not trusted
+ $this->trustedServerCache[$remote] = false;
+ $this->logger->error(
+ 'Error checking if remote server is trusted (treating as untrusted): ' . $e->getMessage(),
+ ['exception' => $e]
+ );
+ }
+ }
+ }
+ }
+
$expiration = $share->getExpirationDate();
if ($expiration !== null) {
$expiration->setTimezone($this->dateTimeZone->getTimeZone());
@@ -260,7 +291,7 @@ class ShareAPIController extends OCSController {
$result['token'] = $share->getToken();
} elseif ($share->getShareType() === IShare::TYPE_CIRCLE) {
// getSharedWith() returns either "name (type, owner)" or
- // "name (type, owner) [id]", depending on the Circles app version.
+ // "name (type, owner) [id]", depending on the Teams app version.
$hasCircleId = (substr($share->getSharedWith(), -1) === ']');
$result['share_with_displayname'] = $share->getSharedWithDisplayName();
@@ -286,7 +317,7 @@ class ShareAPIController extends OCSController {
/** @var array{share_with_displayname: string, share_with_link: string, share_with?: string, token?: string} $roomShare */
$roomShare = $this->getRoomShareHelper()->formatShare($share);
$result = array_merge($result, $roomShare);
- } catch (QueryException $e) {
+ } catch (ContainerExceptionInterface $e) {
}
} elseif ($share->getShareType() === IShare::TYPE_DECK) {
$result['share_with'] = $share->getSharedWith();
@@ -296,7 +327,7 @@ class ShareAPIController extends OCSController {
/** @var array{share_with: string, share_with_displayname: string, share_with_link: string} $deckShare */
$deckShare = $this->getDeckShareHelper()->formatShare($share);
$result = array_merge($result, $deckShare);
- } catch (QueryException $e) {
+ } catch (ContainerExceptionInterface $e) {
}
} elseif ($share->getShareType() === IShare::TYPE_SCIENCEMESH) {
$result['share_with'] = $share->getSharedWith();
@@ -306,7 +337,7 @@ class ShareAPIController extends OCSController {
/** @var array{share_with: string, share_with_displayname: string, token: string} $scienceMeshShare */
$scienceMeshShare = $this->getSciencemeshShareHelper()->formatShare($share);
$result = array_merge($result, $scienceMeshShare);
- } catch (QueryException $e) {
+ } catch (ContainerExceptionInterface $e) {
}
}
@@ -333,7 +364,7 @@ class ShareAPIController extends OCSController {
private function getDisplayNameFromAddressBook(string $query, string $property): string {
// FIXME: If we inject the contacts manager it gets initialized before any address books are registered
try {
- $result = \OC::$server->getContactsManager()->search($query, [$property], [
+ $result = Server::get(\OCP\Contacts\IManager::class)->search($query, [$property], [
'limit' => 1,
'enumeration' => false,
'strict_search' => true,
@@ -359,10 +390,10 @@ class ShareAPIController extends OCSController {
/**
- * @param array $shares
- * @param array|null $updatedDisplayName
+ * @param list<Files_SharingShare> $shares
+ * @param array<string, string>|null $updatedDisplayName
*
- * @return array
+ * @return list<Files_SharingShare>
*/
private function fixMissingDisplayName(array $shares, ?array $updatedDisplayName = null): array {
$userIds = $updated = [];
@@ -413,13 +444,13 @@ class ShareAPIController extends OCSController {
private function retrieveFederatedDisplayName(array $userIds, bool $cacheOnly = false): array {
// check if gss is enabled and available
if (count($userIds) === 0
- || !$this->appManager->isInstalled('globalsiteselector')
+ || !$this->appManager->isEnabledForAnyone('globalsiteselector')
|| !class_exists('\OCA\GlobalSiteSelector\Service\SlaveService')) {
return [];
}
try {
- $slaveService = Server::get(\OCA\GlobalSiteSelector\Service\SlaveService::class);
+ $slaveService = Server::get(SlaveService::class);
} catch (\Throwable $e) {
$this->logger->error(
$e->getMessage(),
@@ -454,17 +485,16 @@ class ShareAPIController extends OCSController {
/**
- * @NoAdminRequired
- *
* Get a specific share by id
*
* @param string $id ID of the share
* @param bool $include_tags Include tags in the share
- * @return DataResponse<Http::STATUS_OK, Files_SharingShare, array{}>
+ * @return DataResponse<Http::STATUS_OK, list<Files_SharingShare>, array{}>
* @throws OCSNotFoundException Share not found
*
* 200: Share returned
*/
+ #[NoAdminRequired]
public function getShare(string $id, bool $include_tags = false): DataResponse {
try {
$share = $this->getShareById($id);
@@ -477,7 +507,7 @@ class ShareAPIController extends OCSController {
$share = $this->formatShare($share);
if ($include_tags) {
- $share = Helper::populateTags([$share], 'file_source', \OC::$server->getTagManager());
+ $share = $this->populateTags([$share]);
} else {
$share = [$share];
}
@@ -492,17 +522,16 @@ class ShareAPIController extends OCSController {
}
/**
- * @NoAdminRequired
- *
* Delete a share
*
* @param string $id ID of the share
- * @return DataResponse<Http::STATUS_OK, array<empty>, array{}>
+ * @return DataResponse<Http::STATUS_OK, list<empty>, array{}>
* @throws OCSNotFoundException Share not found
* @throws OCSForbiddenException Missing permissions to delete the share
*
* 200: Share deleted successfully
*/
+ #[NoAdminRequired]
public function deleteShare(string $id): DataResponse {
try {
$share = $this->getShareById($id);
@@ -525,7 +554,7 @@ class ShareAPIController extends OCSController {
// mount point. Allowing it to be restored
// from the deleted shares
if ($this->canDeleteShareFromSelf($share)) {
- $this->shareManager->deleteFromSelf($share, $this->currentUser);
+ $this->shareManager->deleteFromSelf($share, $this->userId);
} else {
if (!$this->canDeleteShare($share)) {
throw new OCSForbiddenException($this->l->t('Could not delete share'));
@@ -538,21 +567,21 @@ class ShareAPIController extends OCSController {
}
/**
- * @NoAdminRequired
- *
* Create a share
*
* @param string|null $path Path of the share
* @param int|null $permissions Permissions for the share
* @param int $shareType Type of the share
- * @param string|null $shareWith The entity this should be shared with
- * @param string $publicUpload If public uploading is allowed
+ * @param ?string $shareWith The entity this should be shared with
+ * @param 'true'|'false'|null $publicUpload If public uploading is allowed (deprecated)
* @param string $password Password for the share
* @param string|null $sendPasswordByTalk Send the password for the share over Talk
- * @param string $expireDate Expiry date of the share using user timezone at 00:00. It means date in UTC timezone will be used.
+ * @param ?string $expireDate The expiry date of the share in the user's timezone at 00:00.
+ * If $expireDate is not supplied or set to `null`, the system default will be used.
* @param string $note Note for the share
* @param string $label Label for the share (only used in link and email)
* @param string|null $attributes Additional attributes for the share
+ * @param 'false'|'true'|null $sendMail Send a mail to the recipient
*
* @return DataResponse<Http::STATUS_OK, Files_SharingShare, array{}>
* @throws OCSBadRequestException Unknown share type
@@ -563,38 +592,33 @@ class ShareAPIController extends OCSController {
*
* 200: Share created
*/
+ #[NoAdminRequired]
+ #[UserRateLimit(limit: 20, period: 600)]
public function createShare(
?string $path = null,
?int $permissions = null,
int $shareType = -1,
?string $shareWith = null,
- string $publicUpload = 'false',
+ ?string $publicUpload = null,
string $password = '',
?string $sendPasswordByTalk = null,
- string $expireDate = '',
+ ?string $expireDate = null,
string $note = '',
string $label = '',
- ?string $attributes = null
+ ?string $attributes = null,
+ ?string $sendMail = null,
): DataResponse {
- $share = $this->shareManager->newShare();
+ assert($this->userId !== null);
- if ($permissions === null) {
- if ($shareType === IShare::TYPE_LINK
- || $shareType === IShare::TYPE_EMAIL) {
-
- // to keep legacy default behaviour, we ignore the setting below for link shares
- $permissions = Constants::PERMISSION_READ;
- } else {
- $permissions = (int)$this->config->getAppValue('core', 'shareapi_default_permissions', (string)Constants::PERMISSION_ALL);
- }
- }
+ $share = $this->shareManager->newShare();
+ $hasPublicUpload = $this->getLegacyPublicUpload($publicUpload);
// Verify path
if ($path === null) {
throw new OCSNotFoundException($this->l->t('Please specify a file or folder path'));
}
- $userFolder = $this->rootFolder->getUserFolder($this->currentUser);
+ $userFolder = $this->rootFolder->getUserFolder($this->userId);
try {
/** @var \OC\Files\Node\Node $node */
$node = $userFolder->get($path);
@@ -619,17 +643,23 @@ class ShareAPIController extends OCSController {
throw new OCSNotFoundException($this->l->t('Could not create share'));
}
- if ($permissions < 0 || $permissions > Constants::PERMISSION_ALL) {
- throw new OCSNotFoundException($this->l->t('Invalid permissions'));
+ // Set permissions
+ if ($shareType === IShare::TYPE_LINK || $shareType === IShare::TYPE_EMAIL) {
+ $permissions = $this->getLinkSharePermissions($permissions, $hasPublicUpload);
+ $this->validateLinkSharePermissions($node, $permissions, $hasPublicUpload);
+ } else {
+ // Use default permissions only for non-link shares to keep legacy behavior
+ if ($permissions === null) {
+ $permissions = (int)$this->config->getAppValue('core', 'shareapi_default_permissions', (string)Constants::PERMISSION_ALL);
+ }
+ // Non-link shares always require read permissions (link shares could be file drop)
+ $permissions |= Constants::PERMISSION_READ;
}
- // Shares always require read permissions
- $permissions |= Constants::PERMISSION_READ;
-
- if ($node instanceof \OCP\Files\File) {
- // Single file shares should never have delete or create permissions
- $permissions &= ~Constants::PERMISSION_DELETE;
- $permissions &= ~Constants::PERMISSION_CREATE;
+ // For legacy reasons the API allows to pass PERMISSIONS_ALL even for single file shares (I look at you Talk)
+ if ($node instanceof File) {
+ // if this is a single file share we remove the DELETE and CREATE permissions
+ $permissions = $permissions & ~(Constants::PERMISSION_DELETE | Constants::PERMISSION_CREATE);
}
/**
@@ -645,18 +675,39 @@ class ShareAPIController extends OCSController {
$share = $this->setShareAttributes($share, $attributes);
}
- //Expire date
- if ($expireDate !== '') {
- try {
- $expireDateTime = $this->parseDate($expireDate);
- $share->setExpirationDate($expireDateTime);
- } catch (\Exception $e) {
- throw new OCSNotFoundException($this->l->t('Invalid date, date format must be YYYY-MM-DD'));
+ // Expire date checks
+ // Normally, null means no expiration date but we still set the default for backwards compatibility
+ // If the client sends an empty string, we set noExpirationDate to true
+ if ($expireDate !== null) {
+ if ($expireDate !== '') {
+ try {
+ $expireDateTime = $this->parseDate($expireDate);
+ $share->setExpirationDate($expireDateTime);
+ } catch (\Exception $e) {
+ throw new OCSNotFoundException($e->getMessage(), $e);
+ }
+ } else {
+ // Client sent empty string for expire date.
+ // Set noExpirationDate to true so overwrite is prevented.
+ $share->setNoExpirationDate(true);
}
}
- $share->setSharedBy($this->currentUser);
- $this->checkInheritedAttributes($share);
+ $share->setSharedBy($this->userId);
+
+ // Handle mail send
+ if (is_null($sendMail)) {
+ $allowSendMail = $this->config->getSystemValueBool('sharing.enable_share_mail', true);
+ if ($allowSendMail !== true || $shareType === IShare::TYPE_EMAIL) {
+ // Define a default behavior when sendMail is not provided
+ // For email shares with a valid recipient, the default is to send the mail
+ // For all other share types, the default is to not send the mail
+ $allowSendMail = ($shareType === IShare::TYPE_EMAIL && $shareWith !== null && $shareWith !== '');
+ }
+ $share->setMailSend($allowSendMail);
+ } else {
+ $share->setMailSend($sendMail === 'true');
+ }
if ($shareType === IShare::TYPE_USER) {
// Valid user is required to share
@@ -684,28 +735,7 @@ class ShareAPIController extends OCSController {
throw new OCSNotFoundException($this->l->t('Public link sharing is disabled by the administrator'));
}
- if ($publicUpload === 'true') {
- // Check if public upload is allowed
- if (!$this->shareManager->shareApiLinkAllowPublicUpload()) {
- throw new OCSForbiddenException($this->l->t('Public upload disabled by the administrator'));
- }
-
- // Public upload can only be set for folders
- if ($node instanceof \OCP\Files\File) {
- throw new OCSNotFoundException($this->l->t('Public upload is only possible for publicly shared folders'));
- }
-
- $permissions = Constants::PERMISSION_READ |
- Constants::PERMISSION_CREATE |
- Constants::PERMISSION_UPDATE |
- Constants::PERMISSION_DELETE;
- }
-
- // TODO: It might make sense to have a dedicated setting to allow/deny converting link shares into federated ones
- if ($this->shareManager->outgoingServer2ServerSharesAllowed()) {
- $permissions |= Constants::PERMISSION_SHARE;
- }
-
+ $this->validateLinkSharePermissions($node, $permissions, $hasPublicUpload);
$share->setPermissions($permissions);
// Set password
@@ -715,11 +745,18 @@ class ShareAPIController extends OCSController {
// Only share by mail have a recipient
if (is_string($shareWith) && $shareType === IShare::TYPE_EMAIL) {
+ // If sending a mail have been requested, validate the mail address
+ if ($share->getMailSend() && !$this->mailer->validateMailAddress($shareWith)) {
+ throw new OCSNotFoundException($this->l->t('Please specify a valid email address'));
+ }
$share->setSharedWith($shareWith);
}
// If we have a label, use it
- if (!empty($label)) {
+ if ($label !== '') {
+ if (strlen($label) > 255) {
+ throw new OCSBadRequestException('Maximum label length is 255');
+ }
$share->setLabel($label);
}
@@ -754,34 +791,34 @@ class ShareAPIController extends OCSController {
$share->setSharedWith($shareWith);
$share->setPermissions($permissions);
} elseif ($shareType === IShare::TYPE_CIRCLE) {
- if (!\OC::$server->getAppManager()->isEnabledForUser('circles') || !class_exists('\OCA\Circles\ShareByCircleProvider')) {
- throw new OCSNotFoundException($this->l->t('You cannot share to a Circle if the app is not enabled'));
+ if (!Server::get(IAppManager::class)->isEnabledForUser('circles') || !class_exists('\OCA\Circles\ShareByCircleProvider')) {
+ throw new OCSNotFoundException($this->l->t('You cannot share to a Team if the app is not enabled'));
}
- $circle = \OCA\Circles\Api\v1\Circles::detailsCircle($shareWith);
+ $circle = Circles::detailsCircle($shareWith);
- // Valid circle is required to share
+ // Valid team is required to share
if ($circle === null) {
- throw new OCSNotFoundException($this->l->t('Please specify a valid circle'));
+ throw new OCSNotFoundException($this->l->t('Please specify a valid team'));
}
$share->setSharedWith($shareWith);
$share->setPermissions($permissions);
} elseif ($shareType === IShare::TYPE_ROOM) {
try {
- $this->getRoomShareHelper()->createShare($share, $shareWith, $permissions, $expireDate);
- } catch (QueryException $e) {
+ $this->getRoomShareHelper()->createShare($share, $shareWith, $permissions, $expireDate ?? '');
+ } catch (ContainerExceptionInterface $e) {
throw new OCSForbiddenException($this->l->t('Sharing %s failed because the back end does not support room shares', [$node->getPath()]));
}
} elseif ($shareType === IShare::TYPE_DECK) {
try {
- $this->getDeckShareHelper()->createShare($share, $shareWith, $permissions, $expireDate);
- } catch (QueryException $e) {
+ $this->getDeckShareHelper()->createShare($share, $shareWith, $permissions, $expireDate ?? '');
+ } catch (ContainerExceptionInterface $e) {
throw new OCSForbiddenException($this->l->t('Sharing %s failed because the back end does not support room shares', [$node->getPath()]));
}
} elseif ($shareType === IShare::TYPE_SCIENCEMESH) {
try {
- $this->getSciencemeshShareHelper()->createShare($share, $shareWith, $permissions, $expireDate);
- } catch (QueryException $e) {
+ $this->getSciencemeshShareHelper()->createShare($share, $shareWith, $permissions, $expireDate ?? '');
+ } catch (ContainerExceptionInterface $e) {
throw new OCSForbiddenException($this->l->t('Sharing %s failed because the back end does not support ScienceMesh shares', [$node->getPath()]));
}
} else {
@@ -789,6 +826,7 @@ class ShareAPIController extends OCSController {
}
$share->setShareType($shareType);
+ $this->checkInheritedAttributes($share);
if ($note !== '') {
$share->setNote($note);
@@ -796,13 +834,15 @@ class ShareAPIController extends OCSController {
try {
$share = $this->shareManager->createShare($share);
- } catch (GenericShareException $e) {
- $this->logger->error($e->getMessage(), ['exception' => $e]);
+ } catch (HintException $e) {
$code = $e->getCode() === 0 ? 403 : $e->getCode();
throw new OCSException($e->getHint(), $code);
- } catch (\Exception $e) {
+ } catch (GenericShareException|\InvalidArgumentException $e) {
$this->logger->error($e->getMessage(), ['exception' => $e]);
throw new OCSForbiddenException($e->getMessage(), $e);
+ } catch (\Exception $e) {
+ $this->logger->error($e->getMessage(), ['exception' => $e]);
+ throw new OCSForbiddenException('Failed to create share.', $e);
}
$output = $this->formatShare($share);
@@ -814,20 +854,20 @@ class ShareAPIController extends OCSController {
* @param null|Node $node
* @param boolean $includeTags
*
- * @return Files_SharingShare[]
+ * @return list<Files_SharingShare>
*/
private function getSharedWithMe($node, bool $includeTags): array {
- $userShares = $this->shareManager->getSharedWith($this->currentUser, IShare::TYPE_USER, $node, -1, 0);
- $groupShares = $this->shareManager->getSharedWith($this->currentUser, IShare::TYPE_GROUP, $node, -1, 0);
- $circleShares = $this->shareManager->getSharedWith($this->currentUser, IShare::TYPE_CIRCLE, $node, -1, 0);
- $roomShares = $this->shareManager->getSharedWith($this->currentUser, IShare::TYPE_ROOM, $node, -1, 0);
- $deckShares = $this->shareManager->getSharedWith($this->currentUser, IShare::TYPE_DECK, $node, -1, 0);
- $sciencemeshShares = $this->shareManager->getSharedWith($this->currentUser, IShare::TYPE_SCIENCEMESH, $node, -1, 0);
+ $userShares = $this->shareManager->getSharedWith($this->userId, IShare::TYPE_USER, $node, -1, 0);
+ $groupShares = $this->shareManager->getSharedWith($this->userId, IShare::TYPE_GROUP, $node, -1, 0);
+ $circleShares = $this->shareManager->getSharedWith($this->userId, IShare::TYPE_CIRCLE, $node, -1, 0);
+ $roomShares = $this->shareManager->getSharedWith($this->userId, IShare::TYPE_ROOM, $node, -1, 0);
+ $deckShares = $this->shareManager->getSharedWith($this->userId, IShare::TYPE_DECK, $node, -1, 0);
+ $sciencemeshShares = $this->shareManager->getSharedWith($this->userId, IShare::TYPE_SCIENCEMESH, $node, -1, 0);
$shares = array_merge($userShares, $groupShares, $circleShares, $roomShares, $deckShares, $sciencemeshShares);
$filteredShares = array_filter($shares, function (IShare $share) {
- return $share->getShareOwner() !== $this->currentUser;
+ return $share->getShareOwner() !== $this->userId;
});
$formatted = [];
@@ -842,27 +882,27 @@ class ShareAPIController extends OCSController {
}
if ($includeTags) {
- $formatted = Helper::populateTags($formatted, 'file_source', \OC::$server->getTagManager());
+ $formatted = $this->populateTags($formatted);
}
return $formatted;
}
/**
- * @param \OCP\Files\Node $folder
+ * @param Node $folder
*
- * @return Files_SharingShare[]
+ * @return list<Files_SharingShare>
* @throws OCSBadRequestException
* @throws NotFoundException
*/
private function getSharesInDir(Node $folder): array {
- if (!($folder instanceof \OCP\Files\Folder)) {
+ if (!($folder instanceof Folder)) {
throw new OCSBadRequestException($this->l->t('Not a directory'));
}
$nodes = $folder->getDirectoryListing();
- /** @var \OCP\Share\IShare[] $shares */
+ /** @var IShare[] $shares */
$shares = array_reduce($nodes, function ($carry, $node) {
$carry = array_merge($carry, $this->getAllShares($node, true));
return $carry;
@@ -875,7 +915,7 @@ class ShareAPIController extends OCSController {
$resharingRight = false;
$known = [];
foreach ($shares as $share) {
- if (in_array($share->getId(), $known) || $share->getSharedWith() === $this->currentUser) {
+ if (in_array($share->getId(), $known) || $share->getSharedWith() === $this->userId) {
continue;
}
@@ -884,10 +924,10 @@ class ShareAPIController extends OCSController {
$known[] = $share->getId();
$formatted[] = $format;
- if ($share->getSharedBy() === $this->currentUser) {
+ if ($share->getSharedBy() === $this->userId) {
$miniFormatted[] = $format;
}
- if (!$resharingRight && $this->shareProviderResharingRights($this->currentUser, $share, $folder)) {
+ if (!$resharingRight && $this->shareProviderResharingRights($this->userId, $share, $folder)) {
$resharingRight = true;
}
} catch (\Exception $e) {
@@ -903,8 +943,6 @@ class ShareAPIController extends OCSController {
}
/**
- * @NoAdminRequired
- *
* Get shares of the current user
*
* @param string $shared_with_me Only get shares with the current user
@@ -913,21 +951,22 @@ class ShareAPIController extends OCSController {
* @param string $path Get shares for a specific path
* @param string $include_tags Include tags in the share
*
- * @return DataResponse<Http::STATUS_OK, Files_SharingShare[], array{}>
+ * @return DataResponse<Http::STATUS_OK, list<Files_SharingShare>, array{}>
* @throws OCSNotFoundException The folder was not found or is inaccessible
*
* 200: Shares returned
*/
+ #[NoAdminRequired]
public function getShares(
string $shared_with_me = 'false',
string $reshares = 'false',
string $subfiles = 'false',
string $path = '',
- string $include_tags = 'false'
+ string $include_tags = 'false',
): DataResponse {
$node = null;
if ($path !== '') {
- $userFolder = $this->rootFolder->getUserFolder($this->currentUser);
+ $userFolder = $this->rootFolder->getUserFolder($this->userId);
try {
$node = $userFolder->get($path);
$this->lock($node);
@@ -941,7 +980,7 @@ class ShareAPIController extends OCSController {
}
$shares = $this->getFormattedShares(
- $this->currentUser,
+ $this->userId,
$node,
($shared_with_me === 'true'),
($reshares === 'true'),
@@ -952,6 +991,71 @@ class ShareAPIController extends OCSController {
return new DataResponse($shares);
}
+ private function getLinkSharePermissions(?int $permissions, ?bool $legacyPublicUpload): int {
+ $permissions = $permissions ?? Constants::PERMISSION_READ;
+
+ // Legacy option handling
+ if ($legacyPublicUpload !== null) {
+ $permissions = $legacyPublicUpload
+ ? (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE)
+ : Constants::PERMISSION_READ;
+ }
+
+ if ($this->hasPermission($permissions, Constants::PERMISSION_READ)
+ && $this->shareManager->outgoingServer2ServerSharesAllowed()
+ && $this->appConfig->getValueBool('core', ConfigLexicon::SHAREAPI_ALLOW_FEDERATION_ON_PUBLIC_SHARES)) {
+ $permissions |= Constants::PERMISSION_SHARE;
+ }
+
+ return $permissions;
+ }
+
+ /**
+ * Helper to check for legacy "publicUpload" handling.
+ * If the value is set to `true` or `false` then true or false are returned.
+ * Otherwise null is returned to indicate that the option was not (or wrong) set.
+ *
+ * @param null|string $legacyPublicUpload The value of `publicUpload`
+ */
+ private function getLegacyPublicUpload(?string $legacyPublicUpload): ?bool {
+ if ($legacyPublicUpload === 'true') {
+ return true;
+ } elseif ($legacyPublicUpload === 'false') {
+ return false;
+ }
+ // Not set at all
+ return null;
+ }
+
+ /**
+ * For link and email shares validate that only allowed combinations are set.
+ *
+ * @throw OCSBadRequestException If permission combination is invalid.
+ * @throw OCSForbiddenException If public upload was forbidden by the administrator.
+ */
+ private function validateLinkSharePermissions(Node $node, int $permissions, ?bool $legacyPublicUpload): void {
+ if ($legacyPublicUpload && ($node instanceof File)) {
+ throw new OCSBadRequestException($this->l->t('Public upload is only possible for publicly shared folders'));
+ }
+
+ // We need at least READ or CREATE (file drop)
+ if (!$this->hasPermission($permissions, Constants::PERMISSION_READ)
+ && !$this->hasPermission($permissions, Constants::PERMISSION_CREATE)) {
+ throw new OCSBadRequestException($this->l->t('Share must at least have READ or CREATE permissions'));
+ }
+
+ // UPDATE and DELETE require a READ permission
+ if (!$this->hasPermission($permissions, Constants::PERMISSION_READ)
+ && ($this->hasPermission($permissions, Constants::PERMISSION_UPDATE) || $this->hasPermission($permissions, Constants::PERMISSION_DELETE))) {
+ throw new OCSBadRequestException($this->l->t('Share must have READ permission if UPDATE or DELETE permission is set'));
+ }
+
+ // Check if public uploading was disabled
+ if ($this->hasPermission($permissions, Constants::PERMISSION_CREATE)
+ && !$this->shareManager->shareApiLinkAllowPublicUpload()) {
+ throw new OCSForbiddenException($this->l->t('Public upload disabled by the administrator'));
+ }
+ }
/**
* @param string $viewer
@@ -961,7 +1065,7 @@ class ShareAPIController extends OCSController {
* @param bool $subFiles
* @param bool $includeTags
*
- * @return Files_SharingShare[]
+ * @return list<Files_SharingShare>
* @throws NotFoundException
* @throws OCSBadRequestException
*/
@@ -971,7 +1075,7 @@ class ShareAPIController extends OCSController {
bool $sharedWithMe = false,
bool $reShares = false,
bool $subFiles = false,
- bool $includeTags = false
+ bool $includeTags = false,
): array {
if ($sharedWithMe) {
return $this->getSharedWithMe($node, $includeTags);
@@ -997,7 +1101,7 @@ class ShareAPIController extends OCSController {
}
if (in_array($share->getId(), $known)
- || ($share->getSharedWith() === $this->currentUser && $share->getShareType() === IShare::TYPE_USER)) {
+ || ($share->getSharedWith() === $this->userId && $share->getShareType() === IShare::TYPE_USER)) {
continue;
}
@@ -1010,16 +1114,16 @@ class ShareAPIController extends OCSController {
// let's also build a list of shares created
// by the current user only, in case
// there is no resharing rights
- if ($share->getSharedBy() === $this->currentUser) {
+ if ($share->getSharedBy() === $this->userId) {
$miniFormatted[] = $format;
}
// check if one of those share is shared with me
// and if I have resharing rights on it
- if (!$resharingRight && $this->shareProviderResharingRights($this->currentUser, $share, $node)) {
+ if (!$resharingRight && $this->shareProviderResharingRights($this->userId, $share, $node)) {
$resharingRight = true;
}
- } catch (InvalidPathException | NotFoundException $e) {
+ } catch (InvalidPathException|NotFoundException $e) {
}
}
@@ -1031,8 +1135,7 @@ class ShareAPIController extends OCSController {
$formatted = $this->fixMissingDisplayName($formatted);
if ($includeTags) {
- $formatted =
- Helper::populateTags($formatted, 'file_source', \OC::$server->getTagManager());
+ $formatted = $this->populateTags($formatted);
}
return $formatted;
@@ -1040,13 +1143,11 @@ class ShareAPIController extends OCSController {
/**
- * @NoAdminRequired
- *
* Get all shares relative to a file, including parent folders shares rights
*
* @param string $path Path all shares will be relative to
*
- * @return DataResponse<Http::STATUS_OK, Files_SharingShare[], array{}>
+ * @return DataResponse<Http::STATUS_OK, list<Files_SharingShare>, array{}>
* @throws InvalidPathException
* @throws NotFoundException
* @throws OCSNotFoundException The given path is invalid
@@ -1054,21 +1155,21 @@ class ShareAPIController extends OCSController {
*
* 200: Shares returned
*/
+ #[NoAdminRequired]
public function getInheritedShares(string $path): DataResponse {
-
// get Node from (string) path.
- $userFolder = $this->rootFolder->getUserFolder($this->currentUser);
+ $userFolder = $this->rootFolder->getUserFolder($this->userId);
try {
$node = $userFolder->get($path);
$this->lock($node);
- } catch (\OCP\Files\NotFoundException $e) {
+ } catch (NotFoundException $e) {
throw new OCSNotFoundException($this->l->t('Wrong path, file/folder does not exist'));
} catch (LockedException $e) {
throw new OCSNotFoundException($this->l->t('Could not lock path'));
}
if (!($node->getPermissions() & Constants::PERMISSION_SHARE)) {
- throw new SharingRightsException('no sharing rights on this item');
+ throw new SharingRightsException($this->l->t('no sharing rights on this item'));
}
// The current top parent we have access to
@@ -1076,7 +1177,7 @@ class ShareAPIController extends OCSController {
// initiate real owner.
$owner = $node->getOwner()
- ->getUID();
+ ->getUID();
if (!$this->userManager->userExists($owner)) {
return new DataResponse([]);
}
@@ -1085,7 +1186,7 @@ class ShareAPIController extends OCSController {
$userFolder = $this->rootFolder->getUserFolder($owner);
if ($node->getId() !== $userFolder->getId() && !$userFolder->isSubNode($node)) {
$owner = $node->getOwner()
- ->getUID();
+ ->getUID();
$userFolder = $this->rootFolder->getUserFolder($owner);
$node = $userFolder->getFirstNodeById($node->getId());
}
@@ -1094,13 +1195,16 @@ class ShareAPIController extends OCSController {
// generate node list for each parent folders
/** @var Node[] $nodes */
$nodes = [];
- while ($node->getPath() !== $basePath) {
+ while (true) {
$node = $node->getParent();
+ if ($node->getPath() === $basePath) {
+ break;
+ }
$nodes[] = $node;
}
// The user that is requesting this list
- $currentUserFolder = $this->rootFolder->getUserFolder($this->currentUser);
+ $currentUserFolder = $this->rootFolder->getUserFolder($this->userId);
// for each nodes, retrieve shares.
$shares = [];
@@ -1131,10 +1235,7 @@ class ShareAPIController extends OCSController {
return ($permissionsSet & $permissionsToCheck) === $permissionsToCheck;
}
-
/**
- * @NoAdminRequired
- *
* Update a share
*
* @param string $id ID of the share
@@ -1147,6 +1248,11 @@ class ShareAPIController extends OCSController {
* @param string|null $label New label
* @param string|null $hideDownload New condition if the download should be hidden
* @param string|null $attributes New additional attributes
+ * @param string|null $sendMail if the share should be send by mail.
+ * Considering the share already exists, no mail will be send after the share is updated.
+ * You will have to use the sendMail action to send the mail.
+ * @param string|null $shareWith New recipient for email shares
+ * @param string|null $token New token
* @return DataResponse<Http::STATUS_OK, Files_SharingShare, array{}>
* @throws OCSBadRequestException Share could not be updated because the requested changes are invalid
* @throws OCSForbiddenException Missing permissions to update the share
@@ -1154,6 +1260,7 @@ class ShareAPIController extends OCSController {
*
* 200: Share updated successfully
*/
+ #[NoAdminRequired]
public function updateShare(
string $id,
?int $permissions = null,
@@ -1164,7 +1271,9 @@ class ShareAPIController extends OCSController {
?string $note = null,
?string $label = null,
?string $hideDownload = null,
- ?string $attributes = null
+ ?string $attributes = null,
+ ?string $sendMail = null,
+ ?string $token = null,
): DataResponse {
try {
$share = $this->getShareById($id);
@@ -1179,19 +1288,21 @@ class ShareAPIController extends OCSController {
}
if (!$this->canEditShare($share)) {
- throw new OCSForbiddenException('You are not allowed to edit incoming shares');
+ throw new OCSForbiddenException($this->l->t('You are not allowed to edit incoming shares'));
}
if (
- $permissions === null &&
- $password === null &&
- $sendPasswordByTalk === null &&
- $publicUpload === null &&
- $expireDate === null &&
- $note === null &&
- $label === null &&
- $hideDownload === null &&
- $attributes === null
+ $permissions === null
+ && $password === null
+ && $sendPasswordByTalk === null
+ && $publicUpload === null
+ && $expireDate === null
+ && $note === null
+ && $label === null
+ && $hideDownload === null
+ && $attributes === null
+ && $sendMail === null
+ && $token === null
) {
throw new OCSBadRequestException($this->l->t('Wrong or no update parameter given'));
}
@@ -1203,26 +1314,18 @@ class ShareAPIController extends OCSController {
if ($attributes !== null) {
$share = $this->setShareAttributes($share, $attributes);
}
- $this->checkInheritedAttributes($share);
+
+ // Handle mail send
+ if ($sendMail === 'true' || $sendMail === 'false') {
+ $share->setMailSend($sendMail === 'true');
+ }
/**
- * expirationdate, password and publicUpload only make sense for link shares
+ * expiration date, password and publicUpload only make sense for link shares
*/
if ($share->getShareType() === IShare::TYPE_LINK
|| $share->getShareType() === IShare::TYPE_EMAIL) {
- /**
- * We do not allow editing link shares that the current user
- * doesn't own. This is confusing and lead to errors when
- * someone else edit a password or expiration date without
- * the share owner knowing about it.
- * We only allow deletion
- */
-
- if ($share->getSharedBy() !== $this->currentUser) {
- throw new OCSForbiddenException('You are not allowed to edit link shares that you don\'t own');
- }
-
// Update hide download state
if ($hideDownload === 'true') {
$share->setHideDownload(true);
@@ -1230,58 +1333,13 @@ class ShareAPIController extends OCSController {
$share->setHideDownload(false);
}
- $newPermissions = null;
- if ($publicUpload === 'true') {
- $newPermissions = Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE;
- } elseif ($publicUpload === 'false') {
- $newPermissions = Constants::PERMISSION_READ;
- }
-
- if ($permissions !== null) {
- $newPermissions = $permissions;
- $newPermissions = $newPermissions & ~Constants::PERMISSION_SHARE;
- }
-
- if ($newPermissions !== null) {
- if (!$this->hasPermission($newPermissions, Constants::PERMISSION_READ) && !$this->hasPermission($newPermissions, Constants::PERMISSION_CREATE)) {
- throw new OCSBadRequestException($this->l->t('Share must at least have READ or CREATE permissions'));
- }
-
- if (!$this->hasPermission($newPermissions, Constants::PERMISSION_READ) && (
- $this->hasPermission($newPermissions, Constants::PERMISSION_UPDATE) || $this->hasPermission($newPermissions, Constants::PERMISSION_DELETE)
- )) {
- throw new OCSBadRequestException($this->l->t('Share must have READ permission if UPDATE or DELETE permission is set'));
- }
- }
-
- if (
- // legacy
- $newPermissions === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE) ||
- // correct
- $newPermissions === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE)
- ) {
- if (!$this->shareManager->shareApiLinkAllowPublicUpload()) {
- throw new OCSForbiddenException($this->l->t('Public upload disabled by the administrator'));
- }
-
- if (!($share->getNode() instanceof \OCP\Files\Folder)) {
- throw new OCSBadRequestException($this->l->t('Public upload is only possible for publicly shared folders'));
- }
-
- // normalize to correct public upload permissions
- if ($publicUpload === 'true') {
- $newPermissions = Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE;
- }
- }
-
- if ($newPermissions !== null) {
- // TODO: It might make sense to have a dedicated setting to allow/deny converting link shares into federated ones
- if (($newPermissions & Constants::PERMISSION_READ) && $this->shareManager->outgoingServer2ServerSharesAllowed()) {
- $newPermissions |= Constants::PERMISSION_SHARE;
- }
-
- $share->setPermissions($newPermissions);
- $permissions = $newPermissions;
+ // If either manual permissions are specified or publicUpload
+ // then we need to also update the permissions of the share
+ if ($permissions !== null || $publicUpload !== null) {
+ $hasPublicUpload = $this->getLegacyPublicUpload($publicUpload);
+ $permissions = $this->getLinkSharePermissions($permissions ?? Constants::PERMISSION_READ, $hasPublicUpload);
+ $this->validateLinkSharePermissions($share->getNode(), $permissions, $hasPublicUpload);
+ $share->setPermissions($permissions);
}
if ($password === '') {
@@ -1292,7 +1350,7 @@ class ShareAPIController extends OCSController {
if ($label !== null) {
if (strlen($label) > 255) {
- throw new OCSBadRequestException("Maximum label length is 255");
+ throw new OCSBadRequestException('Maximum label length is 255');
}
$share->setLabel($label);
}
@@ -1306,6 +1364,16 @@ class ShareAPIController extends OCSController {
} elseif ($sendPasswordByTalk !== null) {
$share->setSendPasswordByTalk(false);
}
+
+ if ($token !== null) {
+ if (!$this->shareManager->allowCustomTokens()) {
+ throw new OCSForbiddenException($this->l->t('Custom share link tokens have been disabled by the administrator'));
+ }
+ if (!$this->validateToken($token)) {
+ throw new OCSBadRequestException($this->l->t('Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen'));
+ }
+ $share->setToken($token);
+ }
}
// NOT A LINK SHARE
@@ -1319,34 +1387,45 @@ class ShareAPIController extends OCSController {
$share->setExpirationDate(null);
} elseif ($expireDate !== null) {
try {
- $expireDate = $this->parseDate($expireDate);
+ $expireDateTime = $this->parseDate($expireDate);
+ $share->setExpirationDate($expireDateTime);
} catch (\Exception $e) {
throw new OCSBadRequestException($e->getMessage(), $e);
}
- $share->setExpirationDate($expireDate);
}
try {
+ $this->checkInheritedAttributes($share);
$share = $this->shareManager->updateShare($share);
- } catch (GenericShareException $e) {
+ } catch (HintException $e) {
$code = $e->getCode() === 0 ? 403 : $e->getCode();
throw new OCSException($e->getHint(), (int)$code);
} catch (\Exception $e) {
- throw new OCSBadRequestException($e->getMessage(), $e);
+ $this->logger->error($e->getMessage(), ['exception' => $e]);
+ throw new OCSBadRequestException('Failed to update share.', $e);
}
return new DataResponse($this->formatShare($share));
}
+ private function validateToken(string $token): bool {
+ if (mb_strlen($token) === 0) {
+ return false;
+ }
+ if (!preg_match('/^[a-z0-9-]+$/i', $token)) {
+ return false;
+ }
+ return true;
+ }
+
/**
- * @NoAdminRequired
- *
* Get all shares that are still pending
*
- * @return DataResponse<Http::STATUS_OK, Files_SharingShare[], array{}>
+ * @return DataResponse<Http::STATUS_OK, list<Files_SharingShare>, array{}>
*
* 200: Pending shares returned
*/
+ #[NoAdminRequired]
public function pendingShares(): DataResponse {
$pendingShares = [];
@@ -1356,7 +1435,7 @@ class ShareAPIController extends OCSController {
];
foreach ($shareTypes as $shareType) {
- $shares = $this->shareManager->getSharedWith($this->currentUser, $shareType, null, -1, 0);
+ $shares = $this->shareManager->getSharedWith($this->userId, $shareType, null, -1, 0);
foreach ($shares as $share) {
if ($share->getStatus() === IShare::STATUS_PENDING || $share->getStatus() === IShare::STATUS_REJECTED) {
@@ -1365,7 +1444,7 @@ class ShareAPIController extends OCSController {
}
}
- $result = array_filter(array_map(function (IShare $share) {
+ $result = array_values(array_filter(array_map(function (IShare $share) {
$userFolder = $this->rootFolder->getUserFolder($share->getSharedBy());
$node = $userFolder->getFirstNodeById($share->getNodeId());
if (!$node) {
@@ -1386,24 +1465,23 @@ class ShareAPIController extends OCSController {
}
}, $pendingShares), function ($entry) {
return $entry !== null;
- });
+ }));
return new DataResponse($result);
}
/**
- * @NoAdminRequired
- *
* Accept a share
*
* @param string $id ID of the share
- * @return DataResponse<Http::STATUS_OK, array<empty>, array{}>
+ * @return DataResponse<Http::STATUS_OK, list<empty>, array{}>
* @throws OCSNotFoundException Share not found
* @throws OCSException
* @throws OCSBadRequestException Share could not be accepted
*
* 200: Share accepted successfully
*/
+ #[NoAdminRequired]
public function acceptShare(string $id): DataResponse {
try {
$share = $this->getShareById($id);
@@ -1416,12 +1494,13 @@ class ShareAPIController extends OCSController {
}
try {
- $this->shareManager->acceptShare($share, $this->currentUser);
- } catch (GenericShareException $e) {
+ $this->shareManager->acceptShare($share, $this->userId);
+ } catch (HintException $e) {
$code = $e->getCode() === 0 ? 403 : $e->getCode();
throw new OCSException($e->getHint(), (int)$code);
} catch (\Exception $e) {
- throw new OCSBadRequestException($e->getMessage(), $e);
+ $this->logger->error($e->getMessage(), ['exception' => $e]);
+ throw new OCSBadRequestException('Failed to accept share.', $e);
}
return new DataResponse();
@@ -1430,43 +1509,43 @@ class ShareAPIController extends OCSController {
/**
* Does the user have read permission on the share
*
- * @param \OCP\Share\IShare $share the share to check
+ * @param IShare $share the share to check
* @param boolean $checkGroups check groups as well?
* @return boolean
* @throws NotFoundException
*
* @suppress PhanUndeclaredClassMethod
*/
- protected function canAccessShare(\OCP\Share\IShare $share, bool $checkGroups = true): bool {
+ protected function canAccessShare(IShare $share, bool $checkGroups = true): bool {
// A file with permissions 0 can't be accessed by us. So Don't show it
if ($share->getPermissions() === 0) {
return false;
}
// Owner of the file and the sharer of the file can always get share
- if ($share->getShareOwner() === $this->currentUser
- || $share->getSharedBy() === $this->currentUser) {
+ if ($share->getShareOwner() === $this->userId
+ || $share->getSharedBy() === $this->userId) {
return true;
}
// If the share is shared with you, you can access it!
if ($share->getShareType() === IShare::TYPE_USER
- && $share->getSharedWith() === $this->currentUser) {
+ && $share->getSharedWith() === $this->userId) {
return true;
}
// Have reshare rights on the shared file/folder ?
// Does the currentUser have access to the shared file?
- $userFolder = $this->rootFolder->getUserFolder($this->currentUser);
+ $userFolder = $this->rootFolder->getUserFolder($this->userId);
$file = $userFolder->getFirstNodeById($share->getNodeId());
- if ($file && $this->shareProviderResharingRights($this->currentUser, $share, $file)) {
+ if ($file && $this->shareProviderResharingRights($this->userId, $share, $file)) {
return true;
}
// If in the recipient group, you can see the share
if ($checkGroups && $share->getShareType() === IShare::TYPE_GROUP) {
$sharedWith = $this->groupManager->get($share->getSharedWith());
- $user = $this->userManager->get($this->currentUser);
+ $user = $this->userManager->get($this->userId);
if ($user !== null && $sharedWith !== null && $sharedWith->inGroup($user)) {
return true;
}
@@ -1479,24 +1558,24 @@ class ShareAPIController extends OCSController {
if ($share->getShareType() === IShare::TYPE_ROOM) {
try {
- return $this->getRoomShareHelper()->canAccessShare($share, $this->currentUser);
- } catch (QueryException $e) {
+ return $this->getRoomShareHelper()->canAccessShare($share, $this->userId);
+ } catch (ContainerExceptionInterface $e) {
return false;
}
}
if ($share->getShareType() === IShare::TYPE_DECK) {
try {
- return $this->getDeckShareHelper()->canAccessShare($share, $this->currentUser);
- } catch (QueryException $e) {
+ return $this->getDeckShareHelper()->canAccessShare($share, $this->userId);
+ } catch (ContainerExceptionInterface $e) {
return false;
}
}
if ($share->getShareType() === IShare::TYPE_SCIENCEMESH) {
try {
- return $this->getSciencemeshShareHelper()->canAccessShare($share, $this->currentUser);
- } catch (QueryException $e) {
+ return $this->getSciencemeshShareHelper()->canAccessShare($share, $this->userId);
+ } catch (ContainerExceptionInterface $e) {
return false;
}
}
@@ -1507,10 +1586,10 @@ class ShareAPIController extends OCSController {
/**
* Does the user have edit permission on the share
*
- * @param \OCP\Share\IShare $share the share to check
+ * @param IShare $share the share to check
* @return boolean
*/
- protected function canEditShare(\OCP\Share\IShare $share): bool {
+ protected function canEditShare(IShare $share): bool {
// A file with permissions 0 can't be accessed by us. So Don't show it
if ($share->getPermissions() === 0) {
return false;
@@ -1518,12 +1597,18 @@ class ShareAPIController extends OCSController {
// The owner of the file and the creator of the share
// can always edit the share
- if ($share->getShareOwner() === $this->currentUser ||
- $share->getSharedBy() === $this->currentUser
+ if ($share->getShareOwner() === $this->userId
+ || $share->getSharedBy() === $this->userId
) {
return true;
}
+ $userFolder = $this->rootFolder->getUserFolder($this->userId);
+ $file = $userFolder->getFirstNodeById($share->getNodeId());
+ if ($file?->getMountPoint() instanceof IShareOwnerlessMount && $this->shareProviderResharingRights($this->userId, $share, $file)) {
+ return true;
+ }
+
//! we do NOT support some kind of `admin` in groups.
//! You cannot edit shares shared to a group you're
//! a member of if you're not the share owner or the file owner!
@@ -1534,10 +1619,10 @@ class ShareAPIController extends OCSController {
/**
* Does the user have delete permission on the share
*
- * @param \OCP\Share\IShare $share the share to check
+ * @param IShare $share the share to check
* @return boolean
*/
- protected function canDeleteShare(\OCP\Share\IShare $share): bool {
+ protected function canDeleteShare(IShare $share): bool {
// A file with permissions 0 can't be accessed by us. So Don't show it
if ($share->getPermissions() === 0) {
return false;
@@ -1545,20 +1630,26 @@ class ShareAPIController extends OCSController {
// if the user is the recipient, i can unshare
// the share with self
- if ($share->getShareType() === IShare::TYPE_USER &&
- $share->getSharedWith() === $this->currentUser
+ if ($share->getShareType() === IShare::TYPE_USER
+ && $share->getSharedWith() === $this->userId
) {
return true;
}
// The owner of the file and the creator of the share
// can always delete the share
- if ($share->getShareOwner() === $this->currentUser ||
- $share->getSharedBy() === $this->currentUser
+ if ($share->getShareOwner() === $this->userId
+ || $share->getSharedBy() === $this->userId
) {
return true;
}
+ $userFolder = $this->rootFolder->getUserFolder($this->userId);
+ $file = $userFolder->getFirstNodeById($share->getNodeId());
+ if ($file?->getMountPoint() instanceof IShareOwnerlessMount && $this->shareProviderResharingRights($this->userId, $share, $file)) {
+ return true;
+ }
+
return false;
}
@@ -1569,22 +1660,22 @@ class ShareAPIController extends OCSController {
* completely delete the share but only the mount point.
* It can then be restored from the deleted shares section.
*
- * @param \OCP\Share\IShare $share the share to check
+ * @param IShare $share the share to check
* @return boolean
*
* @suppress PhanUndeclaredClassMethod
*/
- protected function canDeleteShareFromSelf(\OCP\Share\IShare $share): bool {
- if ($share->getShareType() !== IShare::TYPE_GROUP &&
- $share->getShareType() !== IShare::TYPE_ROOM &&
- $share->getShareType() !== IShare::TYPE_DECK &&
- $share->getShareType() !== IShare::TYPE_SCIENCEMESH
+ protected function canDeleteShareFromSelf(IShare $share): bool {
+ if ($share->getShareType() !== IShare::TYPE_GROUP
+ && $share->getShareType() !== IShare::TYPE_ROOM
+ && $share->getShareType() !== IShare::TYPE_DECK
+ && $share->getShareType() !== IShare::TYPE_SCIENCEMESH
) {
return false;
}
- if ($share->getShareOwner() === $this->currentUser ||
- $share->getSharedBy() === $this->currentUser
+ if ($share->getShareOwner() === $this->userId
+ || $share->getSharedBy() === $this->userId
) {
// Delete the whole share, not just for self
return false;
@@ -1593,7 +1684,7 @@ class ShareAPIController extends OCSController {
// If in the recipient group, you can delete the share from self
if ($share->getShareType() === IShare::TYPE_GROUP) {
$sharedWith = $this->groupManager->get($share->getSharedWith());
- $user = $this->userManager->get($this->currentUser);
+ $user = $this->userManager->get($this->userId);
if ($user !== null && $sharedWith !== null && $sharedWith->inGroup($user)) {
return true;
}
@@ -1601,24 +1692,24 @@ class ShareAPIController extends OCSController {
if ($share->getShareType() === IShare::TYPE_ROOM) {
try {
- return $this->getRoomShareHelper()->canAccessShare($share, $this->currentUser);
- } catch (QueryException $e) {
+ return $this->getRoomShareHelper()->canAccessShare($share, $this->userId);
+ } catch (ContainerExceptionInterface $e) {
return false;
}
}
if ($share->getShareType() === IShare::TYPE_DECK) {
try {
- return $this->getDeckShareHelper()->canAccessShare($share, $this->currentUser);
- } catch (QueryException $e) {
+ return $this->getDeckShareHelper()->canAccessShare($share, $this->userId);
+ } catch (ContainerExceptionInterface $e) {
return false;
}
}
if ($share->getShareType() === IShare::TYPE_SCIENCEMESH) {
try {
- return $this->getSciencemeshShareHelper()->canAccessShare($share, $this->currentUser);
- } catch (QueryException $e) {
+ return $this->getSciencemeshShareHelper()->canAccessShare($share, $this->userId);
+ } catch (ContainerExceptionInterface $e) {
return false;
}
}
@@ -1638,16 +1729,13 @@ class ShareAPIController extends OCSController {
*/
private function parseDate(string $expireDate): \DateTime {
try {
- $date = new \DateTime(trim($expireDate, "\""), $this->dateTimeZone->getTimeZone());
+ $date = new \DateTime(trim($expireDate, '"'), $this->dateTimeZone->getTimeZone());
// Make sure it expires at midnight in owner timezone
$date->setTime(0, 0, 0);
} catch (\Exception $e) {
- throw new \Exception('Invalid date. Format must be YYYY-MM-DD');
+ throw new \Exception($this->l->t('Invalid date. Format must be YYYY-MM-DD'));
}
- // Use server timezone to store the date
- $date->setTimezone(new \DateTimeZone(date_default_timezone_get()));
-
return $date;
}
@@ -1656,7 +1744,7 @@ class ShareAPIController extends OCSController {
* not support this we need to check all backends.
*
* @param string $id
- * @return \OCP\Share\IShare
+ * @return IShare
* @throws ShareNotFound
*/
private function getShareById(string $id): IShare {
@@ -1664,7 +1752,7 @@ class ShareAPIController extends OCSController {
// First check if it is an internal share.
try {
- $share = $this->shareManager->getShareById('ocinternal:' . $id, $this->currentUser);
+ $share = $this->shareManager->getShareById('ocinternal:' . $id, $this->userId);
return $share;
} catch (ShareNotFound $e) {
// Do nothing, just try the other share type
@@ -1673,7 +1761,7 @@ class ShareAPIController extends OCSController {
try {
if ($this->shareManager->shareProviderExists(IShare::TYPE_CIRCLE)) {
- $share = $this->shareManager->getShareById('ocCircleShare:' . $id, $this->currentUser);
+ $share = $this->shareManager->getShareById('ocCircleShare:' . $id, $this->userId);
return $share;
}
} catch (ShareNotFound $e) {
@@ -1682,7 +1770,7 @@ class ShareAPIController extends OCSController {
try {
if ($this->shareManager->shareProviderExists(IShare::TYPE_EMAIL)) {
- $share = $this->shareManager->getShareById('ocMailShare:' . $id, $this->currentUser);
+ $share = $this->shareManager->getShareById('ocMailShare:' . $id, $this->userId);
return $share;
}
} catch (ShareNotFound $e) {
@@ -1690,7 +1778,7 @@ class ShareAPIController extends OCSController {
}
try {
- $share = $this->shareManager->getShareById('ocRoomShare:' . $id, $this->currentUser);
+ $share = $this->shareManager->getShareById('ocRoomShare:' . $id, $this->userId);
return $share;
} catch (ShareNotFound $e) {
// Do nothing, just try the other share type
@@ -1698,7 +1786,7 @@ class ShareAPIController extends OCSController {
try {
if ($this->shareManager->shareProviderExists(IShare::TYPE_DECK)) {
- $share = $this->shareManager->getShareById('deck:' . $id, $this->currentUser);
+ $share = $this->shareManager->getShareById('deck:' . $id, $this->userId);
return $share;
}
} catch (ShareNotFound $e) {
@@ -1707,7 +1795,7 @@ class ShareAPIController extends OCSController {
try {
if ($this->shareManager->shareProviderExists(IShare::TYPE_SCIENCEMESH)) {
- $share = $this->shareManager->getShareById('sciencemesh:' . $id, $this->currentUser);
+ $share = $this->shareManager->getShareById('sciencemesh:' . $id, $this->userId);
return $share;
}
} catch (ShareNotFound $e) {
@@ -1717,7 +1805,7 @@ class ShareAPIController extends OCSController {
if (!$this->shareManager->outgoingServer2ServerSharesAllowed()) {
throw new ShareNotFound();
}
- $share = $this->shareManager->getShareById('ocFederatedSharing:' . $id, $this->currentUser);
+ $share = $this->shareManager->getShareById('ocFederatedSharing:' . $id, $this->userId);
return $share;
}
@@ -1725,10 +1813,10 @@ class ShareAPIController extends OCSController {
/**
* Lock a Node
*
- * @param \OCP\Files\Node $node
+ * @param Node $node
* @throws LockedException
*/
- private function lock(\OCP\Files\Node $node) {
+ private function lock(Node $node) {
$node->lock(ILockingProvider::LOCK_SHARED);
$this->lockedNode = $node;
}
@@ -1747,10 +1835,10 @@ class ShareAPIController extends OCSController {
* Returns the helper of ShareAPIController for room shares.
*
* If the Talk application is not enabled or the helper is not available
- * a QueryException is thrown instead.
+ * a ContainerExceptionInterface is thrown instead.
*
* @return \OCA\Talk\Share\Helper\ShareAPIController
- * @throws QueryException
+ * @throws ContainerExceptionInterface
*/
private function getRoomShareHelper() {
if (!$this->appManager->isEnabledForUser('spreed')) {
@@ -1764,10 +1852,10 @@ class ShareAPIController extends OCSController {
* Returns the helper of ShareAPIHelper for deck shares.
*
* If the Deck application is not enabled or the helper is not available
- * a QueryException is thrown instead.
+ * a ContainerExceptionInterface is thrown instead.
*
- * @return \OCA\Deck\Sharing\ShareAPIHelper
- * @throws QueryException
+ * @return ShareAPIHelper
+ * @throws ContainerExceptionInterface
*/
private function getDeckShareHelper() {
if (!$this->appManager->isEnabledForUser('deck')) {
@@ -1781,10 +1869,10 @@ class ShareAPIController extends OCSController {
* Returns the helper of ShareAPIHelper for sciencemesh shares.
*
* If the sciencemesh application is not enabled or the helper is not available
- * a QueryException is thrown instead.
+ * a ContainerExceptionInterface is thrown instead.
*
- * @return \OCA\Deck\Sharing\ShareAPIHelper
- * @throws QueryException
+ * @return ShareAPIHelper
+ * @throws ContainerExceptionInterface
*/
private function getSciencemeshShareHelper() {
if (!$this->appManager->isEnabledForUser('sciencemesh')) {
@@ -1820,21 +1908,21 @@ class ShareAPIController extends OCSController {
continue;
}
- $providerShares =
- $this->shareManager->getSharesBy($viewer, $provider, $node, $reShares, -1, 0);
+ $providerShares
+ = $this->shareManager->getSharesBy($viewer, $provider, $node, $reShares, -1, 0);
$shares = array_merge($shares, $providerShares);
}
if ($this->shareManager->outgoingServer2ServerSharesAllowed()) {
$federatedShares = $this->shareManager->getSharesBy(
- $this->currentUser, IShare::TYPE_REMOTE, $node, $reShares, -1, 0
+ $this->userId, IShare::TYPE_REMOTE, $node, $reShares, -1, 0
);
$shares = array_merge($shares, $federatedShares);
}
if ($this->shareManager->outgoingServer2ServerGroupSharesAllowed()) {
$federatedShares = $this->shareManager->getSharesBy(
- $this->currentUser, IShare::TYPE_REMOTE_GROUP, $node, $reShares, -1, 0
+ $this->userId, IShare::TYPE_REMOTE_GROUP, $node, $reShares, -1, 0
);
$shares = array_merge($shares, $federatedShares);
}
@@ -1849,8 +1937,8 @@ class ShareAPIController extends OCSController {
* @throws SharingRightsException
*/
private function confirmSharingRights(Node $node): void {
- if (!$this->hasResharingRights($this->currentUser, $node)) {
- throw new SharingRightsException('no sharing rights on this item');
+ if (!$this->hasResharingRights($this->userId, $node)) {
+ throw new SharingRightsException($this->l->t('No sharing rights on this item'));
}
}
@@ -1873,7 +1961,7 @@ class ShareAPIController extends OCSController {
if ($this->shareProviderResharingRights($viewer, $share, $node)) {
return true;
}
- } catch (InvalidPathException | NotFoundException $e) {
+ } catch (InvalidPathException|NotFoundException $e) {
}
}
}
@@ -1905,7 +1993,7 @@ class ShareAPIController extends OCSController {
return true;
}
- if ((\OCP\Constants::PERMISSION_SHARE & $share->getPermissions()) === 0) {
+ if ((Constants::PERMISSION_SHARE & $share->getPermissions()) === 0) {
return false;
}
@@ -1917,7 +2005,7 @@ class ShareAPIController extends OCSController {
return true;
}
- if ($share->getShareType() === IShare::TYPE_CIRCLE && \OC::$server->getAppManager()->isEnabledForUser('circles')
+ if ($share->getShareType() === IShare::TYPE_CIRCLE && Server::get(IAppManager::class)->isEnabledForUser('circles')
&& class_exists('\OCA\Circles\Api\v1\Circles')) {
$hasCircleId = (str_ends_with($share->getSharedWith(), ']'));
$shareWithStart = ($hasCircleId ? strrpos($share->getSharedWith(), '[') + 1 : 0);
@@ -1928,12 +2016,12 @@ class ShareAPIController extends OCSController {
$sharedWith = substr($share->getSharedWith(), $shareWithStart, $shareWithLength);
}
try {
- $member = \OCA\Circles\Api\v1\Circles::getMember($sharedWith, $userId, 1);
+ $member = Circles::getMember($sharedWith, $userId, 1);
if ($member->getLevel() >= 4) {
return true;
}
return false;
- } catch (QueryException $e) {
+ } catch (ContainerExceptionInterface $e) {
return false;
}
}
@@ -1950,33 +2038,33 @@ class ShareAPIController extends OCSController {
*/
private function getAllShares(?Node $path = null, bool $reshares = false) {
// Get all shares
- $userShares = $this->shareManager->getSharesBy($this->currentUser, IShare::TYPE_USER, $path, $reshares, -1, 0);
- $groupShares = $this->shareManager->getSharesBy($this->currentUser, IShare::TYPE_GROUP, $path, $reshares, -1, 0);
- $linkShares = $this->shareManager->getSharesBy($this->currentUser, IShare::TYPE_LINK, $path, $reshares, -1, 0);
+ $userShares = $this->shareManager->getSharesBy($this->userId, IShare::TYPE_USER, $path, $reshares, -1, 0);
+ $groupShares = $this->shareManager->getSharesBy($this->userId, IShare::TYPE_GROUP, $path, $reshares, -1, 0);
+ $linkShares = $this->shareManager->getSharesBy($this->userId, IShare::TYPE_LINK, $path, $reshares, -1, 0);
// EMAIL SHARES
- $mailShares = $this->shareManager->getSharesBy($this->currentUser, IShare::TYPE_EMAIL, $path, $reshares, -1, 0);
+ $mailShares = $this->shareManager->getSharesBy($this->userId, IShare::TYPE_EMAIL, $path, $reshares, -1, 0);
- // CIRCLE SHARES
- $circleShares = $this->shareManager->getSharesBy($this->currentUser, IShare::TYPE_CIRCLE, $path, $reshares, -1, 0);
+ // TEAM SHARES
+ $circleShares = $this->shareManager->getSharesBy($this->userId, IShare::TYPE_CIRCLE, $path, $reshares, -1, 0);
// TALK SHARES
- $roomShares = $this->shareManager->getSharesBy($this->currentUser, IShare::TYPE_ROOM, $path, $reshares, -1, 0);
+ $roomShares = $this->shareManager->getSharesBy($this->userId, IShare::TYPE_ROOM, $path, $reshares, -1, 0);
// DECK SHARES
- $deckShares = $this->shareManager->getSharesBy($this->currentUser, IShare::TYPE_DECK, $path, $reshares, -1, 0);
+ $deckShares = $this->shareManager->getSharesBy($this->userId, IShare::TYPE_DECK, $path, $reshares, -1, 0);
// SCIENCEMESH SHARES
- $sciencemeshShares = $this->shareManager->getSharesBy($this->currentUser, IShare::TYPE_SCIENCEMESH, $path, $reshares, -1, 0);
+ $sciencemeshShares = $this->shareManager->getSharesBy($this->userId, IShare::TYPE_SCIENCEMESH, $path, $reshares, -1, 0);
// FEDERATION
if ($this->shareManager->outgoingServer2ServerSharesAllowed()) {
- $federatedShares = $this->shareManager->getSharesBy($this->currentUser, IShare::TYPE_REMOTE, $path, $reshares, -1, 0);
+ $federatedShares = $this->shareManager->getSharesBy($this->userId, IShare::TYPE_REMOTE, $path, $reshares, -1, 0);
} else {
$federatedShares = [];
}
if ($this->shareManager->outgoingServer2ServerGroupSharesAllowed()) {
- $federatedGroupShares = $this->shareManager->getSharesBy($this->currentUser, IShare::TYPE_REMOTE_GROUP, $path, $reshares, -1, 0);
+ $federatedGroupShares = $this->shareManager->getSharesBy($this->userId, IShare::TYPE_REMOTE_GROUP, $path, $reshares, -1, 0);
} else {
$federatedGroupShares = [];
}
@@ -2016,11 +2104,11 @@ class ShareAPIController extends OCSController {
$newShareAttributes->setAttribute(
$formattedAttr['scope'],
$formattedAttr['key'],
- is_string($formattedAttr['enabled']) ? (bool) \json_decode($formattedAttr['enabled']) : $formattedAttr['enabled']
+ $formattedAttr['value'],
);
}
} else {
- throw new OCSBadRequestException('Invalid share attributes provided: \"' . $attributesString . '\"');
+ throw new OCSBadRequestException($this->l->t('Invalid share attributes provided: "%s"', [$attributesString]));
}
}
$share->setAttributes($newShareAttributes);
@@ -2032,32 +2120,176 @@ class ShareAPIController extends OCSController {
if (!$share->getSharedBy()) {
return; // Probably in a test
}
+
+ $canDownload = false;
+ $hideDownload = true;
+
$userFolder = $this->rootFolder->getUserFolder($share->getSharedBy());
- $node = $userFolder->getFirstNodeById($share->getNodeId());
- if (!$node) {
- return;
- }
- if ($node->getStorage()->instanceOfStorage(SharedStorage::class)) {
- $storage = $node->getStorage();
- if ($storage instanceof Wrapper) {
- $storage = $storage->getInstanceOfStorage(SharedStorage::class);
- if ($storage === null) {
- throw new \RuntimeException('Should not happen, instanceOfStorage but getInstanceOfStorage return null');
+ $nodes = $userFolder->getById($share->getNodeId());
+ foreach ($nodes as $node) {
+ // Owner always can download it - so allow it and break
+ if ($node->getOwner()?->getUID() === $share->getSharedBy()) {
+ $canDownload = true;
+ $hideDownload = false;
+ break;
+ }
+
+ if ($node->getStorage()->instanceOfStorage(SharedStorage::class)) {
+ $storage = $node->getStorage();
+ if ($storage instanceof Wrapper) {
+ $storage = $storage->getInstanceOfStorage(SharedStorage::class);
+ if ($storage === null) {
+ throw new \RuntimeException('Should not happen, instanceOfStorage but getInstanceOfStorage return null');
+ }
+ } else {
+ throw new \RuntimeException('Should not happen, instanceOfStorage but not a wrapper');
}
- } else {
- throw new \RuntimeException('Should not happen, instanceOfStorage but not a wrapper');
+
+ /** @var SharedStorage $storage */
+ $originalShare = $storage->getShare();
+ $inheritedAttributes = $originalShare->getAttributes();
+ // hide if hidden and also the current share enforces hide (can only be false if one share is false or user is owner)
+ $hideDownload = $hideDownload && $originalShare->getHideDownload();
+ // allow download if already allowed by previous share or when the current share allows downloading
+ $canDownload = $canDownload || $inheritedAttributes === null || $inheritedAttributes->getAttribute('permissions', 'download') !== false;
+ } elseif ($node->getStorage()->instanceOfStorage(Storage::class)) {
+ $canDownload = true; // in case of federation storage, we can expect the download to be activated by default
}
- /** @var \OCA\Files_Sharing\SharedStorage $storage */
- $inheritedAttributes = $storage->getShare()->getAttributes();
- if ($inheritedAttributes !== null && $inheritedAttributes->getAttribute('permissions', 'download') === false) {
- $share->setHideDownload(true);
- $attributes = $share->getAttributes();
- if ($attributes) {
- $attributes->setAttribute('permissions', 'download', false);
- $share->setAttributes($attributes);
+ }
+
+ if ($hideDownload || !$canDownload) {
+ $share->setHideDownload(true);
+
+ if (!$canDownload) {
+ $attributes = $share->getAttributes() ?? $share->newAttributes();
+ $attributes->setAttribute('permissions', 'download', false);
+ $share->setAttributes($attributes);
+ }
+ }
+ }
+
+ /**
+ * Send a mail notification again for a share.
+ * The mail_send option must be enabled for the given share.
+ * @param string $id the share ID
+ * @param string $password the password to check against. Necessary for password protected shares.
+ * @throws OCSNotFoundException Share not found
+ * @throws OCSForbiddenException You are not allowed to send mail notifications
+ * @throws OCSBadRequestException Invalid request or wrong password
+ * @throws OCSException Error while sending mail notification
+ * @return DataResponse<Http::STATUS_OK, list<empty>, array{}>
+ *
+ * 200: The email notification was sent successfully
+ */
+ #[NoAdminRequired]
+ #[UserRateLimit(limit: 10, period: 600)]
+ public function sendShareEmail(string $id, $password = ''): DataResponse {
+ try {
+ $share = $this->getShareById($id);
+
+ if (!$this->canAccessShare($share, false)) {
+ throw new OCSNotFoundException($this->l->t('Wrong share ID, share does not exist'));
+ }
+
+ if (!$this->canEditShare($share)) {
+ throw new OCSForbiddenException($this->l->t('You are not allowed to send mail notifications'));
+ }
+
+ // For mail and link shares, the user must be
+ // the owner of the share, not only the file owner.
+ if ($share->getShareType() === IShare::TYPE_EMAIL
+ || $share->getShareType() === IShare::TYPE_LINK) {
+ if ($share->getSharedBy() !== $this->userId) {
+ throw new OCSForbiddenException($this->l->t('You are not allowed to send mail notifications'));
+ }
+ }
+
+ try {
+ $provider = $this->factory->getProviderForType($share->getShareType());
+ if (!($provider instanceof IShareProviderWithNotification)) {
+ throw new OCSBadRequestException($this->l->t('No mail notification configured for this share type'));
+ }
+
+ // Circumvent the password encrypted data by
+ // setting the password clear. We're not storing
+ // the password clear, it is just a temporary
+ // object manipulation. The password will stay
+ // encrypted in the database.
+ if ($share->getPassword() !== null && $share->getPassword() !== $password) {
+ if (!$this->shareManager->checkPassword($share, $password)) {
+ throw new OCSBadRequestException($this->l->t('Wrong password'));
+ }
+ $share = $share->setPassword($password);
+ }
+
+ $provider->sendMailNotification($share);
+ return new DataResponse();
+ } catch (Exception $e) {
+ $this->logger->error($e->getMessage(), ['exception' => $e]);
+ throw new OCSException($this->l->t('Error while sending mail notification'));
+ }
+
+ } catch (ShareNotFound $e) {
+ throw new OCSNotFoundException($this->l->t('Wrong share ID, share does not exist'));
+ }
+ }
+
+ /**
+ * Get a unique share token
+ *
+ * @throws OCSException Failed to generate a unique token
+ *
+ * @return DataResponse<Http::STATUS_OK, array{token: string}, array{}>
+ *
+ * 200: Token generated successfully
+ */
+ #[ApiRoute(verb: 'GET', url: '/api/v1/token')]
+ #[NoAdminRequired]
+ public function generateToken(): DataResponse {
+ try {
+ $token = $this->shareManager->generateToken();
+ return new DataResponse([
+ 'token' => $token,
+ ]);
+ } catch (ShareTokenException $e) {
+ throw new OCSException($this->l->t('Failed to generate a unique token'));
+ }
+ }
+
+ /**
+ * Populate the result set with file tags
+ *
+ * @psalm-template T of array{tags?: list<string>, file_source: int, ...array<string, mixed>}
+ * @param list<T> $fileList
+ * @return list<T> file list populated with tags
+ */
+ private function populateTags(array $fileList): array {
+ $tagger = $this->tagManager->load('files');
+ $tags = $tagger->getTagsForObjects(array_map(static fn (array $fileData) => $fileData['file_source'], $fileList));
+
+ if (!is_array($tags)) {
+ throw new \UnexpectedValueException('$tags must be an array');
+ }
+
+ // Set empty tag array
+ foreach ($fileList as &$fileData) {
+ $fileData['tags'] = [];
+ }
+ unset($fileData);
+
+ if (!empty($tags)) {
+ foreach ($tags as $fileId => $fileTags) {
+ foreach ($fileList as &$fileData) {
+ if ($fileId !== $fileData['file_source']) {
+ continue;
+ }
+
+ $fileData['tags'] = $fileTags;
}
+ unset($fileData);
}
}
+ return $fileList;
}
}
diff --git a/apps/files_sharing/lib/Controller/ShareController.php b/apps/files_sharing/lib/Controller/ShareController.php
index d6780d37f2f..5a776379fce 100644
--- a/apps/files_sharing/lib/Controller/ShareController.php
+++ b/apps/files_sharing/lib/Controller/ShareController.php
@@ -1,66 +1,35 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Calviño Sánchez <danxuliu@gmail.com>
- * @author Georg Ehrke <oc.list@georgehrke.com>
- * @author j3l11234 <297259024@qq.com>
- * @author Joas Schilling <coding@schilljs.com>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Jonas Sulzer <jonas@violoncello.ch>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author MartB <mart.b@outlook.de>
- * @author Maxence Lange <maxence@pontapreta.net>
- * @author Michael Weimann <mail@michael-weimann.eu>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Piotr Filiciak <piotr@filiciak.pl>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Sascha Sambale <mastixmc@gmail.com>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Vincent Petry <vincent@nextcloud.com>
- * @author Kate Döen <kate.doeen@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Controller;
use OC\Security\CSP\ContentSecurityPolicy;
-use OC_Files;
-use OC_Util;
use OCA\DAV\Connector\Sabre\PublicAuth;
use OCA\FederatedFileSharing\FederatedShareProvider;
-use OCA\Files_Sharing\Activity\Providers\Downloads;
use OCA\Files_Sharing\Event\BeforeTemplateRenderedEvent;
use OCA\Files_Sharing\Event\ShareLinkAccessedEvent;
use OCP\Accounts\IAccountManager;
use OCP\AppFramework\AuthPublicShareController;
+use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
use OCP\AppFramework\Http\Attribute\OpenAPI;
+use OCP\AppFramework\Http\Attribute\PublicPage;
+use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Http\NotFoundResponse;
+use OCP\AppFramework\Http\RedirectResponse;
+use OCP\AppFramework\Http\Response;
use OCP\AppFramework\Http\TemplateResponse;
+use OCP\Constants;
use OCP\Defaults;
use OCP\EventDispatcher\IEventDispatcher;
+use OCP\Files\File;
use OCP\Files\Folder;
use OCP\Files\IRootFolder;
use OCP\Files\NotFoundException;
+use OCP\HintException;
use OCP\IConfig;
use OCP\IL10N;
use OCP\IPreview;
@@ -68,20 +37,21 @@ use OCP\IRequest;
use OCP\ISession;
use OCP\IURLGenerator;
use OCP\IUserManager;
+use OCP\Security\Events\GenerateSecurePasswordEvent;
use OCP\Security\ISecureRandom;
+use OCP\Security\PasswordContext;
use OCP\Share;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IManager as ShareManager;
use OCP\Share\IPublicShareTemplateFactory;
use OCP\Share\IShare;
-use OCP\Template;
/**
* @package OCA\Files_Sharing\Controllers
*/
#[OpenAPI(scope: OpenAPI::SCOPE_IGNORE)]
class ShareController extends AuthPublicShareController {
- protected ?Share\IShare $share = null;
+ protected ?IShare $share = null;
public const SHARE_ACCESS = 'access';
public const SHARE_AUTH = 'auth';
@@ -110,12 +80,11 @@ class ShareController extends AuthPublicShareController {
}
/**
- * @PublicPage
- * @NoCSRFRequired
- *
* Show the authentication page
* The form has to submit to the authenticate method route
*/
+ #[PublicPage]
+ #[NoCSRFRequired]
public function showAuthenticate(): TemplateResponse {
$templateParameters = ['share' => $this->share];
@@ -192,7 +161,7 @@ class ShareController extends AuthPublicShareController {
* Generates a password for the share, respecting any password policy defined
*/
protected function generatePassword(): void {
- $event = new \OCP\Security\Events\GenerateSecurePasswordEvent();
+ $event = new GenerateSecurePasswordEvent(PasswordContext::SHARING);
$this->eventDispatcher->dispatchTyped($event);
$password = $event->getPassword() ?? $this->secureRandom->generate(20);
@@ -239,12 +208,12 @@ class ShareController extends AuthPublicShareController {
/**
* throws hooks when a share is attempted to be accessed
*
- * @param \OCP\Share\IShare|string $share the Share instance if available,
- * otherwise token
+ * @param IShare|string $share the Share instance if available,
+ * otherwise token
* @param int $errorCode
* @param string $errorMessage
*
- * @throws \OCP\HintException
+ * @throws HintException
* @throws \OC\ServerNotAvailableException
*
* @deprecated use OCP\Files_Sharing\Event\ShareLinkAccessedEvent
@@ -253,7 +222,7 @@ class ShareController extends AuthPublicShareController {
$itemType = $itemSource = $uidOwner = '';
$token = $share;
$exception = null;
- if ($share instanceof \OCP\Share\IShare) {
+ if ($share instanceof IShare) {
try {
$token = $share->getToken();
$uidOwner = $share->getSharedBy();
@@ -283,9 +252,9 @@ class ShareController extends AuthPublicShareController {
* Emit a ShareLinkAccessedEvent event when a share is accessed, downloaded, auth...
*/
protected function emitShareAccessEvent(IShare $share, string $step = '', int $errorCode = 200, string $errorMessage = ''): void {
- if ($step !== self::SHARE_ACCESS &&
- $step !== self::SHARE_AUTH &&
- $step !== self::SHARE_DOWNLOAD) {
+ if ($step !== self::SHARE_ACCESS
+ && $step !== self::SHARE_AUTH
+ && $step !== self::SHARE_DOWNLOAD) {
return;
}
$this->eventDispatcher->dispatchTyped(new ShareLinkAccessedEvent($share, $step, $errorCode, $errorMessage));
@@ -297,7 +266,7 @@ class ShareController extends AuthPublicShareController {
* @param Share\IShare $share
* @return bool
*/
- private function validateShare(\OCP\Share\IShare $share) {
+ private function validateShare(IShare $share) {
// If the owner is disabled no access to the link is granted
$owner = $this->userManager->get($share->getShareOwner());
if ($owner === null || !$owner->isEnabled()) {
@@ -314,15 +283,13 @@ class ShareController extends AuthPublicShareController {
}
/**
- * @PublicPage
- * @NoCSRFRequired
- *
- *
* @param string $path
* @return TemplateResponse
* @throws NotFoundException
* @throws \Exception
*/
+ #[PublicPage]
+ #[NoCSRFRequired]
public function showShare($path = ''): TemplateResponse {
\OC_User::setIncognitoMode(true);
@@ -332,11 +299,11 @@ class ShareController extends AuthPublicShareController {
} catch (ShareNotFound $e) {
// The share does not exists, we do not emit an ShareLinkAccessedEvent
$this->emitAccessShareHook($this->getToken(), 404, 'Share not found');
- throw new NotFoundException();
+ throw new NotFoundException($this->l10n->t('This share does not exist or is no longer available'));
}
if (!$this->validateShare($share)) {
- throw new NotFoundException();
+ throw new NotFoundException($this->l10n->t('This share does not exist or is no longer available'));
}
$shareNode = $share->getNode();
@@ -347,15 +314,15 @@ class ShareController extends AuthPublicShareController {
} catch (NotFoundException $e) {
$this->emitAccessShareHook($share, 404, 'Share not found');
$this->emitShareAccessEvent($share, ShareController::SHARE_ACCESS, 404, 'Share not found');
- throw new NotFoundException();
+ throw new NotFoundException($this->l10n->t('This share does not exist or is no longer available'));
}
// We can't get the path of a file share
try {
- if ($shareNode instanceof \OCP\Files\File && $path !== '') {
+ if ($shareNode instanceof File && $path !== '') {
$this->emitAccessShareHook($share, 404, 'Share not found');
$this->emitShareAccessEvent($share, self::SHARE_ACCESS, 404, 'Share not found');
- throw new NotFoundException();
+ throw new NotFoundException($this->l10n->t('This share does not exist or is no longer available'));
}
} catch (\Exception $e) {
$this->emitAccessShareHook($share, 404, 'Share not found');
@@ -371,56 +338,38 @@ class ShareController extends AuthPublicShareController {
}
/**
- * @PublicPage
- * @NoCSRFRequired
* @NoSameSiteCookieRequired
*
* @param string $token
- * @param string $files
+ * @param string|null $files
* @param string $path
- * @param string $downloadStartSecret
- * @return void|\OCP\AppFramework\Http\Response
+ * @return void|Response
* @throws NotFoundException
+ * @deprecated 31.0.0 Users are encouraged to use the DAV endpoint
*/
- public function downloadShare($token, $files = null, $path = '', $downloadStartSecret = '') {
+ #[PublicPage]
+ #[NoCSRFRequired]
+ public function downloadShare($token, $files = null, $path = '') {
\OC_User::setIncognitoMode(true);
$share = $this->shareManager->getShareByToken($token);
- if (!($share->getPermissions() & \OCP\Constants::PERMISSION_READ)) {
- return new \OCP\AppFramework\Http\DataResponse('Share has no read permission');
+ if (!($share->getPermissions() & Constants::PERMISSION_READ)) {
+ return new DataResponse('Share has no read permission');
}
- $files_list = null;
- if (!is_null($files)) { // download selected files
- $files_list = json_decode($files);
- // in case we get only a single file
- if ($files_list === null) {
- $files_list = [$files];
- }
- // Just in case $files is a single int like '1234'
- if (!is_array($files_list)) {
- $files_list = [$files_list];
- }
+ $attributes = $share->getAttributes();
+ if ($attributes?->getAttribute('permissions', 'download') === false) {
+ return new DataResponse('Share has no download permission');
}
if (!$this->validateShare($share)) {
throw new NotFoundException();
}
- $userFolder = $this->rootFolder->getUserFolder($share->getShareOwner());
- $originalSharePath = $userFolder->getRelativePath($share->getNode()->getPath());
-
-
- // Single file share
- if ($share->getNode() instanceof \OCP\Files\File) {
- // Single file download
- $this->singleFileDownloaded($share, $share->getNode());
- }
- // Directory share
- else {
- /** @var \OCP\Files\Folder $node */
- $node = $share->getNode();
+ $node = $share->getNode();
+ if ($node instanceof Folder) {
+ // Directory share
// Try to get the path
if ($path !== '') {
@@ -433,156 +382,22 @@ class ShareController extends AuthPublicShareController {
}
}
- $originalSharePath = $userFolder->getRelativePath($node->getPath());
-
- if ($node instanceof \OCP\Files\File) {
- // Single file download
- $this->singleFileDownloaded($share, $share->getNode());
- } else {
- try {
- if (!empty($files_list)) {
- $this->fileListDownloaded($share, $files_list, $node);
- } else {
- // The folder is downloaded
- $this->singleFileDownloaded($share, $share->getNode());
+ if ($node instanceof Folder) {
+ if ($files === null || $files === '') {
+ if ($share->getHideDownload()) {
+ throw new NotFoundException('Downloading a folder');
}
- } catch (NotFoundException $e) {
- return new NotFoundResponse();
}
}
}
- /* FIXME: We should do this all nicely in OCP */
- OC_Util::tearDownFS();
- OC_Util::setupFS($share->getShareOwner());
-
- /**
- * this sets a cookie to be able to recognize the start of the download
- * the content must not be longer than 32 characters and must only contain
- * alphanumeric characters
- */
- if (!empty($downloadStartSecret)
- && !isset($downloadStartSecret[32])
- && preg_match('!^[a-zA-Z0-9]+$!', $downloadStartSecret) === 1) {
- // FIXME: set on the response once we use an actual app framework response
- setcookie('ocDownloadStarted', $downloadStartSecret, time() + 20, '/');
- }
-
$this->emitAccessShareHook($share);
$this->emitShareAccessEvent($share, self::SHARE_DOWNLOAD);
- $server_params = [ 'head' => $this->request->getMethod() === 'HEAD' ];
-
- /**
- * Http range requests support
- */
- if (isset($_SERVER['HTTP_RANGE'])) {
- $server_params['range'] = $this->request->getHeader('Range');
+ $davUrl = '/public.php/dav/files/' . $token . '/?accept=zip';
+ if ($files !== null) {
+ $davUrl .= '&files=' . $files;
}
-
- // download selected files
- if (!is_null($files) && $files !== '') {
- // FIXME: The exit is required here because otherwise the AppFramework is trying to add headers as well
- // after dispatching the request which results in a "Cannot modify header information" notice.
- OC_Files::get($originalSharePath, $files_list, $server_params);
- exit();
- } else {
- // FIXME: The exit is required here because otherwise the AppFramework is trying to add headers as well
- // after dispatching the request which results in a "Cannot modify header information" notice.
- OC_Files::get(dirname($originalSharePath), basename($originalSharePath), $server_params);
- exit();
- }
- }
-
- /**
- * create activity for every downloaded file
- *
- * @param Share\IShare $share
- * @param array $files_list
- * @param \OCP\Files\Folder $node
- * @throws NotFoundException when trying to download a folder or multiple files of a "hide download" share
- */
- protected function fileListDownloaded(Share\IShare $share, array $files_list, \OCP\Files\Folder $node) {
- if ($share->getHideDownload() && count($files_list) > 1) {
- throw new NotFoundException('Downloading more than 1 file');
- }
-
- foreach ($files_list as $file) {
- $subNode = $node->get($file);
- $this->singleFileDownloaded($share, $subNode);
- }
- }
-
- /**
- * create activity if a single file was downloaded from a link share
- *
- * @param Share\IShare $share
- * @throws NotFoundException when trying to download a folder of a "hide download" share
- */
- protected function singleFileDownloaded(Share\IShare $share, \OCP\Files\Node $node) {
- if ($share->getHideDownload() && $node instanceof Folder) {
- throw new NotFoundException('Downloading a folder');
- }
-
- $fileId = $node->getId();
-
- $userFolder = $this->rootFolder->getUserFolder($share->getSharedBy());
- $userNode = $userFolder->getFirstNodeById($fileId);
- $ownerFolder = $this->rootFolder->getUserFolder($share->getShareOwner());
- $userPath = $userFolder->getRelativePath($userNode->getPath());
- $ownerPath = $ownerFolder->getRelativePath($node->getPath());
- $remoteAddress = $this->request->getRemoteAddress();
- $dateTime = new \DateTime();
- $dateTime = $dateTime->format('Y-m-d H');
- $remoteAddressHash = md5($dateTime . '-' . $remoteAddress);
-
- $parameters = [$userPath];
-
- if ($share->getShareType() === IShare::TYPE_EMAIL) {
- if ($node instanceof \OCP\Files\File) {
- $subject = Downloads::SUBJECT_SHARED_FILE_BY_EMAIL_DOWNLOADED;
- } else {
- $subject = Downloads::SUBJECT_SHARED_FOLDER_BY_EMAIL_DOWNLOADED;
- }
- $parameters[] = $share->getSharedWith();
- } else {
- if ($node instanceof \OCP\Files\File) {
- $subject = Downloads::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED;
- $parameters[] = $remoteAddressHash;
- } else {
- $subject = Downloads::SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED;
- $parameters[] = $remoteAddressHash;
- }
- }
-
- $this->publishActivity($subject, $parameters, $share->getSharedBy(), $fileId, $userPath);
-
- if ($share->getShareOwner() !== $share->getSharedBy()) {
- $parameters[0] = $ownerPath;
- $this->publishActivity($subject, $parameters, $share->getShareOwner(), $fileId, $ownerPath);
- }
- }
-
- /**
- * publish activity
- *
- * @param string $subject
- * @param array $parameters
- * @param string $affectedUser
- * @param int $fileId
- * @param string $filePath
- */
- protected function publishActivity($subject,
- array $parameters,
- $affectedUser,
- $fileId,
- $filePath) {
- $event = $this->activityManager->generateEvent();
- $event->setApp('files_sharing')
- ->setType('public_links')
- ->setSubject($subject, $parameters)
- ->setAffectedUser($affectedUser)
- ->setObject('files', $fileId, $filePath);
- $this->activityManager->publish($event);
+ return new RedirectResponse($this->urlGenerator->getAbsoluteURL($davUrl));
}
}
diff --git a/apps/files_sharing/lib/Controller/ShareInfoController.php b/apps/files_sharing/lib/Controller/ShareInfoController.php
index a1379a63d9a..b7e79aec830 100644
--- a/apps/files_sharing/lib/Controller/ShareInfoController.php
+++ b/apps/files_sharing/lib/Controller/ShareInfoController.php
@@ -1,26 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2016 Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Kate Döen <kate.doeen@nextcloud.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Controller;
@@ -28,6 +10,10 @@ use OCA\Files_External\NotFoundException;
use OCA\Files_Sharing\ResponseDefinitions;
use OCP\AppFramework\ApiController;
use OCP\AppFramework\Http;
+use OCP\AppFramework\Http\Attribute\BruteForceProtection;
+use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
+use OCP\AppFramework\Http\Attribute\OpenAPI;
+use OCP\AppFramework\Http\Attribute\PublicPage;
use OCP\AppFramework\Http\JSONResponse;
use OCP\Constants;
use OCP\Files\File;
@@ -42,9 +28,6 @@ use OCP\Share\IManager;
*/
class ShareInfoController extends ApiController {
- /** @var IManager */
- private $shareManager;
-
/**
* ShareInfoController constructor.
*
@@ -52,31 +35,31 @@ class ShareInfoController extends ApiController {
* @param IRequest $request
* @param IManager $shareManager
*/
- public function __construct(string $appName,
+ public function __construct(
+ string $appName,
IRequest $request,
- IManager $shareManager) {
+ private IManager $shareManager,
+ ) {
parent::__construct($appName, $request);
-
- $this->shareManager = $shareManager;
}
/**
- * @PublicPage
- * @NoCSRFRequired
- * @BruteForceProtection(action=shareinfo)
- *
* Get the info about a share
*
* @param string $t Token of the share
* @param string|null $password Password of the share
* @param string|null $dir Subdirectory to get info about
* @param int $depth Maximum depth to get info about
- * @return JSONResponse<Http::STATUS_OK, Files_SharingShareInfo, array{}>|JSONResponse<Http::STATUS_FORBIDDEN|Http::STATUS_NOT_FOUND, array<empty>, array{}>
+ * @return JSONResponse<Http::STATUS_OK, Files_SharingShareInfo, array{}>|JSONResponse<Http::STATUS_FORBIDDEN|Http::STATUS_NOT_FOUND, list<empty>, array{}>
*
* 200: Share info returned
* 403: Getting share info is not allowed
* 404: Share not found
*/
+ #[PublicPage]
+ #[NoCSRFRequired]
+ #[BruteForceProtection(action: 'shareinfo')]
+ #[OpenAPI(scope: OpenAPI::SCOPE_DEFAULT)]
public function info(string $t, ?string $password = null, ?string $dir = null, int $depth = -1): JSONResponse {
try {
$share = $this->shareManager->getShareByToken($t);
diff --git a/apps/files_sharing/lib/Controller/ShareesAPIController.php b/apps/files_sharing/lib/Controller/ShareesAPIController.php
index 31014ac6565..0c458ce9662 100644
--- a/apps/files_sharing/lib/Controller/ShareesAPIController.php
+++ b/apps/files_sharing/lib/Controller/ShareesAPIController.php
@@ -1,47 +1,20 @@
<?php
declare(strict_types=1);
-
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Calviño Sánchez <danxuliu@gmail.com>
- * @author Daniel Kesselberg <mail@danielkesselberg.de>
- * @author J0WI <J0WI@users.noreply.github.com>
- * @author Joas Schilling <coding@schilljs.com>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Maxence Lange <maxence@nextcloud.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Kate Döen <kate.doeen@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Controller;
use Generator;
use OC\Collaboration\Collaborators\SearchResult;
+use OC\Share\Share;
use OCA\Files_Sharing\ResponseDefinitions;
+use OCP\App\IAppManager;
use OCP\AppFramework\Http;
+use OCP\AppFramework\Http\Attribute\NoAdminRequired;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCS\OCSBadRequestException;
use OCP\AppFramework\OCSController;
@@ -49,9 +22,11 @@ use OCP\Collaboration\Collaborators\ISearch;
use OCP\Collaboration\Collaborators\ISearchResult;
use OCP\Collaboration\Collaborators\SearchResultType;
use OCP\Constants;
+use OCP\GlobalScale\IConfig as GlobalScaleIConfig;
use OCP\IConfig;
use OCP\IRequest;
use OCP\IURLGenerator;
+use OCP\Server;
use OCP\Share\IManager;
use OCP\Share\IShare;
use function array_slice;
@@ -94,19 +69,10 @@ class ShareesAPIController extends OCSController {
protected $reachedEndFor = [];
- /**
- * @param string $UserId
- * @param string $appName
- * @param IRequest $request
- * @param IConfig $config
- * @param IURLGenerator $urlGenerator
- * @param IManager $shareManager
- * @param ISearch $collaboratorSearch
- */
public function __construct(
string $appName,
IRequest $request,
- protected string $userId,
+ protected ?string $userId,
protected IConfig $config,
protected IURLGenerator $urlGenerator,
protected IManager $shareManager,
@@ -116,21 +82,20 @@ class ShareesAPIController extends OCSController {
}
/**
- * @NoAdminRequired
- *
* Search for sharees
*
* @param string $search Text to search for
* @param string|null $itemType Limit to specific item types
* @param int $page Page offset for searching
* @param int $perPage Limit amount of search results per page
- * @param int|int[]|null $shareType Limit to specific share types
+ * @param int|list<int>|null $shareType Limit to specific share types
* @param bool $lookup If a global lookup should be performed too
* @return DataResponse<Http::STATUS_OK, Files_SharingShareesSearchResult, array{Link?: string}>
* @throws OCSBadRequestException Invalid search parameters
*
* 200: Sharees search result returned
*/
+ #[NoAdminRequired]
public function search(string $search = '', ?string $itemType = null, int $page = 1, int $perPage = 200, $shareType = null, bool $lookup = false): DataResponse {
// only search for string larger than a given threshold
@@ -193,7 +158,7 @@ class ShareesAPIController extends OCSController {
}
// FIXME: DI
- if (\OC::$server->getAppManager()->isEnabledForUser('circles') && class_exists('\OCA\Circles\ShareByCircleProvider')) {
+ if (Server::get(IAppManager::class)->isEnabledForUser('circles') && class_exists('\OCA\Circles\ShareByCircleProvider')) {
$shareTypes[] = IShare::TYPE_CIRCLE;
}
@@ -204,22 +169,18 @@ class ShareesAPIController extends OCSController {
if ($shareType !== null && is_array($shareType)) {
$shareTypes = array_intersect($shareTypes, $shareType);
} elseif (is_numeric($shareType)) {
- $shareTypes = array_intersect($shareTypes, [(int) $shareType]);
+ $shareTypes = array_intersect($shareTypes, [(int)$shareType]);
}
sort($shareTypes);
$this->limit = $perPage;
$this->offset = $perPage * ($page - 1);
- // In global scale mode we always search the loogup server
- if ($this->config->getSystemValueBool('gs.enabled', false)) {
- $lookup = true;
- $this->result['lookupEnabled'] = true;
- } else {
- $this->result['lookupEnabled'] = $this->config->getAppValue('files_sharing', 'lookupServerEnabled', 'yes') === 'yes';
- }
+ // In global scale mode we always search the lookup server
+ $this->result['lookupEnabled'] = Server::get(GlobalScaleIConfig::class)->isGlobalScaleEnabled();
+ // TODO: Reconsider using lookup server for non-global-scale federation
- [$result, $hasMoreResults] = $this->collaboratorSearch->search($search, $shareTypes, $lookup, $this->limit, $this->offset);
+ [$result, $hasMoreResults] = $this->collaboratorSearch->search($search, $shareTypes, $this->result['lookupEnabled'], $this->limit, $this->offset);
// extra treatment for 'exact' subarray, with a single merge expected keys might be lost
if (isset($result['exact'])) {
@@ -287,7 +248,7 @@ class ShareesAPIController extends OCSController {
$sharees = $this->getAllShareesByType($user, $shareType);
$shareTypeResults = [];
foreach ($sharees as [$sharee, $displayname]) {
- if (!isset($this->searchResultTypeMap[$shareType])) {
+ if (!isset($this->searchResultTypeMap[$shareType]) || trim($sharee) === '') {
continue;
}
@@ -326,16 +287,15 @@ class ShareesAPIController extends OCSController {
}
/**
- * @NoAdminRequired
- *
* Find recommended sharees
*
* @param string $itemType Limit to specific item types
- * @param int|int[]|null $shareType Limit to specific share types
+ * @param int|list<int>|null $shareType Limit to specific share types
* @return DataResponse<Http::STATUS_OK, Files_SharingShareesRecommendedResult, array{}>
*
* 200: Recommended sharees returned
*/
+ #[NoAdminRequired]
public function findRecommended(string $itemType, $shareType = null): DataResponse {
$shareTypes = [
IShare::TYPE_USER,
@@ -367,7 +327,7 @@ class ShareesAPIController extends OCSController {
}
// FIXME: DI
- if (\OC::$server->getAppManager()->isEnabledForUser('circles') && class_exists('\OCA\Circles\ShareByCircleProvider')) {
+ if (Server::get(IAppManager::class)->isEnabledForUser('circles') && class_exists('\OCA\Circles\ShareByCircleProvider')) {
$shareTypes[] = IShare::TYPE_CIRCLE;
}
@@ -375,7 +335,7 @@ class ShareesAPIController extends OCSController {
$shareTypes = array_intersect($shareTypes, $_GET['shareType']);
sort($shareTypes);
} elseif (is_numeric($shareType)) {
- $shareTypes = array_intersect($shareTypes, [(int) $shareType]);
+ $shareTypes = array_intersect($shareTypes, [(int)$shareType]);
sort($shareTypes);
}
@@ -393,7 +353,7 @@ class ShareesAPIController extends OCSController {
protected function isRemoteSharingAllowed(string $itemType): bool {
try {
// FIXME: static foo makes unit testing unnecessarily difficult
- $backend = \OC\Share\Share::getBackend($itemType);
+ $backend = Share::getBackend($itemType);
return $backend->isShareTypeAllowed(IShare::TYPE_REMOTE);
} catch (\Exception $e) {
return false;
@@ -403,7 +363,7 @@ class ShareesAPIController extends OCSController {
protected function isRemoteGroupSharingAllowed(string $itemType): bool {
try {
// FIXME: static foo makes unit testing unnecessarily difficult
- $backend = \OC\Share\Share::getBackend($itemType);
+ $backend = Share::getBackend($itemType);
return $backend->isShareTypeAllowed(IShare::TYPE_REMOTE_GROUP);
} catch (\Exception $e) {
return false;
diff --git a/apps/files_sharing/lib/DefaultPublicShareTemplateProvider.php b/apps/files_sharing/lib/DefaultPublicShareTemplateProvider.php
index 8af1c803e18..afba45cac4a 100644
--- a/apps/files_sharing/lib/DefaultPublicShareTemplateProvider.php
+++ b/apps/files_sharing/lib/DefaultPublicShareTemplateProvider.php
@@ -2,23 +2,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2023 Louis Chemineau <louis@chmn.me>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing;
@@ -34,11 +19,12 @@ use OCP\AppFramework\Http\Template\LinkMenuAction;
use OCP\AppFramework\Http\Template\PublicTemplateResponse;
use OCP\AppFramework\Http\Template\SimpleMenuAction;
use OCP\AppFramework\Http\TemplateResponse;
+use OCP\AppFramework\Services\IInitialState;
use OCP\Constants;
use OCP\Defaults;
use OCP\EventDispatcher\IEventDispatcher;
-use OCP\Files\FileInfo;
-use OCP\Files\Folder;
+use OCP\Files\File;
+use OCP\IAppConfig;
use OCP\IConfig;
use OCP\IL10N;
use OCP\IPreview;
@@ -48,43 +34,24 @@ use OCP\IUser;
use OCP\IUserManager;
use OCP\Share\IPublicShareTemplateProvider;
use OCP\Share\IShare;
-use OCP\Template;
use OCP\Util;
class DefaultPublicShareTemplateProvider implements IPublicShareTemplateProvider {
- private IUserManager $userManager;
- private IAccountManager $accountManager;
- private IPreview $previewManager;
- protected FederatedShareProvider $federatedShareProvider;
- private IURLGenerator $urlGenerator;
- private IEventDispatcher $eventDispatcher;
- private IL10N $l10n;
- private Defaults $defaults;
- private IConfig $config;
- private IRequest $request;
public function __construct(
- IUserManager $userManager,
- IAccountManager $accountManager,
- IPreview $previewManager,
- FederatedShareProvider $federatedShareProvider,
- IUrlGenerator $urlGenerator,
- IEventDispatcher $eventDispatcher,
- IL10N $l10n,
- Defaults $defaults,
- IConfig $config,
- IRequest $request
+ private IUserManager $userManager,
+ private IAccountManager $accountManager,
+ private IPreview $previewManager,
+ protected FederatedShareProvider $federatedShareProvider,
+ private IUrlGenerator $urlGenerator,
+ private IEventDispatcher $eventDispatcher,
+ private IL10N $l10n,
+ private Defaults $defaults,
+ private IConfig $config,
+ private IRequest $request,
+ private IInitialState $initialState,
+ private IAppConfig $appConfig,
) {
- $this->userManager = $userManager;
- $this->accountManager = $accountManager;
- $this->previewManager = $previewManager;
- $this->federatedShareProvider = $federatedShareProvider;
- $this->urlGenerator = $urlGenerator;
- $this->eventDispatcher = $eventDispatcher;
- $this->l10n = $l10n;
- $this->defaults = $defaults;
- $this->config = $config;
- $this->request = $request;
}
public function shouldRespond(IShare $share): bool {
@@ -93,105 +60,149 @@ class DefaultPublicShareTemplateProvider implements IPublicShareTemplateProvider
public function renderPage(IShare $share, string $token, string $path): TemplateResponse {
$shareNode = $share->getNode();
+ $ownerName = '';
+ $ownerId = '';
- $shareTmpl = [];
- $shareTmpl['owner'] = '';
- $shareTmpl['shareOwner'] = '';
-
+ // Only make the share owner public if they allowed to show their name
$owner = $this->userManager->get($share->getShareOwner());
if ($owner instanceof IUser) {
$ownerAccount = $this->accountManager->getAccount($owner);
- $ownerName = $ownerAccount->getProperty(IAccountManager::PROPERTY_DISPLAYNAME);
- if ($ownerName->getScope() === IAccountManager::SCOPE_PUBLISHED) {
- $shareTmpl['owner'] = $owner->getUID();
- $shareTmpl['shareOwner'] = $owner->getDisplayName();
+ $ownerNameProperty = $ownerAccount->getProperty(IAccountManager::PROPERTY_DISPLAYNAME);
+ if ($ownerNameProperty->getScope() === IAccountManager::SCOPE_PUBLISHED) {
+ $ownerId = $owner->getUID();
+ $ownerName = $owner->getDisplayName();
+ $this->initialState->provideInitialState('owner', $ownerId);
+ $this->initialState->provideInitialState('ownerDisplayName', $ownerName);
}
}
- $shareTmpl['filename'] = $shareNode->getName();
- $shareTmpl['directory_path'] = $share->getTarget();
- $shareTmpl['note'] = $share->getNote();
- $shareTmpl['mimetype'] = $shareNode->getMimetype();
- $shareTmpl['previewSupported'] = $this->previewManager->isMimeSupported($shareNode->getMimetype());
- $shareTmpl['dirToken'] = $token;
- $shareTmpl['sharingToken'] = $token;
- $shareTmpl['server2serversharing'] = $this->federatedShareProvider->isOutgoingServer2serverShareEnabled();
- $shareTmpl['protected'] = $share->getPassword() !== null ? 'true' : 'false';
- $shareTmpl['dir'] = '';
- $shareTmpl['nonHumanFileSize'] = $shareNode->getSize();
- $shareTmpl['fileSize'] = Util::humanFileSize($shareNode->getSize());
- $shareTmpl['hideDownload'] = $share->getHideDownload();
-
- $hideFileList = false;
+ $view = 'public-share';
+ if ($shareNode instanceof File) {
+ $view = 'public-file-share';
+ $this->initialState->provideInitialState('fileId', $shareNode->getId());
+ } elseif (($share->getPermissions() & Constants::PERMISSION_CREATE)
+ && !($share->getPermissions() & Constants::PERMISSION_READ)
+ ) {
+ // share is a folder with create but no read permissions -> file drop only
+ $view = 'public-file-drop';
+ // Only needed for file drops
+ $this->initialState->provideInitialState(
+ 'disclaimer',
+ $this->appConfig->getValueString('core', 'shareapi_public_link_disclaimertext'),
+ );
+ // file drops do not request the root folder so we need to provide label and note if available
+ $this->initialState->provideInitialState('label', $share->getLabel());
+ $this->initialState->provideInitialState('note', $share->getNote());
+ }
+ // Set up initial state
+ $this->initialState->provideInitialState('isPublic', true);
+ $this->initialState->provideInitialState('sharingToken', $token);
+ $this->initialState->provideInitialState('sharePermissions', $share->getPermissions());
+ $this->initialState->provideInitialState('filename', $shareNode->getName());
+ $this->initialState->provideInitialState('view', $view);
+
+ // Load scripts and styles for UI
+ Util::addInitScript('files', 'init');
+ Util::addInitScript(Application::APP_ID, 'init');
+ Util::addInitScript(Application::APP_ID, 'init-public');
+ Util::addScript('files', 'main');
+ Util::addScript(Application::APP_ID, 'public-nickname-handler');
+
+ // Add file-request script if needed
+ $attributes = $share->getAttributes();
+ $isFileRequest = $attributes?->getAttribute('fileRequest', 'enabled') === true;
+ $this->initialState->provideInitialState('isFileRequest', $isFileRequest);
- if ($shareNode instanceof Folder) {
- $shareIsFolder = true;
+ // Load Viewer scripts
+ if (class_exists(LoadViewer::class)) {
+ $this->eventDispatcher->dispatchTyped(new LoadViewer());
+ }
- $folderNode = $shareNode->get($path);
- $shareTmpl['dir'] = $shareNode->getRelativePath($folderNode->getPath());
+ // Allow external apps to register their scripts
+ $this->eventDispatcher->dispatchTyped(new BeforeTemplateRenderedEvent($share));
- /*
- * The OC_Util methods require a view. This just uses the node API
- */
- $freeSpace = $share->getNode()->getStorage()->free_space($share->getNode()->getInternalPath());
- if ($freeSpace < FileInfo::SPACE_UNLIMITED) {
- $freeSpace = (int)max($freeSpace, 0);
- } else {
- $freeSpace = (INF > 0) ? INF: PHP_INT_MAX; // work around https://bugs.php.net/bug.php?id=69188
- }
+ $this->addMetaHeaders($share);
- $hideFileList = !($share->getPermissions() & Constants::PERMISSION_READ);
- $maxUploadFilesize = $freeSpace;
+ // CSP to allow office
+ $csp = new ContentSecurityPolicy();
+ $csp->addAllowedFrameDomain('\'self\'');
- $folder = new Template('files', 'list', '');
+ $response = new PublicTemplateResponse(
+ 'files',
+ 'index',
+ );
+ $response->setContentSecurityPolicy($csp);
- $folder->assign('dir', $shareNode->getRelativePath($folderNode->getPath()));
- $folder->assign('dirToken', $token);
- $folder->assign('permissions', Constants::PERMISSION_READ);
- $folder->assign('isPublic', true);
- $folder->assign('hideFileList', $hideFileList);
- $folder->assign('publicUploadEnabled', 'no');
- // default to list view
- $folder->assign('showgridview', false);
- $folder->assign('uploadMaxFilesize', $maxUploadFilesize);
- $folder->assign('uploadMaxHumanFilesize', Util::humanFileSize($maxUploadFilesize));
- $folder->assign('freeSpace', $freeSpace);
- $folder->assign('usedSpacePercent', 0);
- $folder->assign('trash', false);
- $shareTmpl['folder'] = $folder->fetchPage();
+ // If the share has a label, use it as the title
+ if ($share->getLabel() !== '') {
+ $response->setHeaderTitle($share->getLabel());
+ $response->setParams(['pageTitle' => $share->getLabel()]);
} else {
- $shareIsFolder = false;
+ $response->setHeaderTitle($shareNode->getName());
+ $response->setParams(['pageTitle' => $shareNode->getName()]);
}
- // default to list view
- $shareTmpl['showgridview'] = false;
+ if ($ownerName !== '') {
+ $response->setHeaderDetails($this->l10n->t('shared by %s', [$ownerName]));
+ }
- $shareTmpl['hideFileList'] = $hideFileList;
- $shareTmpl['downloadURL'] = $this->urlGenerator->linkToRouteAbsolute('files_sharing.sharecontroller.downloadShare', [
- 'token' => $token,
- 'filename' => $shareIsFolder ? null : $shareNode->getName()
- ]);
- $shareTmpl['shareUrl'] = $this->urlGenerator->linkToRouteAbsolute('files_sharing.sharecontroller.showShare', ['token' => $token]);
- $shareTmpl['maxSizeAnimateGif'] = $this->config->getSystemValue('max_filesize_animated_gifs_public_sharing', 10);
- $shareTmpl['previewEnabled'] = $this->config->getSystemValue('enable_previews', true);
- $shareTmpl['previewMaxX'] = $this->config->getSystemValue('preview_max_x', 1024);
- $shareTmpl['previewMaxY'] = $this->config->getSystemValue('preview_max_y', 1024);
- $shareTmpl['disclaimer'] = $this->config->getAppValue('core', 'shareapi_public_link_disclaimertext', '');
- $shareTmpl['previewURL'] = $shareTmpl['downloadURL'];
+ // Create the header action menu
+ $headerActions = [];
+ if ($view !== 'public-file-drop' && !$share->getHideDownload()) {
+ // The download URL is used for the "download" header action as well as in some cases for the direct link
+ $downloadUrl = $this->urlGenerator->getAbsoluteURL('/public.php/dav/files/' . $token . '/?accept=zip');
- if ($shareTmpl['previewSupported']) {
- $shareTmpl['previewImage'] = $this->urlGenerator->linkToRouteAbsolute('files_sharing.PublicPreview.getPreview',
- ['x' => 200, 'y' => 200, 'file' => $shareTmpl['directory_path'], 'token' => $shareTmpl['dirToken']]);
- $ogPreview = $shareTmpl['previewImage'];
+ // If not a file drop, then add the download header action
+ $headerActions[] = new SimpleMenuAction('download', $this->l10n->t('Download'), 'icon-download', $downloadUrl, 0, (string)$shareNode->getSize());
- // We just have direct previews for image files
- if ($shareNode->getMimePart() === 'image') {
- $shareTmpl['previewURL'] = $this->urlGenerator->linkToRouteAbsolute('files_sharing.publicpreview.directLink', ['token' => $token]);
+ // If remote sharing is enabled also add the remote share action to the menu
+ if ($this->federatedShareProvider->isOutgoingServer2serverShareEnabled()) {
+ $headerActions[] = new ExternalShareMenuAction(
+ // TRANSLATORS The placeholder refers to the software product name as in 'Add to your Nextcloud'
+ $this->l10n->t('Add to your %s', [$this->defaults->getProductName()]),
+ 'icon-external',
+ $ownerId,
+ $ownerName,
+ $shareNode->getName(),
+ );
+ }
+ }
- $ogPreview = $shareTmpl['previewURL'];
+ $shareUrl = $this->urlGenerator->linkToRouteAbsolute('files_sharing.sharecontroller.showShare', ['token' => $token]);
+ // By default use the share link as the direct link
+ $directLink = $shareUrl;
+ // Add the direct link header actions
+ if ($shareNode->getMimePart() === 'image') {
+ // If this is a file and especially an image directly point to the image preview
+ $directLink = $this->urlGenerator->linkToRouteAbsolute('files_sharing.publicpreview.directLink', ['token' => $token]);
+ } elseif (($share->getPermissions() & Constants::PERMISSION_READ) && !$share->getHideDownload()) {
+ // Can read and no download restriction, so just download it
+ $directLink = $downloadUrl ?? $shareUrl;
+ }
+ $headerActions[] = new LinkMenuAction($this->l10n->t('Direct link'), 'icon-public', $directLink);
+ $response->setHeaderActions($headerActions);
- //Whatapp is kind of picky about their size requirements
+ return $response;
+ }
+
+ /**
+ * Add OpenGraph headers to response for preview
+ * @param IShare $share The share for which to add the headers
+ */
+ protected function addMetaHeaders(IShare $share): void {
+ $shareNode = $share->getNode();
+ $token = $share->getToken();
+ $shareUrl = $this->urlGenerator->linkToRouteAbsolute('files_sharing.sharecontroller.showShare', ['token' => $token]);
+
+ // Handle preview generation for OpenGraph
+ $hasImagePreview = false;
+ if ($this->previewManager->isMimeSupported($shareNode->getMimetype())) {
+ // For images we can use direct links
+ if ($shareNode->getMimePart() === 'image') {
+ $hasImagePreview = true;
+ $ogPreview = $this->urlGenerator->linkToRouteAbsolute('files_sharing.publicpreview.directLink', ['token' => $token]);
+ // Whatsapp is kind of picky about their size requirements
if ($this->request->isUserAgent(['/^WhatsApp/'])) {
$ogPreview = $this->urlGenerator->linkToRouteAbsolute('files_sharing.PublicPreview.getPreview', [
'token' => $token,
@@ -200,92 +211,51 @@ class DefaultPublicShareTemplateProvider implements IPublicShareTemplateProvider
'a' => true,
]);
}
+ } else {
+ // For normal files use preview API
+ $ogPreview = $this->urlGenerator->linkToRouteAbsolute(
+ 'files_sharing.PublicPreview.getPreview',
+ [
+ 'x' => 256,
+ 'y' => 256,
+ 'file' => $share->getTarget(),
+ 'token' => $token,
+ ],
+ );
}
} else {
- $shareTmpl['previewImage'] = $this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'favicon-fb.png'));
- $ogPreview = $shareTmpl['previewImage'];
+ // No preview supported, so we just add the favicon
+ $ogPreview = $this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'favicon-fb.png'));
}
- // Load files we need
- Util::addScript('files', 'semaphore');
- Util::addScript('files', 'file-upload');
- Util::addStyle('files_sharing', 'publicView');
- Util::addScript('files_sharing', 'public');
- Util::addScript('files_sharing', 'templates');
- Util::addScript('files', 'fileactions');
- Util::addScript('files', 'fileactionsmenu');
- Util::addScript('files', 'jquery.fileupload');
- Util::addScript('files_sharing', 'files_drop');
-
- if (isset($shareTmpl['folder'])) {
- // JS required for folders
- Util::addStyle('files', 'merged');
- Util::addScript('files', 'filesummary');
- Util::addScript('files', 'templates');
- Util::addScript('files', 'breadcrumb');
- Util::addScript('files', 'fileinfomodel');
- Util::addScript('files', 'newfilemenu');
- Util::addScript('files', 'files');
- Util::addScript('files', 'filemultiselectmenu');
- Util::addScript('files', 'filelist');
- Util::addScript('files', 'keyboardshortcuts');
- Util::addScript('files', 'operationprogressbar');
- }
+ $title = $shareNode->getName();
+ $siteName = $this->defaults->getName();
+ $description = $siteName . ($this->defaults->getSlogan() !== '' ? ' - ' . $this->defaults->getSlogan() : '');
- // Load Viewer scripts
- if (class_exists(LoadViewer::class)) {
- $this->eventDispatcher->dispatchTyped(new LoadViewer());
- }
// OpenGraph Support: http://ogp.me/
- Util::addHeader('meta', ['property' => "og:title", 'content' => $shareTmpl['filename']]);
- Util::addHeader('meta', ['property' => "og:description", 'content' => $this->defaults->getName() . ($this->defaults->getSlogan() !== '' ? ' - ' . $this->defaults->getSlogan() : '')]);
- Util::addHeader('meta', ['property' => "og:site_name", 'content' => $this->defaults->getName()]);
- Util::addHeader('meta', ['property' => "og:url", 'content' => $shareTmpl['shareUrl']]);
- Util::addHeader('meta', ['property' => "og:type", 'content' => "object"]);
- Util::addHeader('meta', ['property' => "og:image", 'content' => $ogPreview]);
-
- $this->eventDispatcher->dispatchTyped(new BeforeTemplateRenderedEvent($share));
-
- $csp = new ContentSecurityPolicy();
- $csp->addAllowedFrameDomain('\'self\'');
-
- $response = new PublicTemplateResponse(Application::APP_ID, 'public', $shareTmpl);
- $response->setHeaderTitle($shareTmpl['filename']);
- if ($shareTmpl['shareOwner'] !== '') {
- $response->setHeaderDetails($this->l10n->t('shared by %s', [$shareTmpl['shareOwner']]));
+ Util::addHeader('meta', ['property' => 'og:title', 'content' => $title]);
+ Util::addHeader('meta', ['property' => 'og:description', 'content' => $description]);
+ Util::addHeader('meta', ['property' => 'og:site_name', 'content' => $siteName]);
+ Util::addHeader('meta', ['property' => 'og:url', 'content' => $shareUrl]);
+ Util::addHeader('meta', ['property' => 'og:type', 'content' => 'website']);
+ Util::addHeader('meta', ['property' => 'og:image', 'content' => $ogPreview]); // recommended to always have the image
+ if ($shareNode->getMimePart() === 'image') {
+ Util::addHeader('meta', ['property' => 'og:image:type', 'content' => $shareNode->getMimeType()]);
+ } elseif ($shareNode->getMimePart() === 'audio') {
+ $audio = $this->urlGenerator->linkToRouteAbsolute('files_sharing.sharecontroller.downloadshare', ['token' => $token]);
+ Util::addHeader('meta', ['property' => 'og:audio', 'content' => $audio]);
+ Util::addHeader('meta', ['property' => 'og:audio:type', 'content' => $shareNode->getMimeType()]);
+ } elseif ($shareNode->getMimePart() === 'video') {
+ $video = $this->urlGenerator->linkToRouteAbsolute('files_sharing.sharecontroller.downloadshare', ['token' => $token]);
+ Util::addHeader('meta', ['property' => 'og:video', 'content' => $video]);
+ Util::addHeader('meta', ['property' => 'og:video:type', 'content' => $shareNode->getMimeType()]);
}
- $isNoneFileDropFolder = $shareIsFolder === false || $share->getPermissions() !== Constants::PERMISSION_CREATE;
-
- if ($isNoneFileDropFolder && !$share->getHideDownload()) {
- Util::addScript('files_sharing', 'public_note');
-
- $downloadWhite = new SimpleMenuAction('download', $this->l10n->t('Download'), 'icon-download-white', $shareTmpl['downloadURL'], 0);
- $downloadAllWhite = new SimpleMenuAction('download', $this->l10n->t('Download all files'), 'icon-download-white', $shareTmpl['downloadURL'], 0);
- $download = new SimpleMenuAction('download', $this->l10n->t('Download'), 'icon-download', $shareTmpl['downloadURL'], 10, $shareTmpl['fileSize']);
- $downloadAll = new SimpleMenuAction('download', $this->l10n->t('Download all files'), 'icon-download', $shareTmpl['downloadURL'], 10, $shareTmpl['fileSize']);
- $directLink = new LinkMenuAction($this->l10n->t('Direct link'), 'icon-public', $shareTmpl['previewURL']);
- // TRANSLATORS The placeholder refers to the software product name as in 'Add to your Nextcloud'
- $externalShare = new ExternalShareMenuAction($this->l10n->t('Add to your %s', [$this->defaults->getProductName()]), 'icon-external', $shareTmpl['owner'], $shareTmpl['shareOwner'], $shareTmpl['filename']);
-
- $responseComposer = [];
- if ($shareIsFolder) {
- $responseComposer[] = $downloadAllWhite;
- $responseComposer[] = $downloadAll;
- } else {
- $responseComposer[] = $downloadWhite;
- $responseComposer[] = $download;
- }
- $responseComposer[] = $directLink;
- if ($this->federatedShareProvider->isOutgoingServer2serverShareEnabled()) {
- $responseComposer[] = $externalShare;
- }
-
- $response->setHeaderActions($responseComposer);
- }
-
- $response->setContentSecurityPolicy($csp);
- return $response;
+ // Twitter Support: https://developer.x.com/en/docs/x-for-websites/cards/overview/markup
+ Util::addHeader('meta', ['property' => 'twitter:title', 'content' => $title]);
+ Util::addHeader('meta', ['property' => 'twitter:description', 'content' => $description]);
+ Util::addHeader('meta', ['property' => 'twitter:card', 'content' => $hasImagePreview ? 'summary_large_image' : 'summary']);
+ Util::addHeader('meta', ['property' => 'twitter:image', 'content' => $ogPreview]);
}
}
diff --git a/apps/files_sharing/lib/DeleteOrphanedSharesJob.php b/apps/files_sharing/lib/DeleteOrphanedSharesJob.php
index 6c6d5bfede5..63f057e3bf4 100644
--- a/apps/files_sharing/lib/DeleteOrphanedSharesJob.php
+++ b/apps/files_sharing/lib/DeleteOrphanedSharesJob.php
@@ -1,29 +1,10 @@
<?php
declare(strict_types=1);
-
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2020-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing;
@@ -45,27 +26,20 @@ class DeleteOrphanedSharesJob extends TimedJob {
private const CHUNK_SIZE = 1000;
- private const INTERVAL = 24 * 60 * 60; // 1 day
-
- private IDBConnection $db;
-
- private LoggerInterface $logger;
+ private const INTERVAL = 24 * 60 * 60;
/**
* sets the correct interval for this timed job
*/
public function __construct(
ITimeFactory $time,
- IDBConnection $db,
- LoggerInterface $logger
+ private IDBConnection $db,
+ private LoggerInterface $logger,
) {
parent::__construct($time);
- $this->db = $db;
-
$this->setInterval(self::INTERVAL); // 1 day
$this->setTimeSensitivity(self::TIME_INSENSITIVE);
- $this->logger = $logger;
}
/**
@@ -74,6 +48,11 @@ class DeleteOrphanedSharesJob extends TimedJob {
* @param array $argument unused argument
*/
public function run($argument) {
+ if ($this->db->getShardDefinition('filecache')) {
+ $this->shardingCleanup();
+ return;
+ }
+
$qbSelect = $this->db->getQueryBuilder();
$qbSelect->select('id')
->from('share', 's')
@@ -107,7 +86,7 @@ class DeleteOrphanedSharesJob extends TimedJob {
$result->closeCursor();
$deleteQb->setParameter('ids', $ids, IQueryBuilder::PARAM_INT_ARRAY);
$deleted = $deleteQb->executeStatement();
- $this->logger->debug("{deleted} orphaned share(s) deleted", [
+ $this->logger->debug('{deleted} orphaned share(s) deleted', [
'app' => 'DeleteOrphanedSharesJob',
'deleted' => $deleted,
]);
@@ -115,4 +94,40 @@ class DeleteOrphanedSharesJob extends TimedJob {
}, $this->db);
} while ($deleted >= self::CHUNK_SIZE && $this->time->getTime() <= $cutOff);
}
+
+ private function shardingCleanup(): void {
+ $qb = $this->db->getQueryBuilder();
+ $qb->selectDistinct('file_source')
+ ->from('share', 's');
+ $sourceFiles = $qb->executeQuery()->fetchAll(PDO::FETCH_COLUMN);
+
+ $deleteQb = $this->db->getQueryBuilder();
+ $deleteQb->delete('share')
+ ->where(
+ $deleteQb->expr()->in('file_source', $deleteQb->createParameter('ids'), IQueryBuilder::PARAM_INT_ARRAY)
+ );
+
+ $chunks = array_chunk($sourceFiles, self::CHUNK_SIZE);
+ foreach ($chunks as $chunk) {
+ $deletedFiles = $this->findMissingSources($chunk);
+ $this->atomic(function () use ($deletedFiles, $deleteQb) {
+ $deleteQb->setParameter('ids', $deletedFiles, IQueryBuilder::PARAM_INT_ARRAY);
+ $deleted = $deleteQb->executeStatement();
+ $this->logger->debug('{deleted} orphaned share(s) deleted', [
+ 'app' => 'DeleteOrphanedSharesJob',
+ 'deleted' => $deleted,
+ ]);
+ return $deleted;
+ }, $this->db);
+ }
+ }
+
+ private function findMissingSources(array $ids): array {
+ $qb = $this->db->getQueryBuilder();
+ $qb->select('fileid')
+ ->from('filecache')
+ ->where($qb->expr()->in('fileid', $qb->createNamedParameter($ids, IQueryBuilder::PARAM_INT_ARRAY)));
+ $found = $qb->executeQuery()->fetchAll(\PDO::FETCH_COLUMN);
+ return array_diff($ids, $found);
+ }
}
diff --git a/apps/files_sharing/lib/Event/BeforeTemplateRenderedEvent.php b/apps/files_sharing/lib/Event/BeforeTemplateRenderedEvent.php
index 1a889cfebe7..709d7bacd4a 100644
--- a/apps/files_sharing/lib/Event/BeforeTemplateRenderedEvent.php
+++ b/apps/files_sharing/lib/Event/BeforeTemplateRenderedEvent.php
@@ -3,26 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2020 Julius Härtl <jus@bitgrid.net>
- *
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Morris Jobke <hey@morrisjobke.de>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Event;
@@ -41,19 +23,14 @@ class BeforeTemplateRenderedEvent extends Event {
*/
public const SCOPE_PUBLIC_SHARE_AUTH = 'publicShareAuth';
- /** @var IShare */
- private $share;
- /** @var string|null */
- private $scope;
-
/**
* @since 20.0.0
*/
- public function __construct(IShare $share, ?string $scope = null) {
+ public function __construct(
+ private IShare $share,
+ private ?string $scope = null,
+ ) {
parent::__construct();
-
- $this->share = $share;
- $this->scope = $scope;
}
/**
diff --git a/apps/files_sharing/lib/Event/ShareLinkAccessedEvent.php b/apps/files_sharing/lib/Event/ShareLinkAccessedEvent.php
index 490ada1eef2..d0cb0a1949d 100644
--- a/apps/files_sharing/lib/Event/ShareLinkAccessedEvent.php
+++ b/apps/files_sharing/lib/Event/ShareLinkAccessedEvent.php
@@ -3,25 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Event;
@@ -30,24 +13,13 @@ use OCP\EventDispatcher\Event;
use OCP\Share\IShare;
class ShareLinkAccessedEvent extends Event {
- /** @var IShare */
- private $share;
-
- /** @var string */
- private $step;
-
- /** @var int */
- private $errorCode;
-
- /** @var string */
- private $errorMessage;
-
- public function __construct(IShare $share, string $step = '', int $errorCode = 200, string $errorMessage = '') {
+ public function __construct(
+ private IShare $share,
+ private string $step = '',
+ private int $errorCode = 200,
+ private string $errorMessage = '',
+ ) {
parent::__construct();
- $this->share = $share;
- $this->step = $step;
- $this->errorCode = $errorCode;
- $this->errorMessage = $errorMessage;
}
public function getShare(): IShare {
diff --git a/apps/files_sharing/lib/Event/ShareMountedEvent.php b/apps/files_sharing/lib/Event/ShareMountedEvent.php
index 15184827389..0f56873cb2c 100644
--- a/apps/files_sharing/lib/Event/ShareMountedEvent.php
+++ b/apps/files_sharing/lib/Event/ShareMountedEvent.php
@@ -2,23 +2,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2021 Robin Appelman <robin@icewind.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Event;
@@ -28,15 +13,13 @@ use OCP\EventDispatcher\Event;
use OCP\Files\Mount\IMountPoint;
class ShareMountedEvent extends Event {
- /** @var SharedMount */
- private $mount;
-
/** @var IMountPoint[] */
private $additionalMounts = [];
- public function __construct(SharedMount $mount) {
+ public function __construct(
+ private SharedMount $mount,
+ ) {
parent::__construct();
- $this->mount = $mount;
}
public function getMount(): SharedMount {
diff --git a/apps/files_sharing/lib/Exceptions/BrokenPath.php b/apps/files_sharing/lib/Exceptions/BrokenPath.php
index e9908ac293a..a68a8fc05d4 100644
--- a/apps/files_sharing/lib/Exceptions/BrokenPath.php
+++ b/apps/files_sharing/lib/Exceptions/BrokenPath.php
@@ -1,24 +1,9 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2020-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Exceptions;
diff --git a/apps/files_sharing/lib/Exceptions/S2SException.php b/apps/files_sharing/lib/Exceptions/S2SException.php
index c6becc057dd..10360820432 100644
--- a/apps/files_sharing/lib/Exceptions/S2SException.php
+++ b/apps/files_sharing/lib/Exceptions/S2SException.php
@@ -1,24 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Exceptions;
diff --git a/apps/files_sharing/lib/Exceptions/SharingRightsException.php b/apps/files_sharing/lib/Exceptions/SharingRightsException.php
index f235e56cbe4..2ffe72c4e69 100644
--- a/apps/files_sharing/lib/Exceptions/SharingRightsException.php
+++ b/apps/files_sharing/lib/Exceptions/SharingRightsException.php
@@ -1,24 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2019, Maxence Lange <maxence@artificial-owl.com>
- *
- * @author Maxence Lange <maxence@artificial-owl.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Exceptions;
diff --git a/apps/files_sharing/lib/ExpireSharesJob.php b/apps/files_sharing/lib/ExpireSharesJob.php
index f5eb5856aea..b1c6c592e80 100644
--- a/apps/files_sharing/lib/ExpireSharesJob.php
+++ b/apps/files_sharing/lib/ExpireSharesJob.php
@@ -1,32 +1,15 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing;
use OCP\AppFramework\Utility\ITimeFactory;
-use OCP\BackgroundJob\IJob;
use OCP\BackgroundJob\TimedJob;
+use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IManager;
@@ -37,21 +20,16 @@ use OCP\Share\IShare;
*/
class ExpireSharesJob extends TimedJob {
- /** @var IManager */
- private $shareManager;
-
- /** @var IDBConnection */
- private $db;
-
- public function __construct(ITimeFactory $time, IManager $shareManager, IDBConnection $db) {
- $this->shareManager = $shareManager;
- $this->db = $db;
-
+ public function __construct(
+ ITimeFactory $time,
+ private IManager $shareManager,
+ private IDBConnection $db,
+ ) {
parent::__construct($time);
// Run once a day
$this->setInterval(24 * 60 * 60);
- $this->setTimeSensitivity(IJob::TIME_INSENSITIVE);
+ $this->setTimeSensitivity(self::TIME_INSENSITIVE);
}
@@ -73,15 +51,9 @@ class ExpireSharesJob extends TimedJob {
->from('share')
->where(
$qb->expr()->andX(
- $qb->expr()->orX(
- $qb->expr()->eq('share_type', $qb->expr()->literal(IShare::TYPE_LINK)),
- $qb->expr()->eq('share_type', $qb->expr()->literal(IShare::TYPE_EMAIL))
- ),
+ $qb->expr()->in('share_type', $qb->createNamedParameter([IShare::TYPE_LINK, IShare::TYPE_EMAIL], IQueryBuilder::PARAM_INT_ARRAY)),
$qb->expr()->lte('expiration', $qb->expr()->literal($now)),
- $qb->expr()->orX(
- $qb->expr()->eq('item_type', $qb->expr()->literal('file')),
- $qb->expr()->eq('item_type', $qb->expr()->literal('folder'))
- )
+ $qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY))
)
);
diff --git a/apps/files_sharing/lib/External/Cache.php b/apps/files_sharing/lib/External/Cache.php
index f353022d067..027f682d818 100644
--- a/apps/files_sharing/lib/External/Cache.php
+++ b/apps/files_sharing/lib/External/Cache.php
@@ -1,47 +1,30 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Robin Appelman <robin@icewind.nl>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\External;
use OCP\Federation\ICloudId;
class Cache extends \OC\Files\Cache\Cache {
- /** @var ICloudId */
- private $cloudId;
private $remote;
private $remoteUser;
- private $storage;
/**
- * @param \OCA\Files_Sharing\External\Storage $storage
+ * @param Storage $storage
* @param ICloudId $cloudId
*/
- public function __construct($storage, ICloudId $cloudId) {
- $this->cloudId = $cloudId;
- $this->storage = $storage;
- [, $remote] = explode('://', $cloudId->getRemote(), 2);
+ public function __construct(
+ private $storage,
+ private ICloudId $cloudId,
+ ) {
+ [, $remote] = explode('://', $this->cloudId->getRemote(), 2);
$this->remote = $remote;
- $this->remoteUser = $cloudId->getUser();
- parent::__construct($storage);
+ $this->remoteUser = $this->cloudId->getUser();
+ parent::__construct($this->storage);
}
public function get($file) {
diff --git a/apps/files_sharing/lib/External/Manager.php b/apps/files_sharing/lib/External/Manager.php
index f18d8346dc4..ff4781eba0f 100644
--- a/apps/files_sharing/lib/External/Manager.php
+++ b/apps/files_sharing/lib/External/Manager.php
@@ -1,35 +1,9 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Hansson <daniel@techandme.se>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Jörn Friedrich Dreyer <jfd@butonic.de>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Stefan Weil <sw@weilnetz.de>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\External;
@@ -38,11 +12,13 @@ use Doctrine\DBAL\Driver\Exception;
use OC\Files\Filesystem;
use OCA\FederatedFileSharing\Events\FederatedShareAddedEvent;
use OCA\Files_Sharing\Helper;
+use OCA\Files_Sharing\ResponseDefinitions;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Federation\ICloudFederationFactory;
use OCP\Federation\ICloudFederationProviderManager;
use OCP\Files;
+use OCP\Files\Events\InvalidateMountCacheEvent;
use OCP\Files\NotFoundException;
use OCP\Files\Storage\IStorageFactory;
use OCP\Http\Client\IClientService;
@@ -56,77 +32,32 @@ use OCP\Share;
use OCP\Share\IShare;
use Psr\Log\LoggerInterface;
+/**
+ * @psalm-import-type Files_SharingRemoteShare from ResponseDefinitions
+ */
class Manager {
public const STORAGE = '\OCA\Files_Sharing\External\Storage';
/** @var string|null */
private $uid;
- /** @var IDBConnection */
- private $connection;
-
- /** @var \OC\Files\Mount\Manager */
- private $mountManager;
-
- /** @var IStorageFactory */
- private $storageLoader;
-
- /** @var IClientService */
- private $clientService;
-
- /** @var IManager */
- private $notificationManager;
-
- /** @var IDiscoveryService */
- private $discoveryService;
-
- /** @var ICloudFederationProviderManager */
- private $cloudFederationProviderManager;
-
- /** @var ICloudFederationFactory */
- private $cloudFederationFactory;
-
- /** @var IGroupManager */
- private $groupManager;
-
- /** @var IUserManager */
- private $userManager;
-
- /** @var IEventDispatcher */
- private $eventDispatcher;
-
- /** @var LoggerInterface */
- private $logger;
-
public function __construct(
- IDBConnection $connection,
- \OC\Files\Mount\Manager $mountManager,
- IStorageFactory $storageLoader,
- IClientService $clientService,
- IManager $notificationManager,
- IDiscoveryService $discoveryService,
- ICloudFederationProviderManager $cloudFederationProviderManager,
- ICloudFederationFactory $cloudFederationFactory,
- IGroupManager $groupManager,
- IUserManager $userManager,
- IUserSession $userSession,
- IEventDispatcher $eventDispatcher,
- LoggerInterface $logger
+ private IDBConnection $connection,
+ private \OC\Files\Mount\Manager $mountManager,
+ private IStorageFactory $storageLoader,
+ private IClientService $clientService,
+ private IManager $notificationManager,
+ private IDiscoveryService $discoveryService,
+ private ICloudFederationProviderManager $cloudFederationProviderManager,
+ private ICloudFederationFactory $cloudFederationFactory,
+ private IGroupManager $groupManager,
+ private IUserManager $userManager,
+ IUserSession $userSession,
+ private IEventDispatcher $eventDispatcher,
+ private LoggerInterface $logger,
) {
$user = $userSession->getUser();
- $this->connection = $connection;
- $this->mountManager = $mountManager;
- $this->storageLoader = $storageLoader;
- $this->clientService = $clientService;
$this->uid = $user ? $user->getUID() : null;
- $this->notificationManager = $notificationManager;
- $this->discoveryService = $discoveryService;
- $this->cloudFederationProviderManager = $cloudFederationProviderManager;
- $this->cloudFederationFactory = $cloudFederationFactory;
- $this->groupManager = $groupManager;
- $this->userManager = $userManager;
- $this->eventDispatcher = $eventDispatcher;
- $this->logger = $logger;
}
/**
@@ -146,7 +77,7 @@ class Manager {
* @throws \Doctrine\DBAL\Exception
*/
public function addShare($remote, $token, $password, $name, $owner, $shareType, $accepted = false, $user = null, $remoteId = '', $parent = -1) {
- $user = $user ? $user : $this->uid;
+ $user = $user ?? $this->uid;
$accepted = $accepted ? IShare::STATUS_ACCEPTED : IShare::STATUS_PENDING;
$name = Filesystem::normalizePath('/' . $name);
@@ -195,7 +126,7 @@ class Manager {
'mountpoint' => $mountPoint,
'owner' => $owner
];
- return $this->mountShare($options);
+ return $this->mountShare($options, $user);
}
/**
@@ -226,18 +157,29 @@ class Manager {
$query->execute([$remote, $token, $password, $name, $owner, $user, $mountPoint, $hash, $accepted, $remoteId, $parent, $shareType]);
}
+ private function fetchShare(int $id): array|false {
+ $getShare = $this->connection->prepare('
+ SELECT `id`, `remote`, `remote_id`, `share_token`, `name`, `owner`, `user`, `mountpoint`, `accepted`, `parent`, `share_type`, `password`, `mountpoint_hash`
+ FROM `*PREFIX*share_external`
+ WHERE `id` = ?');
+ $result = $getShare->execute([$id]);
+ $share = $result->fetch();
+ $result->closeCursor();
+ return $share;
+ }
+
/**
- * get share
+ * get share by token
*
- * @param int $id share id
+ * @param string $token
* @return mixed share of false
*/
- private function fetchShare($id) {
+ private function fetchShareByToken($token) {
$getShare = $this->connection->prepare('
SELECT `id`, `remote`, `remote_id`, `share_token`, `name`, `owner`, `user`, `mountpoint`, `accepted`, `parent`, `share_type`, `password`, `mountpoint_hash`
FROM `*PREFIX*share_external`
- WHERE `id` = ?');
- $result = $getShare->execute([$id]);
+ WHERE `share_token` = ?');
+ $result = $getShare->execute([$token]);
$share = $result->fetch();
$result->closeCursor();
return $share;
@@ -257,20 +199,54 @@ class Manager {
return null;
}
- /**
- * get share
- *
- * @param int $id share id
- * @return mixed share of false
- */
- public function getShare($id) {
+ public function getShare(int $id, ?string $user = null): array|false {
+ $user = $user ?? $this->uid;
$share = $this->fetchShare($id);
- $validShare = is_array($share) && isset($share['share_type']) && isset($share['user']);
+ if ($share === false) {
+ return false;
+ }
// check if the user is allowed to access it
- if ($validShare && (int)$share['share_type'] === IShare::TYPE_USER && $share['user'] === $this->uid) {
+ if ($this->canAccessShare($share, $user)) {
return $share;
- } elseif ($validShare && (int)$share['share_type'] === IShare::TYPE_GROUP) {
+ }
+
+ return false;
+ }
+
+ /**
+ * Get share by token
+ *
+ * @param string $token
+ * @return array|false
+ */
+ public function getShareByToken(string $token): array|false {
+ $share = $this->fetchShareByToken($token);
+
+ // We do not check if the user is allowed to access it here,
+ // as this is not used from a user context.
+ if ($share === false) {
+ return false;
+ }
+
+ return $share;
+ }
+
+ private function canAccessShare(array $share, string $user): bool {
+ $validShare = isset($share['share_type']) && isset($share['user']);
+
+ if (!$validShare) {
+ return false;
+ }
+
+ // If the share is a user share, check if the user is the recipient
+ if ((int)$share['share_type'] === IShare::TYPE_USER
+ && $share['user'] === $user) {
+ return true;
+ }
+
+ // If the share is a group share, check if the user is in the group
+ if ((int)$share['share_type'] === IShare::TYPE_GROUP) {
$parentId = (int)$share['parent'];
if ($parentId !== -1) {
// we just retrieved a sub-share, switch to the parent entry for verification
@@ -278,9 +254,10 @@ class Manager {
} else {
$groupShare = $share;
}
- $user = $this->userManager->get($this->uid);
+
+ $user = $this->userManager->get($user);
if ($this->groupManager->get($groupShare['user'])->inGroup($user)) {
- return $share;
+ return true;
}
}
@@ -307,13 +284,22 @@ class Manager {
* @param int $id
* @return bool True if the share could be accepted, false otherwise
*/
- public function acceptShare($id) {
- $share = $this->getShare($id);
+ public function acceptShare(int $id, ?string $user = null) {
+ // If we're auto-accepting a share, we need to know the user id
+ // as there is no session available while processing the share
+ // from the remote server request.
+ $user = $user ?? $this->uid;
+ if ($user === null) {
+ $this->logger->error('No user specified for accepting share');
+ return false;
+ }
+
+ $share = $this->getShare($id, $user);
$result = false;
if ($share) {
- \OC_Util::setupFS($this->uid);
- $shareFolder = Helper::getShareFolder(null, $this->uid);
+ \OC_Util::setupFS($user);
+ $shareFolder = Helper::getShareFolder(null, $user);
$mountPoint = Files::buildNotExistingFileName($shareFolder, $share['name']);
$mountPoint = Filesystem::normalizePath($mountPoint);
$hash = md5($mountPoint);
@@ -326,14 +312,14 @@ class Manager {
`mountpoint` = ?,
`mountpoint_hash` = ?
WHERE `id` = ? AND `user` = ?');
- $userShareAccepted = $acceptShare->execute([1, $mountPoint, $hash, $id, $this->uid]);
+ $userShareAccepted = $acceptShare->execute([1, $mountPoint, $hash, $id, $user]);
} else {
$parentId = (int)$share['parent'];
if ($parentId !== -1) {
// this is the sub-share
$subshare = $share;
} else {
- $subshare = $this->fetchUserShare($id, $this->uid);
+ $subshare = $this->fetchUserShare($id, $user);
}
if ($subshare !== null) {
@@ -344,7 +330,7 @@ class Manager {
`mountpoint` = ?,
`mountpoint_hash` = ?
WHERE `id` = ? AND `user` = ?');
- $acceptShare->execute([1, $mountPoint, $hash, $subshare['id'], $this->uid]);
+ $acceptShare->execute([1, $mountPoint, $hash, $subshare['id'], $user]);
$result = true;
} catch (Exception $e) {
$this->logger->emergency('Could not update share', ['exception' => $e]);
@@ -358,7 +344,7 @@ class Manager {
$share['password'],
$share['name'],
$share['owner'],
- $this->uid,
+ $user,
$mountPoint, $hash, 1,
$share['remote_id'],
$id,
@@ -370,17 +356,18 @@ class Manager {
}
}
}
+
if ($userShareAccepted !== false) {
$this->sendFeedbackToRemote($share['remote'], $share['share_token'], $share['remote_id'], 'accept');
$event = new FederatedShareAddedEvent($share['remote']);
$this->eventDispatcher->dispatchTyped($event);
- $this->eventDispatcher->dispatchTyped(new Files\Events\InvalidateMountCacheEvent($this->userManager->get($this->uid)));
+ $this->eventDispatcher->dispatchTyped(new InvalidateMountCacheEvent($this->userManager->get($user)));
$result = true;
}
}
// Make sure the user has no notification for something that does not exist anymore.
- $this->processNotification($id);
+ $this->processNotification($id, $user);
return $result;
}
@@ -391,17 +378,23 @@ class Manager {
* @param int $id
* @return bool True if the share could be declined, false otherwise
*/
- public function declineShare($id) {
- $share = $this->getShare($id);
+ public function declineShare(int $id, ?string $user = null) {
+ $user = $user ?? $this->uid;
+ if ($user === null) {
+ $this->logger->error('No user specified for declining share');
+ return false;
+ }
+
+ $share = $this->getShare($id, $user);
$result = false;
if ($share && (int)$share['share_type'] === IShare::TYPE_USER) {
$removeShare = $this->connection->prepare('
DELETE FROM `*PREFIX*share_external` WHERE `id` = ? AND `user` = ?');
- $removeShare->execute([$id, $this->uid]);
+ $removeShare->execute([$id, $user]);
$this->sendFeedbackToRemote($share['remote'], $share['share_token'], $share['remote_id'], 'decline');
- $this->processNotification($id);
+ $this->processNotification($id, $user);
$result = true;
} elseif ($share && (int)$share['share_type'] === IShare::TYPE_GROUP) {
$parentId = (int)$share['parent'];
@@ -409,7 +402,7 @@ class Manager {
// this is the sub-share
$subshare = $share;
} else {
- $subshare = $this->fetchUserShare($id, $this->uid);
+ $subshare = $this->fetchUserShare($id, $user);
}
if ($subshare !== null) {
@@ -428,7 +421,7 @@ class Manager {
$share['password'],
$share['name'],
$share['owner'],
- $this->uid,
+ $user,
$share['mountpoint'],
$share['mountpoint_hash'],
0,
@@ -441,16 +434,27 @@ class Manager {
$result = false;
}
}
- $this->processNotification($id);
+ $this->processNotification($id, $user);
}
return $result;
}
- public function processNotification(int $remoteShare): void {
+ public function processNotification(int $remoteShare, ?string $user = null): void {
+ $user = $user ?? $this->uid;
+ if ($user === null) {
+ $this->logger->error('No user specified for processing notification');
+ return;
+ }
+
+ $share = $this->fetchShare($remoteShare);
+ if ($share === false) {
+ return;
+ }
+
$filter = $this->notificationManager->createNotification();
$filter->setApp('files_sharing')
- ->setUser($this->uid)
+ ->setUser($user)
->setObject('remote_share', (string)$remoteShare);
$this->notificationManager->markProcessed($filter);
}
@@ -550,9 +554,10 @@ class Manager {
return rtrim(substr($path, strlen($prefix)), '/');
}
- public function getMount($data) {
+ public function getMount($data, ?string $user = null) {
+ $user = $user ?? $this->uid;
$data['manager'] = $this;
- $mountPoint = '/' . $this->uid . '/files' . $data['mountpoint'];
+ $mountPoint = '/' . $user . '/files' . $data['mountpoint'];
$data['mountpoint'] = $mountPoint;
$data['certificateManager'] = \OC::$server->getCertificateManager();
return new Mount(self::STORAGE, $mountPoint, $data, $this, $this->storageLoader);
@@ -562,8 +567,8 @@ class Manager {
* @param array $data
* @return Mount
*/
- protected function mountShare($data) {
- $mount = $this->getMount($data);
+ protected function mountShare($data, ?string $user = null) {
+ $mount = $this->getMount($data, $user);
$this->mountManager->addMount($mount);
return $mount;
}
@@ -594,7 +599,7 @@ class Manager {
');
$result = (bool)$query->execute([$target, $targetHash, $sourceHash, $this->uid]);
- $this->eventDispatcher->dispatchTyped(new Files\Events\InvalidateMountCacheEvent($this->userManager->get($this->uid)));
+ $this->eventDispatcher->dispatchTyped(new InvalidateMountCacheEvent($this->userManager->get($this->uid)));
return $result;
}
@@ -733,12 +738,12 @@ class Manager {
$qb = $this->connection->getQueryBuilder();
// delete group share entry and matching sub-entries
$qb->delete('share_external')
- ->where(
- $qb->expr()->orX(
- $qb->expr()->eq('id', $qb->createParameter('share_id')),
- $qb->expr()->eq('parent', $qb->createParameter('share_parent_id'))
- )
- );
+ ->where(
+ $qb->expr()->orX(
+ $qb->expr()->eq('id', $qb->createParameter('share_id')),
+ $qb->expr()->eq('parent', $qb->createParameter('share_parent_id'))
+ )
+ );
foreach ($shares as $share) {
$qb->setParameter('share_id', $share['id']);
@@ -756,7 +761,7 @@ class Manager {
/**
* return a list of shares which are not yet accepted by the user
*
- * @return array list of open server-to-server shares
+ * @return list<Files_SharingRemoteShare> list of open server-to-server shares
*/
public function getOpenShares() {
return $this->getShares(false);
@@ -765,7 +770,7 @@ class Manager {
/**
* return a list of shares which are accepted by the user
*
- * @return array list of accepted server-to-server shares
+ * @return list<Files_SharingRemoteShare> list of accepted server-to-server shares
*/
public function getAcceptedShares() {
return $this->getShares(true);
@@ -777,9 +782,11 @@ class Manager {
* @param bool|null $accepted True for accepted only,
* false for not accepted,
* null for all shares of the user
- * @return array list of open server-to-server shares
+ * @return list<Files_SharingRemoteShare> list of open server-to-server shares
*/
private function getShares($accepted) {
+ // Not allowing providing a user here,
+ // as we only want to retrieve shares for the current user.
$user = $this->userManager->get($this->uid);
$groups = $this->groupManager->getUserGroups($user);
$userGroups = [];
diff --git a/apps/files_sharing/lib/External/Mount.php b/apps/files_sharing/lib/External/Mount.php
index 283027ac43a..f50c379f85f 100644
--- a/apps/files_sharing/lib/External/Mount.php
+++ b/apps/files_sharing/lib/External/Mount.php
@@ -1,50 +1,34 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Robin Appelman <robin@icewind.nl>
- * @author szaimen <szaimen@e.mail.de>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\External;
use OC\Files\Mount\MountPoint;
use OC\Files\Mount\MoveableMount;
+use OC\Files\Storage\Storage;
use OCA\Files_Sharing\ISharedMountPoint;
class Mount extends MountPoint implements MoveableMount, ISharedMountPoint {
/**
- * @var \OCA\Files_Sharing\External\Manager
- */
- protected $manager;
-
- /**
- * @param string|\OC\Files\Storage\Storage $storage
+ * @param string|Storage $storage
* @param string $mountpoint
* @param array $options
* @param \OCA\Files_Sharing\External\Manager $manager
* @param \OC\Files\Storage\StorageFactory $loader
*/
- public function __construct($storage, $mountpoint, $options, $manager, $loader = null) {
+ public function __construct(
+ $storage,
+ $mountpoint,
+ $options,
+ protected $manager,
+ $loader = null,
+ ) {
parent::__construct($storage, $mountpoint, $options, $loader, null, null, MountProvider::class);
- $this->manager = $manager;
}
/**
diff --git a/apps/files_sharing/lib/External/MountProvider.php b/apps/files_sharing/lib/External/MountProvider.php
index 169bf6ed3d7..a5781d5d35a 100644
--- a/apps/files_sharing/lib/External/MountProvider.php
+++ b/apps/files_sharing/lib/External/MountProvider.php
@@ -1,26 +1,9 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\External;
@@ -28,36 +11,30 @@ use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\Federation\ICloudIdManager;
use OCP\Files\Config\IMountProvider;
use OCP\Files\Storage\IStorageFactory;
+use OCP\Http\Client\IClientService;
use OCP\IDBConnection;
use OCP\IUser;
+use OCP\Server;
class MountProvider implements IMountProvider {
public const STORAGE = '\OCA\Files_Sharing\External\Storage';
/**
- * @var \OCP\IDBConnection
- */
- private $connection;
-
- /**
* @var callable
*/
private $managerProvider;
/**
- * @var ICloudIdManager
- */
- private $cloudIdManager;
-
- /**
- * @param \OCP\IDBConnection $connection
+ * @param IDBConnection $connection
* @param callable $managerProvider due to setup order we need a callable that return the manager instead of the manager itself
* @param ICloudIdManager $cloudIdManager
*/
- public function __construct(IDBConnection $connection, callable $managerProvider, ICloudIdManager $cloudIdManager) {
- $this->connection = $connection;
+ public function __construct(
+ private IDBConnection $connection,
+ callable $managerProvider,
+ private ICloudIdManager $cloudIdManager,
+ ) {
$this->managerProvider = $managerProvider;
- $this->cloudIdManager = $cloudIdManager;
}
public function getMount(IUser $user, $data, IStorageFactory $storageFactory) {
@@ -68,7 +45,7 @@ class MountProvider implements IMountProvider {
$data['mountpoint'] = $mountPoint;
$data['cloudId'] = $this->cloudIdManager->getCloudId($data['owner'], $data['remote']);
$data['certificateManager'] = \OC::$server->getCertificateManager();
- $data['HttpClientService'] = \OC::$server->getHTTPClientService();
+ $data['HttpClientService'] = Server::get(IClientService::class);
return new Mount(self::STORAGE, $mountPoint, $data, $manager, $storageFactory);
}
diff --git a/apps/files_sharing/lib/External/Scanner.php b/apps/files_sharing/lib/External/Scanner.php
index e3336c69a05..0d57248595b 100644
--- a/apps/files_sharing/lib/External/Scanner.php
+++ b/apps/files_sharing/lib/External/Scanner.php
@@ -1,37 +1,20 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Olivier Paroz <github@oparoz.com>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\External;
+use OC\Files\Cache\CacheEntry;
use OC\ForbiddenException;
use OCP\Files\NotFoundException;
use OCP\Files\StorageInvalidException;
use OCP\Files\StorageNotAvailableException;
class Scanner extends \OC\Files\Cache\Scanner {
- /** @var \OCA\Files_Sharing\External\Storage */
+ /** @var Storage */
protected $storage;
public function scan($path, $recursive = self::SCAN_RECURSIVE, $reuse = -1, $lock = true) {
@@ -48,9 +31,10 @@ class Scanner extends \OC\Files\Cache\Scanner {
* @param string $file file to scan
* @param int $reuseExisting
* @param int $parentId
- * @param array | null $cacheData existing data in the cache for the file to be scanned
+ * @param CacheEntry|array|null|false $cacheData existing data in the cache for the file to be scanned
* @param bool $lock set to false to disable getting an additional read lock during scanning
- * @return array | null an array of metadata of the scanned file
+ * @param array|null $data the metadata for the file, as returned by the storage
+ * @return array|null an array of metadata of the scanned file
*/
public function scanFile($file, $reuseExisting = 0, $parentId = -1, $cacheData = null, $lock = true, $data = null) {
try {
diff --git a/apps/files_sharing/lib/External/Storage.php b/apps/files_sharing/lib/External/Storage.php
index 8cd0b50f44f..a9781b91a6c 100644
--- a/apps/files_sharing/lib/External/Storage.php
+++ b/apps/files_sharing/lib/External/Storage.php
@@ -1,37 +1,10 @@
<?php
declare(strict_types=1);
-
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Kesselberg <mail@danielkesselberg.de>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Maxence Lange <maxence@artificial-owl.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\External;
@@ -40,14 +13,19 @@ use GuzzleHttp\Exception\ConnectException;
use GuzzleHttp\Exception\RequestException;
use OC\Files\Storage\DAV;
use OC\ForbiddenException;
+use OC\Share\Share;
use OCA\Files_Sharing\External\Manager as ExternalShareManager;
use OCA\Files_Sharing\ISharedStorage;
use OCP\AppFramework\Http;
use OCP\Constants;
use OCP\Federation\ICloudId;
+use OCP\Files\Cache\ICache;
+use OCP\Files\Cache\IScanner;
+use OCP\Files\Cache\IWatcher;
use OCP\Files\NotFoundException;
use OCP\Files\Storage\IDisableEncryptionStorage;
use OCP\Files\Storage\IReliableEtagStorage;
+use OCP\Files\Storage\IStorage;
use OCP\Files\StorageInvalidException;
use OCP\Files\StorageNotAvailableException;
use OCP\Http\Client\IClientService;
@@ -58,6 +36,7 @@ use OCP\OCM\Exceptions\OCMArgumentException;
use OCP\OCM\Exceptions\OCMProviderException;
use OCP\OCM\IOCMDiscoveryService;
use OCP\Server;
+use OCP\Util;
use Psr\Log\LoggerInterface;
class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage, IReliableEtagStorage {
@@ -74,7 +53,7 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage,
* @param array{HttpClientService: IClientService, manager: ExternalShareManager, cloudId: ICloudId, mountpoint: string, token: string, password: ?string}|array $options
*/
public function __construct($options) {
- $this->memcacheFactory = \OC::$server->getMemCacheFactory();
+ $this->memcacheFactory = Server::get(ICacheFactory::class);
$this->httpClient = $options['HttpClientService'];
$this->manager = $options['manager'];
$this->cloudId = $options['cloudId'];
@@ -109,6 +88,7 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage,
parent::__construct(
[
'secure' => ((parse_url($remote, PHP_URL_SCHEME) ?? 'https') === 'https'),
+ 'verify' => !$this->config->getSystemValueBool('sharing.federation.allowSelfSignedCertificates', false),
'host' => $host,
'root' => $webDavEndpoint,
'user' => $options['token'],
@@ -118,7 +98,7 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage,
);
}
- public function getWatcher($path = '', $storage = null) {
+ public function getWatcher(string $path = '', ?IStorage $storage = null): IWatcher {
if (!$storage) {
$storage = $this;
}
@@ -149,46 +129,29 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage,
return $this->password;
}
- /**
- * Get id of the mount point.
- * @return string
- */
- public function getId() {
+ public function getId(): string {
return 'shared::' . md5($this->token . '@' . $this->getRemote());
}
- public function getCache($path = '', $storage = null) {
+ public function getCache(string $path = '', ?IStorage $storage = null): ICache {
if (is_null($this->cache)) {
$this->cache = new Cache($this, $this->cloudId);
}
return $this->cache;
}
- /**
- * @param string $path
- * @param \OC\Files\Storage\Storage $storage
- * @return \OCA\Files_Sharing\External\Scanner
- */
- public function getScanner($path = '', $storage = null) {
+ public function getScanner(string $path = '', ?IStorage $storage = null): IScanner {
if (!$storage) {
$storage = $this;
}
if (!isset($this->scanner)) {
$this->scanner = new Scanner($storage);
}
+ /** @var Scanner */
return $this->scanner;
}
- /**
- * Check if a file or folder has been updated since $time
- *
- * @param string $path
- * @param int $time
- * @throws \OCP\Files\StorageNotAvailableException
- * @throws \OCP\Files\StorageInvalidException
- * @return bool
- */
- public function hasUpdated($path, $time) {
+ public function hasUpdated(string $path, int $time): bool {
// since for owncloud webdav servers we can rely on etag propagation we only need to check the root of the storage
// because of that we only do one check for the entire storage per request
if ($this->updateChecked) {
@@ -208,7 +171,7 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage,
}
}
- public function test() {
+ public function test(): bool {
try {
return parent::test();
} catch (StorageInvalidException $e) {
@@ -226,8 +189,8 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage,
* Check whether this storage is permanently or temporarily
* unavailable
*
- * @throws \OCP\Files\StorageNotAvailableException
- * @throws \OCP\Files\StorageInvalidException
+ * @throws StorageNotAvailableException
+ * @throws StorageInvalidException
*/
public function checkStorageAvailability() {
// see if we can find out why the share is unavailable
@@ -241,24 +204,24 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage,
// we remove the invalid storage
$this->manager->removeShare($this->mountPoint);
$this->manager->getMountManager()->removeMount($this->mountPoint);
- throw new StorageInvalidException("Remote share not found", 0, $e);
+ throw new StorageInvalidException('Remote share not found', 0, $e);
} else {
// Nextcloud instance is gone, likely to be a temporary server configuration error
- throw new StorageNotAvailableException("No nextcloud instance found at remote", 0, $e);
+ throw new StorageNotAvailableException('No nextcloud instance found at remote', 0, $e);
}
} catch (ForbiddenException $e) {
// auth error, remove share for now (provide a dialog in the future)
$this->manager->removeShare($this->mountPoint);
$this->manager->getMountManager()->removeMount($this->mountPoint);
- throw new StorageInvalidException("Auth error when getting remote share");
+ throw new StorageInvalidException('Auth error when getting remote share');
} catch (\GuzzleHttp\Exception\ConnectException $e) {
- throw new StorageNotAvailableException("Failed to connect to remote instance", 0, $e);
+ throw new StorageNotAvailableException('Failed to connect to remote instance', 0, $e);
} catch (\GuzzleHttp\Exception\RequestException $e) {
- throw new StorageNotAvailableException("Error while sending request to remote instance", 0, $e);
+ throw new StorageNotAvailableException('Error while sending request to remote instance', 0, $e);
}
}
- public function file_exists($path) {
+ public function file_exists(string $path): bool {
if ($path === '') {
return true;
} else {
@@ -290,19 +253,12 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage,
$client = $this->httpClient->newClient();
try {
- $result = $client->get($url, [
- 'timeout' => 10,
- 'connect_timeout' => 10,
- 'verify' => !$this->config->getSystemValueBool('sharing.federation.allowSelfSignedCertificates', false),
- ])->getBody();
+ $result = $client->get($url, $this->getDefaultRequestOptions())->getBody();
$data = json_decode($result);
$returnValue = (is_object($data) && !empty($data->version));
- } catch (ConnectException $e) {
- $returnValue = false;
- } catch (ClientException $e) {
- $returnValue = false;
- } catch (RequestException $e) {
+ } catch (ConnectException|ClientException|RequestException $e) {
$returnValue = false;
+ $this->logger->warning('Failed to test remote URL', ['exception' => $e]);
}
$cache->set($url, $returnValue, 60 * 60 * 24);
@@ -348,14 +304,13 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage,
$url = rtrim($remote, '/') . '/index.php/apps/files_sharing/shareinfo?t=' . $token;
// TODO: DI
- $client = \OC::$server->getHTTPClientService()->newClient();
+ $client = Server::get(IClientService::class)->newClient();
try {
- $response = $client->post($url, [
+ $response = $client->post($url, array_merge($this->getDefaultRequestOptions(), [
'body' => ['password' => $password, 'depth' => $depth],
- 'timeout' => 10,
- 'connect_timeout' => 10,
- ]);
+ ]));
} catch (\GuzzleHttp\Exception\RequestException $e) {
+ $this->logger->warning('Failed to fetch share info', ['exception' => $e]);
if ($e->getCode() === Http::STATUS_UNAUTHORIZED || $e->getCode() === Http::STATUS_FORBIDDEN) {
throw new ForbiddenException();
}
@@ -371,27 +326,34 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage,
return json_decode($response->getBody(), true);
}
- public function getOwner($path) {
+ public function getOwner(string $path): string|false {
return $this->cloudId->getDisplayId();
}
- public function isSharable($path): bool {
- if (\OCP\Util::isSharingDisabledForUser() || !\OC\Share\Share::isResharingAllowed()) {
+ public function isSharable(string $path): bool {
+ if (Util::isSharingDisabledForUser() || !Share::isResharingAllowed()) {
return false;
}
return (bool)($this->getPermissions($path) & Constants::PERMISSION_SHARE);
}
- public function getPermissions($path): int {
+ public function getPermissions(string $path): int {
$response = $this->propfind($path);
+ if ($response === false) {
+ return 0;
+ }
+
+ $ocsPermissions = $response['{http://open-collaboration-services.org/ns}share-permissions'] ?? null;
+ $ocmPermissions = $response['{http://open-cloud-mesh.org/ns}share-permissions'] ?? null;
+ $ocPermissions = $response['{http://owncloud.org/ns}permissions'] ?? null;
// old federated sharing permissions
- if (isset($response['{http://open-collaboration-services.org/ns}share-permissions'])) {
- $permissions = (int)$response['{http://open-collaboration-services.org/ns}share-permissions'];
- } elseif (isset($response['{http://open-cloud-mesh.org/ns}share-permissions'])) {
+ if ($ocsPermissions !== null) {
+ $permissions = (int)$ocsPermissions;
+ } elseif ($ocmPermissions !== null) {
// permissions provided by the OCM API
- $permissions = $this->ocmPermissions2ncPermissions($response['{http://open-collaboration-services.org/ns}share-permissions'], $path);
- } elseif (isset($response['{http://owncloud.org/ns}permissions'])) {
- return $this->parsePermissions($response['{http://owncloud.org/ns}permissions']);
+ $permissions = $this->ocmPermissions2ncPermissions($ocmPermissions, $path);
+ } elseif ($ocPermissions !== null) {
+ return $this->parsePermissions($ocPermissions);
} else {
// use default permission if remote server doesn't provide the share permissions
$permissions = $this->getDefaultPermissions($path);
@@ -400,7 +362,7 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage,
return $permissions;
}
- public function needsPartFile() {
+ public function needsPartFile(): bool {
return false;
}
@@ -450,7 +412,18 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage,
return $permissions;
}
- public function free_space($path) {
- return parent::free_space("");
+ public function free_space(string $path): int|float|false {
+ return parent::free_space('');
+ }
+
+ private function getDefaultRequestOptions(): array {
+ $options = [
+ 'timeout' => 10,
+ 'connect_timeout' => 10,
+ ];
+ if ($this->config->getSystemValueBool('sharing.federation.allowSelfSignedCertificates')) {
+ $options['verify'] = false;
+ }
+ return $options;
}
}
diff --git a/apps/files_sharing/lib/External/Watcher.php b/apps/files_sharing/lib/External/Watcher.php
index 6afd1c6d538..f3616feabba 100644
--- a/apps/files_sharing/lib/External/Watcher.php
+++ b/apps/files_sharing/lib/External/Watcher.php
@@ -1,23 +1,9 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Robin Appelman <robin@icewind.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\External;
diff --git a/apps/files_sharing/lib/Helper.php b/apps/files_sharing/lib/Helper.php
index c080a4f611c..92e874b73db 100644
--- a/apps/files_sharing/lib/Helper.php
+++ b/apps/files_sharing/lib/Helper.php
@@ -1,60 +1,42 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Daniel Kesselberg <mail@danielkesselberg.de>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing;
use OC\Files\Filesystem;
use OC\Files\View;
use OCA\Files_Sharing\AppInfo\Application;
+use OCP\IConfig;
+use OCP\Server;
+use OCP\Util;
class Helper {
public static function registerHooks() {
- \OCP\Util::connectHook('OC_Filesystem', 'post_rename', '\OCA\Files_Sharing\Updater', 'renameHook');
- \OCP\Util::connectHook('OC_Filesystem', 'post_delete', '\OCA\Files_Sharing\Hooks', 'unshareChildren');
+ Util::connectHook('OC_Filesystem', 'post_rename', '\OCA\Files_Sharing\Updater', 'renameHook');
+ Util::connectHook('OC_Filesystem', 'post_delete', '\OCA\Files_Sharing\Hooks', 'unshareChildren');
- \OCP\Util::connectHook('OC_User', 'post_deleteUser', '\OCA\Files_Sharing\Hooks', 'deleteUser');
+ Util::connectHook('OC_User', 'post_deleteUser', '\OCA\Files_Sharing\Hooks', 'deleteUser');
}
/**
* check if file name already exists and generate unique target
*
* @param string $path
- * @param array $excludeList
* @param View $view
* @return string $path
*/
- public static function generateUniqueTarget($path, $excludeList, $view) {
+ public static function generateUniqueTarget($path, $view) {
$pathinfo = pathinfo($path);
- $ext = isset($pathinfo['extension']) ? '.'.$pathinfo['extension'] : '';
+ $ext = isset($pathinfo['extension']) ? '.' . $pathinfo['extension'] : '';
$name = $pathinfo['filename'];
$dir = $pathinfo['dirname'];
$i = 2;
- while ($view->file_exists($path) || in_array($path, $excludeList)) {
- $path = Filesystem::normalizePath($dir . '/' . $name . ' ('.$i.')' . $ext);
+ while ($view->file_exists($path)) {
+ $path = Filesystem::normalizePath($dir . '/' . $name . ' (' . $i . ')' . $ext);
$i++;
}
@@ -64,7 +46,7 @@ class Helper {
/**
* get default share folder
*
- * @param \OC\Files\View|null $view
+ * @param View|null $view
* @param string|null $userId
* @return string
*/
@@ -73,7 +55,7 @@ class Helper {
$view = Filesystem::getView();
}
- $config = \OC::$server->getConfig();
+ $config = Server::get(IConfig::class);
$systemDefault = $config->getSystemValue('share_folder', '/');
$allowCustomShareFolder = $config->getSystemValueBool('sharing.allow_custom_share_folder', true);
@@ -107,6 +89,6 @@ class Helper {
* @param string $shareFolder
*/
public static function setShareFolder($shareFolder) {
- \OC::$server->getConfig()->setSystemValue('share_folder', $shareFolder);
+ Server::get(IConfig::class)->setSystemValue('share_folder', $shareFolder);
}
}
diff --git a/apps/files_sharing/lib/Hooks.php b/apps/files_sharing/lib/Hooks.php
index 1c93d913eaf..e90b9f5c23d 100644
--- a/apps/files_sharing/lib/Hooks.php
+++ b/apps/files_sharing/lib/Hooks.php
@@ -1,46 +1,29 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing;
use OC\Files\Filesystem;
+use OC\Files\View;
+use OCP\Server;
class Hooks {
public static function deleteUser($params) {
- $manager = \OC::$server->get(External\Manager::class);
+ $manager = Server::get(External\Manager::class);
$manager->removeUserShares($params['uid']);
}
public static function unshareChildren($params) {
$path = Filesystem::getView()->getAbsolutePath($params['path']);
- $view = new \OC\Files\View('/');
+ $view = new View('/');
// find share mount points within $path and unmount them
- $mountManager = \OC\Files\Filesystem::getMountManager();
+ $mountManager = Filesystem::getMountManager();
$mountedShares = $mountManager->findIn($path);
foreach ($mountedShares as $mount) {
if ($mount->getStorage()->instanceOfStorage(ISharedStorage::class)) {
diff --git a/apps/files_sharing/lib/ISharedMountPoint.php b/apps/files_sharing/lib/ISharedMountPoint.php
index f3947599c29..bfce830035d 100644
--- a/apps/files_sharing/lib/ISharedMountPoint.php
+++ b/apps/files_sharing/lib/ISharedMountPoint.php
@@ -2,23 +2,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2023 Robin Appelman <robin@icewind.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing;
diff --git a/apps/files_sharing/lib/ISharedStorage.php b/apps/files_sharing/lib/ISharedStorage.php
index c54b90f3f05..9bd3e4c9476 100644
--- a/apps/files_sharing/lib/ISharedStorage.php
+++ b/apps/files_sharing/lib/ISharedStorage.php
@@ -1,28 +1,16 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Robin Appelman <robin@icewind.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing;
use OCP\Files\Storage\IStorage;
+/**
+ * @deprecated 30.0.0 use `\OCP\Files\Storage\ISharedStorage` instead
+ */
interface ISharedStorage extends IStorage {
}
diff --git a/apps/files_sharing/lib/Listener/BeforeDirectFileDownloadListener.php b/apps/files_sharing/lib/Listener/BeforeDirectFileDownloadListener.php
new file mode 100644
index 00000000000..717edd4869e
--- /dev/null
+++ b/apps/files_sharing/lib/Listener/BeforeDirectFileDownloadListener.php
@@ -0,0 +1,48 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\Files_Sharing\Listener;
+
+use OCA\Files_Sharing\ViewOnly;
+use OCP\EventDispatcher\Event;
+use OCP\EventDispatcher\IEventListener;
+use OCP\Files\Events\BeforeDirectFileDownloadEvent;
+use OCP\Files\IRootFolder;
+use OCP\IUserSession;
+
+/**
+ * @template-implements IEventListener<BeforeDirectFileDownloadEvent|Event>
+ */
+class BeforeDirectFileDownloadListener implements IEventListener {
+
+ public function __construct(
+ private IUserSession $userSession,
+ private IRootFolder $rootFolder,
+ ) {
+ }
+
+ public function handle(Event $event): void {
+ if (!($event instanceof BeforeDirectFileDownloadEvent)) {
+ return;
+ }
+
+ $pathsToCheck = [$event->getPath()];
+ // Check only for user/group shares. Don't restrict e.g. share links
+ $user = $this->userSession->getUser();
+ if ($user) {
+ $viewOnlyHandler = new ViewOnly(
+ $this->rootFolder->getUserFolder($user->getUID())
+ );
+ if (!$viewOnlyHandler->check($pathsToCheck)) {
+ $event->setSuccessful(false);
+ $event->setErrorMessage('Access to this resource or one of its sub-items has been denied.');
+ }
+ }
+ }
+}
diff --git a/apps/files_sharing/lib/Listener/BeforeNodeReadListener.php b/apps/files_sharing/lib/Listener/BeforeNodeReadListener.php
new file mode 100644
index 00000000000..d19bc8dfae9
--- /dev/null
+++ b/apps/files_sharing/lib/Listener/BeforeNodeReadListener.php
@@ -0,0 +1,189 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\Files_Sharing\Listener;
+
+use OCA\Files_Sharing\Activity\Providers\Downloads;
+use OCP\EventDispatcher\Event;
+use OCP\EventDispatcher\IEventListener;
+use OCP\Files\Events\BeforeZipCreatedEvent;
+use OCP\Files\Events\Node\BeforeNodeReadEvent;
+use OCP\Files\File;
+use OCP\Files\Folder;
+use OCP\Files\IRootFolder;
+use OCP\Files\NotFoundException;
+use OCP\Files\Storage\ISharedStorage;
+use OCP\ICache;
+use OCP\ICacheFactory;
+use OCP\IRequest;
+use OCP\ISession;
+use OCP\Share\IShare;
+
+/**
+ * @template-implements IEventListener<BeforeNodeReadEvent|BeforeZipCreatedEvent|Event>
+ */
+class BeforeNodeReadListener implements IEventListener {
+ private ICache $cache;
+
+ public function __construct(
+ private ISession $session,
+ private IRootFolder $rootFolder,
+ private \OCP\Activity\IManager $activityManager,
+ private IRequest $request,
+ ICacheFactory $cacheFactory,
+ ) {
+ $this->cache = $cacheFactory->createDistributed('files_sharing_activity_events');
+ }
+
+ public function handle(Event $event): void {
+ if ($event instanceof BeforeZipCreatedEvent) {
+ $this->handleBeforeZipCreatedEvent($event);
+ } elseif ($event instanceof BeforeNodeReadEvent) {
+ $this->handleBeforeNodeReadEvent($event);
+ }
+ }
+
+ public function handleBeforeZipCreatedEvent(BeforeZipCreatedEvent $event): void {
+ $files = $event->getFiles();
+ if (count($files) !== 0) {
+ /* No need to do anything, activity will be triggered for each file in the zip by the BeforeNodeReadEvent */
+ return;
+ }
+
+ $node = $event->getFolder();
+ if (!($node instanceof Folder)) {
+ return;
+ }
+
+ try {
+ $storage = $node->getStorage();
+ } catch (NotFoundException) {
+ return;
+ }
+
+ if (!$storage->instanceOfStorage(ISharedStorage::class)) {
+ return;
+ }
+
+ /** @var ISharedStorage $storage */
+ $share = $storage->getShare();
+
+ if (!in_array($share->getShareType(), [IShare::TYPE_EMAIL, IShare::TYPE_LINK])) {
+ return;
+ }
+
+ /* Cache that that folder download activity was published */
+ $this->cache->set($this->request->getId(), $node->getPath(), 3600);
+
+ $this->singleFileDownloaded($share, $node);
+ }
+
+ public function handleBeforeNodeReadEvent(BeforeNodeReadEvent $event): void {
+ $node = $event->getNode();
+ if (!($node instanceof File)) {
+ return;
+ }
+
+ try {
+ $storage = $node->getStorage();
+ } catch (NotFoundException) {
+ return;
+ }
+
+ if (!$storage->instanceOfStorage(ISharedStorage::class)) {
+ return;
+ }
+
+ /** @var ISharedStorage $storage */
+ $share = $storage->getShare();
+
+ if (!in_array($share->getShareType(), [IShare::TYPE_EMAIL, IShare::TYPE_LINK])) {
+ return;
+ }
+
+ $path = $this->cache->get($this->request->getId());
+ if (is_string($path) && str_starts_with($node->getPath(), $path)) {
+ /* An activity was published for a containing folder already */
+ return;
+ }
+
+ /* Avoid publishing several activities for one video playing */
+ $cacheKey = $node->getId() . $node->getPath() . $this->session->getId();
+ if (($this->request->getHeader('range') !== '') && ($this->cache->get($cacheKey) === 'true')) {
+ /* This is a range request and an activity for the same file was published in the same session */
+ return;
+ }
+ $this->cache->set($cacheKey, 'true', 3600);
+
+ $this->singleFileDownloaded($share, $node);
+ }
+
+ /**
+ * create activity if a single file or folder was downloaded from a link share
+ */
+ protected function singleFileDownloaded(IShare $share, File|Folder $node): void {
+ $fileId = $node->getId();
+
+ $userFolder = $this->rootFolder->getUserFolder($share->getSharedBy());
+ $userNode = $userFolder->getFirstNodeById($fileId);
+ $ownerFolder = $this->rootFolder->getUserFolder($share->getShareOwner());
+ $userPath = $userFolder->getRelativePath($userNode?->getPath() ?? '') ?? '';
+ $ownerPath = $ownerFolder->getRelativePath($node->getPath()) ?? '';
+
+ $parameters = [$userPath];
+
+ if ($share->getShareType() === IShare::TYPE_EMAIL) {
+ if ($node instanceof File) {
+ $subject = Downloads::SUBJECT_SHARED_FILE_BY_EMAIL_DOWNLOADED;
+ } else {
+ $subject = Downloads::SUBJECT_SHARED_FOLDER_BY_EMAIL_DOWNLOADED;
+ }
+ $parameters[] = $share->getSharedWith();
+ } elseif ($share->getShareType() === IShare::TYPE_LINK) {
+ if ($node instanceof File) {
+ $subject = Downloads::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED;
+ } else {
+ $subject = Downloads::SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED;
+ }
+ $remoteAddress = $this->request->getRemoteAddress();
+ $dateTime = new \DateTime();
+ $dateTime = $dateTime->format('Y-m-d H');
+ $remoteAddressHash = md5($dateTime . '-' . $remoteAddress);
+ $parameters[] = $remoteAddressHash;
+ } else {
+ return;
+ }
+
+ $this->publishActivity($subject, $parameters, $share->getSharedBy(), $fileId, $userPath);
+
+ if ($share->getShareOwner() !== $share->getSharedBy()) {
+ $parameters[0] = $ownerPath;
+ $this->publishActivity($subject, $parameters, $share->getShareOwner(), $fileId, $ownerPath);
+ }
+ }
+
+ /**
+ * publish activity
+ */
+ protected function publishActivity(
+ string $subject,
+ array $parameters,
+ string $affectedUser,
+ int $fileId,
+ string $filePath,
+ ): void {
+ $event = $this->activityManager->generateEvent();
+ $event->setApp('files_sharing')
+ ->setType('public_links')
+ ->setSubject($subject, $parameters)
+ ->setAffectedUser($affectedUser)
+ ->setObject('files', $fileId, $filePath);
+ $this->activityManager->publish($event);
+ }
+}
diff --git a/apps/files_sharing/lib/Listener/BeforeZipCreatedListener.php b/apps/files_sharing/lib/Listener/BeforeZipCreatedListener.php
new file mode 100644
index 00000000000..1fc62bfe0fa
--- /dev/null
+++ b/apps/files_sharing/lib/Listener/BeforeZipCreatedListener.php
@@ -0,0 +1,59 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\Files_Sharing\Listener;
+
+use OCA\Files_Sharing\ViewOnly;
+use OCP\EventDispatcher\Event;
+use OCP\EventDispatcher\IEventListener;
+use OCP\Files\Events\BeforeZipCreatedEvent;
+use OCP\Files\IRootFolder;
+use OCP\IUserSession;
+
+/**
+ * @template-implements IEventListener<BeforeZipCreatedEvent|Event>
+ */
+class BeforeZipCreatedListener implements IEventListener {
+
+ public function __construct(
+ private IUserSession $userSession,
+ private IRootFolder $rootFolder,
+ ) {
+ }
+
+ public function handle(Event $event): void {
+ if (!($event instanceof BeforeZipCreatedEvent)) {
+ return;
+ }
+
+ $dir = $event->getDirectory();
+ $files = $event->getFiles();
+
+ $pathsToCheck = [];
+ foreach ($files as $file) {
+ $pathsToCheck[] = $dir . '/' . $file;
+ }
+
+ // Check only for user/group shares. Don't restrict e.g. share links
+ $user = $this->userSession->getUser();
+ if ($user) {
+ $viewOnlyHandler = new ViewOnly(
+ $this->rootFolder->getUserFolder($user->getUID())
+ );
+ if (!$viewOnlyHandler->check($pathsToCheck)) {
+ $event->setErrorMessage('Access to this resource or one of its sub-items has been denied.');
+ $event->setSuccessful(false);
+ } else {
+ $event->setSuccessful(true);
+ }
+ } else {
+ $event->setSuccessful(true);
+ }
+ }
+}
diff --git a/apps/files_sharing/lib/Listener/LoadAdditionalListener.php b/apps/files_sharing/lib/Listener/LoadAdditionalListener.php
index 514c6ba0aa3..b089c8309b7 100644
--- a/apps/files_sharing/lib/Listener/LoadAdditionalListener.php
+++ b/apps/files_sharing/lib/Listener/LoadAdditionalListener.php
@@ -3,25 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2019, Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Listener;
@@ -29,6 +12,7 @@ use OCA\Files\Event\LoadAdditionalScriptsEvent;
use OCA\Files_Sharing\AppInfo\Application;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
+use OCP\Server;
use OCP\Share\IManager;
use OCP\Util;
@@ -43,7 +27,7 @@ class LoadAdditionalListener implements IEventListener {
Util::addScript(Application::APP_ID, 'additionalScripts', 'files');
Util::addStyle(Application::APP_ID, 'icons');
- $shareManager = \OC::$server->get(IManager::class);
+ $shareManager = Server::get(IManager::class);
if ($shareManager->shareApiEnabled() && class_exists('\OCA\Files\App')) {
Util::addInitScript(Application::APP_ID, 'init');
}
diff --git a/apps/files_sharing/lib/Listener/LoadPublicFileRequestAuthListener.php b/apps/files_sharing/lib/Listener/LoadPublicFileRequestAuthListener.php
new file mode 100644
index 00000000000..6da2476194b
--- /dev/null
+++ b/apps/files_sharing/lib/Listener/LoadPublicFileRequestAuthListener.php
@@ -0,0 +1,61 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\Files_Sharing\Listener;
+
+use OCA\Files_Sharing\AppInfo\Application;
+use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent;
+use OCP\AppFramework\Http\TemplateResponse;
+use OCP\AppFramework\Services\IInitialState;
+use OCP\EventDispatcher\Event;
+use OCP\EventDispatcher\IEventListener;
+use OCP\Share\IManager;
+use OCP\Util;
+
+/** @template-implements IEventListener<BeforeTemplateRenderedEvent> */
+class LoadPublicFileRequestAuthListener implements IEventListener {
+ public function __construct(
+ private IManager $shareManager,
+ private IInitialState $initialState,
+ ) {
+ }
+
+ public function handle(Event $event): void {
+ if (!$event instanceof BeforeTemplateRenderedEvent) {
+ return;
+ }
+
+ // Make sure we are on a public page rendering
+ if ($event->getResponse()->getRenderAs() !== TemplateResponse::RENDER_AS_PUBLIC) {
+ return;
+ }
+
+ $token = $event->getResponse()->getParams()['sharingToken'] ?? null;
+ if ($token === null || $token === '') {
+ return;
+ }
+
+ // Check if the share is a file request
+ $isFileRequest = false;
+ try {
+ $share = $this->shareManager->getShareByToken($token);
+ $attributes = $share->getAttributes();
+ if ($attributes === null) {
+ return;
+ }
+
+ $isFileRequest = $attributes->getAttribute('fileRequest', 'enabled') === true;
+ } catch (\Exception $e) {
+ // Ignore, this is not a file request or the share does not exist
+ }
+
+ Util::addScript(Application::APP_ID, 'public-nickname-handler');
+
+ // Add file-request script if needed
+ $this->initialState->provideInitialState('isFileRequest', $isFileRequest);
+ }
+}
diff --git a/apps/files_sharing/lib/Listener/LoadSidebarListener.php b/apps/files_sharing/lib/Listener/LoadSidebarListener.php
index f82f60a170d..17fee71978f 100644
--- a/apps/files_sharing/lib/Listener/LoadSidebarListener.php
+++ b/apps/files_sharing/lib/Listener/LoadSidebarListener.php
@@ -3,34 +3,21 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2019, Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Listener;
use OCA\Files\Event\LoadSidebar;
use OCA\Files_Sharing\AppInfo\Application;
+use OCA\Files_Sharing\Config\ConfigLexicon;
use OCP\AppFramework\Services\IInitialState;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
+use OCP\GlobalScale\IConfig;
+use OCP\IAppConfig;
+use OCP\Server;
use OCP\Share\IManager;
use OCP\Util;
@@ -39,14 +26,25 @@ use OCP\Util;
*/
class LoadSidebarListener implements IEventListener {
- public function __construct(private IInitialState $initialState, private IManager $shareManager) {
+ public function __construct(
+ private IInitialState $initialState,
+ private IManager $shareManager,
+ ) {
}
public function handle(Event $event): void {
if (!($event instanceof LoadSidebar)) {
return;
}
-
Util::addScript(Application::APP_ID, 'files_sharing_tab', 'files');
+
+ $appConfig = Server::get(IAppConfig::class);
+ $gsConfig = Server::get(IConfig::class);
+ $showFederatedToTrustedAsInternal = $gsConfig->isGlobalScaleEnabled() || $appConfig->getValueBool('files_sharing', ConfigLexicon::SHOW_FEDERATED_TO_TRUSTED_AS_INTERNAL);
+ $showFederatedAsInternal = ($gsConfig->isGlobalScaleEnabled() && $gsConfig->onlyInternalFederation())
+ || $appConfig->getValueBool('files_sharing', ConfigLexicon::SHOW_FEDERATED_AS_INTERNAL);
+
+ $this->initialState->provideInitialState('showFederatedSharesAsInternal', $showFederatedAsInternal);
+ $this->initialState->provideInitialState('showFederatedSharesToTrustedServersAsInternal', $showFederatedToTrustedAsInternal);
}
}
diff --git a/apps/files_sharing/lib/Listener/ShareInteractionListener.php b/apps/files_sharing/lib/Listener/ShareInteractionListener.php
index f97da311374..7b11a472492 100644
--- a/apps/files_sharing/lib/Listener/ShareInteractionListener.php
+++ b/apps/files_sharing/lib/Listener/ShareInteractionListener.php
@@ -3,26 +3,8 @@
declare(strict_types=1);
/**
- * @copyright 2020 Christoph Wurst <christoph@winzerhof-wurst.at>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Listener;
diff --git a/apps/files_sharing/lib/Listener/UserAddedToGroupListener.php b/apps/files_sharing/lib/Listener/UserAddedToGroupListener.php
index e3273e48516..281c96ca5e7 100644
--- a/apps/files_sharing/lib/Listener/UserAddedToGroupListener.php
+++ b/apps/files_sharing/lib/Listener/UserAddedToGroupListener.php
@@ -3,25 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2020, Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Listener;
@@ -36,15 +19,10 @@ use OCP\Share\IShare;
/** @template-implements IEventListener<UserAddedEvent> */
class UserAddedToGroupListener implements IEventListener {
- /** @var IManager */
- private $shareManager;
-
- /** @var IConfig */
- private $config;
-
- public function __construct(IManager $shareManager, IConfig $config) {
- $this->shareManager = $shareManager;
- $this->config = $config;
+ public function __construct(
+ private IManager $shareManager,
+ private IConfig $config,
+ ) {
}
public function handle(Event $event): void {
diff --git a/apps/files_sharing/lib/Listener/UserShareAcceptanceListener.php b/apps/files_sharing/lib/Listener/UserShareAcceptanceListener.php
index 8de9f0ae267..0ac447436bd 100644
--- a/apps/files_sharing/lib/Listener/UserShareAcceptanceListener.php
+++ b/apps/files_sharing/lib/Listener/UserShareAcceptanceListener.php
@@ -3,27 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2019, Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Listener;
@@ -39,17 +20,11 @@ use OCP\Share\IShare;
/** @template-implements IEventListener<ShareCreatedEvent> */
class UserShareAcceptanceListener implements IEventListener {
- /** @var IConfig */
- private $config;
- /** @var IManager */
- private $shareManager;
- /** @var IGroupManager */
- private $groupManager;
-
- public function __construct(IConfig $config, IManager $shareManager, IGroupManager $groupManager) {
- $this->config = $config;
- $this->shareManager = $shareManager;
- $this->groupManager = $groupManager;
+ public function __construct(
+ private IConfig $config,
+ private IManager $shareManager,
+ private IGroupManager $groupManager,
+ ) {
}
public function handle(Event $event): void {
diff --git a/apps/files_sharing/lib/Middleware/OCSShareAPIMiddleware.php b/apps/files_sharing/lib/Middleware/OCSShareAPIMiddleware.php
index aba6124f415..6671a78efff 100644
--- a/apps/files_sharing/lib/Middleware/OCSShareAPIMiddleware.php
+++ b/apps/files_sharing/lib/Middleware/OCSShareAPIMiddleware.php
@@ -1,26 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2016 Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Middleware;
@@ -33,15 +15,10 @@ use OCP\IL10N;
use OCP\Share\IManager;
class OCSShareAPIMiddleware extends Middleware {
- /** @var IManager */
- private $shareManager;
- /** @var IL10N */
- private $l;
-
- public function __construct(IManager $shareManager,
- IL10N $l) {
- $this->shareManager = $shareManager;
- $this->l = $l;
+ public function __construct(
+ private IManager $shareManager,
+ private IL10N $l,
+ ) {
}
/**
diff --git a/apps/files_sharing/lib/Middleware/ShareInfoMiddleware.php b/apps/files_sharing/lib/Middleware/ShareInfoMiddleware.php
index adc6116af45..e96940979bf 100644
--- a/apps/files_sharing/lib/Middleware/ShareInfoMiddleware.php
+++ b/apps/files_sharing/lib/Middleware/ShareInfoMiddleware.php
@@ -1,25 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2016 Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Middleware;
@@ -33,11 +16,9 @@ use OCP\AppFramework\Middleware;
use OCP\Share\IManager;
class ShareInfoMiddleware extends Middleware {
- /** @var IManager */
- private $shareManager;
-
- public function __construct(IManager $shareManager) {
- $this->shareManager = $shareManager;
+ public function __construct(
+ private IManager $shareManager,
+ ) {
}
/**
diff --git a/apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php b/apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php
index 005fc75c849..8ea2eb59d73 100644
--- a/apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php
+++ b/apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php
@@ -1,31 +1,10 @@
<?php
declare(strict_types=1);
-
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Middleware;
@@ -50,32 +29,14 @@ use OCP\Share\IManager;
*/
class SharingCheckMiddleware extends Middleware {
- /** @var string */
- protected $appName;
- /** @var IConfig */
- protected $config;
- /** @var IAppManager */
- protected $appManager;
- /** @var IControllerMethodReflector */
- protected $reflector;
- /** @var IManager */
- protected $shareManager;
- /** @var IRequest */
- protected $request;
-
- public function __construct(string $appName,
- IConfig $config,
- IAppManager $appManager,
- IControllerMethodReflector $reflector,
- IManager $shareManager,
- IRequest $request
+ public function __construct(
+ protected string $appName,
+ protected IConfig $config,
+ protected IAppManager $appManager,
+ protected IControllerMethodReflector $reflector,
+ protected IManager $shareManager,
+ protected IRequest $request,
) {
- $this->appName = $appName;
- $this->config = $config;
- $this->appManager = $appManager;
- $this->reflector = $reflector;
- $this->shareManager = $shareManager;
- $this->request = $request;
}
/**
@@ -91,8 +52,8 @@ class SharingCheckMiddleware extends Middleware {
throw new NotFoundException('Sharing is disabled.');
}
- if ($controller instanceof ExternalSharesController &&
- !$this->externalSharesChecks()) {
+ if ($controller instanceof ExternalSharesController
+ && !$this->externalSharesChecks()) {
throw new S2SException('Federated sharing not allowed');
}
}
@@ -123,13 +84,13 @@ class SharingCheckMiddleware extends Middleware {
* @return bool
*/
private function externalSharesChecks(): bool {
- if (!$this->reflector->hasAnnotation('NoIncomingFederatedSharingRequired') &&
- $this->config->getAppValue('files_sharing', 'incoming_server2server_share_enabled', 'yes') !== 'yes') {
+ if (!$this->reflector->hasAnnotation('NoIncomingFederatedSharingRequired')
+ && $this->config->getAppValue('files_sharing', 'incoming_server2server_share_enabled', 'yes') !== 'yes') {
return false;
}
- if (!$this->reflector->hasAnnotation('NoOutgoingFederatedSharingRequired') &&
- $this->config->getAppValue('files_sharing', 'outgoing_server2server_share_enabled', 'yes') !== 'yes') {
+ if (!$this->reflector->hasAnnotation('NoOutgoingFederatedSharingRequired')
+ && $this->config->getAppValue('files_sharing', 'outgoing_server2server_share_enabled', 'yes') !== 'yes') {
return false;
}
diff --git a/apps/files_sharing/lib/Migration/OwncloudGuestShareType.php b/apps/files_sharing/lib/Migration/OwncloudGuestShareType.php
index 57b441172ee..3718306e380 100644
--- a/apps/files_sharing/lib/Migration/OwncloudGuestShareType.php
+++ b/apps/files_sharing/lib/Migration/OwncloudGuestShareType.php
@@ -1,25 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com>
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Migration;
@@ -36,16 +19,10 @@ use OCP\Share\IShare;
*/
class OwncloudGuestShareType implements IRepairStep {
- /** @var IDBConnection */
- private $connection;
-
- /** @var IConfig */
- private $config;
-
-
- public function __construct(IDBConnection $connection, IConfig $config) {
- $this->connection = $connection;
- $this->config = $config;
+ public function __construct(
+ private IDBConnection $connection,
+ private IConfig $config,
+ ) {
}
/**
@@ -75,7 +52,7 @@ class OwncloudGuestShareType implements IRepairStep {
protected function shouldRun() {
$appVersion = $this->config->getAppValue('files_sharing', 'installed_version', '0.0.0');
- return $appVersion === '0.10.0' ||
- $this->config->getAppValue('core', 'vendor', '') === 'owncloud';
+ return $appVersion === '0.10.0'
+ || $this->config->getAppValue('core', 'vendor', '') === 'owncloud';
}
}
diff --git a/apps/files_sharing/lib/Migration/SetAcceptedStatus.php b/apps/files_sharing/lib/Migration/SetAcceptedStatus.php
index a27f12e87e1..4da6aad4b33 100644
--- a/apps/files_sharing/lib/Migration/SetAcceptedStatus.php
+++ b/apps/files_sharing/lib/Migration/SetAcceptedStatus.php
@@ -3,25 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2019, Joas Schilling <coding@schilljs.com>
- *
- * @author Joas Schilling <coding@schilljs.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Migration;
@@ -34,16 +17,10 @@ use OCP\Share\IShare;
class SetAcceptedStatus implements IRepairStep {
- /** @var IDBConnection */
- private $connection;
-
- /** @var IConfig */
- private $config;
-
-
- public function __construct(IDBConnection $connection, IConfig $config) {
- $this->connection = $connection;
- $this->config = $config;
+ public function __construct(
+ private IDBConnection $connection,
+ private IConfig $config,
+ ) {
}
/**
@@ -69,7 +46,7 @@ class SetAcceptedStatus implements IRepairStep {
->update('share')
->set('accepted', $query->createNamedParameter(IShare::STATUS_ACCEPTED))
->where($query->expr()->in('share_type', $query->createNamedParameter([IShare::TYPE_USER, IShare::TYPE_GROUP, IShare::TYPE_USERGROUP], IQueryBuilder::PARAM_INT_ARRAY)));
- $query->execute();
+ $query->executeStatement();
}
protected function shouldRun() {
diff --git a/apps/files_sharing/lib/Migration/SetPasswordColumn.php b/apps/files_sharing/lib/Migration/SetPasswordColumn.php
index b4de4f574dd..f60af2817d4 100644
--- a/apps/files_sharing/lib/Migration/SetPasswordColumn.php
+++ b/apps/files_sharing/lib/Migration/SetPasswordColumn.php
@@ -1,24 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com>
- *
- * @author Joas Schilling <coding@schilljs.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Migration;
@@ -35,16 +19,10 @@ use OCP\Share\IShare;
*/
class SetPasswordColumn implements IRepairStep {
- /** @var IDBConnection */
- private $connection;
-
- /** @var IConfig */
- private $config;
-
-
- public function __construct(IDBConnection $connection, IConfig $config) {
- $this->connection = $connection;
- $this->config = $config;
+ public function __construct(
+ private IDBConnection $connection,
+ private IConfig $config,
+ ) {
}
/**
diff --git a/apps/files_sharing/lib/Migration/Version11300Date20201120141438.php b/apps/files_sharing/lib/Migration/Version11300Date20201120141438.php
index ec514c9154f..c9fe840d422 100644
--- a/apps/files_sharing/lib/Migration/Version11300Date20201120141438.php
+++ b/apps/files_sharing/lib/Migration/Version11300Date20201120141438.php
@@ -3,27 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2020 Julius Härtl <jus@bitgrid.net>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Migration;
@@ -37,11 +18,9 @@ use OCP\Migration\SimpleMigrationStep;
class Version11300Date20201120141438 extends SimpleMigrationStep {
- /** @var IDBConnection */
- private $connection;
-
- public function __construct(IDBConnection $connection) {
- $this->connection = $connection;
+ public function __construct(
+ private IDBConnection $connection,
+ ) {
}
public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
diff --git a/apps/files_sharing/lib/Migration/Version21000Date20201223143245.php b/apps/files_sharing/lib/Migration/Version21000Date20201223143245.php
index c393295a367..9bd07a19802 100644
--- a/apps/files_sharing/lib/Migration/Version21000Date20201223143245.php
+++ b/apps/files_sharing/lib/Migration/Version21000Date20201223143245.php
@@ -3,26 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2020 Vincent Petry <vincent@nextcloud.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Migration;
diff --git a/apps/files_sharing/lib/Migration/Version22000Date20210216084241.php b/apps/files_sharing/lib/Migration/Version22000Date20210216084241.php
index 443f255d031..e82fb4a72d5 100644
--- a/apps/files_sharing/lib/Migration/Version22000Date20210216084241.php
+++ b/apps/files_sharing/lib/Migration/Version22000Date20210216084241.php
@@ -3,25 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2021 Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Migration;
diff --git a/apps/files_sharing/lib/Migration/Version24000Date20220208195521.php b/apps/files_sharing/lib/Migration/Version24000Date20220208195521.php
index 8b95e32eb4f..75da1de1d83 100644
--- a/apps/files_sharing/lib/Migration/Version24000Date20220208195521.php
+++ b/apps/files_sharing/lib/Migration/Version24000Date20220208195521.php
@@ -3,25 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2022 Vincent Petry <vincent@nextloud.com>
- *
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Migration;
diff --git a/apps/files_sharing/lib/Migration/Version24000Date20220404142216.php b/apps/files_sharing/lib/Migration/Version24000Date20220404142216.php
index 05176ebdae9..03985bd50c7 100644
--- a/apps/files_sharing/lib/Migration/Version24000Date20220404142216.php
+++ b/apps/files_sharing/lib/Migration/Version24000Date20220404142216.php
@@ -3,25 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2022 Côme Chilliet <come.chilliet@nextcloud.com>
- *
- * @author Côme Chilliet <come.chilliet@nextcloud.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Migration;
diff --git a/apps/files_sharing/lib/Migration/Version31000Date20240821142813.php b/apps/files_sharing/lib/Migration/Version31000Date20240821142813.php
new file mode 100644
index 00000000000..71b2c1817e6
--- /dev/null
+++ b/apps/files_sharing/lib/Migration/Version31000Date20240821142813.php
@@ -0,0 +1,43 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\Files_Sharing\Migration;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\Attributes\AddColumn;
+use OCP\Migration\Attributes\ColumnType;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+#[AddColumn(table: 'share', name: 'reminder_sent', type: ColumnType::BOOLEAN)]
+class Version31000Date20240821142813 extends SimpleMigrationStep {
+
+ /**
+ * @param IOutput $output
+ * @param Closure(): ISchemaWrapper $schemaClosure
+ * @param array $options
+ * @return null|ISchemaWrapper
+ */
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
+ $schema = $schemaClosure();
+ $table = $schema->getTable('share');
+ if ($table->hasColumn('reminder_sent')) {
+ return null;
+ }
+
+ $table->addColumn('reminder_sent', Types::BOOLEAN, [
+ 'notnull' => false,
+ 'default' => false,
+ ]);
+ return $schema;
+ }
+
+}
diff --git a/apps/files_sharing/lib/MountProvider.php b/apps/files_sharing/lib/MountProvider.php
index dce67b7ef98..7a0b1f135a6 100644
--- a/apps/files_sharing/lib/MountProvider.php
+++ b/apps/files_sharing/lib/MountProvider.php
@@ -1,30 +1,9 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Maxence Lange <maxence@nextcloud.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing;
@@ -33,6 +12,8 @@ use OCA\Files_Sharing\Event\ShareMountedEvent;
use OCP\Cache\CappedMemoryCache;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\Config\IMountProvider;
+use OCP\Files\Mount\IMountManager;
+use OCP\Files\Mount\IMountPoint;
use OCP\Files\Storage\IStorageFactory;
use OCP\ICacheFactory;
use OCP\IConfig;
@@ -43,7 +24,7 @@ use Psr\Log\LoggerInterface;
class MountProvider implements IMountProvider {
/**
- * @param \OCP\IConfig $config
+ * @param IConfig $config
* @param IManager $shareManager
* @param LoggerInterface $logger
*/
@@ -52,16 +33,17 @@ class MountProvider implements IMountProvider {
protected IManager $shareManager,
protected LoggerInterface $logger,
protected IEventDispatcher $eventDispatcher,
- protected ICacheFactory $cacheFactory
+ protected ICacheFactory $cacheFactory,
+ protected IMountManager $mountManager,
) {
}
/**
* Get all mountpoints applicable for the user and check for shares where we need to update the etags
*
- * @param \OCP\IUser $user
- * @param \OCP\Files\Storage\IStorageFactory $loader
- * @return \OCP\Files\Mount\IMountPoint[]
+ * @param IUser $user
+ * @param IStorageFactory $loader
+ * @return IMountPoint[]
*/
public function getMountsForUser(IUser $user, IStorageFactory $loader) {
$shares = $this->shareManager->getSharedWith($user->getUID(), IShare::TYPE_USER, null, -1);
@@ -73,27 +55,33 @@ class MountProvider implements IMountProvider {
// filter out excluded shares and group shares that includes self
- $shares = array_filter($shares, function (\OCP\Share\IShare $share) use ($user) {
- return $share->getPermissions() > 0 && $share->getShareOwner() !== $user->getUID();
+ $shares = array_filter($shares, function (IShare $share) use ($user) {
+ return $share->getPermissions() > 0 && $share->getShareOwner() !== $user->getUID() && $share->getSharedBy() !== $user->getUID();
});
$superShares = $this->buildSuperShares($shares, $user);
+ $otherMounts = $this->mountManager->getAll();
$mounts = [];
$view = new View('/' . $user->getUID() . '/files');
$ownerViews = [];
$sharingDisabledForUser = $this->shareManager->sharingDisabledForUser($user->getUID());
/** @var CappedMemoryCache<bool> $folderExistCache */
$foldersExistCache = new CappedMemoryCache();
+
+ $validShareCache = $this->cacheFactory->createLocal('share-valid-mountpoint-max');
+ $maxValidatedShare = $validShareCache->get($user->getUID()) ?? 0;
+ $newMaxValidatedShare = $maxValidatedShare;
+
foreach ($superShares as $share) {
try {
- /** @var \OCP\Share\IShare $parentShare */
+ /** @var IShare $parentShare */
$parentShare = $share[0];
- if ($parentShare->getStatus() !== IShare::STATUS_ACCEPTED &&
- ($parentShare->getShareType() === IShare::TYPE_GROUP ||
- $parentShare->getShareType() === IShare::TYPE_USERGROUP ||
- $parentShare->getShareType() === IShare::TYPE_USER)) {
+ if ($parentShare->getStatus() !== IShare::STATUS_ACCEPTED
+ && ($parentShare->getShareType() === IShare::TYPE_GROUP
+ || $parentShare->getShareType() === IShare::TYPE_USERGROUP
+ || $parentShare->getShareType() === IShare::TYPE_USER)) {
continue;
}
@@ -101,9 +89,10 @@ class MountProvider implements IMountProvider {
if (!isset($ownerViews[$owner])) {
$ownerViews[$owner] = new View('/' . $parentShare->getShareOwner() . '/files');
}
+ $shareId = (int)$parentShare->getId();
$mount = new SharedMount(
'\OCA\Files_Sharing\SharedStorage',
- $mounts,
+ array_merge($mounts, $otherMounts),
[
'user' => $user->getUID(),
// parent share
@@ -118,9 +107,11 @@ class MountProvider implements IMountProvider {
$foldersExistCache,
$this->eventDispatcher,
$user,
- $this->cacheFactory->createLocal('share-valid-mountpoint')
+ ($shareId <= $maxValidatedShare),
);
+ $newMaxValidatedShare = max($shareId, $newMaxValidatedShare);
+
$event = new ShareMountedEvent($mount);
$this->eventDispatcher->dispatchTyped($event);
@@ -139,6 +130,8 @@ class MountProvider implements IMountProvider {
}
}
+ $validShareCache->set($user->getUID(), $newMaxValidatedShare, 24 * 60 * 60);
+
// array_filter removes the null values from the array
return array_values(array_filter($mounts));
}
@@ -146,9 +139,9 @@ class MountProvider implements IMountProvider {
/**
* Groups shares by path (nodeId) and target path
*
- * @param \OCP\Share\IShare[] $shares
- * @return \OCP\Share\IShare[][] array of grouped shares, each element in the
- * array is a group which itself is an array of shares
+ * @param IShare[] $shares
+ * @return IShare[][] array of grouped shares, each element in the
+ * array is a group which itself is an array of shares
*/
private function groupShares(array $shares) {
$tmp = [];
@@ -183,16 +176,16 @@ class MountProvider implements IMountProvider {
* grouped shares. The most permissive permissions are used based on the permissions
* of all shares within the group.
*
- * @param \OCP\Share\IShare[] $allShares
- * @param \OCP\IUser $user user
+ * @param IShare[] $allShares
+ * @param IUser $user user
* @return array Tuple of [superShare, groupedShares]
*/
- private function buildSuperShares(array $allShares, \OCP\IUser $user) {
+ private function buildSuperShares(array $allShares, IUser $user) {
$result = [];
$groupedShares = $this->groupShares($allShares);
- /** @var \OCP\Share\IShare[] $shares */
+ /** @var IShare[] $shares */
foreach ($groupedShares as $shares) {
if (count($shares) === 0) {
continue;
@@ -237,7 +230,7 @@ class MountProvider implements IMountProvider {
continue;
}
// update supershare attributes with subshare attribute
- $superAttributes->setAttribute($attribute['scope'], $attribute['key'], $attribute['enabled']);
+ $superAttributes->setAttribute($attribute['scope'], $attribute['key'], $attribute['value']);
}
}
diff --git a/apps/files_sharing/lib/Notification/Listener.php b/apps/files_sharing/lib/Notification/Listener.php
index b6d30cdb3f5..1cf0f845e7a 100644
--- a/apps/files_sharing/lib/Notification/Listener.php
+++ b/apps/files_sharing/lib/Notification/Listener.php
@@ -3,26 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2019, Joas Schilling <coding@schilljs.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Notification;
@@ -38,21 +20,11 @@ use Symfony\Component\EventDispatcher\GenericEvent;
class Listener {
- /** @var INotificationManager */
- protected $notificationManager;
- /** @var IShareManager */
- protected $shareManager;
- /** @var IGroupManager */
- protected $groupManager;
-
public function __construct(
- INotificationManager $notificationManager,
- IShareManager $shareManager,
- IGroupManager $groupManager
+ protected INotificationManager $notificationManager,
+ protected IShareManager $shareManager,
+ protected IGroupManager $groupManager,
) {
- $this->notificationManager = $notificationManager;
- $this->shareManager = $shareManager;
- $this->groupManager = $groupManager;
}
public function shareNotification(ShareCreatedEvent $event): void {
@@ -68,8 +40,8 @@ class Listener {
$group = $this->groupManager->get($share->getSharedWith());
foreach ($group->getUsers() as $user) {
- if ($user->getUID() === $share->getShareOwner() ||
- $user->getUID() === $share->getSharedBy()) {
+ if ($user->getUID() === $share->getShareOwner()
+ || $user->getUID() === $share->getSharedBy()) {
continue;
}
@@ -100,8 +72,8 @@ class Listener {
continue;
}
- if ($user->getUID() === $share->getShareOwner() ||
- $user->getUID() === $share->getSharedBy()) {
+ if ($user->getUID() === $share->getShareOwner()
+ || $user->getUID() === $share->getSharedBy()) {
continue;
}
diff --git a/apps/files_sharing/lib/Notification/Notifier.php b/apps/files_sharing/lib/Notification/Notifier.php
index 245bae25ef1..e4434ef0b37 100644
--- a/apps/files_sharing/lib/Notification/Notifier.php
+++ b/apps/files_sharing/lib/Notification/Notifier.php
@@ -3,28 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2019, Roeland Jago Douma <roeland@famdouma.nl>
- * @copyright Copyright (c) 2019, Joas Schilling <coding@schilljs.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Notification;
@@ -39,6 +19,7 @@ use OCP\L10N\IFactory;
use OCP\Notification\AlreadyProcessedException;
use OCP\Notification\INotification;
use OCP\Notification\INotifier;
+use OCP\Notification\UnknownNotificationException;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IManager;
use OCP\Share\IShare;
@@ -47,31 +28,14 @@ class Notifier implements INotifier {
public const INCOMING_USER_SHARE = 'incoming_user_share';
public const INCOMING_GROUP_SHARE = 'incoming_group_share';
- /** @var IFactory */
- protected $l10nFactory;
- /** @var IManager */
- private $shareManager;
- /** @var IRootFolder */
- private $rootFolder;
- /** @var IGroupManager */
- protected $groupManager;
- /** @var IUserManager */
- protected $userManager;
- /** @var IURLGenerator */
- protected $url;
-
- public function __construct(IFactory $l10nFactory,
- IManager $shareManager,
- IRootFolder $rootFolder,
- IGroupManager $groupManager,
- IUserManager $userManager,
- IURLGenerator $url) {
- $this->l10nFactory = $l10nFactory;
- $this->shareManager = $shareManager;
- $this->rootFolder = $rootFolder;
- $this->groupManager = $groupManager;
- $this->userManager = $userManager;
- $this->url = $url;
+ public function __construct(
+ protected IFactory $l10nFactory,
+ private IManager $shareManager,
+ private IRootFolder $rootFolder,
+ protected IGroupManager $groupManager,
+ protected IUserManager $userManager,
+ protected IURLGenerator $url,
+ ) {
}
/**
@@ -98,15 +62,15 @@ class Notifier implements INotifier {
* @param INotification $notification
* @param string $languageCode The code of the language that should be used to prepare the notification
* @return INotification
- * @throws \InvalidArgumentException When the notification was not prepared by a notifier
+ * @throws UnknownNotificationException When the notification was not prepared by a notifier
* @throws AlreadyProcessedException When the notification is not needed anymore and should be deleted
* @since 9.0.0
*/
public function prepare(INotification $notification, string $languageCode): INotification {
- if ($notification->getApp() !== 'files_sharing' ||
- ($notification->getSubject() !== 'expiresTomorrow' &&
- $notification->getObjectType() !== 'share')) {
- throw new \InvalidArgumentException('Unhandled app or subject');
+ if ($notification->getApp() !== 'files_sharing'
+ || ($notification->getSubject() !== 'expiresTomorrow'
+ && $notification->getObjectType() !== 'share')) {
+ throw new UnknownNotificationException('Unhandled app or subject');
}
$l = $this->l10nFactory->get('files_sharing', $languageCode);
@@ -145,9 +109,9 @@ class Notifier implements INotifier {
[
'node' => [
'type' => 'file',
- 'id' => $node->getId(),
+ 'id' => (string)$node->getId(),
'name' => $node->getName(),
- 'path' => $path,
+ 'path' => (string)$path,
],
]
);
@@ -165,7 +129,7 @@ class Notifier implements INotifier {
throw new AlreadyProcessedException();
}
} else {
- throw new \InvalidArgumentException('Invalid share type');
+ throw new UnknownNotificationException('Invalid share type');
}
switch ($notification->getSubject()) {
@@ -236,7 +200,7 @@ class Notifier implements INotifier {
break;
default:
- throw new \InvalidArgumentException('Invalid subject');
+ throw new UnknownNotificationException('Invalid subject');
}
$notification->setRichSubject($subject, $subjectParameters)
diff --git a/apps/files_sharing/lib/OrphanHelper.php b/apps/files_sharing/lib/OrphanHelper.php
index 7dfaadc773b..6e070f1446b 100644
--- a/apps/files_sharing/lib/OrphanHelper.php
+++ b/apps/files_sharing/lib/OrphanHelper.php
@@ -2,42 +2,24 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2023 Robin Appelman <robin@icewind.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing;
use OC\User\NoUserException;
use OCP\DB\QueryBuilder\IQueryBuilder;
+use OCP\Files\Config\IUserMountCache;
use OCP\Files\IRootFolder;
use OCP\IDBConnection;
class OrphanHelper {
- private IDBConnection $connection;
- private IRootFolder $rootFolder;
-
public function __construct(
- IDBConnection $connection,
- IRootFolder $rootFolder
+ private IDBConnection $connection,
+ private IRootFolder $rootFolder,
+ private IUserMountCache $userMountCache,
) {
- $this->connection = $connection;
- $this->rootFolder = $rootFolder;
}
public function isShareValid(string $owner, int $fileId): bool {
@@ -76,8 +58,7 @@ class OrphanHelper {
$query = $this->connection->getQueryBuilder();
$query->select('id', 'file_source', 'uid_owner', 'file_target')
->from('share')
- ->where($query->expr()->eq('item_type', $query->createNamedParameter('file')))
- ->orWhere($query->expr()->eq('item_type', $query->createNamedParameter('folder')));
+ ->where($query->expr()->in('item_type', $query->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)));
$result = $query->executeQuery();
while ($row = $result->fetch()) {
yield [
@@ -88,4 +69,26 @@ class OrphanHelper {
];
}
}
+
+ public function findOwner(int $fileId): ?string {
+ $mounts = $this->userMountCache->getMountsForFileId($fileId);
+ if (!$mounts) {
+ return null;
+ }
+ foreach ($mounts as $mount) {
+ $userHomeMountPoint = '/' . $mount->getUser()->getUID() . '/';
+ if ($mount->getMountPoint() === $userHomeMountPoint) {
+ return $mount->getUser()->getUID();
+ }
+ }
+ return null;
+ }
+
+ public function updateShareOwner(int $shareId, string $owner): void {
+ $query = $this->connection->getQueryBuilder();
+ $query->update('share')
+ ->set('uid_owner', $query->createNamedParameter($owner))
+ ->where($query->expr()->eq('id', $query->createNamedParameter($shareId, IQueryBuilder::PARAM_INT)));
+ $query->executeStatement();
+ }
}
diff --git a/apps/files_sharing/lib/ResponseDefinitions.php b/apps/files_sharing/lib/ResponseDefinitions.php
index 313cf82bd51..71a2b25a70c 100644
--- a/apps/files_sharing/lib/ResponseDefinitions.php
+++ b/apps/files_sharing/lib/ResponseDefinitions.php
@@ -3,25 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2023 Kate Döen <kate.doeen@nextcloud.com>
- *
- * @author Kate Döen <kate.doeen@nextcloud.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing;
@@ -39,6 +22,8 @@ namespace OCA\Files_Sharing;
* file_target: string,
* has_preview: bool,
* hide_download: 0|1,
+ * is_trusted_server?: bool,
+ * is-mount-root: bool,
* id: string,
* item_mtime: int,
* item_permissions?: int,
@@ -48,6 +33,7 @@ namespace OCA\Files_Sharing;
* label: string,
* mail_send: 0|1,
* mimetype: string,
+ * mount-type: string,
* note: string,
* parent: null,
* password?: null|string,
@@ -114,7 +100,6 @@ namespace OCA\Files_Sharing;
* }
*
* @psalm-type Files_SharingSharee = array{
- * count: int|null,
* label: string,
* }
*
@@ -123,6 +108,14 @@ namespace OCA\Files_Sharing;
* shareWith: string,
* }
*
+ * @psalm-type Files_SharingShareeGroup = Files_SharingSharee&array{
+ * value: Files_SharingShareeValue,
+ * }
+ *
+ * @psalm-type Files_SharingShareeRoom = Files_SharingSharee&array{
+ * value: Files_SharingShareeValue,
+ * }
+ *
* @psalm-type Files_SharingShareeUser = Files_SharingSharee&array{
* subline: string,
* icon: string,
@@ -193,38 +186,38 @@ namespace OCA\Files_Sharing;
*
* @psalm-type Files_SharingShareesSearchResult = array{
* exact: array{
- * circles: Files_SharingShareeCircle[],
- * emails: Files_SharingShareeEmail[],
- * groups: Files_SharingSharee[],
- * remote_groups: Files_SharingShareeRemoteGroup[],
- * remotes: Files_SharingShareeRemote[],
- * rooms: Files_SharingSharee[],
- * users: Files_SharingShareeUser[],
+ * circles: list<Files_SharingShareeCircle>,
+ * emails: list<Files_SharingShareeEmail>,
+ * groups: list<Files_SharingShareeGroup>,
+ * remote_groups: list<Files_SharingShareeRemoteGroup>,
+ * remotes: list<Files_SharingShareeRemote>,
+ * rooms: list<Files_SharingShareeRoom>,
+ * users: list<Files_SharingShareeUser>,
* },
- * circles: Files_SharingShareeCircle[],
- * emails: Files_SharingShareeEmail[],
- * groups: Files_SharingSharee[],
- * lookup: Files_SharingShareeLookup[],
- * remote_groups: Files_SharingShareeRemoteGroup[],
- * remotes: Files_SharingShareeRemote[],
- * rooms: Files_SharingSharee[],
- * users: Files_SharingShareeUser[],
+ * circles: list<Files_SharingShareeCircle>,
+ * emails: list<Files_SharingShareeEmail>,
+ * groups: list<Files_SharingShareeGroup>,
+ * lookup: list<Files_SharingShareeLookup>,
+ * remote_groups: list<Files_SharingShareeRemoteGroup>,
+ * remotes: list<Files_SharingShareeRemote>,
+ * rooms: list<Files_SharingShareeRoom>,
+ * users: list<Files_SharingShareeUser>,
* lookupEnabled: bool,
* }
*
* @psalm-type Files_SharingShareesRecommendedResult = array{
* exact: array{
- * emails: Files_SharingShareeEmail[],
- * groups: Files_SharingSharee[],
- * remote_groups: Files_SharingShareeRemoteGroup[],
- * remotes: Files_SharingShareeRemote[],
- * users: Files_SharingShareeUser[],
+ * emails: list<Files_SharingShareeEmail>,
+ * groups: list<Files_SharingShareeGroup>,
+ * remote_groups: list<Files_SharingShareeRemoteGroup>,
+ * remotes: list<Files_SharingShareeRemote>,
+ * users: list<Files_SharingShareeUser>,
* },
- * emails: Files_SharingShareeEmail[],
- * groups: Files_SharingSharee[],
- * remote_groups: Files_SharingShareeRemoteGroup[],
- * remotes: Files_SharingShareeRemote[],
- * users: Files_SharingShareeUser[],
+ * emails: list<Files_SharingShareeEmail>,
+ * groups: list<Files_SharingShareeGroup>,
+ * remote_groups: list<Files_SharingShareeRemoteGroup>,
+ * remotes: list<Files_SharingShareeRemote>,
+ * users: list<Files_SharingShareeUser>,
* }
*
* @psalm-type Files_SharingShareInfo = array{
@@ -237,7 +230,7 @@ namespace OCA\Files_Sharing;
* size: int|float,
* type: string,
* etag: string,
- * children?: array<string, mixed>[],
+ * children?: list<array<string, mixed>>,
* }
*/
class ResponseDefinitions {
diff --git a/apps/files_sharing/lib/Scanner.php b/apps/files_sharing/lib/Scanner.php
index d5a1c24418e..28972c1b462 100644
--- a/apps/files_sharing/lib/Scanner.php
+++ b/apps/files_sharing/lib/Scanner.php
@@ -1,38 +1,22 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing;
use OC\Files\ObjectStore\ObjectStoreScanner;
+use OC\Files\Storage\Storage;
/**
* Scanner for SharedStorage
*/
class Scanner extends \OC\Files\Cache\Scanner {
/**
- * @var \OCA\Files_Sharing\SharedStorage $storage
+ * @var SharedStorage $storage
*/
protected $storage;
@@ -61,7 +45,7 @@ class Scanner extends \OC\Files\Cache\Scanner {
return $this->sourceScanner;
}
if ($this->storage->instanceOfStorage('\OCA\Files_Sharing\SharedStorage')) {
- /** @var \OC\Files\Storage\Storage $storage */
+ /** @var Storage $storage */
[$storage] = $this->storage->resolvePath('');
$this->sourceScanner = $storage->getScanner();
return $this->sourceScanner;
@@ -74,7 +58,7 @@ class Scanner extends \OC\Files\Cache\Scanner {
$sourceScanner = $this->getSourceScanner();
if ($sourceScanner instanceof ObjectStoreScanner) {
// ObjectStoreScanner doesn't scan
- return [];
+ return null;
} else {
return parent::scanFile($file, $reuseExisting, $parentId, $cacheData, $lock);
}
diff --git a/apps/files_sharing/lib/Settings/Personal.php b/apps/files_sharing/lib/Settings/Personal.php
index d3886321f97..171131b1819 100644
--- a/apps/files_sharing/lib/Settings/Personal.php
+++ b/apps/files_sharing/lib/Settings/Personal.php
@@ -3,31 +3,13 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2019, Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Hinrich Mahler <nextcloud@mahlerhome.de>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Settings;
use OCA\Files_Sharing\AppInfo\Application;
+use OCA\Files_Sharing\Helper;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\AppFramework\Services\IInitialState;
use OCP\IConfig;
@@ -35,31 +17,27 @@ use OCP\Settings\ISettings;
class Personal implements ISettings {
- /** @var IConfig */
- private $config;
- /** @var IInitialState */
- private $initialState;
- /** @var string */
- private $userId;
-
- public function __construct(IConfig $config, IInitialState $initialState, string $userId) {
- $this->config = $config;
- $this->initialState = $initialState;
- $this->userId = $userId;
+ public function __construct(
+ private IConfig $config,
+ private IInitialState $initialState,
+ private string $userId,
+ ) {
}
public function getForm(): TemplateResponse {
$defaultAcceptSystemConfig = $this->config->getSystemValueBool('sharing.enable_share_accept', false) ? 'no' : 'yes';
- $shareFolderSystemConfig = $this->config->getSystemValue('share_folder', '/');
+ $defaultShareFolder = $this->config->getSystemValue('share_folder', '/');
+ $userShareFolder = Helper::getShareFolder(userId: $this->userId);
$acceptDefault = $this->config->getUserValue($this->userId, Application::APP_ID, 'default_accept', $defaultAcceptSystemConfig) === 'yes';
$enforceAccept = $this->config->getSystemValueBool('sharing.force_share_accept', false);
$allowCustomDirectory = $this->config->getSystemValueBool('sharing.allow_custom_share_folder', true);
- $shareFolderDefault = $this->config->getUserValue($this->userId, Application::APP_ID, 'share_folder', $shareFolderSystemConfig);
+
$this->initialState->provideInitialState('accept_default', $acceptDefault);
$this->initialState->provideInitialState('enforce_accept', $enforceAccept);
$this->initialState->provideInitialState('allow_custom_share_folder', $allowCustomDirectory);
- $this->initialState->provideInitialState('share_folder', $shareFolderDefault);
- $this->initialState->provideInitialState('default_share_folder', $shareFolderSystemConfig);
+ $this->initialState->provideInitialState('default_share_folder', $defaultShareFolder);
+ $this->initialState->provideInitialState('share_folder', $userShareFolder);
+
return new TemplateResponse('files_sharing', 'Settings/personal');
}
diff --git a/apps/files_sharing/lib/ShareBackend/File.php b/apps/files_sharing/lib/ShareBackend/File.php
index 4dec20cabd9..2aa52ef1b7f 100644
--- a/apps/files_sharing/lib/ShareBackend/File.php
+++ b/apps/files_sharing/lib/ShareBackend/File.php
@@ -1,43 +1,24 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Andreas Fischer <bantu@owncloud.com>
- * @author Bart Visscher <bartv@thisnet.nl>
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Michael Gapczynski <GapczynskiM@gmail.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\ShareBackend;
+use OC\Files\Filesystem;
+use OC\Files\View;
use OCA\FederatedFileSharing\FederatedShareProvider;
+use OCA\Files_Sharing\Helper;
+use OCP\Files\NotFoundException;
+use OCP\IDBConnection;
+use OCP\Server;
use OCP\Share\IShare;
+use OCP\Share_Backend_File_Dependent;
use Psr\Log\LoggerInterface;
-class File implements \OCP\Share_Backend_File_Dependent {
+class File implements Share_Backend_File_Dependent {
public const FORMAT_SHARED_STORAGE = 0;
public const FORMAT_GET_FOLDER_CONTENTS = 1;
public const FORMAT_FILE_APP_ROOT = 2;
@@ -48,26 +29,25 @@ class File implements \OCP\Share_Backend_File_Dependent {
private $path;
- /** @var FederatedShareProvider */
- private $federatedShareProvider;
-
- public function __construct(?FederatedShareProvider $federatedShareProvider = null) {
+ public function __construct(
+ private ?FederatedShareProvider $federatedShareProvider = null,
+ ) {
if ($federatedShareProvider) {
$this->federatedShareProvider = $federatedShareProvider;
} else {
- $this->federatedShareProvider = \OC::$server->query(FederatedShareProvider::class);
+ $this->federatedShareProvider = Server::get(FederatedShareProvider::class);
}
}
public function isValidSource($itemSource, $uidOwner) {
try {
- $path = \OC\Files\Filesystem::getPath($itemSource);
+ $path = Filesystem::getPath($itemSource);
// FIXME: attributes should not be set here,
// keeping this pattern for now to avoid unexpected
// regressions
- $this->path = \OC\Files\Filesystem::normalizePath(basename($path));
+ $this->path = Filesystem::normalizePath(basename($path));
return true;
- } catch (\OCP\Files\NotFoundException $e) {
+ } catch (NotFoundException $e) {
return false;
}
}
@@ -79,9 +59,9 @@ class File implements \OCP\Share_Backend_File_Dependent {
return $path;
} else {
try {
- $path = \OC\Files\Filesystem::getPath($itemSource);
+ $path = Filesystem::getPath($itemSource);
return $path;
- } catch (\OCP\Files\NotFoundException $e) {
+ } catch (NotFoundException $e) {
return false;
}
}
@@ -92,20 +72,14 @@ class File implements \OCP\Share_Backend_File_Dependent {
*
* @param string $itemSource
* @param string $shareWith
- * @param array $exclude (optional)
* @return string
*/
- public function generateTarget($itemSource, $shareWith, $exclude = null) {
- $shareFolder = \OCA\Files_Sharing\Helper::getShareFolder();
- $target = \OC\Files\Filesystem::normalizePath($shareFolder . '/' . basename($itemSource));
+ public function generateTarget($itemSource, $shareWith) {
+ $shareFolder = Helper::getShareFolder();
+ $target = Filesystem::normalizePath($shareFolder . '/' . basename($itemSource));
- // for group shares we return the target right away
- if ($shareWith === false) {
- return $target;
- }
-
- \OC\Files\Filesystem::initMountPoints($shareWith);
- $view = new \OC\Files\View('/' . $shareWith . '/files');
+ Filesystem::initMountPoints($shareWith);
+ $view = new View('/' . $shareWith . '/files');
if (!$view->is_dir($shareFolder)) {
$dir = '';
@@ -118,9 +92,7 @@ class File implements \OCP\Share_Backend_File_Dependent {
}
}
- $excludeList = is_array($exclude) ? $exclude : [];
-
- return \OCA\Files_Sharing\Helper::generateUniqueTarget($target, $excludeList, $view);
+ return Helper::generateUniqueTarget($target, $view);
}
public function formatItems($items, $format, $parameters = null) {
@@ -151,7 +123,7 @@ class File implements \OCP\Share_Backend_File_Dependent {
$file['uid_owner'] = $item['uid_owner'];
$file['displayname_owner'] = $item['displayname_owner'];
- $storage = \OC\Files\Filesystem::getStorage('/');
+ $storage = Filesystem::getStorage('/');
$cache = $storage->getCache();
$file['size'] = $item['size'];
$files[] = $file;
@@ -212,13 +184,13 @@ class File implements \OCP\Share_Backend_File_Dependent {
if (isset($source['parent'])) {
$parent = $source['parent'];
while (isset($parent)) {
- $qb = \OC::$server->getDatabaseConnection()->getQueryBuilder();
+ $qb = Server::get(IDBConnection::class)->getQueryBuilder();
$qb->select('parent', 'uid_owner')
->from('share')
->where(
$qb->expr()->eq('id', $qb->createNamedParameter($parent))
);
- $result = $qb->execute();
+ $result = $qb->executeQuery();
$item = $result->fetch();
$result->closeCursor();
if (isset($item['parent'])) {
@@ -234,7 +206,7 @@ class File implements \OCP\Share_Backend_File_Dependent {
if (isset($fileOwner)) {
$source['fileOwner'] = $fileOwner;
} else {
- \OCP\Server::get(LoggerInterface::class)->error('No owner found for reshare', ['app' => 'files_sharing']);
+ Server::get(LoggerInterface::class)->error('No owner found for reshare', ['app' => 'files_sharing']);
}
return $source;
diff --git a/apps/files_sharing/lib/ShareBackend/Folder.php b/apps/files_sharing/lib/ShareBackend/Folder.php
index f0e44524c8a..df5529c3c4a 100644
--- a/apps/files_sharing/lib/ShareBackend/Folder.php
+++ b/apps/files_sharing/lib/ShareBackend/Folder.php
@@ -1,39 +1,22 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bart Visscher <bartv@thisnet.nl>
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Michael Gapczynski <GapczynskiM@gmail.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin McCorkell <robin@mccorkell.me.uk>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\ShareBackend;
-class Folder extends File implements \OCP\Share_Backend_Collection {
+use OCP\IDBConnection;
+use OCP\Server;
+use OCP\Share_Backend_Collection;
+
+class Folder extends File implements Share_Backend_Collection {
public function getChildren($itemSource) {
$children = [];
$parents = [$itemSource];
- $qb = \OC::$server->getDatabaseConnection()->getQueryBuilder();
+ $qb = Server::get(IDBConnection::class)->getQueryBuilder();
$qb->select('id')
->from('mimetypes')
->where(
@@ -44,12 +27,12 @@ class Folder extends File implements \OCP\Share_Backend_Collection {
$result->closeCursor();
if ($row = $result->fetchRow()) {
- $mimetype = (int) $row['id'];
+ $mimetype = (int)$row['id'];
} else {
$mimetype = -1;
}
while (!empty($parents)) {
- $qb = \OC::$server->getDatabaseConnection()->getQueryBuilder();
+ $qb = Server::get(IDBConnection::class)->getQueryBuilder();
$parents = array_map(function ($parent) use ($qb) {
return $qb->createNamedParameter($parent);
@@ -67,7 +50,7 @@ class Folder extends File implements \OCP\Share_Backend_Collection {
while ($file = $result->fetch()) {
$children[] = ['source' => $file['fileid'], 'file_path' => $file['name']];
// If a child folder is found look inside it
- if ((int) $file['mimetype'] === $mimetype) {
+ if ((int)$file['mimetype'] === $mimetype) {
$parents[] = $file['fileid'];
}
}
diff --git a/apps/files_sharing/lib/SharedMount.php b/apps/files_sharing/lib/SharedMount.php
index 66a3b619df0..692a6c8979b 100644
--- a/apps/files_sharing/lib/SharedMount.php
+++ b/apps/files_sharing/lib/SharedMount.php
@@ -1,30 +1,9 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Daniel Kesselberg <mail@danielkesselberg.de>
- * @author Frédéric Fortier <frederic.fortier@oronospolytechnique.com>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing;
@@ -33,13 +12,16 @@ use OC\Files\Filesystem;
use OC\Files\Mount\MountPoint;
use OC\Files\Mount\MoveableMount;
use OC\Files\View;
+use OCA\Files_Sharing\Exceptions\BrokenPath;
use OCP\Cache\CappedMemoryCache;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\Events\InvalidateMountCacheEvent;
use OCP\Files\Storage\IStorageFactory;
-use OCP\ICache;
+use OCP\IDBConnection;
use OCP\IUser;
+use OCP\Server;
use OCP\Share\Events\VerifyMountPointEvent;
+use OCP\Share\IShare;
use Psr\Log\LoggerInterface;
/**
@@ -47,70 +29,54 @@ use Psr\Log\LoggerInterface;
*/
class SharedMount extends MountPoint implements MoveableMount, ISharedMountPoint {
/**
- * @var \OCA\Files_Sharing\SharedStorage $storage
+ * @var SharedStorage $storage
*/
protected $storage = null;
- /**
- * @var \OC\Files\View
- */
- private $recipientView;
-
- private IUser $user;
-
- /** @var \OCP\Share\IShare */
+ /** @var IShare */
private $superShare;
- /** @var \OCP\Share\IShare[] */
+ /** @var IShare[] */
private $groupedShares;
- private IEventDispatcher $eventDispatcher;
-
- private ICache $cache;
-
public function __construct(
$storage,
array $mountpoints,
$arguments,
IStorageFactory $loader,
- View $recipientView,
+ private View $recipientView,
CappedMemoryCache $folderExistCache,
- IEventDispatcher $eventDispatcher,
- IUser $user,
- ICache $cache
+ private IEventDispatcher $eventDispatcher,
+ private IUser $user,
+ bool $alreadyVerified,
) {
- $this->user = $user;
- $this->recipientView = $recipientView;
- $this->eventDispatcher = $eventDispatcher;
- $this->cache = $cache;
-
$this->superShare = $arguments['superShare'];
$this->groupedShares = $arguments['groupedShares'];
- $newMountPoint = $this->verifyMountPoint($this->superShare, $mountpoints, $folderExistCache);
- $absMountPoint = '/' . $user->getUID() . '/files' . $newMountPoint;
+ $absMountPoint = '/' . $user->getUID() . '/files/' . trim($this->superShare->getTarget(), '/') . '/';
+
+ // after the mountpoint is verified for the first time, only new mountpoints (e.g. groupfolders can overwrite the target)
+ if (!$alreadyVerified || isset($mountpoints[$absMountPoint])) {
+ $newMountPoint = $this->verifyMountPoint($this->superShare, $mountpoints, $folderExistCache);
+ $absMountPoint = '/' . $user->getUID() . '/files/' . trim($newMountPoint, '/') . '/';
+ }
+
parent::__construct($storage, $absMountPoint, $arguments, $loader, null, null, MountProvider::class);
}
/**
* check if the parent folder exists otherwise move the mount point up
*
- * @param \OCP\Share\IShare $share
+ * @param IShare $share
* @param SharedMount[] $mountpoints
* @param CappedMemoryCache<bool> $folderExistCache
* @return string
*/
private function verifyMountPoint(
- \OCP\Share\IShare $share,
+ IShare $share,
array $mountpoints,
- CappedMemoryCache $folderExistCache
+ CappedMemoryCache $folderExistCache,
) {
- $cacheKey = $this->user->getUID() . '/' . $share->getId() . '/' . $share->getTarget();
- $cached = $this->cache->get($cacheKey);
- if ($cached !== null) {
- return $cached;
- }
-
$mountPoint = basename($share->getTarget());
$parent = dirname($share->getTarget());
@@ -130,7 +96,7 @@ class SharedMount extends MountPoint implements MoveableMount, ISharedMountPoint
}
$newMountPoint = $this->generateUniqueTarget(
- \OC\Files\Filesystem::normalizePath($parent . '/' . $mountPoint),
+ Filesystem::normalizePath($parent . '/' . $mountPoint),
$this->recipientView,
$mountpoints
);
@@ -139,8 +105,6 @@ class SharedMount extends MountPoint implements MoveableMount, ISharedMountPoint
$this->updateFileTarget($newMountPoint, $share);
}
- $this->cache->set($cacheKey, $newMountPoint, 60 * 60);
-
return $newMountPoint;
}
@@ -148,7 +112,7 @@ class SharedMount extends MountPoint implements MoveableMount, ISharedMountPoint
* update fileTarget in the database if the mount point changed
*
* @param string $newPath
- * @param \OCP\Share\IShare $share
+ * @param IShare $share
* @return bool
*/
private function updateFileTarget($newPath, &$share) {
@@ -156,7 +120,7 @@ class SharedMount extends MountPoint implements MoveableMount, ISharedMountPoint
foreach ($this->groupedShares as $tmpShare) {
$tmpShare->setTarget($newPath);
- \OC::$server->getShareManager()->moveShare($tmpShare, $this->user->getUID());
+ Server::get(\OCP\Share\IManager::class)->moveShare($tmpShare, $this->user->getUID());
}
$this->eventDispatcher->dispatchTyped(new InvalidateMountCacheEvent($this->user));
@@ -191,7 +155,7 @@ class SharedMount extends MountPoint implements MoveableMount, ISharedMountPoint
*
* @param string $path the absolute path
* @return string e.g. turns '/admin/files/test.txt' into '/test.txt'
- * @throws \OCA\Files_Sharing\Exceptions\BrokenPath
+ * @throws BrokenPath
*/
protected function stripUserFilesPath($path) {
$trimmed = ltrim($path, '/');
@@ -199,8 +163,8 @@ class SharedMount extends MountPoint implements MoveableMount, ISharedMountPoint
// it is not a file relative to data/user/files
if (count($split) < 3 || $split[1] !== 'files') {
- \OCP\Server::get(LoggerInterface::class)->error('Can not strip userid and "files/" from path: ' . $path, ['app' => 'files_sharing']);
- throw new \OCA\Files_Sharing\Exceptions\BrokenPath('Path does not start with /user/files', 10);
+ Server::get(LoggerInterface::class)->error('Can not strip userid and "files/" from path: ' . $path, ['app' => 'files_sharing']);
+ throw new BrokenPath('Path does not start with /user/files', 10);
}
// skip 'user' and 'files'
@@ -227,7 +191,7 @@ class SharedMount extends MountPoint implements MoveableMount, ISharedMountPoint
$this->setMountPoint($target);
$this->storage->setMountPoint($relTargetPath);
} catch (\Exception $e) {
- \OCP\Server::get(LoggerInterface::class)->error(
+ Server::get(LoggerInterface::class)->error(
'Could not rename mount point for shared folder "' . $this->getMountPoint() . '" to "' . $target . '"',
[
'app' => 'files_sharing',
@@ -245,8 +209,8 @@ class SharedMount extends MountPoint implements MoveableMount, ISharedMountPoint
* @return bool
*/
public function removeMount() {
- $mountManager = \OC\Files\Filesystem::getMountManager();
- /** @var \OCA\Files_Sharing\SharedStorage $storage */
+ $mountManager = Filesystem::getMountManager();
+ /** @var SharedStorage $storage */
$storage = $this->getStorage();
$result = $storage->unshareStorage();
$mountManager->removeMount($this->mountPoint);
@@ -255,14 +219,14 @@ class SharedMount extends MountPoint implements MoveableMount, ISharedMountPoint
}
/**
- * @return \OCP\Share\IShare
+ * @return IShare
*/
public function getShare() {
return $this->superShare;
}
/**
- * @return \OCP\Share\IShare[]
+ * @return IShare[]
*/
public function getGroupedShares(): array {
return $this->groupedShares;
@@ -284,13 +248,13 @@ class SharedMount extends MountPoint implements MoveableMount, ISharedMountPoint
if (!is_null($this->getShare()->getNodeCacheEntry())) {
return $this->getShare()->getNodeCacheEntry()->getStorageId();
} else {
- $builder = \OC::$server->getDatabaseConnection()->getQueryBuilder();
+ $builder = Server::get(IDBConnection::class)->getQueryBuilder();
$query = $builder->select('storage')
->from('filecache')
->where($builder->expr()->eq('fileid', $builder->createNamedParameter($this->getStorageRootId())));
- $result = $query->execute();
+ $result = $query->executeQuery();
$row = $result->fetch();
$result->closeCursor();
if ($row) {
diff --git a/apps/files_sharing/lib/SharedStorage.php b/apps/files_sharing/lib/SharedStorage.php
index d5c264def3b..e310c5f3138 100644
--- a/apps/files_sharing/lib/SharedStorage.php
+++ b/apps/files_sharing/lib/SharedStorage.php
@@ -1,75 +1,59 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bart Visscher <bartv@thisnet.nl>
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author J0WI <J0WI@users.noreply.github.com>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Michael Gapczynski <GapczynskiM@gmail.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Robin McCorkell <robin@mccorkell.me.uk>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author scambra <sergio@entrecables.com>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing;
use OC\Files\Cache\CacheDependencies;
+use OC\Files\Cache\CacheEntry;
use OC\Files\Cache\FailedCache;
use OC\Files\Cache\NullWatcher;
-use OC\Files\Cache\Watcher;
use OC\Files\ObjectStore\HomeObjectStoreStorage;
use OC\Files\Storage\Common;
use OC\Files\Storage\FailedStorage;
use OC\Files\Storage\Home;
+use OC\Files\Storage\Storage;
+use OC\Files\Storage\Wrapper\Jail;
use OC\Files\Storage\Wrapper\PermissionsMask;
use OC\Files\Storage\Wrapper\Wrapper;
+use OC\Files\View;
+use OC\Share\Share;
use OC\User\NoUserException;
-use OCA\Files_External\Config\ConfigAdapter;
+use OCA\Files_Sharing\ISharedStorage as LegacyISharedStorage;
use OCP\Constants;
+use OCP\Files\Cache\ICache;
use OCP\Files\Cache\ICacheEntry;
-use OCP\Files\Config\IUserMountCache;
+use OCP\Files\Cache\IScanner;
+use OCP\Files\Cache\IWatcher;
use OCP\Files\Folder;
use OCP\Files\IHomeStorage;
use OCP\Files\IRootFolder;
-use OCP\Files\Node;
use OCP\Files\NotFoundException;
use OCP\Files\Storage\IDisableEncryptionStorage;
+use OCP\Files\Storage\ILockingStorage;
+use OCP\Files\Storage\ISharedStorage;
use OCP\Files\Storage\IStorage;
use OCP\Lock\ILockingProvider;
+use OCP\Server;
use OCP\Share\IShare;
+use OCP\Util;
use Psr\Log\LoggerInterface;
/**
* Convert target path to source path and pass the function call to the correct storage provider
*/
-class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedStorage, IDisableEncryptionStorage {
- /** @var \OCP\Share\IShare */
+class SharedStorage extends Jail implements LegacyISharedStorage, ISharedStorage, IDisableEncryptionStorage {
+ /** @var IShare */
private $superShare;
- /** @var \OCP\Share\IShare[] */
+ /** @var IShare[] */
private $groupedShares;
/**
- * @var \OC\Files\View
+ * @var View
*/
private $ownerView;
@@ -85,7 +69,7 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
private LoggerInterface $logger;
- /** @var IStorage */
+ /** @var IStorage */
private $nonMaskedStorage;
private array $mountOptions = [];
@@ -102,20 +86,20 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
/**
* @psalm-suppress NonInvariantDocblockPropertyType
- * @var ?\OC\Files\Storage\Storage $storage
+ * @var ?Storage $storage
*/
protected $storage;
- public function __construct($arguments) {
- $this->ownerView = $arguments['ownerView'];
- $this->logger = \OC::$server->get(LoggerInterface::class);
+ public function __construct(array $parameters) {
+ $this->ownerView = $parameters['ownerView'];
+ $this->logger = Server::get(LoggerInterface::class);
- $this->superShare = $arguments['superShare'];
- $this->groupedShares = $arguments['groupedShares'];
+ $this->superShare = $parameters['superShare'];
+ $this->groupedShares = $parameters['groupedShares'];
- $this->user = $arguments['user'];
- if (isset($arguments['sharingDisabledForUser'])) {
- $this->sharingDisabledForUser = $arguments['sharingDisabledForUser'];
+ $this->user = $parameters['user'];
+ if (isset($parameters['sharingDisabledForUser'])) {
+ $this->sharingDisabledForUser = $parameters['sharingDisabledForUser'];
} else {
$this->sharingDisabledForUser = false;
}
@@ -142,7 +126,7 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
}
/**
- * @psalm-assert \OC\Files\Storage\Storage $this->storage
+ * @psalm-assert Storage $this->storage
*/
private function init() {
if ($this->initialized) {
@@ -164,25 +148,37 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
try {
if (self::$initDepth > 10) {
- throw new \Exception("Maximum share depth reached");
+ throw new \Exception('Maximum share depth reached');
}
/** @var IRootFolder $rootFolder */
- $rootFolder = \OC::$server->get(IRootFolder::class);
+ $rootFolder = Server::get(IRootFolder::class);
$this->ownerUserFolder = $rootFolder->getUserFolder($this->superShare->getShareOwner());
$sourceId = $this->superShare->getNodeId();
- $ownerNode = $this->ownerUserFolder->getFirstNodeById($sourceId);
- if (!$ownerNode) {
+ $ownerNodes = $this->ownerUserFolder->getById($sourceId);
+
+ if (count($ownerNodes) === 0) {
$this->storage = new FailedStorage(['exception' => new NotFoundException("File by id $sourceId not found")]);
$this->cache = new FailedCache();
$this->rootPath = '';
} else {
- if ($this->nonMaskedStorage instanceof Wrapper && $this->nonMaskedStorage->isWrapperOf($this)) {
+ foreach ($ownerNodes as $ownerNode) {
+ $nonMaskedStorage = $ownerNode->getStorage();
+
+ // check if potential source node would lead to a recursive share setup
+ if ($nonMaskedStorage instanceof Wrapper && $nonMaskedStorage->isWrapperOf($this)) {
+ continue;
+ }
+ $this->nonMaskedStorage = $nonMaskedStorage;
+ $this->sourcePath = $ownerNode->getPath();
+ $this->rootPath = $ownerNode->getInternalPath();
+ $this->cache = null;
+ break;
+ }
+ if (!$this->nonMaskedStorage) {
+ // all potential source nodes would have been recursive
throw new \Exception('recursive share detected');
}
- $this->nonMaskedStorage = $ownerNode->getStorage();
- $this->sourcePath = $ownerNode->getPath();
- $this->rootPath = $ownerNode->getInternalPath();
$this->storage = new PermissionsMask([
'storage' => $this->nonMaskedStorage,
'mask' => $this->superShare->getPermissions(),
@@ -211,10 +207,7 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
self::$initDepth--;
}
- /**
- * @inheritdoc
- */
- public function instanceOfStorage($class): bool {
+ public function instanceOfStorage(string $class): bool {
if ($class === '\OC\Files\Storage\Common' || $class == Common::class) {
return true;
}
@@ -242,22 +235,11 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
return $this->getSourceRootInfo() && ($this->getSourceRootInfo()->getPermissions() & Constants::PERMISSION_SHARE) === Constants::PERMISSION_SHARE;
}
- /**
- * get id of the mount point
- *
- * @return string
- */
public function getId(): string {
return 'shared::' . $this->getMountPoint();
}
- /**
- * Get the permissions granted for a shared file
- *
- * @param string $path Shared target file path
- * @return int CRUDS permissions granted
- */
- public function getPermissions($path = ''): int {
+ public function getPermissions(string $path = ''): int {
if (!$this->isValid()) {
return 0;
}
@@ -265,21 +247,21 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
// part files and the mount point always have delete permissions
if ($path === '' || pathinfo($path, PATHINFO_EXTENSION) === 'part') {
- $permissions |= \OCP\Constants::PERMISSION_DELETE;
+ $permissions |= Constants::PERMISSION_DELETE;
}
if ($this->sharingDisabledForUser) {
- $permissions &= ~\OCP\Constants::PERMISSION_SHARE;
+ $permissions &= ~Constants::PERMISSION_SHARE;
}
return $permissions;
}
- public function isCreatable($path): bool {
- return (bool)($this->getPermissions($path) & \OCP\Constants::PERMISSION_CREATE);
+ public function isCreatable(string $path): bool {
+ return (bool)($this->getPermissions($path) & Constants::PERMISSION_CREATE);
}
- public function isReadable($path): bool {
+ public function isReadable(string $path): bool {
if (!$this->isValid()) {
return false;
}
@@ -292,22 +274,22 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
return $storage->isReadable($internalPath);
}
- public function isUpdatable($path): bool {
- return (bool)($this->getPermissions($path) & \OCP\Constants::PERMISSION_UPDATE);
+ public function isUpdatable(string $path): bool {
+ return (bool)($this->getPermissions($path) & Constants::PERMISSION_UPDATE);
}
- public function isDeletable($path): bool {
- return (bool)($this->getPermissions($path) & \OCP\Constants::PERMISSION_DELETE);
+ public function isDeletable(string $path): bool {
+ return (bool)($this->getPermissions($path) & Constants::PERMISSION_DELETE);
}
- public function isSharable($path): bool {
- if (\OCP\Util::isSharingDisabledForUser() || !\OC\Share\Share::isResharingAllowed()) {
+ public function isSharable(string $path): bool {
+ if (Util::isSharingDisabledForUser() || !Share::isResharingAllowed()) {
return false;
}
- return (bool)($this->getPermissions($path) & \OCP\Constants::PERMISSION_SHARE);
+ return (bool)($this->getPermissions($path) & Constants::PERMISSION_SHARE);
}
- public function fopen($path, $mode) {
+ public function fopen(string $path, string $mode) {
$source = $this->getUnjailedPath($path);
switch ($mode) {
case 'r+':
@@ -355,18 +337,11 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
'source' => $source,
'mode' => $mode,
];
- \OCP\Util::emitHook('\OC\Files\Storage\Shared', 'fopen', $info);
+ Util::emitHook('\OC\Files\Storage\Shared', 'fopen', $info);
return $this->nonMaskedStorage->fopen($this->getUnjailedPath($path), $mode);
}
- /**
- * see https://www.php.net/manual/en/function.rename.php
- *
- * @param string $source
- * @param string $target
- * @return bool
- */
- public function rename($source, $target): bool {
+ public function rename(string $source, string $target): bool {
$this->init();
$isPartFile = pathinfo($source, PATHINFO_EXTENSION) === 'part';
$targetExists = $this->file_exists($target);
@@ -394,10 +369,7 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
return $this->superShare->getTarget();
}
- /**
- * @param string $path
- */
- public function setMountPoint($path): void {
+ public function setMountPoint(string $path): void {
$this->superShare->setTarget($path);
foreach ($this->groupedShares as $share) {
@@ -414,9 +386,6 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
return $this->superShare->getShareOwner();
}
- /**
- * @return \OCP\Share\IShare
- */
public function getShare(): IShare {
return $this->superShare;
}
@@ -430,7 +399,7 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
return $this->superShare->getNodeType();
}
- public function getCache($path = '', $storage = null) {
+ public function getCache(string $path = '', ?IStorage $storage = null): ICache {
if ($this->cache) {
return $this->cache;
}
@@ -442,44 +411,44 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
return new FailedCache();
}
- $this->cache = new \OCA\Files_Sharing\Cache(
+ $this->cache = new Cache(
$storage,
$sourceRoot,
- \OC::$server->get(CacheDependencies::class),
+ Server::get(CacheDependencies::class),
$this->getShare()
);
return $this->cache;
}
- public function getScanner($path = '', $storage = null) {
+ public function getScanner(string $path = '', ?IStorage $storage = null): IScanner {
if (!$storage) {
$storage = $this;
}
- return new \OCA\Files_Sharing\Scanner($storage);
+ return new Scanner($storage);
}
- public function getOwner($path): string {
+ public function getOwner(string $path): string|false {
return $this->superShare->getShareOwner();
}
- public function getWatcher($path = '', $storage = null): Watcher {
+ public function getWatcher(string $path = '', ?IStorage $storage = null): IWatcher {
if ($this->watcher) {
return $this->watcher;
}
// Get node information
$node = $this->getShare()->getNodeCacheEntry();
- if ($node) {
- /** @var IUserMountCache $userMountCache */
- $userMountCache = \OC::$server->get(IUserMountCache::class);
- $mounts = $userMountCache->getMountsForStorageId($node->getStorageId());
- foreach ($mounts as $mount) {
- // If the share is originating from an external storage
- if ($mount->getMountProvider() === ConfigAdapter::class) {
- // Propagate original storage scan
- $this->watcher = parent::getWatcher($path, $storage);
- return $this->watcher;
+ if ($node instanceof CacheEntry) {
+ $storageId = $node->getData()['storage_string_id'] ?? null;
+ // for shares from the home storage we can rely on the home storage to keep itself up to date
+ // for other storages we need use the proper watcher
+ if ($storageId !== null && !(str_starts_with($storageId, 'home::') || str_starts_with($storageId, 'object::user'))) {
+ $cache = $this->getCache();
+ $this->watcher = parent::getWatcher($path, $storage);
+ if ($cache instanceof Cache) {
+ $this->watcher->onUpdate($cache->markRootChanged(...));
}
+ return $this->watcher;
}
}
@@ -495,19 +464,13 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
*/
public function unshareStorage(): bool {
foreach ($this->groupedShares as $share) {
- \OC::$server->getShareManager()->deleteFromSelf($share, $this->user);
+ Server::get(\OCP\Share\IManager::class)->deleteFromSelf($share, $this->user);
}
return true;
}
- /**
- * @param string $path
- * @param int $type \OCP\Lock\ILockingProvider::LOCK_SHARED or \OCP\Lock\ILockingProvider::LOCK_EXCLUSIVE
- * @param \OCP\Lock\ILockingProvider $provider
- * @throws \OCP\Lock\LockedException
- */
- public function acquireLock($path, $type, ILockingProvider $provider) {
- /** @var \OCP\Files\Storage $targetStorage */
+ public function acquireLock(string $path, int $type, ILockingProvider $provider): void {
+ /** @var ILockingStorage $targetStorage */
[$targetStorage, $targetInternalPath] = $this->resolvePath($path);
$targetStorage->acquireLock($targetInternalPath, $type, $provider);
// lock the parent folders of the owner when locking the share as recipient
@@ -517,13 +480,8 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
}
}
- /**
- * @param string $path
- * @param int $type \OCP\Lock\ILockingProvider::LOCK_SHARED or \OCP\Lock\ILockingProvider::LOCK_EXCLUSIVE
- * @param \OCP\Lock\ILockingProvider $provider
- */
- public function releaseLock($path, $type, ILockingProvider $provider) {
- /** @var \OCP\Files\Storage $targetStorage */
+ public function releaseLock(string $path, int $type, ILockingProvider $provider): void {
+ /** @var ILockingStorage $targetStorage */
[$targetStorage, $targetInternalPath] = $this->resolvePath($path);
$targetStorage->releaseLock($targetInternalPath, $type, $provider);
// unlock the parent folders of the owner when unlocking the share as recipient
@@ -533,21 +491,13 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
}
}
- /**
- * @param string $path
- * @param int $type \OCP\Lock\ILockingProvider::LOCK_SHARED or \OCP\Lock\ILockingProvider::LOCK_EXCLUSIVE
- * @param \OCP\Lock\ILockingProvider $provider
- */
- public function changeLock($path, $type, ILockingProvider $provider) {
- /** @var \OCP\Files\Storage $targetStorage */
+ public function changeLock(string $path, int $type, ILockingProvider $provider): void {
+ /** @var ILockingStorage $targetStorage */
[$targetStorage, $targetInternalPath] = $this->resolvePath($path);
$targetStorage->changeLock($targetInternalPath, $type, $provider);
}
- /**
- * @return array [ available, last_checked ]
- */
- public function getAvailability() {
+ public function getAvailability(): array {
// shares do not participate in availability logic
return [
'available' => true,
@@ -555,10 +505,7 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
];
}
- /**
- * @param bool $isAvailable
- */
- public function setAvailability($isAvailable) {
+ public function setAvailability(bool $isAvailable): void {
// shares do not participate in availability logic
}
@@ -567,14 +514,14 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
return $this->nonMaskedStorage;
}
- public function getWrapperStorage() {
+ public function getWrapperStorage(): Storage {
$this->init();
/**
* @psalm-suppress DocblockTypeContradiction
*/
if (!$this->storage) {
- $message = "no storage set after init for share " . $this->getShareId();
+ $message = 'no storage set after init for share ' . $this->getShareId();
$this->logger->error($message);
$this->storage = new FailedStorage(['exception' => new \Exception($message)]);
}
@@ -582,34 +529,36 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto
return $this->storage;
}
- public function file_get_contents($path) {
+ public function file_get_contents(string $path): string|false {
$info = [
'target' => $this->getMountPoint() . '/' . $path,
'source' => $this->getUnjailedPath($path),
];
- \OCP\Util::emitHook('\OC\Files\Storage\Shared', 'file_get_contents', $info);
+ Util::emitHook('\OC\Files\Storage\Shared', 'file_get_contents', $info);
return parent::file_get_contents($path);
}
- public function file_put_contents($path, $data) {
+ public function file_put_contents(string $path, mixed $data): int|float|false {
$info = [
'target' => $this->getMountPoint() . '/' . $path,
'source' => $this->getUnjailedPath($path),
];
- \OCP\Util::emitHook('\OC\Files\Storage\Shared', 'file_put_contents', $info);
+ Util::emitHook('\OC\Files\Storage\Shared', 'file_put_contents', $info);
return parent::file_put_contents($path, $data);
}
- /**
- * @return void
- */
- public function setMountOptions(array $options) {
+ public function setMountOptions(array $options): void {
/* Note: This value is never read */
$this->mountOptions = $options;
}
- public function getUnjailedPath($path) {
+ public function getUnjailedPath(string $path): string {
$this->init();
return parent::getUnjailedPath($path);
}
+
+ public function getDirectDownload(string $path): array|false {
+ // disable direct download for shares
+ return [];
+ }
}
diff --git a/apps/files_sharing/lib/SharesReminderJob.php b/apps/files_sharing/lib/SharesReminderJob.php
new file mode 100644
index 00000000000..854ad196d6b
--- /dev/null
+++ b/apps/files_sharing/lib/SharesReminderJob.php
@@ -0,0 +1,307 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\Files_Sharing;
+
+use OCP\AppFramework\Utility\ITimeFactory;
+use OCP\BackgroundJob\TimedJob;
+use OCP\Constants;
+use OCP\DB\Exception;
+use OCP\DB\QueryBuilder\IQueryBuilder;
+use OCP\Defaults;
+use OCP\Files\Cache\ICacheEntry;
+use OCP\Files\IMimeTypeLoader;
+use OCP\Files\NotFoundException;
+use OCP\IDBConnection;
+use OCP\IL10N;
+use OCP\IURLGenerator;
+use OCP\IUserManager;
+use OCP\L10N\IFactory;
+use OCP\Mail\IEMailTemplate;
+use OCP\Mail\IMailer;
+use OCP\Share\Exceptions\ShareNotFound;
+use OCP\Share\IManager;
+use OCP\Share\IShare;
+use OCP\Util;
+use Psr\Log\LoggerInterface;
+
+/**
+ * Send a reminder via email to the sharee(s) if the folder is still empty a predefined time before the expiration date
+ */
+class SharesReminderJob extends TimedJob {
+ private const SECONDS_BEFORE_REMINDER = 24 * 60 * 60;
+ private const CHUNK_SIZE = 1000;
+ private int $folderMimeTypeId;
+
+ public function __construct(
+ ITimeFactory $time,
+ private readonly IDBConnection $db,
+ private readonly IManager $shareManager,
+ private readonly IUserManager $userManager,
+ private readonly LoggerInterface $logger,
+ private readonly IURLGenerator $urlGenerator,
+ private readonly IFactory $l10nFactory,
+ private readonly IMailer $mailer,
+ private readonly Defaults $defaults,
+ IMimeTypeLoader $mimeTypeLoader,
+ ) {
+ parent::__construct($time);
+ $this->setInterval(60 * 60);
+ $this->folderMimeTypeId = $mimeTypeLoader->getId(ICacheEntry::DIRECTORY_MIMETYPE);
+ }
+
+
+ /**
+ * Makes the background job do its work
+ *
+ * @param array $argument unused argument
+ * @throws Exception if a database error occurs
+ */
+ public function run(mixed $argument): void {
+ foreach ($this->getShares() as $share) {
+ $reminderInfo = $this->prepareReminder($share);
+ if ($reminderInfo !== null) {
+ $this->sendReminder($reminderInfo);
+ }
+ }
+ }
+
+ /**
+ * Finds all shares of empty folders, for which the user has write permissions.
+ * The returned shares are of type user or email only, have expiration dates within the specified time frame
+ * and have not yet received a reminder.
+ *
+ * @return array<IShare>|\Iterator
+ * @throws Exception if a database error occurs
+ */
+ private function getShares(): array|\Iterator {
+ if ($this->db->getShardDefinition('filecache')) {
+ $sharesResult = $this->getSharesDataSharded();
+ } else {
+ $sharesResult = $this->getSharesData();
+ }
+ foreach ($sharesResult as $share) {
+ if ($share['share_type'] === IShare::TYPE_EMAIL) {
+ $id = "ocMailShare:$share[id]";
+ } else {
+ $id = "ocinternal:$share[id]";
+ }
+
+ try {
+ yield $this->shareManager->getShareById($id);
+ } catch (ShareNotFound) {
+ $this->logger->error("Share with ID $id not found.");
+ }
+ }
+ }
+
+ /**
+ * @return list<array{id: int, share_type: int}>
+ */
+ private function getSharesData(): array {
+ $minDate = new \DateTime();
+ $maxDate = new \DateTime();
+ $maxDate->setTimestamp($maxDate->getTimestamp() + self::SECONDS_BEFORE_REMINDER);
+
+ $qb = $this->db->getQueryBuilder();
+ $qb->select('s.id', 's.share_type')
+ ->from('share', 's')
+ ->leftJoin('s', 'filecache', 'f', $qb->expr()->eq('f.parent', 's.file_source'))
+ ->where(
+ $qb->expr()->andX(
+ $qb->expr()->orX(
+ $qb->expr()->eq('s.share_type', $qb->expr()->literal(IShare::TYPE_USER)),
+ $qb->expr()->eq('s.share_type', $qb->expr()->literal(IShare::TYPE_EMAIL))
+ ),
+ $qb->expr()->eq('s.item_type', $qb->expr()->literal('folder')),
+ $qb->expr()->gte('s.expiration', $qb->createNamedParameter($minDate, IQueryBuilder::PARAM_DATE)),
+ $qb->expr()->lte('s.expiration', $qb->createNamedParameter($maxDate, IQueryBuilder::PARAM_DATE)),
+ $qb->expr()->eq('s.reminder_sent', $qb->createNamedParameter(
+ false, IQueryBuilder::PARAM_BOOL
+ )),
+ $qb->expr()->eq(
+ $qb->expr()->bitwiseAnd('s.permissions', Constants::PERMISSION_CREATE),
+ $qb->createNamedParameter(Constants::PERMISSION_CREATE, IQueryBuilder::PARAM_INT)
+ ),
+ $qb->expr()->isNull('f.fileid')
+ )
+ )
+ ->setMaxResults(SharesReminderJob::CHUNK_SIZE);
+
+ $shares = $qb->executeQuery()->fetchAll();
+ return array_values(array_map(fn ($share): array => [
+ 'id' => (int)$share['id'],
+ 'share_type' => (int)$share['share_type'],
+ ], $shares));
+ }
+
+ /**
+ * Sharding compatible version of getSharesData
+ *
+ * @return list<array{id: int, share_type: int, file_source: int}>
+ */
+ private function getSharesDataSharded(): array|\Iterator {
+ $minDate = new \DateTime();
+ $maxDate = new \DateTime();
+ $maxDate->setTimestamp($maxDate->getTimestamp() + self::SECONDS_BEFORE_REMINDER);
+
+ $qb = $this->db->getQueryBuilder();
+ $qb->select('s.id', 's.share_type', 's.file_source')
+ ->from('share', 's')
+ ->where(
+ $qb->expr()->andX(
+ $qb->expr()->orX(
+ $qb->expr()->eq('s.share_type', $qb->expr()->literal(IShare::TYPE_USER)),
+ $qb->expr()->eq('s.share_type', $qb->expr()->literal(IShare::TYPE_EMAIL))
+ ),
+ $qb->expr()->eq('s.item_type', $qb->expr()->literal('folder')),
+ $qb->expr()->gte('s.expiration', $qb->createNamedParameter($minDate, IQueryBuilder::PARAM_DATE)),
+ $qb->expr()->lte('s.expiration', $qb->createNamedParameter($maxDate, IQueryBuilder::PARAM_DATE)),
+ $qb->expr()->eq('s.reminder_sent', $qb->createNamedParameter(
+ false, IQueryBuilder::PARAM_BOOL
+ )),
+ $qb->expr()->eq(
+ $qb->expr()->bitwiseAnd('s.permissions', Constants::PERMISSION_CREATE),
+ $qb->createNamedParameter(Constants::PERMISSION_CREATE, IQueryBuilder::PARAM_INT)
+ ),
+ )
+ );
+
+ $shares = $qb->executeQuery()->fetchAll();
+ $shares = array_values(array_map(fn ($share): array => [
+ 'id' => (int)$share['id'],
+ 'share_type' => (int)$share['share_type'],
+ 'file_source' => (int)$share['file_source'],
+ ], $shares));
+ return $this->filterSharesWithEmptyFolders($shares, self::CHUNK_SIZE);
+ }
+
+ /**
+ * Check which of the supplied file ids is an empty folder until there are `$maxResults` folders
+ * @param list<array{id: int, share_type: int, file_source: int}> $shares
+ * @return list<array{id: int, share_type: int, file_source: int}>
+ */
+ private function filterSharesWithEmptyFolders(array $shares, int $maxResults): array {
+ $query = $this->db->getQueryBuilder();
+ $query->select('fileid')
+ ->from('filecache')
+ ->where($query->expr()->eq('size', $query->createNamedParameter(0), IQueryBuilder::PARAM_INT_ARRAY))
+ ->andWhere($query->expr()->eq('mimetype', $query->createNamedParameter($this->folderMimeTypeId, IQueryBuilder::PARAM_INT)))
+ ->andWhere($query->expr()->in('fileid', $query->createParameter('fileids')));
+ $chunks = array_chunk($shares, SharesReminderJob::CHUNK_SIZE);
+ $results = [];
+ foreach ($chunks as $chunk) {
+ $chunkFileIds = array_map(fn ($share): int => $share['file_source'], $chunk);
+ $chunkByFileId = array_combine($chunkFileIds, $chunk);
+ $query->setParameter('fileids', $chunkFileIds, IQueryBuilder::PARAM_INT_ARRAY);
+ $chunkResults = $query->executeQuery()->fetchAll(\PDO::FETCH_COLUMN);
+ foreach ($chunkResults as $folderId) {
+ $results[] = $chunkByFileId[$folderId];
+ }
+ if (count($results) >= $maxResults) {
+ break;
+ }
+ }
+ return $results;
+ }
+
+ /**
+ * Retrieves and returns all the necessary data before sending a reminder.
+ * It also updates the reminder sent flag for the affected shares (to avoid multiple reminders).
+ *
+ * @param IShare $share Share that was obtained with {@link getShares}
+ * @return array|null Info needed to send a reminder
+ */
+ private function prepareReminder(IShare $share): ?array {
+ $sharedWith = $share->getSharedWith();
+ $reminderInfo = [];
+ if ($share->getShareType() == IShare::TYPE_USER) {
+ $user = $this->userManager->get($sharedWith);
+ if ($user === null) {
+ return null;
+ }
+ $reminderInfo['email'] = $user->getEMailAddress();
+ $reminderInfo['userLang'] = $this->l10nFactory->getUserLanguage($user);
+ $reminderInfo['folderLink'] = $this->urlGenerator->linkToRouteAbsolute('files.view.index', [
+ 'dir' => $share->getTarget()
+ ]);
+ } else {
+ $reminderInfo['email'] = $sharedWith;
+ $reminderInfo['folderLink'] = $this->urlGenerator->linkToRouteAbsolute('files_sharing.sharecontroller.showShare', [
+ 'token' => $share->getToken()
+ ]);
+ }
+ if (empty($reminderInfo['email'])) {
+ return null;
+ }
+
+ try {
+ $reminderInfo['folderName'] = $share->getNode()->getName();
+ } catch (NotFoundException) {
+ $id = $share->getFullId();
+ $this->logger->error("File by share ID $id not found.");
+ }
+ $share->setReminderSent(true);
+ $this->shareManager->updateShare($share);
+ return $reminderInfo;
+ }
+
+ /**
+ * This method accepts data obtained by {@link prepareReminder} and sends reminder email.
+ *
+ * @param array $reminderInfo
+ * @return void
+ */
+ private function sendReminder(array $reminderInfo): void {
+ $instanceName = $this->defaults->getName();
+ $from = [Util::getDefaultEmailAddress($instanceName) => $instanceName];
+ $l = $this->l10nFactory->get('files_sharing', $reminderInfo['userLang'] ?? null);
+ $emailTemplate = $this->generateEMailTemplate($l, [
+ 'link' => $reminderInfo['folderLink'], 'name' => $reminderInfo['folderName']
+ ]);
+
+ $message = $this->mailer->createMessage();
+ $message->setFrom($from);
+ $message->setTo([$reminderInfo['email']]);
+ $message->useTemplate($emailTemplate);
+ $errorText = "Sending email with share reminder to $reminderInfo[email] failed.";
+ try {
+ $failedRecipients = $this->mailer->send($message);
+ if (count($failedRecipients) > 0) {
+ $this->logger->error($errorText);
+ }
+ } catch (\Exception) {
+ $this->logger->error($errorText);
+ }
+ }
+
+ /**
+ * Returns the reminder email template
+ *
+ * @param IL10N $l
+ * @param array $folder Folder the user should be reminded of
+ * @return IEMailTemplate
+ */
+ private function generateEMailTemplate(IL10N $l, array $folder): IEMailTemplate {
+ $emailTemplate = $this->mailer->createEMailTemplate('files_sharing.SharesReminder', [
+ 'folder' => $folder,
+ ]);
+ $emailTemplate->addHeader();
+ $emailTemplate->setSubject(
+ $l->t('Remember to upload the files to %s', [$folder['name']])
+ );
+ $emailTemplate->addBodyText($l->t(
+ 'We would like to kindly remind you that you have not yet uploaded any files to the shared folder.'
+ ));
+ $emailTemplate->addBodyButton(
+ $l->t('Open "%s"', [$folder['name']]),
+ $folder['link']
+ );
+ $emailTemplate->addFooter();
+ return $emailTemplate;
+ }
+}
diff --git a/apps/files_sharing/lib/Updater.php b/apps/files_sharing/lib/Updater.php
index 95a5c9d9166..24e82330d43 100644
--- a/apps/files_sharing/lib/Updater.php
+++ b/apps/files_sharing/lib/Updater.php
@@ -1,34 +1,19 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Michael Gapczynski <GapczynskiM@gmail.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing;
+use OC\Files\Cache\FileAccess;
+use OC\Files\Filesystem;
use OC\Files\Mount\MountPoint;
use OCP\Constants;
use OCP\Files\Folder;
+use OCP\Files\Mount\IMountManager;
+use OCP\Server;
use OCP\Share\IShare;
class Updater {
@@ -58,20 +43,44 @@ class Updater {
if ($userFolder === null) {
return;
}
+ $user = $userFolder->getOwner();
+ if (!$user) {
+ throw new \Exception('user folder has no owner');
+ }
$src = $userFolder->get($path);
- $shareManager = \OC::$server->getShareManager();
+ $shareManager = Server::get(\OCP\Share\IManager::class);
+
+ // We intentionally include invalid shares, as they have been automatically invalidated due to the node no longer
+ // being accessible for the user. Only in this case where we adjust the share after it was moved we want to ignore
+ // this to be able to still adjust it.
// FIXME: should CIRCLES be included here ??
- $shares = $shareManager->getSharesBy($userFolder->getOwner()->getUID(), IShare::TYPE_USER, $src, false, -1);
- $shares = array_merge($shares, $shareManager->getSharesBy($userFolder->getOwner()->getUID(), IShare::TYPE_GROUP, $src, false, -1));
- $shares = array_merge($shares, $shareManager->getSharesBy($userFolder->getOwner()->getUID(), IShare::TYPE_ROOM, $src, false, -1));
+ $shares = $shareManager->getSharesBy($user->getUID(), IShare::TYPE_USER, $src, false, -1, onlyValid: false);
+ $shares = array_merge($shares, $shareManager->getSharesBy($user->getUID(), IShare::TYPE_GROUP, $src, false, -1, onlyValid: false));
+ $shares = array_merge($shares, $shareManager->getSharesBy($user->getUID(), IShare::TYPE_ROOM, $src, false, -1, onlyValid: false));
if ($src instanceof Folder) {
- $subShares = $shareManager->getSharesInFolder($userFolder->getOwner()->getUID(), $src, false, false);
+ $cacheAccess = Server::get(FileAccess::class);
+
+ $sourceStorageId = $src->getStorage()->getCache()->getNumericStorageId();
+ $sourceInternalPath = $src->getInternalPath();
+ $subShares = array_merge(
+ $shareManager->getSharesBy($user->getUID(), IShare::TYPE_USER, onlyValid: false),
+ $shareManager->getSharesBy($user->getUID(), IShare::TYPE_GROUP, onlyValid: false),
+ $shareManager->getSharesBy($user->getUID(), IShare::TYPE_ROOM, onlyValid: false),
+ );
+ $shareSourceIds = array_map(fn (IShare $share) => $share->getNodeId(), $subShares);
+ $shareSources = $cacheAccess->getByFileIdsInStorage($shareSourceIds, $sourceStorageId);
foreach ($subShares as $subShare) {
- $shares = array_merge($shares, array_values($subShare));
+ $shareCacheEntry = $shareSources[$subShare->getNodeId()] ?? null;
+ if (
+ $shareCacheEntry
+ && str_starts_with($shareCacheEntry->getPath(), $sourceInternalPath . '/')
+ ) {
+ $shares[] = $subShare;
+ }
}
}
@@ -81,20 +90,20 @@ class Updater {
}
// Check if the destination is inside a share
- $mountManager = \OC::$server->getMountManager();
+ $mountManager = Server::get(IMountManager::class);
$dstMount = $mountManager->find($src->getPath());
//Ownership is moved over
foreach ($shares as $share) {
if (
- $share->getShareType() !== IShare::TYPE_USER &&
- $share->getShareType() !== IShare::TYPE_GROUP &&
- $share->getShareType() !== IShare::TYPE_ROOM
+ $share->getShareType() !== IShare::TYPE_USER
+ && $share->getShareType() !== IShare::TYPE_GROUP
+ && $share->getShareType() !== IShare::TYPE_ROOM
) {
continue;
}
- if ($dstMount instanceof \OCA\Files_Sharing\SharedMount) {
+ if ($dstMount instanceof SharedMount) {
if (!($dstMount->getShare()->getPermissions() & Constants::PERMISSION_SHARE)) {
$shareManager->deleteShare($share);
continue;
@@ -108,7 +117,7 @@ class Updater {
$share->setShareOwner($newOwner);
$share->setPermissions($newPermissions);
- $shareManager->updateShare($share);
+ $shareManager->updateShare($share, onlyValid: false);
}
}
@@ -119,10 +128,10 @@ class Updater {
* @param string $newPath new path relative to data/user/files
*/
private static function renameChildren($oldPath, $newPath) {
- $absNewPath = \OC\Files\Filesystem::normalizePath('/' . \OC_User::getUser() . '/files/' . $newPath);
- $absOldPath = \OC\Files\Filesystem::normalizePath('/' . \OC_User::getUser() . '/files/' . $oldPath);
+ $absNewPath = Filesystem::normalizePath('/' . \OC_User::getUser() . '/files/' . $newPath);
+ $absOldPath = Filesystem::normalizePath('/' . \OC_User::getUser() . '/files/' . $oldPath);
- $mountManager = \OC\Files\Filesystem::getMountManager();
+ $mountManager = Filesystem::getMountManager();
$mountedShares = $mountManager->findIn('/' . \OC_User::getUser() . '/files/' . $oldPath);
foreach ($mountedShares as $mount) {
/** @var MountPoint $mount */
diff --git a/apps/files_sharing/lib/ViewOnly.php b/apps/files_sharing/lib/ViewOnly.php
index 26e8e43a871..e075677248a 100644
--- a/apps/files_sharing/lib/ViewOnly.php
+++ b/apps/files_sharing/lib/ViewOnly.php
@@ -1,22 +1,9 @@
<?php
+
/**
- * @author Piotr Mrowczynski piotr@owncloud.com
- *
- * @copyright Copyright (c) 2019, ownCloud GmbH
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2019 ownCloud GmbH
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing;
@@ -31,11 +18,9 @@ use OCP\Files\NotFoundException;
*/
class ViewOnly {
- /** @var Folder */
- private $userFolder;
-
- public function __construct(Folder $userFolder) {
- $this->userFolder = $userFolder;
+ public function __construct(
+ private Folder $userFolder,
+ ) {
}
/**
@@ -102,20 +87,13 @@ class ViewOnly {
}
// Extract extra permissions
- /** @var \OCA\Files_Sharing\SharedStorage $storage */
+ /** @var SharedStorage $storage */
$share = $storage->getShare();
- $canDownload = true;
-
- // Check if read-only and on whether permission can download is both set and disabled.
+ // Check whether download-permission was denied (granted if not set)
$attributes = $share->getAttributes();
- if ($attributes !== null) {
- $canDownload = $attributes->getAttribute('permissions', 'download');
- }
+ $canDownload = $attributes?->getAttribute('permissions', 'download');
- if ($canDownload !== null && !$canDownload) {
- return false;
- }
- return true;
+ return $canDownload !== false;
}
}
diff --git a/apps/files_sharing/openapi.json b/apps/files_sharing/openapi.json
index 6808993af3f..b2df1ecb7b3 100644
--- a/apps/files_sharing/openapi.json
+++ b/apps/files_sharing/openapi.json
@@ -129,6 +129,9 @@
},
"upload_files_drop": {
"type": "boolean"
+ },
+ "custom_tokens": {
+ "type": "boolean"
}
}
},
@@ -480,6 +483,7 @@
"file_target",
"has_preview",
"hide_download",
+ "is-mount-root",
"id",
"item_mtime",
"item_size",
@@ -488,6 +492,7 @@
"label",
"mail_send",
"mimetype",
+ "mount-type",
"note",
"parent",
"path",
@@ -543,6 +548,12 @@
1
]
},
+ "is_trusted_server": {
+ "type": "boolean"
+ },
+ "is-mount-root": {
+ "type": "boolean"
+ },
"id": {
"type": "string"
},
@@ -591,6 +602,9 @@
"mimetype": {
"type": "string"
},
+ "mount-type": {
+ "type": "string"
+ },
"note": {
"type": "string"
},
@@ -758,15 +772,9 @@
"Sharee": {
"type": "object",
"required": [
- "count",
"label"
],
"properties": {
- "count": {
- "type": "integer",
- "format": "int64",
- "nullable": true
- },
"label": {
"type": "string"
}
@@ -843,6 +851,24 @@
}
]
},
+ "ShareeGroup": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Sharee"
+ },
+ {
+ "type": "object",
+ "required": [
+ "value"
+ ],
+ "properties": {
+ "value": {
+ "$ref": "#/components/schemas/ShareeValue"
+ }
+ }
+ }
+ ]
+ },
"ShareeLookup": {
"allOf": [
{
@@ -874,40 +900,76 @@
"type": "string"
},
"name": {
- "$ref": "#/components/schemas/Lookup",
- "nullable": true
+ "nullable": true,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Lookup"
+ }
+ ]
},
"email": {
- "$ref": "#/components/schemas/Lookup",
- "nullable": true
+ "nullable": true,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Lookup"
+ }
+ ]
},
"address": {
- "$ref": "#/components/schemas/Lookup",
- "nullable": true
+ "nullable": true,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Lookup"
+ }
+ ]
},
"website": {
- "$ref": "#/components/schemas/Lookup",
- "nullable": true
+ "nullable": true,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Lookup"
+ }
+ ]
},
"twitter": {
- "$ref": "#/components/schemas/Lookup",
- "nullable": true
+ "nullable": true,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Lookup"
+ }
+ ]
},
"phone": {
- "$ref": "#/components/schemas/Lookup",
- "nullable": true
+ "nullable": true,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Lookup"
+ }
+ ]
},
"twitter_signature": {
- "$ref": "#/components/schemas/Lookup",
- "nullable": true
+ "nullable": true,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Lookup"
+ }
+ ]
},
"website_signature": {
- "$ref": "#/components/schemas/Lookup",
- "nullable": true
+ "nullable": true,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Lookup"
+ }
+ ]
},
"userid": {
- "$ref": "#/components/schemas/Lookup",
- "nullable": true
+ "nullable": true,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Lookup"
+ }
+ ]
}
}
},
@@ -1019,6 +1081,24 @@
}
]
},
+ "ShareeRoom": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Sharee"
+ },
+ {
+ "type": "object",
+ "required": [
+ "value"
+ ],
+ "properties": {
+ "value": {
+ "$ref": "#/components/schemas/ShareeValue"
+ }
+ }
+ }
+ ]
+ },
"ShareeUser": {
"allOf": [
{
@@ -1121,7 +1201,7 @@
"groups": {
"type": "array",
"items": {
- "$ref": "#/components/schemas/Sharee"
+ "$ref": "#/components/schemas/ShareeGroup"
}
},
"remote_groups": {
@@ -1153,7 +1233,7 @@
"groups": {
"type": "array",
"items": {
- "$ref": "#/components/schemas/Sharee"
+ "$ref": "#/components/schemas/ShareeGroup"
}
},
"remote_groups": {
@@ -1218,7 +1298,7 @@
"groups": {
"type": "array",
"items": {
- "$ref": "#/components/schemas/Sharee"
+ "$ref": "#/components/schemas/ShareeGroup"
}
},
"remote_groups": {
@@ -1236,7 +1316,7 @@
"rooms": {
"type": "array",
"items": {
- "$ref": "#/components/schemas/Sharee"
+ "$ref": "#/components/schemas/ShareeRoom"
}
},
"users": {
@@ -1262,7 +1342,7 @@
"groups": {
"type": "array",
"items": {
- "$ref": "#/components/schemas/Sharee"
+ "$ref": "#/components/schemas/ShareeGroup"
}
},
"lookup": {
@@ -1286,7 +1366,7 @@
"rooms": {
"type": "array",
"items": {
- "$ref": "#/components/schemas/Sharee"
+ "$ref": "#/components/schemas/ShareeRoom"
}
},
"users": {
@@ -1387,6 +1467,15 @@
],
"parameters": [
{
+ "name": "token",
+ "in": "path",
+ "description": "Token of the share",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
"name": "file",
"in": "query",
"description": "File in the share",
@@ -1429,10 +1518,21 @@
}
},
{
- "name": "token",
- "in": "path",
- "description": "Token of the share",
- "required": true,
+ "name": "mimeFallback",
+ "in": "query",
+ "description": "Whether to fallback to the mime icon if no preview is available",
+ "schema": {
+ "type": "integer",
+ "default": 0,
+ "enum": [
+ 0,
+ 1
+ ]
+ }
+ },
+ {
+ "name": "x-nc-preview",
+ "in": "header",
"schema": {
"type": "string"
}
@@ -1473,6 +1573,16 @@
"schema": {}
}
}
+ },
+ "303": {
+ "description": "Redirect to the mime icon url if mimeFallback is true",
+ "headers": {
+ "Location": {
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
}
}
}
@@ -1493,45 +1603,43 @@
"basic_auth": []
}
],
- "parameters": [
- {
- "name": "t",
- "in": "query",
- "description": "Token of the share",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "password",
- "in": "query",
- "description": "Password of the share",
- "schema": {
- "type": "string",
- "nullable": true
- }
- },
- {
- "name": "dir",
- "in": "query",
- "description": "Subdirectory to get info about",
- "schema": {
- "type": "string",
- "nullable": true
- }
- },
- {
- "name": "depth",
- "in": "query",
- "description": "Maximum depth to get info about",
- "schema": {
- "type": "integer",
- "format": "int64",
- "default": -1
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "t"
+ ],
+ "properties": {
+ "t": {
+ "type": "string",
+ "description": "Token of the share"
+ },
+ "password": {
+ "type": "string",
+ "nullable": true,
+ "default": null,
+ "description": "Password of the share"
+ },
+ "dir": {
+ "type": "string",
+ "nullable": true,
+ "default": null,
+ "description": "Subdirectory to get info about"
+ },
+ "depth": {
+ "type": "integer",
+ "format": "int64",
+ "default": -1,
+ "description": "Maximum depth to get info about"
+ }
+ }
+ }
}
}
- ],
+ },
"responses": {
"200": {
"description": "Share info returned",
@@ -1712,108 +1820,97 @@
"basic_auth": []
}
],
- "parameters": [
- {
- "name": "path",
- "in": "query",
- "description": "Path of the share",
- "schema": {
- "type": "string",
- "nullable": true
- }
- },
- {
- "name": "permissions",
- "in": "query",
- "description": "Permissions for the share",
- "schema": {
- "type": "integer",
- "format": "int64",
- "nullable": true
- }
- },
- {
- "name": "shareType",
- "in": "query",
- "description": "Type of the share",
- "schema": {
- "type": "integer",
- "format": "int64",
- "default": -1
- }
- },
- {
- "name": "shareWith",
- "in": "query",
- "description": "The entity this should be shared with",
- "schema": {
- "type": "string",
- "nullable": true
- }
- },
- {
- "name": "publicUpload",
- "in": "query",
- "description": "If public uploading is allowed",
- "schema": {
- "type": "string",
- "default": "false"
- }
- },
- {
- "name": "password",
- "in": "query",
- "description": "Password for the share",
- "schema": {
- "type": "string",
- "default": ""
- }
- },
- {
- "name": "sendPasswordByTalk",
- "in": "query",
- "description": "Send the password for the share over Talk",
- "schema": {
- "type": "string",
- "nullable": true
- }
- },
- {
- "name": "expireDate",
- "in": "query",
- "description": "Expiry date of the share using user timezone at 00:00. It means date in UTC timezone will be used.",
- "schema": {
- "type": "string",
- "default": ""
- }
- },
- {
- "name": "note",
- "in": "query",
- "description": "Note for the share",
- "schema": {
- "type": "string",
- "default": ""
- }
- },
- {
- "name": "label",
- "in": "query",
- "description": "Label for the share (only used in link and email)",
- "schema": {
- "type": "string",
- "default": ""
- }
- },
- {
- "name": "attributes",
- "in": "query",
- "description": "Additional attributes for the share",
- "schema": {
- "type": "string",
- "nullable": true
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "path": {
+ "type": "string",
+ "nullable": true,
+ "default": null,
+ "description": "Path of the share"
+ },
+ "permissions": {
+ "type": "integer",
+ "format": "int64",
+ "nullable": true,
+ "default": null,
+ "description": "Permissions for the share"
+ },
+ "shareType": {
+ "type": "integer",
+ "format": "int64",
+ "default": -1,
+ "description": "Type of the share"
+ },
+ "shareWith": {
+ "type": "string",
+ "nullable": true,
+ "default": null,
+ "description": "The entity this should be shared with"
+ },
+ "publicUpload": {
+ "type": "string",
+ "nullable": true,
+ "default": null,
+ "enum": [
+ "true",
+ "false"
+ ],
+ "description": "If public uploading is allowed (deprecated)"
+ },
+ "password": {
+ "type": "string",
+ "default": "",
+ "description": "Password for the share"
+ },
+ "sendPasswordByTalk": {
+ "type": "string",
+ "nullable": true,
+ "default": null,
+ "description": "Send the password for the share over Talk"
+ },
+ "expireDate": {
+ "type": "string",
+ "nullable": true,
+ "default": null,
+ "description": "The expiry date of the share in the user's timezone at 00:00. If $expireDate is not supplied or set to `null`, the system default will be used."
+ },
+ "note": {
+ "type": "string",
+ "default": "",
+ "description": "Note for the share"
+ },
+ "label": {
+ "type": "string",
+ "default": "",
+ "description": "Label for the share (only used in link and email)"
+ },
+ "attributes": {
+ "type": "string",
+ "nullable": true,
+ "default": null,
+ "description": "Additional attributes for the share"
+ },
+ "sendMail": {
+ "type": "string",
+ "nullable": true,
+ "default": null,
+ "enum": [
+ "false",
+ "true"
+ ],
+ "description": "Send a mail to the recipient"
+ }
+ }
+ }
}
- },
+ }
+ },
+ "parameters": [
{
"name": "OCS-APIRequest",
"in": "header",
@@ -2135,6 +2232,15 @@
],
"parameters": [
{
+ "name": "id",
+ "in": "path",
+ "description": "ID of the share",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
"name": "include_tags",
"in": "query",
"description": "Include tags in the share",
@@ -2148,15 +2254,6 @@
}
},
{
- "name": "id",
- "in": "path",
- "description": "ID of the share",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
"name": "OCS-APIRequest",
"in": "header",
"description": "Required to be true for the API request to pass",
@@ -2189,7 +2286,10 @@
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
- "$ref": "#/components/schemas/Share"
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Share"
+ }
}
}
}
@@ -2242,89 +2342,86 @@
"basic_auth": []
}
],
- "parameters": [
- {
- "name": "permissions",
- "in": "query",
- "description": "New permissions",
- "schema": {
- "type": "integer",
- "format": "int64",
- "nullable": true
- }
- },
- {
- "name": "password",
- "in": "query",
- "description": "New password",
- "schema": {
- "type": "string",
- "nullable": true
- }
- },
- {
- "name": "sendPasswordByTalk",
- "in": "query",
- "description": "New condition if the password should be send over Talk",
- "schema": {
- "type": "string",
- "nullable": true
- }
- },
- {
- "name": "publicUpload",
- "in": "query",
- "description": "New condition if public uploading is allowed",
- "schema": {
- "type": "string",
- "nullable": true
- }
- },
- {
- "name": "expireDate",
- "in": "query",
- "description": "New expiry date",
- "schema": {
- "type": "string",
- "nullable": true
- }
- },
- {
- "name": "note",
- "in": "query",
- "description": "New note",
- "schema": {
- "type": "string",
- "nullable": true
- }
- },
- {
- "name": "label",
- "in": "query",
- "description": "New label",
- "schema": {
- "type": "string",
- "nullable": true
- }
- },
- {
- "name": "hideDownload",
- "in": "query",
- "description": "New condition if the download should be hidden",
- "schema": {
- "type": "string",
- "nullable": true
- }
- },
- {
- "name": "attributes",
- "in": "query",
- "description": "New additional attributes",
- "schema": {
- "type": "string",
- "nullable": true
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "permissions": {
+ "type": "integer",
+ "format": "int64",
+ "nullable": true,
+ "default": null,
+ "description": "New permissions"
+ },
+ "password": {
+ "type": "string",
+ "nullable": true,
+ "default": null,
+ "description": "New password"
+ },
+ "sendPasswordByTalk": {
+ "type": "string",
+ "nullable": true,
+ "default": null,
+ "description": "New condition if the password should be send over Talk"
+ },
+ "publicUpload": {
+ "type": "string",
+ "nullable": true,
+ "default": null,
+ "description": "New condition if public uploading is allowed"
+ },
+ "expireDate": {
+ "type": "string",
+ "nullable": true,
+ "default": null,
+ "description": "New expiry date"
+ },
+ "note": {
+ "type": "string",
+ "nullable": true,
+ "default": null,
+ "description": "New note"
+ },
+ "label": {
+ "type": "string",
+ "nullable": true,
+ "default": null,
+ "description": "New label"
+ },
+ "hideDownload": {
+ "type": "string",
+ "nullable": true,
+ "default": null,
+ "description": "New condition if the download should be hidden"
+ },
+ "attributes": {
+ "type": "string",
+ "nullable": true,
+ "default": null,
+ "description": "New additional attributes"
+ },
+ "sendMail": {
+ "type": "string",
+ "nullable": true,
+ "default": null,
+ "description": "if the share should be send by mail. Considering the share already exists, no mail will be send after the share is updated. You will have to use the sendMail action to send the mail."
+ },
+ "token": {
+ "type": "string",
+ "nullable": true,
+ "default": null,
+ "description": "New token"
+ }
+ }
+ }
}
- },
+ }
+ },
+ "parameters": [
{
"name": "id",
"in": "path",
@@ -2585,6 +2682,175 @@
}
}
},
+ "/ocs/v2.php/apps/files_sharing/api/v1/shares/{id}/send-email": {
+ "post": {
+ "operationId": "shareapi-send-share-email",
+ "summary": "Send a mail notification again for a share. The mail_send option must be enabled for the given share.",
+ "tags": [
+ "shareapi"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "password": {
+ "type": "string",
+ "default": "",
+ "description": "the password to check against. Necessary for password protected shares."
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "description": "the share ID",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "description": "Required to be true for the API request to pass",
+ "required": true,
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "404": {
+ "description": "Share not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {}
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "You are not allowed to send mail notifications",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {}
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid request or wrong password",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {}
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "200": {
+ "description": "The email notification was sent successfully",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {}
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/ocs/v2.php/apps/files_sharing/api/v1/shares/pending/{id}": {
"post": {
"operationId": "shareapi-accept-share",
@@ -2900,7 +3166,8 @@
"description": "Limit to specific item types",
"schema": {
"type": "string",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -2929,6 +3196,7 @@
"description": "Limit to specific share types",
"schema": {
"nullable": true,
+ "default": null,
"oneOf": [
{
"type": "integer",
@@ -3068,6 +3336,7 @@
"description": "Limit to specific share types",
"schema": {
"nullable": true,
+ "default": null,
"oneOf": [
{
"type": "integer",
@@ -3669,12 +3938,76 @@
}
}
}
+ },
+ "/ocs/v2.php/apps/files_sharing/api/v1/token": {
+ "get": {
+ "operationId": "shareapi-generate-token",
+ "summary": "Get a unique share token",
+ "tags": [
+ "shareapi"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "description": "Required to be true for the API request to pass",
+ "required": true,
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Token generated successfully",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "type": "object",
+ "required": [
+ "token"
+ ],
+ "properties": {
+ "token": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
}
},
- "tags": [
- {
- "name": "external_shares",
- "description": "Class ExternalSharesController"
- }
- ]
-} \ No newline at end of file
+ "tags": []
+}
diff --git a/apps/files_sharing/openapi.json.license b/apps/files_sharing/openapi.json.license
new file mode 100644
index 00000000000..83559daa9dc
--- /dev/null
+++ b/apps/files_sharing/openapi.json.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later \ No newline at end of file
diff --git a/apps/files_sharing/src/actions/openInFilesAction.ts b/apps/files_sharing/src/actions/openInFilesAction.ts
deleted file mode 100644
index 0a92d5d20ae..00000000000
--- a/apps/files_sharing/src/actions/openInFilesAction.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-import type { Node } from '@nextcloud/files'
-
-import { registerFileAction, FileAction, DefaultType } from '@nextcloud/files'
-import { translate as t } from '@nextcloud/l10n'
-
-import { sharesViewId, sharedWithYouViewId, sharedWithOthersViewId, sharingByLinksViewId } from '../views/shares'
-
-export const action = new FileAction({
- id: 'open-in-files',
- displayName: () => t('files', 'Open in Files'),
- iconSvgInline: () => '',
-
- enabled: (nodes, view) => [
- sharesViewId,
- sharedWithYouViewId,
- sharedWithOthersViewId,
- sharingByLinksViewId,
- // Deleted and pending shares are not
- // accessible in the files app.
- ].includes(view.id),
-
- async exec(node: Node) {
- window.OCP.Files.Router.goToRoute(
- null, // use default route
- { view: 'files', fileid: node.fileid },
- { dir: node.dirname },
- )
- return null
- },
-
- // Before openFolderAction
- order: -1000,
- default: DefaultType.HIDDEN,
-})
-
-registerFileAction(action)
diff --git a/apps/files_sharing/src/actions/sharingStatusAction.scss b/apps/files_sharing/src/actions/sharingStatusAction.scss
deleted file mode 100644
index 99fc8c88ad2..00000000000
--- a/apps/files_sharing/src/actions/sharingStatusAction.scss
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- // Only when rendered inline, when not enough space, this is put in the menu
-.action-items > .files-list__row-action-sharing-status {
- // put icon at the end of the button
- direction: rtl;
- // align icons with textless inline actions
- padding-right: 0 !important;
-}
-
-svg.sharing-status__avatar {
- height: 32px !important;
- width: 32px !important;
- max-height: 32px !important;
- max-width: 32px !important;
- border-radius: 32px;
- overflow: hidden;
-}
diff --git a/apps/files_sharing/src/actions/sharingStatusAction.ts b/apps/files_sharing/src/actions/sharingStatusAction.ts
deleted file mode 100644
index 98a7d3d6112..00000000000
--- a/apps/files_sharing/src/actions/sharingStatusAction.ts
+++ /dev/null
@@ -1,147 +0,0 @@
-/**
- * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-import { Node, View, registerFileAction, FileAction, Permission } from '@nextcloud/files'
-import { translate as t } from '@nextcloud/l10n'
-import { Type } from '@nextcloud/sharing'
-
-import AccountGroupSvg from '@mdi/svg/svg/account-group.svg?raw'
-import AccountPlusSvg from '@mdi/svg/svg/account-plus.svg?raw'
-import LinkSvg from '@mdi/svg/svg/link.svg?raw'
-import CircleSvg from '../../../../core/img/apps/circles.svg?raw'
-
-import { action as sidebarAction } from '../../../files/src/actions/sidebarAction'
-import { generateUrl } from '@nextcloud/router'
-import { getCurrentUser } from '@nextcloud/auth'
-
-import './sharingStatusAction.scss'
-
-const generateAvatarSvg = (userId: string) => {
- const avatarUrl = generateUrl('/avatar/{userId}/32', { userId })
- return `<svg width="32" height="32" viewBox="0 0 32 32"
- xmlns="http://www.w3.org/2000/svg" class="sharing-status__avatar">
- <image href="${avatarUrl}" height="32" width="32" />
- </svg>`
-}
-
-export const action = new FileAction({
- id: 'sharing-status',
- displayName(nodes: Node[]) {
- const node = nodes[0]
- const shareTypes = Object.values(node?.attributes?.['share-types'] || {}).flat() as number[]
- const ownerId = node?.attributes?.['owner-id']
-
- if (shareTypes.length > 0
- || (ownerId && ownerId !== getCurrentUser()?.uid)) {
- return t('files_sharing', 'Shared')
- }
-
- return ''
- },
-
- title(nodes: Node[]) {
- const node = nodes[0]
- const ownerId = node?.attributes?.['owner-id']
- const ownerDisplayName = node?.attributes?.['owner-display-name']
-
- // Mixed share types
- if (Array.isArray(node.attributes?.['share-types'])) {
- return t('files_sharing', 'Shared multiple times with different people')
- }
-
- if (ownerId && ownerId !== getCurrentUser()?.uid) {
- return t('files_sharing', 'Shared by {ownerDisplayName}', { ownerDisplayName })
- }
-
- return t('files_sharing', 'Show sharing options')
- },
-
- iconSvgInline(nodes: Node[]) {
- const node = nodes[0]
- const shareTypes = Object.values(node?.attributes?.['share-types'] || {}).flat() as number[]
-
- // Mixed share types
- if (Array.isArray(node.attributes?.['share-types'])) {
- return AccountPlusSvg
- }
-
- // Link shares
- if (shareTypes.includes(Type.SHARE_TYPE_LINK)
- || shareTypes.includes(Type.SHARE_TYPE_EMAIL)) {
- return LinkSvg
- }
-
- // Group shares
- if (shareTypes.includes(Type.SHARE_TYPE_GROUP)
- || shareTypes.includes(Type.SHARE_TYPE_REMOTE_GROUP)) {
- return AccountGroupSvg
- }
-
- // Circle shares
- if (shareTypes.includes(Type.SHARE_TYPE_CIRCLE)) {
- return CircleSvg
- }
-
- const ownerId = node?.attributes?.['owner-id']
- if (ownerId && ownerId !== getCurrentUser()?.uid) {
- return generateAvatarSvg(ownerId)
- }
-
- return AccountPlusSvg
- },
-
- enabled(nodes: Node[]) {
- if (nodes.length !== 1) {
- return false
- }
-
- const node = nodes[0]
- const ownerId = node?.attributes?.['owner-id']
- const isMixed = Array.isArray(node.attributes?.['share-types'])
-
- // If the node is shared multiple times with
- // different share types to the current user
- if (isMixed) {
- return true
- }
-
- // If the node is shared by someone else
- if (ownerId && ownerId !== getCurrentUser()?.uid) {
- return true
- }
-
- return (node.permissions & Permission.SHARE) !== 0
- },
-
- async exec(node: Node, view: View, dir: string) {
- // You need read permissions to see the sidebar
- if ((node.permissions & Permission.READ) !== 0) {
- window.OCA?.Files?.Sidebar?.setActiveTab?.('sharing')
- return sidebarAction.exec(node, view, dir)
- }
- return null
- },
-
- inline: () => true,
-
-})
-
-registerFileAction(action)
diff --git a/apps/files_sharing/src/additionalScripts.js b/apps/files_sharing/src/additionalScripts.js
index 2ed4d86b64d..e8807a7325e 100644
--- a/apps/files_sharing/src/additionalScripts.js
+++ b/apps/files_sharing/src/additionalScripts.js
@@ -1,26 +1,8 @@
/**
- * @copyright Copyright (c) 2016 Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
+import { getCSPNonce } from '@nextcloud/auth'
import './share.js'
import './sharebreadcrumbview.js'
@@ -28,6 +10,6 @@ import './style/sharebreadcrumb.scss'
import './collaborationresourceshandler.js'
// eslint-disable-next-line camelcase
-__webpack_nonce__ = btoa(OC.requestToken)
+__webpack_nonce__ = getCSPNonce()
window.OCA.Sharing = OCA.Sharing
diff --git a/apps/files_sharing/src/collaborationresourceshandler.js b/apps/files_sharing/src/collaborationresourceshandler.js
index e81b590b2b8..6f3645385b7 100644
--- a/apps/files_sharing/src/collaborationresourceshandler.js
+++ b/apps/files_sharing/src/collaborationresourceshandler.js
@@ -1,28 +1,11 @@
/**
- * @copyright Copyright (c) 2016 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Julius Härtl <jus@bitgrid.net>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
+import { getCSPNonce } from '@nextcloud/auth'
// eslint-disable-next-line camelcase
-__webpack_nonce__ = btoa(OC.requestToken)
+__webpack_nonce__ = getCSPNonce()
window.OCP.Collaboration.registerType('file', {
action: () => {
diff --git a/apps/files_sharing/src/components/ExternalShareAction.vue b/apps/files_sharing/src/components/ExternalShareAction.vue
index 02b9eadd6e9..c2c86cc8679 100644
--- a/apps/files_sharing/src/components/ExternalShareAction.vue
+++ b/apps/files_sharing/src/components/ExternalShareAction.vue
@@ -1,24 +1,7 @@
<!--
- - @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @author John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @license GNU AGPL version 3 or any later version
- -
- - This program is free software: you can redistribute it and/or modify
- - it under the terms of the GNU Affero General Public License as
- - published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- -
- - You should have received a copy of the GNU Affero General Public License
- - along with this program. If not, see <http://www.gnu.org/licenses/>.
- -
- -->
+ - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
<template>
<Component :is="data.is"
@@ -29,7 +12,7 @@
</template>
<script>
-import Share from '../models/Share.js'
+import Share from '../models/Share.ts'
export default {
name: 'ExternalShareAction',
diff --git a/apps/files_sharing/src/components/FileListFilterAccount.vue b/apps/files_sharing/src/components/FileListFilterAccount.vue
new file mode 100644
index 00000000000..150516e139b
--- /dev/null
+++ b/apps/files_sharing/src/components/FileListFilterAccount.vue
@@ -0,0 +1,138 @@
+<!--
+ - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
+<template>
+ <FileListFilter class="file-list-filter-accounts"
+ :is-active="selectedAccounts.length > 0"
+ :filter-name="t('files_sharing', 'People')"
+ @reset-filter="resetFilter">
+ <template #icon>
+ <NcIconSvgWrapper :path="mdiAccountMultipleOutline" />
+ </template>
+ <NcActionInput v-if="availableAccounts.length > 1"
+ :label="t('files_sharing', 'Filter accounts')"
+ :label-outside="false"
+ :show-trailing-button="false"
+ type="search"
+ :value.sync="accountFilter" />
+ <NcActionButton v-for="account of shownAccounts"
+ :key="account.id"
+ class="file-list-filter-accounts__item"
+ type="radio"
+ :model-value="selectedAccounts.includes(account)"
+ :value="account.id"
+ @click="toggleAccount(account.id)">
+ <template #icon>
+ <NcAvatar class="file-list-filter-accounts__avatar"
+ v-bind="account"
+ :size="24"
+ disable-menu
+ :show-user-status="false" />
+ </template>
+ {{ account.displayName }}
+ </NcActionButton>
+ </FileListFilter>
+</template>
+
+<script setup lang="ts">
+import type { IAccountData } from '../files_filters/AccountFilter.ts'
+
+import { translate as t } from '@nextcloud/l10n'
+import { mdiAccountMultipleOutline } from '@mdi/js'
+import { computed, ref, watch } from 'vue'
+
+import FileListFilter from '../../../files/src/components/FileListFilter/FileListFilter.vue'
+import NcActionButton from '@nextcloud/vue/components/NcActionButton'
+import NcActionInput from '@nextcloud/vue/components/NcActionInput'
+import NcAvatar from '@nextcloud/vue/components/NcAvatar'
+import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'
+
+interface IUserSelectData {
+ id: string
+ user: string
+ displayName: string
+}
+
+const emit = defineEmits<{
+ (event: 'update:accounts', value: IAccountData[]): void
+}>()
+
+const accountFilter = ref('')
+const availableAccounts = ref<IUserSelectData[]>([])
+const selectedAccounts = ref<IUserSelectData[]>([])
+
+/**
+ * Currently shown accounts (filtered)
+ */
+const shownAccounts = computed(() => {
+ if (!accountFilter.value) {
+ return availableAccounts.value
+ }
+ const queryParts = accountFilter.value.toLocaleLowerCase().trim().split(' ')
+ return availableAccounts.value.filter((account) =>
+ queryParts.every((part) =>
+ account.user.toLocaleLowerCase().includes(part)
+ || account.displayName.toLocaleLowerCase().includes(part),
+ ),
+ )
+})
+
+/**
+ * Toggle an account as selected
+ * @param accountId The account to toggle
+ */
+function toggleAccount(accountId: string) {
+ const account = availableAccounts.value.find(({ id }) => id === accountId)
+ if (account && selectedAccounts.value.includes(account)) {
+ selectedAccounts.value = selectedAccounts.value.filter(({ id }) => id !== accountId)
+ } else {
+ if (account) {
+ selectedAccounts.value = [...selectedAccounts.value, account]
+ }
+ }
+}
+
+// Watch selected account, on change we emit the new account data to the filter instance
+watch(selectedAccounts, () => {
+ // Emit selected accounts as account data
+ const accounts = selectedAccounts.value.map(({ id: uid, displayName }) => ({ uid, displayName }))
+ emit('update:accounts', accounts)
+})
+
+/**
+ * Reset this filter
+ */
+function resetFilter() {
+ selectedAccounts.value = []
+ accountFilter.value = ''
+}
+
+/**
+ * Update list of available accounts in current view.
+ *
+ * @param accounts - Accounts to use
+ */
+function setAvailableAccounts(accounts: IAccountData[]): void {
+ availableAccounts.value = accounts.map(({ uid, displayName }) => ({ displayName, id: uid, user: uid }))
+}
+
+defineExpose({
+ resetFilter,
+ setAvailableAccounts,
+ toggleAccount,
+})
+</script>
+
+<style scoped lang="scss">
+.file-list-filter-accounts {
+ &__item {
+ min-width: 250px;
+ }
+
+ &__avatar {
+ // 24px is the avatar size
+ margin: calc((var(--default-clickable-area) - 24px) / 2)
+ }
+}
+</style>
diff --git a/apps/files_sharing/src/components/NewFileRequestDialog.vue b/apps/files_sharing/src/components/NewFileRequestDialog.vue
new file mode 100644
index 00000000000..392f286e104
--- /dev/null
+++ b/apps/files_sharing/src/components/NewFileRequestDialog.vue
@@ -0,0 +1,468 @@
+<!--
+ - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
+
+<template>
+ <NcDialog can-close
+ class="file-request-dialog"
+ data-cy-file-request-dialog
+ :close-on-click-outside="false"
+ :name="currentStep !== STEP.LAST ? t('files_sharing', 'Create a file request') : t('files_sharing', 'File request created')"
+ size="normal"
+ @closing="onCancel">
+ <!-- Header -->
+ <NcNoteCard v-show="currentStep === STEP.FIRST" type="info" class="file-request-dialog__header">
+ <p id="file-request-dialog-description" class="file-request-dialog__description">
+ {{ t('files_sharing', 'Collect files from others even if they do not have an account.') }}
+ {{ t('files_sharing', 'To ensure you can receive files, verify you have enough storage available.') }}
+ </p>
+ </NcNoteCard>
+
+ <!-- Main form -->
+ <form ref="form"
+ class="file-request-dialog__form"
+ aria-describedby="file-request-dialog-description"
+ :aria-label="t('files_sharing', 'File request')"
+ aria-live="polite"
+ data-cy-file-request-dialog-form
+ @submit.prevent.stop="">
+ <FileRequestIntro v-show="currentStep === STEP.FIRST"
+ :context="context"
+ :destination.sync="destination"
+ :disabled="loading"
+ :label.sync="label"
+ :note.sync="note" />
+
+ <FileRequestDatePassword v-show="currentStep === STEP.SECOND"
+ :disabled="loading"
+ :expiration-date.sync="expirationDate"
+ :password.sync="password" />
+
+ <FileRequestFinish v-if="share"
+ v-show="currentStep === STEP.LAST"
+ :emails="emails"
+ :is-share-by-mail-enabled="isShareByMailEnabled"
+ :share="share"
+ @add-email="email => emails.push(email)"
+ @remove-email="onRemoveEmail" />
+ </form>
+
+ <!-- Controls -->
+ <template #actions>
+ <!-- Back -->
+ <NcButton v-show="currentStep === STEP.SECOND"
+ :aria-label="t('files_sharing', 'Previous step')"
+ :disabled="loading"
+ data-cy-file-request-dialog-controls="back"
+ type="tertiary"
+ @click="currentStep = STEP.FIRST">
+ {{ t('files_sharing', 'Previous step') }}
+ </NcButton>
+
+ <!-- Align right -->
+ <span class="dialog__actions-separator" />
+
+ <!-- Cancel the creation -->
+ <NcButton v-if="currentStep !== STEP.LAST"
+ :aria-label="t('files_sharing', 'Cancel')"
+ :disabled="loading"
+ :title="t('files_sharing', 'Cancel the file request creation')"
+ data-cy-file-request-dialog-controls="cancel"
+ type="tertiary"
+ @click="onCancel">
+ {{ t('files_sharing', 'Cancel') }}
+ </NcButton>
+
+ <!-- Cancel email and just close -->
+ <NcButton v-else-if="emails.length !== 0"
+ :aria-label="t('files_sharing', 'Close without sending emails')"
+ :disabled="loading"
+ :title="t('files_sharing', 'Close without sending emails')"
+ data-cy-file-request-dialog-controls="cancel"
+ type="tertiary"
+ @click="onCancel">
+ {{ t('files_sharing', 'Close') }}
+ </NcButton>
+
+ <!-- Next -->
+ <NcButton v-if="currentStep !== STEP.LAST"
+ :aria-label="t('files_sharing', 'Continue')"
+ :disabled="loading"
+ data-cy-file-request-dialog-controls="next"
+ @click="onPageNext">
+ <template #icon>
+ <NcLoadingIcon v-if="loading" />
+ <IconNext v-else :size="20" />
+ </template>
+ {{ t('files_sharing', 'Continue') }}
+ </NcButton>
+
+ <!-- Finish -->
+ <NcButton v-else
+ :aria-label="finishButtonLabel"
+ :disabled="loading"
+ data-cy-file-request-dialog-controls="finish"
+ type="primary"
+ @click="onFinish">
+ <template #icon>
+ <NcLoadingIcon v-if="loading" />
+ <IconCheck v-else :size="20" />
+ </template>
+ {{ finishButtonLabel }}
+ </NcButton>
+ </template>
+ </NcDialog>
+</template>
+
+<script lang="ts">
+import type { AxiosError } from '@nextcloud/axios'
+import type { Folder, Node } from '@nextcloud/files'
+import type { OCSResponse } from '@nextcloud/typings/ocs'
+import type { PropType } from 'vue'
+
+import { defineComponent } from 'vue'
+import { emit } from '@nextcloud/event-bus'
+import { generateOcsUrl } from '@nextcloud/router'
+import { Permission } from '@nextcloud/files'
+import { ShareType } from '@nextcloud/sharing'
+import { showError, showSuccess } from '@nextcloud/dialogs'
+import { n, t } from '@nextcloud/l10n'
+import axios from '@nextcloud/axios'
+
+import NcButton from '@nextcloud/vue/components/NcButton'
+import NcDialog from '@nextcloud/vue/components/NcDialog'
+import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'
+import NcNoteCard from '@nextcloud/vue/components/NcNoteCard'
+
+import IconCheck from 'vue-material-design-icons/Check.vue'
+import IconNext from 'vue-material-design-icons/ArrowRight.vue'
+
+import Config from '../services/ConfigService'
+import FileRequestDatePassword from './NewFileRequestDialog/NewFileRequestDialogDatePassword.vue'
+import FileRequestFinish from './NewFileRequestDialog/NewFileRequestDialogFinish.vue'
+import FileRequestIntro from './NewFileRequestDialog/NewFileRequestDialogIntro.vue'
+import logger from '../services/logger'
+import Share from '../models/Share.ts'
+
+enum STEP {
+ FIRST = 0,
+ SECOND = 1,
+ LAST = 2,
+}
+
+const sharingConfig = new Config()
+
+export default defineComponent({
+ name: 'NewFileRequestDialog',
+
+ components: {
+ FileRequestDatePassword,
+ FileRequestFinish,
+ FileRequestIntro,
+ IconCheck,
+ IconNext,
+ NcButton,
+ NcDialog,
+ NcLoadingIcon,
+ NcNoteCard,
+ },
+
+ props: {
+ context: {
+ type: Object as PropType<Folder>,
+ required: true,
+ },
+ content: {
+ type: Array as PropType<Node[]>,
+ required: true,
+ },
+ },
+
+ setup() {
+ return {
+ STEP,
+ n,
+ t,
+
+ isShareByMailEnabled: sharingConfig.isMailShareAllowed,
+ }
+ },
+
+ data() {
+ return {
+ currentStep: STEP.FIRST,
+ loading: false,
+
+ destination: this.context.path || '/',
+ label: '',
+ note: '',
+
+ expirationDate: null as Date | null,
+ password: null as string | null,
+
+ share: null as Share | null,
+ emails: [] as string[],
+ }
+ },
+
+ computed: {
+ finishButtonLabel() {
+ if (this.emails.length === 0) {
+ return t('files_sharing', 'Close')
+ }
+ return n('files_sharing', 'Send email and close', 'Send {count} emails and close', this.emails.length, { count: this.emails.length })
+ },
+ },
+
+ methods: {
+ onPageNext() {
+ const form = this.$refs.form as HTMLFormElement
+
+ // Reset custom validity
+ form.querySelectorAll('input').forEach(input => input.setCustomValidity(''))
+
+ // custom destination validation
+ // cannot share root
+ if (this.destination === '/' || this.destination === '') {
+ const destinationInput = form.querySelector('input[name="destination"]') as HTMLInputElement
+ destinationInput?.setCustomValidity(t('files_sharing', 'Please select a folder, you cannot share the root directory.'))
+ form.reportValidity()
+ return
+ }
+
+ // If the form is not valid, show the error message
+ if (!form.checkValidity()) {
+ form.reportValidity()
+ return
+ }
+
+ if (this.currentStep === STEP.FIRST) {
+ this.currentStep = STEP.SECOND
+ return
+ }
+
+ this.createShare()
+ },
+
+ onRemoveEmail(email: string) {
+ const index = this.emails.indexOf(email)
+ this.emails.splice(index, 1)
+ },
+
+ onCancel() {
+ this.$emit('close')
+ },
+
+ async onFinish() {
+ if (this.emails.length === 0 || this.isShareByMailEnabled === false) {
+ showSuccess(t('files_sharing', 'File request created'))
+ this.$emit('close')
+ return
+ }
+
+ if (sharingConfig.isMailShareAllowed && this.emails.length > 0) {
+ await this.setShareEmails()
+ await this.sendEmails()
+ showSuccess(n('files_sharing', 'File request created and email sent', 'File request created and {count} emails sent', this.emails.length, { count: this.emails.length }))
+ } else {
+ showSuccess(t('files_sharing', 'File request created'))
+ }
+
+ this.$emit('close')
+ },
+
+ async createShare() {
+ this.loading = true
+
+ let expireDate = ''
+ if (this.expirationDate) {
+ const year = this.expirationDate.getFullYear()
+ const month = (this.expirationDate.getMonth() + 1).toString().padStart(2, '0')
+ const day = this.expirationDate.getDate().toString().padStart(2, '0')
+
+ // Format must be YYYY-MM-DD
+ expireDate = `${year}-${month}-${day}`
+ }
+ const shareUrl = generateOcsUrl('apps/files_sharing/api/v1/shares')
+ try {
+ const request = await axios.post<OCSResponse>(shareUrl, {
+ // Always create a file request, but without mail share
+ // permissions, only a share link will be created.
+ shareType: sharingConfig.isMailShareAllowed ? ShareType.Email : ShareType.Link,
+ permissions: Permission.CREATE,
+
+ label: this.label,
+ path: this.destination,
+ note: this.note,
+
+ password: this.password || '',
+ expireDate: expireDate || '',
+
+ // Empty string
+ shareWith: '',
+ attributes: JSON.stringify([{
+ value: true,
+ key: 'enabled',
+ scope: 'fileRequest',
+ }]),
+ })
+
+ // If not an ocs request
+ if (!request?.data?.ocs) {
+ throw request
+ }
+
+ const share = new Share(request.data.ocs.data)
+ this.share = share
+
+ logger.info('New file request created', { share })
+ emit('files_sharing:share:created', { share })
+
+ // Move to the last page
+ this.currentStep = STEP.LAST
+ } catch (error) {
+ const errorMessage = (error as AxiosError<OCSResponse>)?.response?.data?.ocs?.meta?.message
+ showError(
+ errorMessage
+ ? t('files_sharing', 'Error creating the share: {errorMessage}', { errorMessage })
+ : t('files_sharing', 'Error creating the share'),
+ )
+ logger.error('Error while creating share', { error, errorMessage })
+ throw error
+ } finally {
+ this.loading = false
+ }
+ },
+
+ async setShareEmails() {
+ this.loading = true
+
+ // This should never happen™
+ if (!this.share || !this.share?.id) {
+ throw new Error('Share ID is missing')
+ }
+
+ const shareUrl = generateOcsUrl('apps/files_sharing/api/v1/shares/{id}', { id: this.share.id })
+ try {
+ // Convert link share to email share
+ const request = await axios.put<OCSResponse>(shareUrl, {
+ attributes: JSON.stringify([{
+ value: this.emails,
+ key: 'emails',
+ scope: 'shareWith',
+ },
+ {
+ value: true,
+ key: 'enabled',
+ scope: 'fileRequest',
+ }]),
+ })
+
+ // If not an ocs request
+ if (!request?.data?.ocs) {
+ throw request
+ }
+ } catch (error) {
+ this.onEmailSendError(error)
+ throw error
+ } finally {
+ this.loading = false
+ }
+ },
+
+ async sendEmails() {
+ this.loading = true
+
+ // This should never happen™
+ if (!this.share || !this.share?.id) {
+ throw new Error('Share ID is missing')
+ }
+
+ const shareUrl = generateOcsUrl('apps/files_sharing/api/v1/shares/{id}/send-email', { id: this.share.id })
+ try {
+ // Convert link share to email share
+ const request = await axios.post<OCSResponse>(shareUrl, {
+ password: this.password || undefined,
+ })
+
+ // If not an ocs request
+ if (!request?.data?.ocs) {
+ throw request
+ }
+ } catch (error) {
+ this.onEmailSendError(error)
+ throw error
+ } finally {
+ this.loading = false
+ }
+ },
+
+ onEmailSendError(error: AxiosError<OCSResponse>) {
+ const errorMessage = error.response?.data?.ocs?.meta?.message
+ showError(
+ errorMessage
+ ? t('files_sharing', 'Error sending emails: {errorMessage}', { errorMessage })
+ : t('files_sharing', 'Error sending emails'),
+ )
+ logger.error('Error while sending emails', { error, errorMessage })
+ },
+ },
+})
+</script>
+
+<style lang="scss">
+.file-request-dialog {
+ --margin: 18px;
+
+ &__header {
+ margin: 0 var(--margin);
+ }
+
+ &__form {
+ position: relative;
+ overflow: auto;
+ padding: var(--margin) var(--margin);
+ // overlap header bottom padding
+ margin-top: calc(-1 * var(--margin));
+ }
+
+ fieldset {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ margin-top: var(--margin);
+
+ legend {
+ display: flex;
+ align-items: center;
+ width: 100%;
+ }
+ }
+
+ // Using a NcNoteCard was a bit much sometimes.
+ // Using a simple paragraph instead does it.
+ &__info {
+ color: var(--color-text-maxcontrast);
+ padding-block: 4px;
+ display: flex;
+ align-items: center;
+ .file-request-dialog__info-icon {
+ margin-inline-end: 8px;
+ }
+ }
+
+ .dialog__actions {
+ width: auto;
+ margin-inline: 12px;
+ span.dialog__actions-separator {
+ margin-inline-start: auto;
+ }
+ }
+
+ .input-field__helper-text-message {
+ // reduce helper text standing out
+ color: var(--color-text-maxcontrast);
+ }
+}
+</style>
diff --git a/apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogDatePassword.vue b/apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogDatePassword.vue
new file mode 100644
index 00000000000..7e6d56e8794
--- /dev/null
+++ b/apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogDatePassword.vue
@@ -0,0 +1,258 @@
+<!--
+ - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
+
+<template>
+ <div>
+ <!-- Password and expiration summary -->
+ <NcNoteCard v-if="passwordAndExpirationSummary" type="success">
+ {{ passwordAndExpirationSummary }}
+ </NcNoteCard>
+
+ <!-- Expiration date -->
+ <fieldset class="file-request-dialog__expiration" data-cy-file-request-dialog-fieldset="expiration">
+ <!-- Enable expiration -->
+ <legend>{{ t('files_sharing', 'When should the request expire?') }}</legend>
+ <NcCheckboxRadioSwitch v-show="!isExpirationDateEnforced"
+ :checked="isExpirationDateEnforced || expirationDate !== null"
+ :disabled="disabled || isExpirationDateEnforced"
+ @update:checked="onToggleDeadline">
+ {{ t('files_sharing', 'Set a submission expiration date') }}
+ </NcCheckboxRadioSwitch>
+
+ <!-- Date picker -->
+ <NcDateTimePickerNative v-if="expirationDate !== null"
+ id="file-request-dialog-expirationDate"
+ :disabled="disabled"
+ :hide-label="true"
+ :label="t('files_sharing', 'Expiration date')"
+ :max="maxDate"
+ :min="minDate"
+ :placeholder="t('files_sharing', 'Select a date')"
+ :required="defaultExpireDateEnforced"
+ :value="expirationDate"
+ name="expirationDate"
+ type="date"
+ @input="$emit('update:expirationDate', $event)" />
+
+ <p v-if="defaultExpireDateEnforced" class="file-request-dialog__info">
+ <IconInfo :size="18" class="file-request-dialog__info-icon" />
+ {{ t('files_sharing', 'Your administrator has enforced a {count} days expiration policy.', { count: defaultExpireDate }) }}
+ </p>
+ </fieldset>
+
+ <!-- Password -->
+ <fieldset class="file-request-dialog__password" data-cy-file-request-dialog-fieldset="password">
+ <!-- Enable password -->
+ <legend>{{ t('files_sharing', 'What password should be used for the request?') }}</legend>
+ <NcCheckboxRadioSwitch v-show="!isPasswordEnforced"
+ :checked="isPasswordEnforced || password !== null"
+ :disabled="disabled || isPasswordEnforced"
+ @update:checked="onTogglePassword">
+ {{ t('files_sharing', 'Set a password') }}
+ </NcCheckboxRadioSwitch>
+
+ <div v-if="password !== null" class="file-request-dialog__password-field">
+ <NcPasswordField ref="passwordField"
+ :check-password-strength="true"
+ :disabled="disabled"
+ :label="t('files_sharing', 'Password')"
+ :placeholder="t('files_sharing', 'Enter a valid password')"
+ :required="enforcePasswordForPublicLink"
+ :value="password"
+ name="password"
+ @update:value="$emit('update:password', $event)" />
+ <NcButton :aria-label="t('files_sharing', 'Generate a new password')"
+ :title="t('files_sharing', 'Generate a new password')"
+ type="tertiary-no-background"
+ @click="onGeneratePassword">
+ <template #icon>
+ <IconPasswordGen :size="20" />
+ </template>
+ </NcButton>
+ </div>
+
+ <p v-if="enforcePasswordForPublicLink" class="file-request-dialog__info">
+ <IconInfo :size="18" class="file-request-dialog__info-icon" />
+ {{ t('files_sharing', 'Your administrator has enforced a password protection.') }}
+ </p>
+ </fieldset>
+ </div>
+</template>
+
+<script lang="ts">
+import { defineComponent, type PropType } from 'vue'
+import { t } from '@nextcloud/l10n'
+
+import NcButton from '@nextcloud/vue/components/NcButton'
+import NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'
+import NcDateTimePickerNative from '@nextcloud/vue/components/NcDateTimePickerNative'
+import NcNoteCard from '@nextcloud/vue/components/NcNoteCard'
+import NcPasswordField from '@nextcloud/vue/components/NcPasswordField'
+
+import IconInfo from 'vue-material-design-icons/Information.vue'
+import IconPasswordGen from 'vue-material-design-icons/AutoFix.vue'
+
+import Config from '../../services/ConfigService'
+import GeneratePassword from '../../utils/GeneratePassword'
+
+const sharingConfig = new Config()
+
+export default defineComponent({
+ name: 'NewFileRequestDialogDatePassword',
+
+ components: {
+ IconInfo,
+ IconPasswordGen,
+ NcButton,
+ NcCheckboxRadioSwitch,
+ NcDateTimePickerNative,
+ NcNoteCard,
+ NcPasswordField,
+ },
+
+ props: {
+ disabled: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
+ expirationDate: {
+ type: Date as PropType<Date | null>,
+ required: false,
+ default: null,
+ },
+ password: {
+ type: String as PropType<string | null>,
+ required: false,
+ default: null,
+ },
+ },
+
+ emits: [
+ 'update:expirationDate',
+ 'update:password',
+ ],
+
+ setup() {
+ return {
+ t,
+
+ // Default expiration date if defaultExpireDateEnabled is true
+ defaultExpireDate: sharingConfig.defaultExpireDate,
+ // Default expiration date is enabled for public links (can be disabled)
+ defaultExpireDateEnabled: sharingConfig.isDefaultExpireDateEnabled,
+ // Default expiration date is enforced for public links (can't be disabled)
+ defaultExpireDateEnforced: sharingConfig.isDefaultExpireDateEnforced,
+
+ // Default password protection is enabled for public links (can be disabled)
+ enableLinkPasswordByDefault: sharingConfig.enableLinkPasswordByDefault,
+ // Password protection is enforced for public links (can't be disabled)
+ enforcePasswordForPublicLink: sharingConfig.enforcePasswordForPublicLink,
+ }
+ },
+
+ data() {
+ return {
+ maxDate: null as Date | null,
+ minDate: new Date(new Date().setDate(new Date().getDate() + 1)),
+ }
+ },
+
+ computed: {
+ passwordAndExpirationSummary(): string {
+ if (this.expirationDate && this.password) {
+ return t('files_sharing', 'The request will expire on {date} at midnight and will be password protected.', {
+ date: this.expirationDate.toLocaleDateString(),
+ })
+ }
+
+ if (this.expirationDate) {
+ return t('files_sharing', 'The request will expire on {date} at midnight.', {
+ date: this.expirationDate.toLocaleDateString(),
+ })
+ }
+
+ if (this.password) {
+ return t('files_sharing', 'The request will be password protected.')
+ }
+
+ return ''
+ },
+
+ isExpirationDateEnforced(): boolean {
+ // Both fields needs to be enabled in the settings
+ return this.defaultExpireDateEnabled
+ && this.defaultExpireDateEnforced
+ },
+
+ isPasswordEnforced(): boolean {
+ // Both fields needs to be enabled in the settings
+ return this.enableLinkPasswordByDefault
+ && this.enforcePasswordForPublicLink
+ },
+ },
+
+ mounted() {
+ // If defined, we set the default expiration date
+ if (this.defaultExpireDate) {
+ this.$emit('update:expirationDate', sharingConfig.defaultExpirationDate)
+ }
+
+ // If enforced, we cannot set a date before the default expiration days (see admin settings)
+ if (this.isExpirationDateEnforced) {
+ this.maxDate = sharingConfig.defaultExpirationDate
+ }
+
+ // If enabled by default, we generate a valid password
+ if (this.isPasswordEnforced) {
+ this.generatePassword()
+ }
+ },
+
+ methods: {
+ onToggleDeadline(checked: boolean) {
+ this.$emit('update:expirationDate', checked ? (this.maxDate || this.minDate) : null)
+ },
+
+ async onTogglePassword(checked: boolean) {
+ if (checked) {
+ this.generatePassword()
+ return
+ }
+ this.$emit('update:password', null)
+ },
+
+ async onGeneratePassword() {
+ await this.generatePassword()
+ this.showPassword()
+ },
+
+ async generatePassword() {
+ await GeneratePassword().then(password => {
+ this.$emit('update:password', password)
+ })
+ },
+
+ showPassword() {
+ // @ts-expect-error isPasswordHidden is private
+ this.$refs.passwordField.isPasswordHidden = false
+ },
+ },
+})
+</script>
+
+<style scoped lang="scss">
+.file-request-dialog__password-field {
+ display: flex;
+ align-items: flex-start;
+ gap: 8px;
+ // Compensate label gab with legend
+ margin-top: 12px;
+ > div {
+ // Force margin to 0 as we handle it above
+ margin: 0;
+ }
+}
+</style>
diff --git a/apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogFinish.vue b/apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogFinish.vue
new file mode 100644
index 00000000000..7826aab581e
--- /dev/null
+++ b/apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogFinish.vue
@@ -0,0 +1,236 @@
+<!--
+ - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
+
+<template>
+ <div>
+ <!-- Request note -->
+ <NcNoteCard type="success">
+ {{ t('files_sharing', 'You can now share the link below to allow people to upload files to your directory.') }}
+ </NcNoteCard>
+
+ <!-- Copy share link -->
+ <NcInputField ref="clipboard"
+ :value="shareLink"
+ :label="t('files_sharing', 'Share link')"
+ :readonly="true"
+ :show-trailing-button="true"
+ :trailing-button-label="t('files_sharing', 'Copy')"
+ data-cy-file-request-dialog-fieldset="link"
+ @click="copyShareLink"
+ @trailing-button-click="copyShareLink">
+ <template #trailing-button-icon>
+ <IconCheck v-if="isCopied" :size="20" />
+ <IconClipboard v-else :size="20" />
+ </template>
+ </NcInputField>
+
+ <template v-if="isShareByMailEnabled">
+ <!-- Email share-->
+ <NcTextField :value.sync="email"
+ :label="t('files_sharing', 'Send link via email')"
+ :placeholder="t('files_sharing', 'Enter an email address or paste a list')"
+ data-cy-file-request-dialog-fieldset="email"
+ type="email"
+ @keypress.enter.stop="addNewEmail"
+ @paste.stop.prevent="onPasteEmails"
+ @focusout.native="addNewEmail" />
+
+ <!-- Email list -->
+ <div v-if="emails.length > 0" class="file-request-dialog__emails">
+ <NcChip v-for="mail in emails"
+ :key="mail"
+ :aria-label-close="t('files_sharing', 'Remove email')"
+ :text="mail"
+ @close="$emit('remove-email', mail)">
+ <template #icon>
+ <NcAvatar :disable-menu="true"
+ :disable-tooltip="true"
+ :display-name="mail"
+ :is-no-user="true"
+ :show-user-status="false"
+ :size="24" />
+ </template>
+ </NcChip>
+ </div>
+ </template>
+ </div>
+</template>
+
+<script lang="ts">
+import type { PropType } from 'vue'
+import Share from '../../models/Share.ts'
+
+import { defineComponent } from 'vue'
+import { generateUrl, getBaseUrl } from '@nextcloud/router'
+import { showError, showSuccess } from '@nextcloud/dialogs'
+import { n, t } from '@nextcloud/l10n'
+
+import NcAvatar from '@nextcloud/vue/components/NcAvatar'
+import NcInputField from '@nextcloud/vue/components/NcInputField'
+import NcNoteCard from '@nextcloud/vue/components/NcNoteCard'
+import NcTextField from '@nextcloud/vue/components/NcTextField'
+import NcChip from '@nextcloud/vue/components/NcChip'
+
+import IconCheck from 'vue-material-design-icons/Check.vue'
+import IconClipboard from 'vue-material-design-icons/ClipboardText.vue'
+
+export default defineComponent({
+ name: 'NewFileRequestDialogFinish',
+
+ components: {
+ IconCheck,
+ IconClipboard,
+ NcAvatar,
+ NcInputField,
+ NcNoteCard,
+ NcTextField,
+ NcChip,
+ },
+
+ props: {
+ share: {
+ type: Object as PropType<Share>,
+ required: true,
+ },
+ emails: {
+ type: Array as PropType<string[]>,
+ required: true,
+ },
+ isShareByMailEnabled: {
+ type: Boolean,
+ required: true,
+ },
+ },
+
+ emits: ['add-email', 'remove-email'],
+
+ setup() {
+ return {
+ n, t,
+ }
+ },
+
+ data() {
+ return {
+ isCopied: false,
+ email: '',
+ }
+ },
+
+ computed: {
+ shareLink() {
+ return generateUrl('/s/{token}', { token: this.share.token }, { baseURL: getBaseUrl() })
+ },
+ },
+
+ methods: {
+ async copyShareLink(event: MouseEvent) {
+ if (this.isCopied) {
+ this.isCopied = false
+ return
+ }
+
+ if (!navigator.clipboard) {
+ // Clipboard API not available
+ window.prompt(t('files_sharing', 'Automatically copying failed, please copy the share link manually'), this.shareLink)
+ return
+ }
+
+ await navigator.clipboard.writeText(this.shareLink)
+
+ showSuccess(t('files_sharing', 'Link copied'))
+ this.isCopied = true
+ event.target?.select?.()
+
+ setTimeout(() => {
+ this.isCopied = false
+ }, 3000)
+ },
+
+ addNewEmail(e: KeyboardEvent) {
+ if (this.email.trim() === '') {
+ return
+ }
+
+ if (e.target instanceof HTMLInputElement) {
+ // Reset the custom validity
+ e.target.setCustomValidity('')
+
+ // Check if the field is valid
+ if (e.target.checkValidity() === false) {
+ e.target.reportValidity()
+ return
+ }
+
+ // The email is already in the list
+ if (this.emails.includes(this.email.trim())) {
+ e.target.setCustomValidity(t('files_sharing', 'Email already added'))
+ e.target.reportValidity()
+ return
+ }
+
+ // Check if the email is valid
+ if (!this.isValidEmail(this.email.trim())) {
+ e.target.setCustomValidity(t('files_sharing', 'Invalid email address'))
+ e.target.reportValidity()
+ return
+ }
+
+ this.$emit('add-email', this.email.trim())
+ this.email = ''
+ }
+ },
+
+ // Handle dumping a list of emails
+ onPasteEmails(e: ClipboardEvent) {
+ const clipboardData = e.clipboardData
+ if (!clipboardData) {
+ return
+ }
+
+ const pastedText = clipboardData.getData('text')
+ const emails = pastedText.split(/[\s,;]+/).filter(Boolean).map((email) => email.trim())
+
+ const duplicateEmails = emails.filter((email) => this.emails.includes(email))
+ const validEmails = emails.filter((email) => this.isValidEmail(email) && !duplicateEmails.includes(email))
+ const invalidEmails = emails.filter((email) => !this.isValidEmail(email))
+ validEmails.forEach((email) => this.$emit('add-email', email))
+
+ // Warn about invalid emails
+ if (invalidEmails.length > 0) {
+ showError(n('files_sharing', 'The following email address is not valid: {emails}', 'The following email addresses are not valid: {emails}', invalidEmails.length, { emails: invalidEmails.join(', ') }))
+ }
+
+ // Warn about duplicate emails
+ if (duplicateEmails.length > 0) {
+ showError(n('files_sharing', '{count} email address already added', '{count} email addresses already added', duplicateEmails.length, { count: duplicateEmails.length }))
+ }
+
+ if (validEmails.length > 0) {
+ showSuccess(n('files_sharing', '{count} email address added', '{count} email addresses added', validEmails.length, { count: validEmails.length }))
+ }
+
+ this.email = ''
+ },
+
+ // No need to have a fancy regex, just check for an @
+ isValidEmail(email: string): boolean {
+ return email.includes('@')
+ },
+ },
+})
+</script>
+<style scoped>
+.input-field,
+.file-request-dialog__emails {
+ margin-top: var(--margin);
+}
+
+.file-request-dialog__emails {
+ display: flex;
+ gap: var(--default-grid-baseline);
+ flex-wrap: wrap;
+}
+</style>
diff --git a/apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogIntro.vue b/apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogIntro.vue
new file mode 100644
index 00000000000..5ac60c37e29
--- /dev/null
+++ b/apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogIntro.vue
@@ -0,0 +1,166 @@
+<!--
+ - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
+
+<template>
+ <div>
+ <!-- Request label -->
+ <fieldset class="file-request-dialog__label" data-cy-file-request-dialog-fieldset="label">
+ <legend>
+ {{ t('files_sharing', 'What are you requesting?') }}
+ </legend>
+ <NcTextField :value="label"
+ :disabled="disabled"
+ :label="t('files_sharing', 'Request subject')"
+ :placeholder="t('files_sharing', 'Birthday party photos, History assignment…')"
+ :required="false"
+ name="label"
+ @update:value="$emit('update:label', $event)" />
+ </fieldset>
+
+ <!-- Request destination -->
+ <fieldset class="file-request-dialog__destination" data-cy-file-request-dialog-fieldset="destination">
+ <legend>
+ {{ t('files_sharing', 'Where should these files go?') }}
+ </legend>
+ <NcTextField :value="destination"
+ :disabled="disabled"
+ :label="t('files_sharing', 'Upload destination')"
+ :minlength="2/* cannot share root */"
+ :placeholder="t('files_sharing', 'Select a destination')"
+ :readonly="false /* cannot validate a readonly input */"
+ :required="true /* cannot be empty */"
+ :show-trailing-button="destination !== context.path"
+ :trailing-button-icon="'undo'"
+ :trailing-button-label="t('files_sharing', 'Revert to default')"
+ name="destination"
+ @click="onPickDestination"
+ @keypress.prevent.stop="/* prevent typing in the input, we use the picker */"
+ @paste.prevent.stop="/* prevent pasting in the input, we use the picker */"
+ @trailing-button-click="$emit('update:destination', '')">
+ <IconFolder :size="18" />
+ </NcTextField>
+
+ <p class="file-request-dialog__info">
+ <IconLock :size="18" class="file-request-dialog__info-icon" />
+ {{ t('files_sharing', 'The uploaded files are visible only to you unless you choose to share them.') }}
+ </p>
+ </fieldset>
+
+ <!-- Request note -->
+ <fieldset class="file-request-dialog__note" data-cy-file-request-dialog-fieldset="note">
+ <legend>
+ {{ t('files_sharing', 'Add a note') }}
+ </legend>
+ <NcTextArea :value="note"
+ :disabled="disabled"
+ :label="t('files_sharing', 'Note for recipient')"
+ :placeholder="t('files_sharing', 'Add a note to help people understand what you are requesting.')"
+ :required="false"
+ name="note"
+ @update:value="$emit('update:note', $event)" />
+
+ <p class="file-request-dialog__info">
+ <IconInfo :size="18" class="file-request-dialog__info-icon" />
+ {{ t('files_sharing', 'You can add links, date or any other information that will help the recipient understand what you are requesting.') }}
+ </p>
+ </fieldset>
+ </div>
+</template>
+
+<script lang="ts">
+import type { PropType } from 'vue'
+import type { Folder, Node } from '@nextcloud/files'
+
+import { defineComponent } from 'vue'
+import { getFilePickerBuilder } from '@nextcloud/dialogs'
+import { t } from '@nextcloud/l10n'
+
+import IconFolder from 'vue-material-design-icons/Folder.vue'
+import IconInfo from 'vue-material-design-icons/InformationOutline.vue'
+import IconLock from 'vue-material-design-icons/Lock.vue'
+import NcTextArea from '@nextcloud/vue/components/NcTextArea'
+import NcTextField from '@nextcloud/vue/components/NcTextField'
+
+export default defineComponent({
+ name: 'NewFileRequestDialogIntro',
+
+ components: {
+ IconFolder,
+ IconInfo,
+ IconLock,
+ NcTextArea,
+ NcTextField,
+ },
+
+ props: {
+ disabled: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
+ context: {
+ type: Object as PropType<Folder>,
+ required: true,
+ },
+ label: {
+ type: String,
+ required: true,
+ },
+ destination: {
+ type: String,
+ required: true,
+ },
+ note: {
+ type: String,
+ required: true,
+ },
+ },
+
+ emits: [
+ 'update:destination',
+ 'update:label',
+ 'update:note',
+ ],
+
+ setup() {
+ return {
+ t,
+ }
+ },
+
+ methods: {
+ onPickDestination() {
+ const filepicker = getFilePickerBuilder(t('files_sharing', 'Select a destination'))
+ .addMimeTypeFilter('httpd/unix-directory')
+ .allowDirectories(true)
+ .addButton({
+ label: t('files_sharing', 'Select'),
+ callback: this.onPickedDestination,
+ })
+ .setFilter(node => node.path !== '/')
+ .startAt(this.destination)
+ .build()
+ try {
+ filepicker.pick()
+ } catch (e) {
+ // ignore cancel
+ }
+ },
+
+ onPickedDestination(nodes: Node[]) {
+ const node = nodes[0]
+ if (node) {
+ this.$emit('update:destination', node.path)
+ }
+ },
+ },
+})
+</script>
+<style scoped>
+.file-request-dialog__note :deep(textarea) {
+ width: 100% !important;
+ min-height: 80px;
+}
+</style>
diff --git a/apps/files_sharing/src/components/PersonalSettings.vue b/apps/files_sharing/src/components/PersonalSettings.vue
index e3fe603c342..19c9c2aec87 100644
--- a/apps/files_sharing/src/components/PersonalSettings.vue
+++ b/apps/files_sharing/src/components/PersonalSettings.vue
@@ -1,24 +1,7 @@
<!--
- - @copyright 2019 Roeland Jago Douma <roeland@famdouma.nl>
- -
- - @author 2019 Roeland Jago Douma <roeland@famdouma.nl>
- - @author Hinrich Mahler <nextcloud@mahlerhome.de>
- -
- - @license GNU AGPL version 3 or any later version
- -
- - This program is free software: you can redistribute it and/or modify
- - it under the terms of the GNU Affero General Public License as
- - published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- -
- - You should have received a copy of the GNU Affero General Public License
- - along with this program. If not, see <http://www.gnu.org/licenses/>.
- -->
+ - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
<template>
<div v-if="!enforceAcceptShares || allowCustomDirectory" id="files-sharing-personal-settings" class="section">
diff --git a/apps/files_sharing/src/components/SelectShareFolderDialogue.vue b/apps/files_sharing/src/components/SelectShareFolderDialogue.vue
index aa1d8f8aa37..959fecaa4a4 100644
--- a/apps/files_sharing/src/components/SelectShareFolderDialogue.vue
+++ b/apps/files_sharing/src/components/SelectShareFolderDialogue.vue
@@ -1,21 +1,7 @@
<!--
- - @copyright 2021 Hinrich Mahler <nextcloud@mahlerhome.de>
- -
- - @license GNU AGPL version 3 or any later version
- -
- - This program is free software: you can redistribute it and/or modify
- - it under the terms of the GNU Affero General Public License as
- - published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- -
- - You should have received a copy of the GNU Affero General Public License
- - along with this program. If not, see <http://www.gnu.org/licenses/>.
- -->
+ - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
<template>
<div class="share-folder">
@@ -24,7 +10,7 @@
<NcTextField class="share-folder__picker"
type="text"
:label="t('files_sharing', 'Set default folder for accepted shares')"
- :placeholder="readableDirectory"
+ :value="readableDirectory"
@click.prevent="pickFolder" />
<!-- Show reset button if folder is different -->
@@ -43,7 +29,7 @@ import path from 'path'
import { generateUrl } from '@nextcloud/router'
import { getFilePickerBuilder, showError } from '@nextcloud/dialogs'
import { loadState } from '@nextcloud/initial-state'
-import NcTextField from '@nextcloud/vue/dist/Components/NcTextField.js'
+import NcTextField from '@nextcloud/vue/components/NcTextField'
const defaultDirectory = loadState('files_sharing', 'default_share_folder', '/')
const directory = loadState('files_sharing', 'share_folder', defaultDirectory)
@@ -71,7 +57,7 @@ export default {
async pickFolder() {
// Setup file picker
- const picker = getFilePickerBuilder(t('files', 'Choose a default folder for accepted shares'))
+ const picker = getFilePickerBuilder(t('files_sharing', 'Choose a default folder for accepted shares'))
.startAt(this.readableDirectory)
.setMultiSelect(false)
.setType(1)
@@ -83,7 +69,7 @@ export default {
// Init user folder picking
const dir = await picker.pick() || '/'
if (!dir.startsWith('/')) {
- throw new Error(t('files', 'Invalid path selected'))
+ throw new Error(t('files_sharing', 'Invalid path selected'))
}
// Fix potential path issues and save results
@@ -92,7 +78,7 @@ export default {
shareFolder: this.directory,
})
} catch (error) {
- showError(error.message || t('files', 'Unknown error'))
+ showError(error.message || t('files_sharing', 'Unknown error'))
}
},
diff --git a/apps/files_sharing/src/components/ShareExpiryTime.vue b/apps/files_sharing/src/components/ShareExpiryTime.vue
new file mode 100644
index 00000000000..939142616e9
--- /dev/null
+++ b/apps/files_sharing/src/components/ShareExpiryTime.vue
@@ -0,0 +1,91 @@
+<!--
+ - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
+<template>
+ <div class="share-expiry-time">
+ <NcPopover popup-role="dialog">
+ <template #trigger>
+ <NcButton v-if="expiryTime"
+ class="hint-icon"
+ type="tertiary"
+ :aria-label="t('files_sharing', 'Share expiration: {date}', { date: new Date(expiryTime).toLocaleString() })">
+ <template #icon>
+ <ClockIcon :size="20" />
+ </template>
+ </NcButton>
+ </template>
+ <h3 class="hint-heading">
+ {{ t('files_sharing', 'Share Expiration') }}
+ </h3>
+ <p v-if="expiryTime" class="hint-body">
+ <NcDateTime :timestamp="expiryTime"
+ :format="timeFormat"
+ :relative-time="false" /> (<NcDateTime :timestamp="expiryTime" />)
+ </p>
+ </NcPopover>
+ </div>
+</template>
+
+<script>
+import NcButton from '@nextcloud/vue/components/NcButton'
+import NcPopover from '@nextcloud/vue/components/NcPopover'
+import NcDateTime from '@nextcloud/vue/components/NcDateTime'
+import ClockIcon from 'vue-material-design-icons/Clock.vue'
+
+export default {
+ name: 'ShareExpiryTime',
+
+ components: {
+ NcButton,
+ NcPopover,
+ NcDateTime,
+ ClockIcon,
+ },
+
+ props: {
+ share: {
+ type: Object,
+ required: true,
+ },
+ },
+
+ computed: {
+ expiryTime() {
+ return this.share?.expireDate ? new Date(this.share.expireDate).getTime() : null
+ },
+ timeFormat() {
+ return { dateStyle: 'full', timeStyle: 'short' }
+ },
+ },
+}
+</script>
+
+<style scoped lang="scss">
+.share-expiry-time {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+
+ .hint-icon {
+ padding: 0;
+ margin: 0;
+ width: 24px;
+ height: 24px;
+ }
+}
+
+.hint-heading {
+ text-align: center;
+ font-size: 1rem;
+ margin-top: 8px;
+ padding-bottom: 8px;
+ margin-bottom: 0;
+ border-bottom: 1px solid var(--color-border);
+}
+
+.hint-body {
+ padding: var(--border-radius-element);
+ max-width: 300px;
+}
+</style>
diff --git a/apps/files_sharing/src/components/SharingEntry.vue b/apps/files_sharing/src/components/SharingEntry.vue
index 6417ef0b6ea..342b40ce384 100644
--- a/apps/files_sharing/src/components/SharingEntry.vue
+++ b/apps/files_sharing/src/components/SharingEntry.vue
@@ -1,29 +1,12 @@
<!--
- - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @author John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @license GNU AGPL version 3 or any later version
- -
- - This program is free software: you can redistribute it and/or modify
- - it under the terms of the GNU Affero General Public License as
- - published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- -
- - You should have received a copy of the GNU Affero General Public License
- - along with this program. If not, see <http://www.gnu.org/licenses/>.
- -
- -->
+ - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
<template>
<li class="sharing-entry">
<NcAvatar class="sharing-entry__avatar"
- :is-no-user="share.type !== SHARE_TYPES.SHARE_TYPE_USER"
+ :is-no-user="share.type !== ShareType.User"
:user="share.shareWith"
:display-name="share.shareWithDisplayName"
:menu-position="'left'"
@@ -36,8 +19,9 @@
:href="share.shareWithLink"
class="sharing-entry__summary__desc">
<span>{{ title }}
- <span v-if="!isUnique" class="sharing-entry__summary__desc-unique"> ({{
- share.shareWithDisplayNameUnique }})</span>
+ <span v-if="!isUnique" class="sharing-entry__summary__desc-unique">
+ ({{ share.shareWithDisplayNameUnique }})
+ </span>
<small v-if="hasStatus && share.status.message">({{ share.status.message }})</small>
</span>
</component>
@@ -45,7 +29,9 @@
:file-info="fileInfo"
@open-sharing-details="openShareDetailsForCustomSettings(share)" />
</div>
- <NcButton class="sharing-entry__action"
+ <ShareExpiryTime v-if="share && share.expireDate" :share="share" />
+ <NcButton v-if="share.canEdit"
+ class="sharing-entry__action"
data-cy-files-sharing-share-actions
:aria-label="t('files_sharing', 'Open Sharing Details')"
type="tertiary"
@@ -58,11 +44,14 @@
</template>
<script>
-import NcButton from '@nextcloud/vue/dist/Components/NcButton.js'
-import NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'
-import NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'
+import { ShareType } from '@nextcloud/sharing'
+
+import NcButton from '@nextcloud/vue/components/NcButton'
+import NcSelect from '@nextcloud/vue/components/NcSelect'
+import NcAvatar from '@nextcloud/vue/components/NcAvatar'
import DotsHorizontalIcon from 'vue-material-design-icons/DotsHorizontal.vue'
+import ShareExpiryTime from './ShareExpiryTime.vue'
import SharingEntryQuickShareSelect from './SharingEntryQuickShareSelect.vue'
import SharesMixin from '../mixins/SharesMixin.js'
@@ -76,6 +65,7 @@ export default {
NcAvatar,
DotsHorizontalIcon,
NcSelect,
+ ShareExpiryTime,
SharingEntryQuickShareSelect,
},
@@ -84,17 +74,26 @@ export default {
computed: {
title() {
let title = this.share.shareWithDisplayName
- if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_GROUP) {
+
+ const showAsInternal = this.config.showFederatedSharesAsInternal
+ || (this.share.isTrustedServer && this.config.showFederatedSharesToTrustedServersAsInternal)
+
+ if (this.share.type === ShareType.Group || (this.share.type === ShareType.RemoteGroup && showAsInternal)) {
title += ` (${t('files_sharing', 'group')})`
- } else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_ROOM) {
+ } else if (this.share.type === ShareType.Room) {
title += ` (${t('files_sharing', 'conversation')})`
- } else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE) {
+ } else if (this.share.type === ShareType.Remote && !showAsInternal) {
title += ` (${t('files_sharing', 'remote')})`
- } else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP) {
+ } else if (this.share.type === ShareType.RemoteGroup) {
title += ` (${t('files_sharing', 'remote group')})`
- } else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_GUEST) {
+ } else if (this.share.type === ShareType.Guest) {
title += ` (${t('files_sharing', 'guest')})`
}
+ if (!this.isShareOwner && this.share.ownerDisplayName) {
+ title += ' ' + t('files_sharing', 'by {initiator}', {
+ initiator: this.share.ownerDisplayName,
+ })
+ }
return title
},
tooltip() {
@@ -105,9 +104,9 @@ export default {
user: this.share.shareWithDisplayName,
owner: this.share.ownerDisplayName,
}
- if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_GROUP) {
+ if (this.share.type === ShareType.Group) {
return t('files_sharing', 'Shared with the group {user} by {owner}', data)
- } else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_ROOM) {
+ } else if (this.share.type === ShareType.Room) {
return t('files_sharing', 'Shared with the conversation {user} by {owner}', data)
}
@@ -120,7 +119,7 @@ export default {
* @return {boolean}
*/
hasStatus() {
- if (this.share.type !== this.SHARE_TYPES.SHARE_TYPE_USER) {
+ if (this.share.type !== ShareType.User) {
return false
}
@@ -146,7 +145,7 @@ export default {
height: 44px;
&__summary {
padding: 8px;
- padding-left: 10px;
+ padding-inline-start: 10px;
display: flex;
flex-direction: column;
justify-content: center;
diff --git a/apps/files_sharing/src/components/SharingEntryInherited.vue b/apps/files_sharing/src/components/SharingEntryInherited.vue
index 6a71b55d612..e7dfffd5776 100644
--- a/apps/files_sharing/src/components/SharingEntryInherited.vue
+++ b/apps/files_sharing/src/components/SharingEntryInherited.vue
@@ -1,24 +1,7 @@
<!--
- - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @author John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @license GNU AGPL version 3 or any later version
- -
- - This program is free software: you can redistribute it and/or modify
- - it under the terms of the GNU Affero General Public License as
- - published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- -
- - You should have received a copy of the GNU Affero General Public License
- - along with this program. If not, see <http://www.gnu.org/licenses/>.
- -
- -->
+ - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
<template>
<SharingEntrySimple :key="share.id"
@@ -48,10 +31,10 @@
<script>
import { generateUrl } from '@nextcloud/router'
import { basename } from '@nextcloud/paths'
-import NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'
-import NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'
-import NcActionLink from '@nextcloud/vue/dist/Components/NcActionLink.js'
-import NcActionText from '@nextcloud/vue/dist/Components/NcActionText.js'
+import NcAvatar from '@nextcloud/vue/components/NcAvatar'
+import NcActionButton from '@nextcloud/vue/components/NcActionButton'
+import NcActionLink from '@nextcloud/vue/components/NcActionLink'
+import NcActionText from '@nextcloud/vue/components/NcActionText'
// eslint-disable-next-line no-unused-vars
import Share from '../models/Share.js'
@@ -102,14 +85,14 @@ export default {
flex-direction: column;
justify-content: space-between;
padding: 8px;
- padding-left: 10px;
+ padding-inline-start: 10px;
line-height: 1.2em;
p {
color: var(--color-text-maxcontrast);
}
}
&__actions {
- margin-left: auto;
+ margin-inline-start: auto;
}
}
</style>
diff --git a/apps/files_sharing/src/components/SharingEntryInternal.vue b/apps/files_sharing/src/components/SharingEntryInternal.vue
index 2e378f261ef..027d2a3d5c3 100644
--- a/apps/files_sharing/src/components/SharingEntryInternal.vue
+++ b/apps/files_sharing/src/components/SharingEntryInternal.vue
@@ -1,3 +1,7 @@
+<!--
+ - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
<template>
<ul>
<SharingEntrySimple ref="shareEntrySimple"
@@ -25,10 +29,10 @@
<script>
import { generateUrl } from '@nextcloud/router'
import { showSuccess } from '@nextcloud/dialogs'
-import NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'
+import NcActionButton from '@nextcloud/vue/components/NcActionButton'
-import CheckIcon from 'vue-material-design-icons/CheckBold.vue'
-import ClipboardIcon from 'vue-material-design-icons/ClipboardFlow.vue'
+import CheckIcon from 'vue-material-design-icons/Check.vue'
+import ClipboardIcon from 'vue-material-design-icons/ContentCopy.vue'
import SharingEntrySimple from './SharingEntrySimple.vue'
@@ -79,14 +83,11 @@ export default {
}
return t('files_sharing', 'Cannot copy, please copy the link manually')
}
- return t('files_sharing', 'Copy internal link to clipboard')
+ return t('files_sharing', 'Copy internal link')
},
internalLinkSubtitle() {
- if (this.fileInfo.type === 'dir') {
- return t('files_sharing', 'Only works for people with access to this folder')
- }
- return t('files_sharing', 'Only works for people with access to this file')
+ return t('files_sharing', 'For people who already have access')
},
},
diff --git a/apps/files_sharing/src/components/SharingEntryLink.vue b/apps/files_sharing/src/components/SharingEntryLink.vue
index 041a9b16ad6..6865af1b864 100644
--- a/apps/files_sharing/src/components/SharingEntryLink.vue
+++ b/apps/files_sharing/src/components/SharingEntryLink.vue
@@ -1,24 +1,7 @@
<!--
- - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @author John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @license GNU AGPL version 3 or any later version
- -
- - This program is free software: you can redistribute it and/or modify
- - it under the terms of the GNU Affero General Public License as
- - published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- -
- - You should have received a copy of the GNU Affero General Public License
- - along with this program. If not, see <http://www.gnu.org/licenses/>.
- -
- -->
+ - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
<template>
<li :class="{ 'sharing-entry--share': share }"
@@ -41,23 +24,30 @@
@open-sharing-details="openShareDetailsForCustomSettings(share)" />
</div>
- <!-- clipboard -->
- <NcActions v-if="share && !isEmailShareType && share.token" ref="copyButton" class="sharing-entry__copy">
- <NcActionButton :title="copyLinkTooltip"
- :aria-label="copyLinkTooltip"
- @click.prevent="copyLink">
- <template #icon>
- <CheckIcon v-if="copied && copySuccess"
- :size="20"
- class="icon-checkmark-color" />
- <ClipboardIcon v-else :size="20" />
- </template>
- </NcActionButton>
- </NcActions>
+ <div class="sharing-entry__actions">
+ <ShareExpiryTime v-if="share && share.expireDate" :share="share" />
+
+ <!-- clipboard -->
+ <div>
+ <NcActions v-if="share && (!isEmailShareType || isFileRequest) && share.token" ref="copyButton" class="sharing-entry__copy">
+ <NcActionButton :aria-label="copyLinkTooltip"
+ :title="copyLinkTooltip"
+ :href="shareLink"
+ @click.prevent="copyLink">
+ <template #icon>
+ <CheckIcon v-if="copied && copySuccess"
+ :size="20"
+ class="icon-checkmark-color" />
+ <ClipboardIcon v-else :size="20" />
+ </template>
+ </NcActionButton>
+ </NcActions>
+ </div>
+ </div>
</div>
<!-- pending actions -->
- <NcActions v-if="!pending && (pendingPassword || pendingEnforcedPassword || pendingExpirationDate)"
+ <NcActions v-if="!pending && pendingDataIsMissing"
class="sharing-entry__actions"
:aria-label="actionsTooltip"
menu-align="right"
@@ -76,36 +66,41 @@
</NcActionText>
<!-- password -->
- <NcActionText v-if="pendingEnforcedPassword">
- <LockIcon :size="20" />
- {{ t('files_sharing', 'Password protection (enforced)') }}
- </NcActionText>
- <NcActionCheckbox v-else-if="pendingPassword"
+ <NcActionCheckbox v-if="pendingPassword"
:checked.sync="isPasswordProtected"
:disabled="config.enforcePasswordForPublicLink || saving"
class="share-link-password-checkbox"
@uncheck="onPasswordDisable">
- {{ t('files_sharing', 'Password protection') }}
+ {{ config.enforcePasswordForPublicLink ? t('files_sharing', 'Password protection (enforced)') : t('files_sharing', 'Password protection') }}
</NcActionCheckbox>
- <NcActionInput v-if="pendingEnforcedPassword || share.password"
+ <NcActionInput v-if="pendingEnforcedPassword || isPasswordProtected"
class="share-link-password"
- :value.sync="share.password"
+ :label="t('files_sharing', 'Enter a password')"
+ :value.sync="share.newPassword"
:disabled="saving"
:required="config.enableLinkPasswordByDefault || config.enforcePasswordForPublicLink"
:minlength="isPasswordPolicyEnabled && config.passwordPolicy.minLength"
- icon=""
autocomplete="new-password"
- @submit="onNewLinkShare">
- {{ t('files_sharing', 'Enter a password') }}
+ @submit="onNewLinkShare(true)">
+ <template #icon>
+ <LockIcon :size="20" />
+ </template>
</NcActionInput>
+ <NcActionCheckbox v-if="pendingDefaultExpirationDate"
+ :checked.sync="defaultExpirationDateEnabled"
+ :disabled="pendingEnforcedExpirationDate || saving"
+ class="share-link-expiration-date-checkbox"
+ @update:model-value="onExpirationDateToggleUpdate">
+ {{ config.isDefaultExpireDateEnforced ? t('files_sharing', 'Enable link expiration (enforced)') : t('files_sharing', 'Enable link expiration') }}
+ </NcActionCheckbox>
+
<!-- expiration date -->
- <NcActionText v-if="pendingExpirationDate" icon="icon-calendar-dark">
- {{ t('files_sharing', 'Expiration date (enforced)') }}
- </NcActionText>
- <NcActionInput v-if="pendingExpirationDate"
+ <NcActionInput v-if="(pendingDefaultExpirationDate || pendingEnforcedExpirationDate) && defaultExpirationDateEnabled"
+ data-cy-files-sharing-expiration-date-input
class="share-link-expire-date"
+ :label="pendingEnforcedExpirationDate ? t('files_sharing', 'Enter expiration date (enforced)') : t('files_sharing', 'Enter expiration date')"
:disabled="saving"
:is-native-picker="true"
:hide-label="true"
@@ -113,13 +108,15 @@
type="date"
:min="dateTomorrow"
:max="maxExpirationDateEnforced"
- @input="onExpirationChange">
- <!-- let's not submit when picked, the user
- might want to still edit or copy the password -->
- {{ t('files_sharing', 'Enter a date') }}
+ @update:model-value="onExpirationChange"
+ @change="expirationDateChanged">
+ <template #icon>
+ <IconCalendarBlank :size="20" />
+ </template>
</NcActionInput>
- <NcActionButton @click.prevent.stop="onNewLinkShare">
+ <NcActionButton :disabled="pendingEnforcedPassword && !share.newPassword"
+ @click.prevent.stop="onNewLinkShare(true)">
<template #icon>
<CheckIcon :size="20" />
</template>
@@ -151,7 +148,7 @@
{{ t('files_sharing', 'Customize link') }}
</NcActionButton>
</template>
-
+
<NcActionButton :close-after-click="true"
@click.prevent="showQRCode = true">
<template #icon>
@@ -171,8 +168,8 @@
:share="share" />
<!-- external legacy sharing via url (social...) -->
- <NcActionLink v-for="({ icon, url, name }, index) in externalLegacyLinkActions"
- :key="index"
+ <NcActionLink v-for="({ icon, url, name }, actionIndex) in externalLegacyLinkActions"
+ :key="actionIndex"
:href="url(shareLink)"
:icon="icon"
target="_blank">
@@ -227,37 +224,43 @@
</template>
<script>
-import { generateUrl } from '@nextcloud/router'
import { showError, showSuccess } from '@nextcloud/dialogs'
-import { Type as ShareTypes } from '@nextcloud/sharing'
-import Vue from 'vue'
-import VueQrcode from '@chenfengyuan/vue-qrcode';
-
-import NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'
-import NcActionInput from '@nextcloud/vue/dist/Components/NcActionInput.js'
-import NcActionLink from '@nextcloud/vue/dist/Components/NcActionLink.js'
-import NcActionText from '@nextcloud/vue/dist/Components/NcActionText.js'
-import NcActionSeparator from '@nextcloud/vue/dist/Components/NcActionSeparator.js'
-import NcActions from '@nextcloud/vue/dist/Components/NcActions.js'
-import NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'
-import NcDialog from '@nextcloud/vue/dist/Components/NcDialog.js'
+import { emit } from '@nextcloud/event-bus'
+import { t } from '@nextcloud/l10n'
+import moment from '@nextcloud/moment'
+import { generateUrl, getBaseUrl } from '@nextcloud/router'
+import { ShareType } from '@nextcloud/sharing'
+
+import VueQrcode from '@chenfengyuan/vue-qrcode'
+import NcActionButton from '@nextcloud/vue/components/NcActionButton'
+import NcActionCheckbox from '@nextcloud/vue/components/NcActionCheckbox'
+import NcActionInput from '@nextcloud/vue/components/NcActionInput'
+import NcActionLink from '@nextcloud/vue/components/NcActionLink'
+import NcActionText from '@nextcloud/vue/components/NcActionText'
+import NcActionSeparator from '@nextcloud/vue/components/NcActionSeparator'
+import NcActions from '@nextcloud/vue/components/NcActions'
+import NcAvatar from '@nextcloud/vue/components/NcAvatar'
+import NcDialog from '@nextcloud/vue/components/NcDialog'
import Tune from 'vue-material-design-icons/Tune.vue'
+import IconCalendarBlank from 'vue-material-design-icons/CalendarBlankOutline.vue'
import IconQr from 'vue-material-design-icons/Qrcode.vue'
import ErrorIcon from 'vue-material-design-icons/Exclamation.vue'
-import LockIcon from 'vue-material-design-icons/Lock.vue'
+import LockIcon from 'vue-material-design-icons/LockOutline.vue'
import CheckIcon from 'vue-material-design-icons/CheckBold.vue'
-import ClipboardIcon from 'vue-material-design-icons/ClipboardFlow.vue'
+import ClipboardIcon from 'vue-material-design-icons/ContentCopy.vue'
import CloseIcon from 'vue-material-design-icons/Close.vue'
import PlusIcon from 'vue-material-design-icons/Plus.vue'
import SharingEntryQuickShareSelect from './SharingEntryQuickShareSelect.vue'
+import ShareExpiryTime from './ShareExpiryTime.vue'
import ExternalShareAction from './ExternalShareAction.vue'
-import GeneratePassword from '../utils/GeneratePassword.js'
-import Share from '../models/Share.js'
+import GeneratePassword from '../utils/GeneratePassword.ts'
+import Share from '../models/Share.ts'
import SharesMixin from '../mixins/SharesMixin.js'
import ShareDetails from '../mixins/ShareDetails.js'
+import logger from '../services/logger.ts'
export default {
name: 'SharingEntryLink',
@@ -266,6 +269,7 @@ export default {
ExternalShareAction,
NcActions,
NcActionButton,
+ NcActionCheckbox,
NcActionInput,
NcActionLink,
NcActionText,
@@ -274,6 +278,7 @@ export default {
NcDialog,
VueQrcode,
Tune,
+ IconCalendarBlank,
IconQr,
ErrorIcon,
LockIcon,
@@ -282,6 +287,7 @@ export default {
CloseIcon,
PlusIcon,
SharingEntryQuickShareSelect,
+ ShareExpiryTime,
},
mixins: [SharesMixin, ShareDetails],
@@ -299,8 +305,10 @@ export default {
data() {
return {
+ shareCreationComplete: false,
copySuccess: true,
copied: false,
+ defaultExpirationDateEnabled: false,
// Are we waiting for password/expiration date
pending: false,
@@ -320,6 +328,8 @@ export default {
* @return {string}
*/
title() {
+ const l10nOptions = { escape: false /* no escape as this string is already escaped by Vue */ }
+
// if we have a valid existing share (not pending)
if (this.share && this.share.id) {
if (!this.isShareOwner && this.share.ownerDisplayName) {
@@ -327,30 +337,46 @@ export default {
return t('files_sharing', '{shareWith} by {initiator}', {
shareWith: this.share.shareWith,
initiator: this.share.ownerDisplayName,
- })
+ }, l10nOptions)
}
return t('files_sharing', 'Shared via link by {initiator}', {
initiator: this.share.ownerDisplayName,
- })
+ }, l10nOptions)
}
if (this.share.label && this.share.label.trim() !== '') {
if (this.isEmailShareType) {
+ if (this.isFileRequest) {
+ return t('files_sharing', 'File request ({label})', {
+ label: this.share.label.trim(),
+ }, l10nOptions)
+ }
return t('files_sharing', 'Mail share ({label})', {
label: this.share.label.trim(),
- })
+ }, l10nOptions)
}
return t('files_sharing', 'Share link ({label})', {
label: this.share.label.trim(),
- })
+ }, l10nOptions)
}
if (this.isEmailShareType) {
+ if (!this.share.shareWith || this.share.shareWith.trim() === '') {
+ return this.isFileRequest
+ ? t('files_sharing', 'File request')
+ : t('files_sharing', 'Mail share')
+ }
return this.share.shareWith
}
+
+ if (this.index === null) {
+ return t('files_sharing', 'Share link')
+ }
}
- if (this.index > 1) {
+
+ if (this.index >= 1) {
return t('files_sharing', 'Share link ({index})', { index: this.index })
}
- return t('files_sharing', 'Share link')
+
+ return t('files_sharing', 'Create public link')
},
/**
@@ -365,22 +391,6 @@ export default {
}
return null
},
- /**
- * Is the current share password protected ?
- *
- * @return {boolean}
- */
- isPasswordProtected: {
- get() {
- return this.config.enforcePasswordForPublicLink
- || !!this.share.password
- },
- async set(enabled) {
- // TODO: directly save after generation to make sure the share is always protected
- Vue.set(this.share, 'password', enabled ? await GeneratePassword() : '')
- Vue.set(this.share, 'newPassword', this.share.password)
- },
- },
passwordExpirationTime() {
if (this.share.passwordExpirationTime === null) {
@@ -435,7 +445,7 @@ export default {
*/
isEmailShareType() {
return this.share
- ? this.share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL
+ ? this.share.type === ShareType.Email
: false
},
@@ -460,16 +470,50 @@ export default {
*
* @return {boolean}
*/
+ pendingDataIsMissing() {
+ return this.pendingPassword || this.pendingEnforcedPassword || this.pendingDefaultExpirationDate || this.pendingEnforcedExpirationDate
+ },
pendingPassword() {
- return this.config.enableLinkPasswordByDefault && this.share && !this.share.id
+ return this.config.enableLinkPasswordByDefault && this.isPendingShare
},
pendingEnforcedPassword() {
- return this.config.enforcePasswordForPublicLink && this.share && !this.share.id
+ return this.config.enforcePasswordForPublicLink && this.isPendingShare
+ },
+ pendingEnforcedExpirationDate() {
+ return this.config.isDefaultExpireDateEnforced && this.isPendingShare
+ },
+ pendingDefaultExpirationDate() {
+ return (this.config.defaultExpirationDate instanceof Date || !isNaN(new Date(this.config.defaultExpirationDate).getTime())) && this.isPendingShare
},
- pendingExpirationDate() {
- return this.config.isDefaultExpireDateEnforced && this.share && !this.share.id
+ isPendingShare() {
+ return !!(this.share && !this.share.id)
},
+ sharePolicyHasEnforcedProperties() {
+ return this.config.enforcePasswordForPublicLink || this.config.isDefaultExpireDateEnforced
+ },
+
+ enforcedPropertiesMissing() {
+ // Ensure share exist and the share policy has required properties
+ if (!this.sharePolicyHasEnforcedProperties) {
+ return false
+ }
+ if (!this.share) {
+ // if no share, we can't tell if properties are missing or not so we assume properties are missing
+ return true
+ }
+
+ // If share has ID, then this is an incoming link share created from the existing link share
+ // Hence assume required properties
+ if (this.share.id) {
+ return true
+ }
+ // Check if either password or expiration date is missing and enforced
+ const isPasswordMissing = this.config.enforcePasswordForPublicLink && !this.share.password
+ const isExpireDateMissing = this.config.isDefaultExpireDateEnforced && !this.share.expireDate
+
+ return isPasswordMissing || isExpireDateMissing
+ },
// if newPassword exists, but is empty, it means
// the user deleted the original password
hasUnsavedPassword() {
@@ -482,7 +526,7 @@ export default {
* @return {string}
*/
shareLink() {
- return window.location.protocol + '//' + window.location.host + generateUrl('/s/') + this.share.token
+ return generateUrl('/s/{token}', { token: this.share.token }, { baseURL: getBaseUrl() })
},
/**
@@ -506,7 +550,7 @@ export default {
}
return t('files_sharing', 'Cannot copy, please copy the link manually')
}
- return t('files_sharing', 'Copy public link of "{title}" to clipboard', { title: this.title })
+ return t('files_sharing', 'Copy public link of "{title}"', { title: this.title })
},
/**
@@ -525,7 +569,7 @@ export default {
* @return {Array}
*/
externalLinkActions() {
- const filterValidAction = (action) => (action.shareType.includes(ShareTypes.SHARE_TYPE_LINK) || action.shareType.includes(ShareTypes.SHARE_TYPE_EMAIL)) && !action.advanced
+ const filterValidAction = (action) => (action.shareType.includes(ShareType.Link) || action.shareType.includes(ShareType.Email)) && !action.advanced
// filter only the registered actions for said link
return this.ExternalShareActions.actions
.filter(filterValidAction)
@@ -536,23 +580,48 @@ export default {
},
canChangeHideDownload() {
- const hasDisabledDownload = (shareAttribute) => shareAttribute.key === 'download' && shareAttribute.scope === 'permissions' && shareAttribute.enabled === false
+ const hasDisabledDownload = (shareAttribute) => shareAttribute.scope === 'permissions' && shareAttribute.key === 'download' && shareAttribute.value === false
return this.fileInfo.shareAttributes.some(hasDisabledDownload)
},
+
+ isFileRequest() {
+ return this.share.isFileRequest
+ },
+ },
+ mounted() {
+ this.defaultExpirationDateEnabled = this.config.defaultExpirationDate instanceof Date
+ if (this.share && this.isNewShare) {
+ this.share.expireDate = this.defaultExpirationDateEnabled ? this.formatDateToString(this.config.defaultExpirationDate) : ''
+ }
},
methods: {
/**
+ * Check if the share requires review
+ *
+ * @param {boolean} shareReviewComplete if the share was reviewed
+ * @return {boolean}
+ */
+ shareRequiresReview(shareReviewComplete) {
+ // If a user clicks 'Create share' it means they have reviewed the share
+ if (shareReviewComplete) {
+ return false
+ }
+ return this.defaultExpirationDateEnabled || this.config.enableLinkPasswordByDefault
+ },
+ /**
* Create a new share link and append it to the list
+ * @param {boolean} shareReviewComplete if the share was reviewed
*/
- async onNewLinkShare() {
+ async onNewLinkShare(shareReviewComplete = false) {
+ logger.debug('onNewLinkShare called (with this.share)', this.share)
// do not run again if already loading
if (this.loading) {
return
}
const shareDefaults = {
- share_type: ShareTypes.SHARE_TYPE_LINK,
+ share_type: ShareType.Link,
}
if (this.config.isDefaultExpireDateEnforced) {
// default is empty string if not set
@@ -560,37 +629,25 @@ export default {
shareDefaults.expiration = this.formatDateToString(this.config.defaultExpirationDate)
}
- // do not push yet if we need a password or an expiration date: show pending menu
- if (this.config.enableLinkPasswordByDefault || this.config.enforcePasswordForPublicLink || this.config.isDefaultExpireDateEnforced) {
+ logger.debug('Missing required properties?', this.enforcedPropertiesMissing)
+ // Do not push yet if we need a password or an expiration date: show pending menu
+ // A share would require a review for example is default expiration date is set but not enforced, this allows
+ // the user to review the share and remove the expiration date if they don't want it
+ if ((this.sharePolicyHasEnforcedProperties && this.enforcedPropertiesMissing) || this.shareRequiresReview(shareReviewComplete === true)) {
this.pending = true
+ this.shareCreationComplete = false
- // if a share already exists, pushing it
- if (this.share && !this.share.id) {
- // if the share is valid, create it on the server
- if (this.checkShare(this.share)) {
- try {
- await this.pushNewLinkShare(this.share, true)
- } catch (e) {
- this.pending = false
- console.error(e)
- return false
- }
- return true
- } else {
- this.open = true
- OC.Notification.showTemporary(t('files_sharing', 'Error, please enter proper password and/or expiration date'))
- return false
- }
- }
+ logger.info('Share policy requires a review or has mandated properties (password, expirationDate)...')
// ELSE, show the pending popovermenu
// if password default or enforced, pre-fill with random one
if (this.config.enableLinkPasswordByDefault || this.config.enforcePasswordForPublicLink) {
- shareDefaults.password = await GeneratePassword()
+ shareDefaults.password = await GeneratePassword(true)
}
// create share & close menu
const share = new Share(shareDefaults)
+ share.newPassword = share.password
const component = await new Promise(resolve => {
this.$emit('add:share', share, resolve)
})
@@ -603,8 +660,32 @@ export default {
// Nothing is enforced, creating share directly
} else {
+
+ // if a share already exists, pushing it
+ if (this.share && !this.share.id) {
+ // if the share is valid, create it on the server
+ if (this.checkShare(this.share)) {
+ try {
+ logger.info('Sending existing share to server', this.share)
+ await this.pushNewLinkShare(this.share, true)
+ this.shareCreationComplete = true
+ logger.info('Share created on server', this.share)
+ } catch (e) {
+ this.pending = false
+ logger.error('Error creating share', e)
+ return false
+ }
+ return true
+ } else {
+ this.open = true
+ showError(t('files_sharing', 'Error, please enter proper password and/or expiration date'))
+ return false
+ }
+ }
+
const share = new Share(shareDefaults)
await this.pushNewLinkShare(share)
+ this.shareCreationComplete = true
}
},
@@ -629,14 +710,14 @@ export default {
const path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')
const options = {
path,
- shareType: ShareTypes.SHARE_TYPE_LINK,
+ shareType: ShareType.Link,
password: share.password,
- expireDate: share.expireDate,
+ expireDate: share.expireDate ?? '',
attributes: JSON.stringify(this.fileInfo.shareAttributes),
// we do not allow setting the publicUpload
// before the share creation.
// Todo: We also need to fix the createShare method in
- // lib/Controller/ShareAPIController.php to allow file drop
+ // lib/Controller/ShareAPIController.php to allow file requests
// (currently not supported on create, only update)
}
@@ -644,8 +725,8 @@ export default {
const newShare = await this.createShare(options)
this.open = false
+ this.shareCreationComplete = true
console.debug('Link share created', newShare)
-
// if share already exists, copy link directly on next tick
let component
if (update) {
@@ -661,6 +742,9 @@ export default {
})
}
+ await this.getNode()
+ emit('files:node:updated', this.node)
+
// Execute the copy link method
// freshly created share component
// ! somehow does not works on firefox !
@@ -687,8 +771,10 @@ export default {
this.onSyncError('pending', message)
}
throw data
+
} finally {
this.loading = false
+ this.shareCreationComplete = true
}
},
async copyLink() {
@@ -754,7 +840,7 @@ export default {
*/
onPasswordSubmit() {
if (this.hasUnsavedPassword) {
- this.share.password = this.share.newPassword.trim()
+ this.share.newPassword = this.share.newPassword.trim()
this.queueUpdate('password')
}
},
@@ -769,7 +855,7 @@ export default {
*/
onPasswordProtectedByTalkChange() {
if (this.hasUnsavedPassword) {
- this.share.password = this.share.newPassword.trim()
+ this.share.newPassword = this.share.newPassword.trim()
}
this.queueUpdate('sendPasswordByTalk', 'password')
@@ -784,6 +870,19 @@ export default {
},
/**
+ * @param enabled True if expiration is enabled
+ */
+ onExpirationDateToggleUpdate(enabled) {
+ this.share.expireDate = enabled ? this.formatDateToString(this.config.defaultExpirationDate) : ''
+ },
+
+ expirationDateChanged(event) {
+ const value = event?.target?.value
+ const isValid = !!value && !isNaN(new Date(value).getTime())
+ this.defaultExpirationDateEnabled = isValid
+ },
+
+ /**
* Cancel the share creation
* Used in the pending popover
*/
@@ -791,7 +890,9 @@ export default {
// this.share already exists at this point,
// but is incomplete as not pushed to server
// YET. We can safely delete the share :)
- this.$emit('remove:share', this.share)
+ if (!this.shareCreationComplete) {
+ this.$emit('remove:share', this.share)
+ }
},
},
}
@@ -805,32 +906,34 @@ export default {
&__summary {
padding: 8px;
- padding-left: 10px;
+ padding-inline-start: 10px;
display: flex;
justify-content: space-between;
flex: 1 0;
min-width: 0;
}
- &__desc {
- display: flex;
- flex-direction: column;
- line-height: 1.2em;
+ &__desc {
+ display: flex;
+ flex-direction: column;
+ line-height: 1.2em;
- p {
- color: var(--color-text-maxcontrast);
- }
+ p {
+ color: var(--color-text-maxcontrast);
+ }
- &__title {
- text-overflow: ellipsis;
- overflow: hidden;
- white-space: nowrap;
+ &__title {
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ }
}
- }
- &__copy {
-
- }
+ &__actions {
+ display: flex;
+ align-items: center;
+ margin-inline-start: auto;
+ }
&:not(.sharing-entry--share) &__actions {
.new-share-link {
@@ -838,7 +941,7 @@ export default {
}
}
- ::v-deep .avatar-link-share {
+ :deep(.avatar-link-share) {
background-color: var(--color-primary-element);
}
@@ -851,7 +954,7 @@ export default {
height: 44px;
margin: 0;
padding: 14px;
- margin-left: auto;
+ margin-inline-start: auto;
}
// put menus to the left
@@ -860,7 +963,7 @@ export default {
~.action-item,
~.sharing-entry__loading {
- margin-left: 0;
+ margin-inline-start: 0;
}
}
diff --git a/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue b/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue
index 79302ec6fbe..102eea63cb6 100644
--- a/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue
+++ b/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue
@@ -1,9 +1,14 @@
+<!--
+ - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
<template>
<NcActions ref="quickShareActions"
class="share-select"
:menu-name="selectedOption"
:aria-label="ariaLabel"
type="tertiary-no-background"
+ :disabled="!share.canEdit"
force-name>
<template #icon>
<DropdownIcon :size="15" />
@@ -23,14 +28,15 @@
</template>
<script>
+import { ShareType } from '@nextcloud/sharing'
+import { subscribe, unsubscribe } from '@nextcloud/event-bus'
import DropdownIcon from 'vue-material-design-icons/TriangleSmallDown.vue'
import SharesMixin from '../mixins/SharesMixin.js'
import ShareDetails from '../mixins/ShareDetails.js'
-import ShareTypes from '../mixins/ShareTypes.js'
-import NcActions from '@nextcloud/vue/dist/Components/NcActions.js'
-import NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'
+import NcActions from '@nextcloud/vue/components/NcActions'
+import NcActionButton from '@nextcloud/vue/components/NcActionButton'
import IconEyeOutline from 'vue-material-design-icons/EyeOutline.vue'
-import IconPencil from 'vue-material-design-icons/Pencil.vue'
+import IconPencil from 'vue-material-design-icons/PencilOutline.vue'
import IconFileUpload from 'vue-material-design-icons/FileUpload.vue'
import IconTune from 'vue-material-design-icons/Tune.vue'
@@ -48,7 +54,7 @@ export default {
NcActionButton,
},
- mixins: [SharesMixin, ShareDetails, ShareTypes],
+ mixins: [SharesMixin, ShareDetails],
props: {
share: {
@@ -76,7 +82,7 @@ export default {
return t('files_sharing', 'Can edit')
},
fileDropText() {
- return t('files_sharing', 'File drop')
+ return t('files_sharing', 'File request')
},
customPermissionsText() {
return t('files_sharing', 'Custom permissions')
@@ -118,7 +124,7 @@ export default {
supportsFileDrop() {
if (this.isFolder && this.config.isPublicUploadEnabled) {
const shareType = this.share.type ?? this.share.shareType
- return [this.SHARE_TYPES.SHARE_TYPE_LINK, this.SHARE_TYPES.SHARE_TYPE_EMAIL].includes(shareType)
+ return [ShareType.Link, ShareType.Email].includes(shareType)
}
return false
},
@@ -140,7 +146,17 @@ export default {
created() {
this.selectedOption = this.preSelectedOption
},
-
+ mounted() {
+ subscribe('update:share', (share) => {
+ if (share.id === this.share.id) {
+ this.share.permissions = share.permissions
+ this.selectedOption = this.preSelectedOption
+ }
+ })
+ },
+ unmounted() {
+ unsubscribe('update:share')
+ },
methods: {
selectOption(optionLabel) {
this.selectedOption = optionLabel
diff --git a/apps/files_sharing/src/components/SharingEntrySimple.vue b/apps/files_sharing/src/components/SharingEntrySimple.vue
index 29464e88f34..a00333ba0ce 100644
--- a/apps/files_sharing/src/components/SharingEntrySimple.vue
+++ b/apps/files_sharing/src/components/SharingEntrySimple.vue
@@ -1,24 +1,7 @@
<!--
- - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @author John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @license GNU AGPL version 3 or any later version
- -
- - This program is free software: you can redistribute it and/or modify
- - it under the terms of the GNU Affero General Public License as
- - published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- -
- - You should have received a copy of the GNU Affero General Public License
- - along with this program. If not, see <http://www.gnu.org/licenses/>.
- -
- -->
+ - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
<template>
<li class="sharing-entry">
@@ -40,7 +23,7 @@
</template>
<script>
-import NcActions from '@nextcloud/vue/dist/Components/NcActions.js'
+import NcActions from '@nextcloud/vue/components/NcActions'
export default {
name: 'SharingEntrySimple',
@@ -87,7 +70,7 @@ export default {
min-height: 44px;
&__desc {
padding: 8px;
- padding-left: 10px;
+ padding-inline-start: 10px;
line-height: 1.2em;
position: relative;
flex: 1 1;
@@ -103,7 +86,7 @@ export default {
max-width: inherit;
}
&__actions {
- margin-left: auto !important;
+ margin-inline-start: auto !important;
}
}
</style>
diff --git a/apps/files_sharing/src/components/SharingInput.vue b/apps/files_sharing/src/components/SharingInput.vue
index c91e2ddcdcf..6fb33aba6b2 100644
--- a/apps/files_sharing/src/components/SharingInput.vue
+++ b/apps/files_sharing/src/components/SharingInput.vue
@@ -1,31 +1,17 @@
<!--
- - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @author John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @license GNU AGPL version 3 or any later version
- -
- - This program is free software: you can redistribute it and/or modify
- - it under the terms of the GNU Affero General Public License as
- - published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- -
- - You should have received a copy of the GNU Affero General Public License
- - along with this program. If not, see <http://www.gnu.org/licenses/>.
- -
- -->
+ - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
<template>
<div class="sharing-search">
- <label for="sharing-search-input">{{ t('files_sharing', 'Search for share recipients') }}</label>
+ <label class="hidden-visually" :for="shareInputId">
+ {{ isExternal ? t('files_sharing', 'Enter external recipients')
+ : t('files_sharing', 'Search for internal recipients') }}
+ </label>
<NcSelect ref="select"
v-model="value"
- input-id="sharing-search-input"
+ :input-id="shareInputId"
class="sharing-search__input"
:disabled="!canReshare"
:loading="loading"
@@ -34,10 +20,11 @@
:clear-search-on-blur="() => false"
:user-select="true"
:options="options"
+ :label-outside="true"
@search="asyncFind"
@option:selected="onSelected">
<template #no-options="{ search }">
- {{ search ? noResultText : t('files_sharing', 'No recommendations. Start typing.') }}
+ {{ search ? noResultText : placeholder }}
</template>
</NcSelect>
</div>
@@ -49,14 +36,13 @@ import { getCurrentUser } from '@nextcloud/auth'
import { getCapabilities } from '@nextcloud/capabilities'
import axios from '@nextcloud/axios'
import debounce from 'debounce'
-import NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'
+import NcSelect from '@nextcloud/vue/components/NcSelect'
-import Config from '../services/ConfigService.js'
-import GeneratePassword from '../utils/GeneratePassword.js'
-import Share from '../models/Share.js'
+import Config from '../services/ConfigService.ts'
+import Share from '../models/Share.ts'
import ShareRequests from '../mixins/ShareRequests.js'
-import ShareTypes from '../mixins/ShareTypes.js'
import ShareDetails from '../mixins/ShareDetails.js'
+import { ShareType } from '@nextcloud/sharing'
export default {
name: 'SharingInput',
@@ -65,7 +51,7 @@ export default {
NcSelect,
},
- mixins: [ShareTypes, ShareRequests, ShareDetails],
+ mixins: [ShareRequests, ShareDetails],
props: {
shares: {
@@ -91,6 +77,20 @@ export default {
type: Boolean,
required: true,
},
+ isExternal: {
+ type: Boolean,
+ default: false,
+ },
+ placeholder: {
+ type: String,
+ default: '',
+ },
+ },
+
+ setup() {
+ return {
+ shareInputId: `share-input-${Math.random().toString(36).slice(2, 7)}`,
+ }
},
data() {
@@ -123,6 +123,10 @@ export default {
if (!this.canReshare) {
return t('files_sharing', 'Resharing is not allowed')
}
+ if (this.placeholder) {
+ return this.placeholder
+ }
+
// We can always search with email addresses for users too
if (!allowRemoteSharing) {
return t('files_sharing', 'Name or email …')
@@ -151,7 +155,10 @@ export default {
},
mounted() {
- this.getRecommendations()
+ if (!this.isExternal) {
+ // We can only recommend users, groups etc for internal shares
+ this.getRecommendations()
+ }
},
methods: {
@@ -185,20 +192,37 @@ export default {
lookup = true
}
- const shareType = [
- this.SHARE_TYPES.SHARE_TYPE_USER,
- this.SHARE_TYPES.SHARE_TYPE_GROUP,
- this.SHARE_TYPES.SHARE_TYPE_REMOTE,
- this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP,
- this.SHARE_TYPES.SHARE_TYPE_CIRCLE,
- this.SHARE_TYPES.SHARE_TYPE_ROOM,
- this.SHARE_TYPES.SHARE_TYPE_GUEST,
- this.SHARE_TYPES.SHARE_TYPE_DECK,
- this.SHARE_TYPES.SHARE_TYPE_SCIENCEMESH,
- ]
-
- if (getCapabilities().files_sharing.public.enabled === true) {
- shareType.push(this.SHARE_TYPES.SHARE_TYPE_EMAIL)
+ const remoteTypes = [ShareType.Remote, ShareType.RemoteGroup]
+ const shareType = []
+
+ const showFederatedAsInternal = this.config.showFederatedSharesAsInternal
+ || this.config.showFederatedSharesToTrustedServersAsInternal
+
+ // For internal users, add remote types if config says to show them as internal
+ const shouldAddRemoteTypes = (!this.isExternal && showFederatedAsInternal)
+ // For external users, add them if config *doesn't* say to show them as internal
+ || (this.isExternal && !showFederatedAsInternal)
+ // Edge case: federated-to-trusted is a separate "add" trigger for external users
+ || (this.isExternal && this.config.showFederatedSharesToTrustedServersAsInternal)
+
+ if (this.isExternal) {
+ if (getCapabilities().files_sharing.public.enabled === true) {
+ shareType.push(ShareType.Email)
+ }
+ } else {
+ shareType.push(
+ ShareType.User,
+ ShareType.Group,
+ ShareType.Team,
+ ShareType.Room,
+ ShareType.Guest,
+ ShareType.Deck,
+ ShareType.ScienceMesh,
+ )
+ }
+
+ if (shouldAddRemoteTypes) {
+ shareType.push(...remoteTypes)
}
let request = null
@@ -218,13 +242,10 @@ export default {
return
}
- const data = request.data.ocs.data
- const exact = request.data.ocs.data.exact
- data.exact = [] // removing exact from general results
-
+ const { exact, ...data } = request.data.ocs.data
// flatten array of arrays
- const rawExactSuggestions = Object.values(exact).reduce((arr, elem) => arr.concat(elem), [])
- const rawSuggestions = Object.values(data).reduce((arr, elem) => arr.concat(elem), [])
+ const rawExactSuggestions = Object.values(exact).flat()
+ const rawSuggestions = Object.values(data).flat()
// remove invalid data and format to user-select layout
const exactSuggestions = this.filterOutExistingShares(rawExactSuggestions)
@@ -243,7 +264,7 @@ export default {
lookupEntry.push({
id: 'global-lookup',
isNoUser: true,
- displayName: t('files_sharing', 'Search globally'),
+ displayName: t('files_sharing', 'Search everywhere'),
lookup: true,
})
}
@@ -335,7 +356,7 @@ export default {
return arr
}
try {
- if (share.value.shareType === this.SHARE_TYPES.SHARE_TYPE_USER) {
+ if (share.value.shareType === ShareType.User) {
// filter out current user
if (share.value.shareWith === getCurrentUser().uid) {
return arr
@@ -348,7 +369,12 @@ export default {
}
// filter out existing mail shares
- if (share.value.shareType === this.SHARE_TYPES.SHARE_TYPE_EMAIL) {
+ if (share.value.shareType === ShareType.Email) {
+ // When sharing internally, we don't want to suggest email addresses
+ // that the user previously created shares to
+ if (!this.isExternal) {
+ return arr
+ }
const emails = this.linkShares.map(elem => elem.shareWith)
if (emails.indexOf(share.value.shareWith.trim()) !== -1) {
return arr
@@ -386,42 +412,42 @@ export default {
*/
shareTypeToIcon(type) {
switch (type) {
- case this.SHARE_TYPES.SHARE_TYPE_GUEST:
+ case ShareType.Guest:
// default is a user, other icons are here to differentiate
// themselves from it, so let's not display the user icon
- // case this.SHARE_TYPES.SHARE_TYPE_REMOTE:
- // case this.SHARE_TYPES.SHARE_TYPE_USER:
+ // case ShareType.Remote:
+ // case ShareType.User:
return {
icon: 'icon-user',
iconTitle: t('files_sharing', 'Guest'),
}
- case this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP:
- case this.SHARE_TYPES.SHARE_TYPE_GROUP:
+ case ShareType.RemoteGroup:
+ case ShareType.Group:
return {
icon: 'icon-group',
iconTitle: t('files_sharing', 'Group'),
}
- case this.SHARE_TYPES.SHARE_TYPE_EMAIL:
+ case ShareType.Email:
return {
icon: 'icon-mail',
iconTitle: t('files_sharing', 'Email'),
}
- case this.SHARE_TYPES.SHARE_TYPE_CIRCLE:
+ case ShareType.Team:
return {
icon: 'icon-teams',
iconTitle: t('files_sharing', 'Team'),
}
- case this.SHARE_TYPES.SHARE_TYPE_ROOM:
+ case ShareType.Room:
return {
icon: 'icon-room',
iconTitle: t('files_sharing', 'Talk conversation'),
}
- case this.SHARE_TYPES.SHARE_TYPE_DECK:
+ case ShareType.Deck:
return {
icon: 'icon-deck',
iconTitle: t('files_sharing', 'Deck board'),
}
- case this.SHARE_TYPES.SHARE_TYPE_SCIENCEMESH:
+ case ShareType.Sciencemesh:
return {
icon: 'icon-sciencemesh',
iconTitle: t('files_sharing', 'ScienceMesh'),
@@ -438,105 +464,35 @@ export default {
* @return {object}
*/
formatForMultiselect(result) {
- let subtitle
- if (result.value.shareType === this.SHARE_TYPES.SHARE_TYPE_USER && this.config.shouldAlwaysShowUnique) {
- subtitle = result.shareWithDisplayNameUnique ?? ''
- } else if ((result.value.shareType === this.SHARE_TYPES.SHARE_TYPE_REMOTE
- || result.value.shareType === this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP
- ) && result.value.server) {
- subtitle = t('files_sharing', 'on {server}', { server: result.value.server })
- } else if (result.value.shareType === this.SHARE_TYPES.SHARE_TYPE_EMAIL) {
- subtitle = result.value.shareWith
+ let subname
+ let displayName = result.name || result.label
+
+ if (result.value.shareType === ShareType.User && this.config.shouldAlwaysShowUnique) {
+ subname = result.shareWithDisplayNameUnique ?? ''
+ } else if (result.value.shareType === ShareType.Email) {
+ subname = result.value.shareWith
+ } else if (result.value.shareType === ShareType.Remote || result.value.shareType === ShareType.RemoteGroup) {
+ if (this.config.showFederatedSharesAsInternal) {
+ subname = result.extra?.email?.value ?? ''
+ displayName = result.extra?.name?.value ?? displayName
+ } else if (result.value.server) {
+ subname = t('files_sharing', 'on {server}', { server: result.value.server })
+ }
} else {
- subtitle = result.shareWithDescription ?? ''
+ subname = result.shareWithDescription ?? ''
}
return {
shareWith: result.value.shareWith,
shareType: result.value.shareType,
user: result.uuid || result.value.shareWith,
- isNoUser: result.value.shareType !== this.SHARE_TYPES.SHARE_TYPE_USER,
- displayName: result.name || result.label,
- subtitle,
+ isNoUser: result.value.shareType !== ShareType.User,
+ displayName,
+ subname,
shareWithDisplayNameUnique: result.shareWithDisplayNameUnique || '',
...this.shareTypeToIcon(result.value.shareType),
}
},
-
- /**
- * Process the new share request
- *
- * @param {object} value the multiselect option
- */
- async addShare(value) {
- // Clear the displayed selection
- this.value = null
-
- if (value.lookup) {
- await this.getSuggestions(this.query, true)
-
- this.$nextTick(() => {
- // open the dropdown again
- this.$refs.select.$children[0].open = true
- })
- return true
- }
-
- // handle externalResults from OCA.Sharing.ShareSearch
- if (value.handler) {
- const share = await value.handler(this)
- this.$emit('add:share', new Share(share))
- return true
- }
-
- this.loading = true
- console.debug('Adding a new share from the input for', value)
- try {
- let password = null
-
- if (this.config.enforcePasswordForPublicLink
- && value.shareType === this.SHARE_TYPES.SHARE_TYPE_EMAIL) {
- password = await GeneratePassword()
- }
-
- const path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')
- const share = await this.createShare({
- path,
- shareType: value.shareType,
- shareWith: value.shareWith,
- password,
- permissions: this.fileInfo.sharePermissions & getCapabilities().files_sharing.default_permissions,
- attributes: JSON.stringify(this.fileInfo.shareAttributes),
- })
-
- // If we had a password, we need to show it to the user as it was generated
- if (password) {
- share.newPassword = password
- // Wait for the newly added share
- const component = await new Promise(resolve => {
- this.$emit('add:share', share, resolve)
- })
-
- // open the menu on the
- // freshly created share component
- component.open = true
- } else {
- // Else we just add it normally
- this.$emit('add:share', share)
- }
-
- await this.getRecommendations()
- } catch (error) {
- this.$nextTick(() => {
- // open the dropdown again on error
- this.$refs.select.$children[0].open = true
- })
- this.query = value.shareWith
- console.error('Error while adding new share', error)
- } finally {
- this.loading = false
- }
- },
},
}
</script>
diff --git a/apps/files_sharing/src/eventbus.d.ts b/apps/files_sharing/src/eventbus.d.ts
new file mode 100644
index 00000000000..cc10ff8468f
--- /dev/null
+++ b/apps/files_sharing/src/eventbus.d.ts
@@ -0,0 +1,15 @@
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import type { Folder, Node } from '@nextcloud/files'
+
+declare module '@nextcloud/event-bus' {
+ export interface NextcloudEvents {
+ // mapping of 'event name' => 'event type'
+ 'files:list:updated': { folder: Folder, contents: Node[] }
+ 'files:config:updated': { key: string, value: boolean }
+ }
+}
+
+export {}
diff --git a/apps/files_sharing/src/actions/acceptShareAction.spec.ts b/apps/files_sharing/src/files_actions/acceptShareAction.spec.ts
index 0fae52c2103..4003e0799ac 100644
--- a/apps/files_sharing/src/actions/acceptShareAction.spec.ts
+++ b/apps/files_sharing/src/files_actions/acceptShareAction.spec.ts
@@ -1,30 +1,18 @@
/**
- * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
+import { beforeAll, beforeEach, describe, expect, test, vi } from 'vitest'
+
import { action } from './acceptShareAction'
-import { expect } from '@jest/globals'
import { File, Permission, View, FileAction } from '@nextcloud/files'
+import { ShareType } from '@nextcloud/sharing'
import * as eventBus from '@nextcloud/event-bus'
import axios from '@nextcloud/axios'
-import '../main'
+
+import '../main.ts'
+
+vi.mock('@nextcloud/axios')
const view = {
id: 'files',
@@ -55,7 +43,7 @@ describe('Accept share action conditions tests', () => {
expect(action).toBeInstanceOf(FileAction)
expect(action.id).toBe('accept-share')
expect(action.displayName([file], pendingShareView)).toBe('Accept share')
- expect(action.iconSvgInline([file], pendingShareView)).toBe('<svg>SvgMock</svg>')
+ expect(action.iconSvgInline([file], pendingShareView)).toMatch(/<svg.+<\/svg>/)
expect(action.default).toBeUndefined()
expect(action.order).toBe(1)
expect(action.inline).toBeDefined()
@@ -108,9 +96,11 @@ describe('Accept share action enabled tests', () => {
})
describe('Accept share action execute tests', () => {
+ beforeEach(() => { vi.resetAllMocks() })
+
test('Accept share action', async () => {
- jest.spyOn(axios, 'post')
- jest.spyOn(eventBus, 'emit')
+ vi.spyOn(axios, 'post')
+ vi.spyOn(eventBus, 'emit')
const file = new File({
id: 1,
@@ -120,7 +110,7 @@ describe('Accept share action execute tests', () => {
permissions: Permission.READ,
attributes: {
id: 123,
- share_type: window.OC.Share.SHARE_TYPE_USER,
+ share_type: ShareType.User,
},
})
@@ -128,15 +118,15 @@ describe('Accept share action execute tests', () => {
expect(exec).toBe(true)
expect(axios.post).toBeCalledTimes(1)
- expect(axios.post).toBeCalledWith('http://localhost/ocs/v2.php/apps/files_sharing/api/v1/shares/pending/123')
+ expect(axios.post).toBeCalledWith('http://nextcloud.local/ocs/v2.php/apps/files_sharing/api/v1/shares/pending/123')
expect(eventBus.emit).toBeCalledTimes(1)
expect(eventBus.emit).toBeCalledWith('files:node:deleted', file)
})
test('Accept remote share action', async () => {
- jest.spyOn(axios, 'post')
- jest.spyOn(eventBus, 'emit')
+ vi.spyOn(axios, 'post')
+ vi.spyOn(eventBus, 'emit')
const file = new File({
id: 1,
@@ -147,7 +137,7 @@ describe('Accept share action execute tests', () => {
attributes: {
id: 123,
remote: 3,
- share_type: window.OC.Share.SHARE_TYPE_USER,
+ share_type: ShareType.User,
},
})
@@ -155,15 +145,15 @@ describe('Accept share action execute tests', () => {
expect(exec).toBe(true)
expect(axios.post).toBeCalledTimes(1)
- expect(axios.post).toBeCalledWith('http://localhost/ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending/123')
+ expect(axios.post).toBeCalledWith('http://nextcloud.local/ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending/123')
expect(eventBus.emit).toBeCalledTimes(1)
expect(eventBus.emit).toBeCalledWith('files:node:deleted', file)
})
test('Accept share action batch', async () => {
- jest.spyOn(axios, 'post')
- jest.spyOn(eventBus, 'emit')
+ vi.spyOn(axios, 'post')
+ vi.spyOn(eventBus, 'emit')
const file1 = new File({
id: 1,
@@ -173,7 +163,7 @@ describe('Accept share action execute tests', () => {
permissions: Permission.READ,
attributes: {
id: 123,
- share_type: window.OC.Share.SHARE_TYPE_USER,
+ share_type: ShareType.User,
},
})
@@ -185,7 +175,7 @@ describe('Accept share action execute tests', () => {
permissions: Permission.READ,
attributes: {
id: 456,
- share_type: window.OC.Share.SHARE_TYPE_USER,
+ share_type: ShareType.User,
},
})
@@ -193,8 +183,8 @@ describe('Accept share action execute tests', () => {
expect(exec).toStrictEqual([true, true])
expect(axios.post).toBeCalledTimes(2)
- expect(axios.post).toHaveBeenNthCalledWith(1, 'http://localhost/ocs/v2.php/apps/files_sharing/api/v1/shares/pending/123')
- expect(axios.post).toHaveBeenNthCalledWith(2, 'http://localhost/ocs/v2.php/apps/files_sharing/api/v1/shares/pending/456')
+ expect(axios.post).toHaveBeenNthCalledWith(1, 'http://nextcloud.local/ocs/v2.php/apps/files_sharing/api/v1/shares/pending/123')
+ expect(axios.post).toHaveBeenNthCalledWith(2, 'http://nextcloud.local/ocs/v2.php/apps/files_sharing/api/v1/shares/pending/456')
expect(eventBus.emit).toBeCalledTimes(2)
expect(eventBus.emit).toHaveBeenNthCalledWith(1, 'files:node:deleted', file1)
@@ -202,7 +192,7 @@ describe('Accept share action execute tests', () => {
})
test('Accept fails', async () => {
- jest.spyOn(axios, 'post').mockImplementation(() => { throw new Error('Mock error') })
+ vi.spyOn(axios, 'post').mockImplementation(() => { throw new Error('Mock error') })
const file = new File({
id: 1,
@@ -212,7 +202,7 @@ describe('Accept share action execute tests', () => {
permissions: Permission.READ,
attributes: {
id: 123,
- share_type: window.OC.Share.SHARE_TYPE_USER,
+ share_type: ShareType.User,
},
})
@@ -220,7 +210,7 @@ describe('Accept share action execute tests', () => {
expect(exec).toBe(false)
expect(axios.post).toBeCalledTimes(1)
- expect(axios.post).toBeCalledWith('http://localhost/ocs/v2.php/apps/files_sharing/api/v1/shares/pending/123')
+ expect(axios.post).toBeCalledWith('http://nextcloud.local/ocs/v2.php/apps/files_sharing/api/v1/shares/pending/123')
expect(eventBus.emit).toBeCalledTimes(0)
})
diff --git a/apps/files_sharing/src/actions/acceptShareAction.ts b/apps/files_sharing/src/files_actions/acceptShareAction.ts
index 6992b0b53ab..f2177fdec1a 100644
--- a/apps/files_sharing/src/actions/acceptShareAction.ts
+++ b/apps/files_sharing/src/files_actions/acceptShareAction.ts
@@ -1,23 +1,6 @@
/**
- * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
import type { Node, View } from '@nextcloud/files'
@@ -28,7 +11,7 @@ import { translatePlural as n } from '@nextcloud/l10n'
import axios from '@nextcloud/axios'
import CheckSvg from '@mdi/svg/svg/check.svg?raw'
-import { pendingSharesViewId } from '../views/shares'
+import { pendingSharesViewId } from '../files_views/shares'
export const action = new FileAction({
id: 'accept-share',
diff --git a/apps/files_sharing/src/actions/openInFilesAction.spec.ts b/apps/files_sharing/src/files_actions/openInFilesAction.spec.ts
index 5b86b4b9e3f..23c0938545c 100644
--- a/apps/files_sharing/src/actions/openInFilesAction.spec.ts
+++ b/apps/files_sharing/src/files_actions/openInFilesAction.spec.ts
@@ -1,30 +1,13 @@
/**
- * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
-import { expect } from '@jest/globals'
import { File, Permission, View, DefaultType, FileAction } from '@nextcloud/files'
+import { describe, expect, test, vi } from 'vitest'
+import { deletedSharesViewId, pendingSharesViewId, sharedWithOthersViewId, sharedWithYouViewId, sharesViewId, sharingByLinksViewId } from '../files_views/shares'
+import { action } from './openInFilesAction'
import '../main'
-import { action } from './openInFilesAction'
-import { deletedSharesViewId, pendingSharesViewId, sharedWithOthersViewId, sharedWithYouViewId, sharesViewId, sharingByLinksViewId } from '../views/shares'
const view = {
id: 'files',
@@ -46,7 +29,7 @@ const invalidViews = [
describe('Open in files action conditions tests', () => {
test('Default values', () => {
expect(action).toBeInstanceOf(FileAction)
- expect(action.id).toBe('open-in-files')
+ expect(action.id).toBe('files_sharing:open-in-files')
expect(action.displayName([], validViews[0])).toBe('Open in Files')
expect(action.iconSvgInline([], validViews[0])).toBe('')
expect(action.default).toBe(DefaultType.HIDDEN)
@@ -73,7 +56,8 @@ describe('Open in files action enabled tests', () => {
describe('Open in files action execute tests', () => {
test('Open in files', async () => {
- const goToRouteMock = jest.fn()
+ const goToRouteMock = vi.fn()
+ // @ts-expect-error We only mock what needed, we do not need Files.Router.goTo or Files.Navigation
window.OCP = { Files: { Router: { goToRoute: goToRouteMock } } }
const file = new File({
@@ -89,6 +73,6 @@ describe('Open in files action execute tests', () => {
// Silent action
expect(exec).toBe(null)
expect(goToRouteMock).toBeCalledTimes(1)
- expect(goToRouteMock).toBeCalledWith(null, { fileid: 1, view: 'files' }, { dir: '/Foo' })
+ expect(goToRouteMock).toBeCalledWith(null, { fileid: '1', view: 'files' }, { dir: '/Foo', openfile: 'true' })
})
})
diff --git a/apps/files_sharing/src/files_actions/openInFilesAction.ts b/apps/files_sharing/src/files_actions/openInFilesAction.ts
new file mode 100644
index 00000000000..133b4531bb5
--- /dev/null
+++ b/apps/files_sharing/src/files_actions/openInFilesAction.ts
@@ -0,0 +1,50 @@
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import type { Node } from '@nextcloud/files'
+
+import { registerFileAction, FileAction, DefaultType, FileType } from '@nextcloud/files'
+import { translate as t } from '@nextcloud/l10n'
+import { sharesViewId, sharedWithYouViewId, sharedWithOthersViewId, sharingByLinksViewId } from '../files_views/shares'
+
+export const action = new FileAction({
+ id: 'files_sharing:open-in-files',
+ displayName: () => t('files_sharing', 'Open in Files'),
+ iconSvgInline: () => '',
+
+ enabled: (nodes, view) => [
+ sharesViewId,
+ sharedWithYouViewId,
+ sharedWithOthersViewId,
+ sharingByLinksViewId,
+ // Deleted and pending shares are not
+ // accessible in the files app.
+ ].includes(view.id),
+
+ async exec(node: Node) {
+ const isFolder = node.type === FileType.Folder
+
+ window.OCP.Files.Router.goToRoute(
+ null, // use default route
+ {
+ view: 'files',
+ fileid: String(node.fileid),
+ },
+ {
+ // If this node is a folder open the folder in files
+ dir: isFolder ? node.path : node.dirname,
+ // otherwise if this is a file, we should open it
+ openfile: isFolder ? undefined : 'true',
+ },
+ )
+ return null
+ },
+
+ // Before openFolderAction
+ order: -1000,
+ default: DefaultType.HIDDEN,
+})
+
+registerFileAction(action)
diff --git a/apps/files_sharing/src/actions/rejectShareAction.spec.ts b/apps/files_sharing/src/files_actions/rejectShareAction.spec.ts
index 80c142052f9..51ded69d1c5 100644
--- a/apps/files_sharing/src/actions/rejectShareAction.spec.ts
+++ b/apps/files_sharing/src/files_actions/rejectShareAction.spec.ts
@@ -1,31 +1,18 @@
/**
- * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
-import { action } from './rejectShareAction'
-import { expect } from '@jest/globals'
import { File, Folder, Permission, View, FileAction } from '@nextcloud/files'
+import { beforeAll, beforeEach, describe, expect, test, vi } from 'vitest'
+import { ShareType } from '@nextcloud/sharing'
import * as eventBus from '@nextcloud/event-bus'
import axios from '@nextcloud/axios'
+
+import { action } from './rejectShareAction'
import '../main'
+vi.mock('@nextcloud/axios')
+
const view = {
id: 'files',
name: 'Files',
@@ -55,7 +42,7 @@ describe('Reject share action conditions tests', () => {
expect(action).toBeInstanceOf(FileAction)
expect(action.id).toBe('reject-share')
expect(action.displayName([file], pendingShareView)).toBe('Reject share')
- expect(action.iconSvgInline([file], pendingShareView)).toBe('<svg>SvgMock</svg>')
+ expect(action.iconSvgInline([file], pendingShareView)).toMatch(/<svg.+<\/svg>/)
expect(action.default).toBeUndefined()
expect(action.order).toBe(2)
expect(action.inline).toBeDefined()
@@ -113,7 +100,7 @@ describe('Reject share action enabled tests', () => {
owner: 'admin',
permissions: Permission.READ,
attributes: {
- share_type: window.OC.Share.SHARE_TYPE_USER,
+ share_type: ShareType.User,
},
})
const folder2 = new Folder({
@@ -123,7 +110,7 @@ describe('Reject share action enabled tests', () => {
permissions: Permission.READ,
attributes: {
remote_id: 1,
- share_type: window.OC.Share.SHARE_TYPE_REMOTE_GROUP,
+ share_type: ShareType.RemoteGroup,
},
})
@@ -135,9 +122,11 @@ describe('Reject share action enabled tests', () => {
})
describe('Reject share action execute tests', () => {
+ beforeEach(() => { vi.resetAllMocks() })
+
test('Reject share action', async () => {
- jest.spyOn(axios, 'delete')
- jest.spyOn(eventBus, 'emit')
+ vi.spyOn(axios, 'delete')
+ vi.spyOn(eventBus, 'emit')
const file = new File({
id: 1,
@@ -147,7 +136,7 @@ describe('Reject share action execute tests', () => {
permissions: Permission.READ,
attributes: {
id: 123,
- share_type: window.OC.Share.SHARE_TYPE_USER,
+ share_type: ShareType.User,
},
})
@@ -155,15 +144,15 @@ describe('Reject share action execute tests', () => {
expect(exec).toBe(true)
expect(axios.delete).toBeCalledTimes(1)
- expect(axios.delete).toBeCalledWith('http://localhost/ocs/v2.php/apps/files_sharing/api/v1/shares/123')
+ expect(axios.delete).toBeCalledWith('http://nextcloud.local/ocs/v2.php/apps/files_sharing/api/v1/shares/123')
expect(eventBus.emit).toBeCalledTimes(1)
expect(eventBus.emit).toBeCalledWith('files:node:deleted', file)
})
test('Reject remote share action', async () => {
- jest.spyOn(axios, 'delete')
- jest.spyOn(eventBus, 'emit')
+ vi.spyOn(axios, 'delete')
+ vi.spyOn(eventBus, 'emit')
const file = new File({
id: 1,
@@ -174,7 +163,7 @@ describe('Reject share action execute tests', () => {
attributes: {
id: 123,
remote: 3,
- share_type: window.OC.Share.SHARE_TYPE_USER,
+ share_type: ShareType.User,
},
})
@@ -182,15 +171,15 @@ describe('Reject share action execute tests', () => {
expect(exec).toBe(true)
expect(axios.delete).toBeCalledTimes(1)
- expect(axios.delete).toBeCalledWith('http://localhost/ocs/v2.php/apps/files_sharing/api/v1/remote_shares/123')
+ expect(axios.delete).toBeCalledWith('http://nextcloud.local/ocs/v2.php/apps/files_sharing/api/v1/remote_shares/123')
expect(eventBus.emit).toBeCalledTimes(1)
expect(eventBus.emit).toBeCalledWith('files:node:deleted', file)
})
test('Reject share action batch', async () => {
- jest.spyOn(axios, 'delete')
- jest.spyOn(eventBus, 'emit')
+ vi.spyOn(axios, 'delete')
+ vi.spyOn(eventBus, 'emit')
const file1 = new File({
id: 1,
@@ -200,7 +189,7 @@ describe('Reject share action execute tests', () => {
permissions: Permission.READ,
attributes: {
id: 123,
- share_type: window.OC.Share.SHARE_TYPE_USER,
+ share_type: ShareType.User,
},
})
@@ -212,7 +201,7 @@ describe('Reject share action execute tests', () => {
permissions: Permission.READ,
attributes: {
id: 456,
- share_type: window.OC.Share.SHARE_TYPE_USER,
+ share_type: ShareType.User,
},
})
@@ -220,8 +209,8 @@ describe('Reject share action execute tests', () => {
expect(exec).toStrictEqual([true, true])
expect(axios.delete).toBeCalledTimes(2)
- expect(axios.delete).toHaveBeenNthCalledWith(1, 'http://localhost/ocs/v2.php/apps/files_sharing/api/v1/shares/123')
- expect(axios.delete).toHaveBeenNthCalledWith(2, 'http://localhost/ocs/v2.php/apps/files_sharing/api/v1/shares/456')
+ expect(axios.delete).toHaveBeenNthCalledWith(1, 'http://nextcloud.local/ocs/v2.php/apps/files_sharing/api/v1/shares/123')
+ expect(axios.delete).toHaveBeenNthCalledWith(2, 'http://nextcloud.local/ocs/v2.php/apps/files_sharing/api/v1/shares/456')
expect(eventBus.emit).toBeCalledTimes(2)
expect(eventBus.emit).toHaveBeenNthCalledWith(1, 'files:node:deleted', file1)
@@ -229,7 +218,7 @@ describe('Reject share action execute tests', () => {
})
test('Reject fails', async () => {
- jest.spyOn(axios, 'delete').mockImplementation(() => { throw new Error('Mock error') })
+ vi.spyOn(axios, 'delete').mockImplementation(() => { throw new Error('Mock error') })
const file = new File({
id: 1,
@@ -239,7 +228,7 @@ describe('Reject share action execute tests', () => {
permissions: Permission.READ,
attributes: {
id: 123,
- share_type: window.OC.Share.SHARE_TYPE_USER,
+ share_type: ShareType.User,
},
})
@@ -247,7 +236,7 @@ describe('Reject share action execute tests', () => {
expect(exec).toBe(false)
expect(axios.delete).toBeCalledTimes(1)
- expect(axios.delete).toBeCalledWith('http://localhost/ocs/v2.php/apps/files_sharing/api/v1/shares/123')
+ expect(axios.delete).toBeCalledWith('http://nextcloud.local/ocs/v2.php/apps/files_sharing/api/v1/shares/123')
expect(eventBus.emit).toBeCalledTimes(0)
})
diff --git a/apps/files_sharing/src/actions/rejectShareAction.ts b/apps/files_sharing/src/files_actions/rejectShareAction.ts
index d7ba1a5d560..22f77262ef2 100644
--- a/apps/files_sharing/src/actions/rejectShareAction.ts
+++ b/apps/files_sharing/src/files_actions/rejectShareAction.ts
@@ -1,23 +1,6 @@
/**
- * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
import type { Node, View } from '@nextcloud/files'
@@ -25,11 +8,12 @@ import { emit } from '@nextcloud/event-bus'
import { generateOcsUrl } from '@nextcloud/router'
import { registerFileAction, FileAction } from '@nextcloud/files'
import { translatePlural as n } from '@nextcloud/l10n'
+import { ShareType } from '@nextcloud/sharing'
+import { pendingSharesViewId } from '../files_views/shares'
+
import axios from '@nextcloud/axios'
import CloseSvg from '@mdi/svg/svg/close.svg?raw'
-import { pendingSharesViewId } from '../views/shares'
-
export const action = new FileAction({
id: 'reject-share',
displayName: (nodes: Node[]) => n('files_sharing', 'Reject share', 'Reject shares', nodes.length),
@@ -47,7 +31,7 @@ export const action = new FileAction({
// disable rejecting group shares from the pending list because they anyway
// land back into that same list after rejecting them
if (nodes.some(node => node.attributes.remote_id
- && node.attributes.share_type === window.OC.Share.SHARE_TYPE_REMOTE_GROUP)) {
+ && node.attributes.share_type === ShareType.RemoteGroup)) {
return false
}
diff --git a/apps/files_sharing/src/actions/restoreShareAction.spec.ts b/apps/files_sharing/src/files_actions/restoreShareAction.spec.ts
index f39694ac730..015aa8aa95d 100644
--- a/apps/files_sharing/src/actions/restoreShareAction.spec.ts
+++ b/apps/files_sharing/src/files_actions/restoreShareAction.spec.ts
@@ -1,30 +1,18 @@
/**
- * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
-import { action } from './restoreShareAction'
-import { expect } from '@jest/globals'
import { File, Permission, View, FileAction } from '@nextcloud/files'
-import * as eventBus from '@nextcloud/event-bus'
+import { ShareType } from '@nextcloud/sharing'
+import { beforeAll, beforeEach, describe, expect, test, vi } from 'vitest'
+
import axios from '@nextcloud/axios'
-import '../main'
+import * as eventBus from '@nextcloud/event-bus'
+import { action } from './restoreShareAction'
+import '../main.ts'
+
+vi.mock('@nextcloud/auth')
+vi.mock('@nextcloud/axios')
const view = {
id: 'files',
@@ -55,7 +43,7 @@ describe('Restore share action conditions tests', () => {
expect(action).toBeInstanceOf(FileAction)
expect(action.id).toBe('restore-share')
expect(action.displayName([file], deletedShareView)).toBe('Restore share')
- expect(action.iconSvgInline([file], deletedShareView)).toBe('<svg>SvgMock</svg>')
+ expect(action.iconSvgInline([file], deletedShareView)).toMatch(/<svg.+<\/svg>/)
expect(action.default).toBeUndefined()
expect(action.order).toBe(1)
expect(action.inline).toBeDefined()
@@ -108,9 +96,11 @@ describe('Restore share action enabled tests', () => {
})
describe('Restore share action execute tests', () => {
+ beforeEach(() => { vi.resetAllMocks() })
+
test('Restore share action', async () => {
- jest.spyOn(axios, 'post')
- jest.spyOn(eventBus, 'emit')
+ vi.spyOn(axios, 'post')
+ vi.spyOn(eventBus, 'emit')
const file = new File({
id: 1,
@@ -120,7 +110,7 @@ describe('Restore share action execute tests', () => {
permissions: Permission.READ,
attributes: {
id: 123,
- share_type: window.OC.Share.SHARE_TYPE_USER,
+ share_type: ShareType.User,
},
})
@@ -128,15 +118,15 @@ describe('Restore share action execute tests', () => {
expect(exec).toBe(true)
expect(axios.post).toBeCalledTimes(1)
- expect(axios.post).toBeCalledWith('http://localhost/ocs/v2.php/apps/files_sharing/api/v1/deletedshares/123')
+ expect(axios.post).toBeCalledWith('http://nextcloud.local/ocs/v2.php/apps/files_sharing/api/v1/deletedshares/123')
expect(eventBus.emit).toBeCalledTimes(1)
expect(eventBus.emit).toBeCalledWith('files:node:deleted', file)
})
test('Restore share action batch', async () => {
- jest.spyOn(axios, 'post')
- jest.spyOn(eventBus, 'emit')
+ vi.spyOn(axios, 'post')
+ vi.spyOn(eventBus, 'emit')
const file1 = new File({
id: 1,
@@ -146,7 +136,7 @@ describe('Restore share action execute tests', () => {
permissions: Permission.READ,
attributes: {
id: 123,
- share_type: window.OC.Share.SHARE_TYPE_USER,
+ share_type: ShareType.User,
},
})
@@ -158,7 +148,7 @@ describe('Restore share action execute tests', () => {
permissions: Permission.READ,
attributes: {
id: 456,
- share_type: window.OC.Share.SHARE_TYPE_USER,
+ share_type: ShareType.User,
},
})
@@ -166,8 +156,8 @@ describe('Restore share action execute tests', () => {
expect(exec).toStrictEqual([true, true])
expect(axios.post).toBeCalledTimes(2)
- expect(axios.post).toHaveBeenNthCalledWith(1, 'http://localhost/ocs/v2.php/apps/files_sharing/api/v1/deletedshares/123')
- expect(axios.post).toHaveBeenNthCalledWith(2, 'http://localhost/ocs/v2.php/apps/files_sharing/api/v1/deletedshares/456')
+ expect(axios.post).toHaveBeenNthCalledWith(1, 'http://nextcloud.local/ocs/v2.php/apps/files_sharing/api/v1/deletedshares/123')
+ expect(axios.post).toHaveBeenNthCalledWith(2, 'http://nextcloud.local/ocs/v2.php/apps/files_sharing/api/v1/deletedshares/456')
expect(eventBus.emit).toBeCalledTimes(2)
expect(eventBus.emit).toHaveBeenNthCalledWith(1, 'files:node:deleted', file1)
@@ -175,7 +165,8 @@ describe('Restore share action execute tests', () => {
})
test('Restore fails', async () => {
- jest.spyOn(axios, 'post').mockImplementation(() => { throw new Error('Mock error') })
+ vi.spyOn(axios, 'post')
+ .mockImplementation(() => { throw new Error('Mock error') })
const file = new File({
id: 1,
@@ -185,7 +176,7 @@ describe('Restore share action execute tests', () => {
permissions: Permission.READ,
attributes: {
id: 123,
- share_type: window.OC.Share.SHARE_TYPE_USER,
+ share_type: ShareType.User,
},
})
@@ -193,7 +184,7 @@ describe('Restore share action execute tests', () => {
expect(exec).toBe(false)
expect(axios.post).toBeCalledTimes(1)
- expect(axios.post).toBeCalledWith('http://localhost/ocs/v2.php/apps/files_sharing/api/v1/deletedshares/123')
+ expect(axios.post).toBeCalledWith('http://nextcloud.local/ocs/v2.php/apps/files_sharing/api/v1/deletedshares/123')
expect(eventBus.emit).toBeCalledTimes(0)
})
diff --git a/apps/files_sharing/src/actions/restoreShareAction.ts b/apps/files_sharing/src/files_actions/restoreShareAction.ts
index c41f3f2c413..2d51de387ee 100644
--- a/apps/files_sharing/src/actions/restoreShareAction.ts
+++ b/apps/files_sharing/src/files_actions/restoreShareAction.ts
@@ -1,23 +1,6 @@
/**
- * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
import type { Node, View } from '@nextcloud/files'
@@ -28,7 +11,7 @@ import { translatePlural as n } from '@nextcloud/l10n'
import ArrowULeftTopSvg from '@mdi/svg/svg/arrow-u-left-top.svg?raw'
import axios from '@nextcloud/axios'
-import { deletedSharesViewId } from '../views/shares'
+import { deletedSharesViewId } from '../files_views/shares'
export const action = new FileAction({
id: 'restore-share',
diff --git a/apps/files_sharing/src/files_actions/sharingStatusAction.scss b/apps/files_sharing/src/files_actions/sharingStatusAction.scss
new file mode 100644
index 00000000000..3a6690f40f1
--- /dev/null
+++ b/apps/files_sharing/src/files_actions/sharingStatusAction.scss
@@ -0,0 +1,29 @@
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+ // Only when rendered inline, when not enough space, this is put in the menu
+.action-items > .files-list__row-action-sharing-status {
+ // put icon at the end of the button
+ direction: rtl;
+ // align icons with text-less inline actions
+ padding-inline-end: 0 !important;
+}
+
+svg.sharing-status__avatar {
+ height: 32px !important;
+ width: 32px !important;
+ max-height: 32px !important;
+ max-width: 32px !important;
+ border-radius: 32px;
+ overflow: hidden;
+}
+
+.files-list__row-action-sharing-status {
+ .button-vue__text {
+ color: var(--color-primary-element);
+ }
+ .button-vue__icon {
+ color: var(--color-primary-element);
+ }
+}
diff --git a/apps/files_sharing/src/files_actions/sharingStatusAction.ts b/apps/files_sharing/src/files_actions/sharingStatusAction.ts
new file mode 100644
index 00000000000..18fa46d2781
--- /dev/null
+++ b/apps/files_sharing/src/files_actions/sharingStatusAction.ts
@@ -0,0 +1,144 @@
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import { getCurrentUser } from '@nextcloud/auth'
+import { Node, View, registerFileAction, FileAction, Permission } from '@nextcloud/files'
+import { translate as t } from '@nextcloud/l10n'
+import { ShareType } from '@nextcloud/sharing'
+import { isPublicShare } from '@nextcloud/sharing/public'
+
+import AccountGroupSvg from '@mdi/svg/svg/account-group-outline.svg?raw'
+import AccountPlusSvg from '@mdi/svg/svg/account-plus-outline.svg?raw'
+import LinkSvg from '@mdi/svg/svg/link.svg?raw'
+import CircleSvg from '../../../../core/img/apps/circles.svg?raw'
+
+import { action as sidebarAction } from '../../../files/src/actions/sidebarAction'
+import { generateAvatarSvg } from '../utils/AccountIcon'
+
+import './sharingStatusAction.scss'
+
+const isExternal = (node: Node) => {
+ return node.attributes?.['is-federated'] ?? false
+}
+
+export const ACTION_SHARING_STATUS = 'sharing-status'
+export const action = new FileAction({
+ id: ACTION_SHARING_STATUS,
+ displayName(nodes: Node[]) {
+ const node = nodes[0]
+ const shareTypes = Object.values(node?.attributes?.['share-types'] || {}).flat() as number[]
+
+ if (shareTypes.length > 0
+ || (node.owner !== getCurrentUser()?.uid || isExternal(node))) {
+ return t('files_sharing', 'Shared')
+ }
+
+ return ''
+ },
+
+ title(nodes: Node[]) {
+ const node = nodes[0]
+
+ if (node.owner && (node.owner !== getCurrentUser()?.uid || isExternal(node))) {
+ const ownerDisplayName = node?.attributes?.['owner-display-name']
+ return t('files_sharing', 'Shared by {ownerDisplayName}', { ownerDisplayName })
+ }
+
+ const shareTypes = Object.values(node?.attributes?.['share-types'] || {}).flat() as number[]
+ if (shareTypes.length > 1) {
+ return t('files_sharing', 'Shared multiple times with different people')
+ }
+
+ const sharees = node.attributes.sharees?.sharee as { id: string, 'display-name': string, type: ShareType }[] | undefined
+ if (!sharees) {
+ // No sharees so just show the default message to create a new share
+ return t('files_sharing', 'Sharing options')
+ }
+
+ const sharee = [sharees].flat()[0] // the property is sometimes weirdly normalized, so we need to compensate
+ switch (sharee.type) {
+ case ShareType.User:
+ return t('files_sharing', 'Shared with {user}', { user: sharee['display-name'] })
+ case ShareType.Group:
+ return t('files_sharing', 'Shared with group {group}', { group: sharee['display-name'] ?? sharee.id })
+ default:
+ return t('files_sharing', 'Shared with others')
+ }
+ },
+
+ iconSvgInline(nodes: Node[]) {
+ const node = nodes[0]
+ const shareTypes = Object.values(node?.attributes?.['share-types'] || {}).flat() as number[]
+
+ // Mixed share types
+ if (Array.isArray(node.attributes?.['share-types']) && node.attributes?.['share-types'].length > 1) {
+ return AccountPlusSvg
+ }
+
+ // Link shares
+ if (shareTypes.includes(ShareType.Link)
+ || shareTypes.includes(ShareType.Email)) {
+ return LinkSvg
+ }
+
+ // Group shares
+ if (shareTypes.includes(ShareType.Group)
+ || shareTypes.includes(ShareType.RemoteGroup)) {
+ return AccountGroupSvg
+ }
+
+ // Circle shares
+ if (shareTypes.includes(ShareType.Team)) {
+ return CircleSvg
+ }
+
+ if (node.owner && (node.owner !== getCurrentUser()?.uid || isExternal(node))) {
+ return generateAvatarSvg(node.owner, isExternal(node))
+ }
+
+ return AccountPlusSvg
+ },
+
+ enabled(nodes: Node[]) {
+ if (nodes.length !== 1) {
+ return false
+ }
+
+ // Do not leak information about users to public shares
+ if (isPublicShare()) {
+ return false
+ }
+
+ const node = nodes[0]
+ const shareTypes = node.attributes?.['share-types']
+ const isMixed = Array.isArray(shareTypes) && shareTypes.length > 0
+
+ // If the node is shared multiple times with
+ // different share types to the current user
+ if (isMixed) {
+ return true
+ }
+
+ // If the node is shared by someone else
+ if (node.owner !== getCurrentUser()?.uid || isExternal(node)) {
+ return true
+ }
+
+ return (node.permissions & Permission.SHARE) !== 0
+ },
+
+ async exec(node: Node, view: View, dir: string) {
+ // You need read permissions to see the sidebar
+ if ((node.permissions & Permission.READ) !== 0) {
+ window.OCA?.Files?.Sidebar?.setActiveTab?.('sharing')
+ return sidebarAction.exec(node, view, dir)
+ }
+ return null
+ },
+
+ inline: () => true,
+
+})
+
+registerFileAction(action)
diff --git a/apps/files_sharing/src/files_filters/AccountFilter.ts b/apps/files_sharing/src/files_filters/AccountFilter.ts
new file mode 100644
index 00000000000..4f185d9fd9c
--- /dev/null
+++ b/apps/files_sharing/src/files_filters/AccountFilter.ts
@@ -0,0 +1,162 @@
+/*!
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import type { IFileListFilterChip, INode } from '@nextcloud/files'
+
+import { subscribe } from '@nextcloud/event-bus'
+import { FileListFilter, registerFileListFilter } from '@nextcloud/files'
+import { ShareType } from '@nextcloud/sharing'
+import Vue from 'vue'
+
+import FileListFilterAccount from '../components/FileListFilterAccount.vue'
+import { isPublicShare } from '@nextcloud/sharing/public'
+
+export interface IAccountData {
+ uid: string
+ displayName: string
+}
+
+type CurrentInstance = Vue & {
+ resetFilter: () => void
+ setAvailableAccounts: (accounts: IAccountData[]) => void
+ toggleAccount: (account: string) => void
+}
+
+/**
+ * File list filter to filter by owner / sharee
+ */
+class AccountFilter extends FileListFilter {
+
+ private availableAccounts: IAccountData[]
+ private currentInstance?: CurrentInstance
+ private filterAccounts?: IAccountData[]
+
+ constructor() {
+ super('files_sharing:account', 100)
+ this.availableAccounts = []
+
+ subscribe('files:list:updated', ({ contents }) => {
+ this.updateAvailableAccounts(contents)
+ })
+ }
+
+ public mount(el: HTMLElement) {
+ if (this.currentInstance) {
+ this.currentInstance.$destroy()
+ }
+
+ const View = Vue.extend(FileListFilterAccount as never)
+ this.currentInstance = new View({ el })
+ .$on('update:accounts', (accounts?: IAccountData[]) => this.setAccounts(accounts))
+ .$mount() as CurrentInstance
+ this.currentInstance
+ .setAvailableAccounts(this.availableAccounts)
+ }
+
+ public filter(nodes: INode[]): INode[] {
+ if (!this.filterAccounts || this.filterAccounts.length === 0) {
+ return nodes
+ }
+
+ const userIds = this.filterAccounts.map(({ uid }) => uid)
+ // Filter if the owner of the node is in the list of filtered accounts
+ return nodes.filter((node) => {
+ const sharees = node.attributes.sharees?.sharee as { id: string }[] | undefined
+ // If the node provides no information lets keep it
+ if (!node.owner && !sharees) {
+ return true
+ }
+ // if the owner matches
+ if (node.owner && userIds.includes(node.owner)) {
+ return true
+ }
+ // Or any of the sharees (if only one share this will be an object, otherwise an array. So using `.flat()` to make it always an array)
+ if (sharees && [sharees].flat().some(({ id }) => userIds.includes(id))) {
+ return true
+ }
+ // Not a valid node for the current filter
+ return false
+ })
+ }
+
+ public reset(): void {
+ this.currentInstance?.resetFilter()
+ }
+
+ /**
+ * Set accounts that should be filtered.
+ *
+ * @param accounts - Account to filter or undefined if inactive.
+ */
+ public setAccounts(accounts?: IAccountData[]) {
+ this.filterAccounts = accounts
+ let chips: IFileListFilterChip[] = []
+ if (this.filterAccounts && this.filterAccounts.length > 0) {
+ chips = this.filterAccounts.map(({ displayName, uid }) => ({
+ text: displayName,
+ user: uid,
+ onclick: () => this.currentInstance?.toggleAccount(uid),
+ }))
+ }
+
+ this.updateChips(chips)
+ this.filterUpdated()
+ }
+
+ /**
+ * Update the accounts owning nodes or have nodes shared to them.
+ *
+ * @param nodes - The current content of the file list.
+ */
+ protected updateAvailableAccounts(nodes: INode[]): void {
+ const available = new Map<string, IAccountData>()
+
+ for (const node of nodes) {
+ const owner = node.owner
+ if (owner && !available.has(owner)) {
+ available.set(owner, {
+ uid: owner,
+ displayName: node.attributes['owner-display-name'] ?? node.owner,
+ })
+ }
+
+ // ensure sharees is an array (if only one share then it is just an object)
+ const sharees: { id: string, 'display-name': string, type: ShareType }[] = [node.attributes.sharees?.sharee].flat().filter(Boolean)
+ for (const sharee of [sharees].flat()) {
+ // Skip link shares and other without user
+ if (sharee.id === '') {
+ continue
+ }
+ if (sharee.type !== ShareType.User && sharee.type !== ShareType.Remote) {
+ continue
+ }
+ // Add if not already added
+ if (!available.has(sharee.id)) {
+ available.set(sharee.id, {
+ uid: sharee.id,
+ displayName: sharee['display-name'],
+ })
+ }
+ }
+ }
+
+ this.availableAccounts = [...available.values()]
+ if (this.currentInstance) {
+ this.currentInstance.setAvailableAccounts(this.availableAccounts)
+ }
+ }
+
+}
+
+/**
+ * Register the file list filter by owner or sharees
+ */
+export function registerAccountFilter() {
+ if (isPublicShare()) {
+ // We do not show the filter on public pages - it makes no sense
+ return
+ }
+
+ registerFileListFilter(new AccountFilter())
+}
diff --git a/apps/files_sharing/src/files_headers/noteToRecipient.ts b/apps/files_sharing/src/files_headers/noteToRecipient.ts
new file mode 100644
index 00000000000..7cf859172c5
--- /dev/null
+++ b/apps/files_sharing/src/files_headers/noteToRecipient.ts
@@ -0,0 +1,40 @@
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import type { ComponentPublicInstance, VueConstructor } from 'vue'
+
+import { Folder, Header, registerFileListHeaders } from '@nextcloud/files'
+import Vue from 'vue'
+
+type IFilesHeaderNoteToRecipient = ComponentPublicInstance & { updateFolder: (folder: Folder) => void }
+
+/**
+ * Register the "note to recipient" as a files list header
+ */
+export default function registerNoteToRecipient() {
+ let FilesHeaderNoteToRecipient: VueConstructor
+ let instance: IFilesHeaderNoteToRecipient
+
+ registerFileListHeaders(new Header({
+ id: 'note-to-recipient',
+ order: 0,
+ // Always if there is a note
+ enabled: (folder: Folder) => Boolean(folder.attributes.note),
+ // Update the root folder if needed
+ updated: (folder: Folder) => {
+ if (instance) {
+ instance.updateFolder(folder)
+ }
+ },
+ // render simply spawns the component
+ render: async (el: HTMLElement, folder: Folder) => {
+ if (FilesHeaderNoteToRecipient === undefined) {
+ const { default: component } = await import('../views/FilesHeaderNoteToRecipient.vue')
+ FilesHeaderNoteToRecipient = Vue.extend(component)
+ }
+ instance = new FilesHeaderNoteToRecipient().$mount(el) as unknown as IFilesHeaderNoteToRecipient
+ instance.updateFolder(folder)
+ },
+ }))
+}
diff --git a/apps/files_sharing/src/files_newMenu/newFileRequest.ts b/apps/files_sharing/src/files_newMenu/newFileRequest.ts
new file mode 100644
index 00000000000..1d58e3552a2
--- /dev/null
+++ b/apps/files_sharing/src/files_newMenu/newFileRequest.ts
@@ -0,0 +1,42 @@
+/**
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import type { Entry, Folder, Node } from '@nextcloud/files'
+
+import { defineAsyncComponent } from 'vue'
+import { spawnDialog } from '@nextcloud/dialogs'
+import { translate as t } from '@nextcloud/l10n'
+import FileUploadSvg from '@mdi/svg/svg/file-upload-outline.svg?raw'
+
+import Config from '../services/ConfigService'
+import { isPublicShare } from '@nextcloud/sharing/public'
+const sharingConfig = new Config()
+
+const NewFileRequestDialogVue = defineAsyncComponent(() => import('../components/NewFileRequestDialog.vue'))
+
+export const EntryId = 'file-request'
+
+export const entry = {
+ id: EntryId,
+ displayName: t('files_sharing', 'Create file request'),
+ iconSvgInline: FileUploadSvg,
+ order: 10,
+ enabled(): boolean {
+ // not on public shares
+ if (isPublicShare()) {
+ return false
+ }
+ if (!sharingConfig.isPublicUploadEnabled) {
+ return false
+ }
+ // We will check for the folder permission on the dialog
+ return sharingConfig.isPublicShareAllowed
+ },
+ async handler(context: Folder, content: Node[]) {
+ spawnDialog(NewFileRequestDialogVue, {
+ context,
+ content,
+ })
+ },
+} as Entry
diff --git a/apps/files_sharing/src/files_sharing_tab.js b/apps/files_sharing/src/files_sharing_tab.js
index 602992320d1..6afcfa76717 100644
--- a/apps/files_sharing/src/files_sharing_tab.js
+++ b/apps/files_sharing/src/files_sharing_tab.js
@@ -1,29 +1,11 @@
/**
- * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Julius Härtl <jus@bitgrid.net>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
import Vue from 'vue'
-import { translate as t, translatePlural as n } from '@nextcloud/l10n'
-import { getRequestToken } from '@nextcloud/auth'
+import { getCSPNonce } from '@nextcloud/auth'
+import { t, n } from '@nextcloud/l10n'
import ShareSearch from './services/ShareSearch.js'
import ExternalLinkActions from './services/ExternalLinkActions.js'
@@ -34,7 +16,7 @@ import TabSections from './services/TabSections.js'
import ShareVariant from '@mdi/svg/svg/share-variant.svg?raw'
// eslint-disable-next-line camelcase
-__webpack_nonce__ = btoa(getRequestToken())
+__webpack_nonce__ = getCSPNonce()
// Init Sharing Tab Service
if (!window.OCA.Sharing) {
@@ -73,12 +55,16 @@ window.addEventListener('DOMContentLoaded', function() {
await TabInstance.update(fileInfo)
TabInstance.$mount(el)
},
+
update(fileInfo) {
TabInstance.update(fileInfo)
},
+
destroy() {
- TabInstance.$destroy()
- TabInstance = null
+ if (TabInstance) {
+ TabInstance.$destroy()
+ TabInstance = null
+ }
},
}))
}
diff --git a/apps/files_sharing/src/files_views/publicFileDrop.ts b/apps/files_sharing/src/files_views/publicFileDrop.ts
new file mode 100644
index 00000000000..65756e83c74
--- /dev/null
+++ b/apps/files_sharing/src/files_views/publicFileDrop.ts
@@ -0,0 +1,60 @@
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import type { VueConstructor } from 'vue'
+
+import { Folder, Permission, View, getNavigation } from '@nextcloud/files'
+import { defaultRemoteURL, defaultRootPath } from '@nextcloud/files/dav'
+import { loadState } from '@nextcloud/initial-state'
+import { translate as t } from '@nextcloud/l10n'
+import svgCloudUpload from '@mdi/svg/svg/cloud-upload.svg?raw'
+import Vue from 'vue'
+
+export default () => {
+ const foldername = loadState<string>('files_sharing', 'filename')
+
+ let FilesViewFileDropEmptyContent: VueConstructor
+ let fileDropEmptyContentInstance: Vue
+
+ const view = new View({
+ id: 'public-file-drop',
+ name: t('files_sharing', 'File drop'),
+ caption: t('files_sharing', 'Upload files to {foldername}', { foldername }),
+ icon: svgCloudUpload,
+ order: 1,
+
+ emptyView: async (div: HTMLDivElement) => {
+ if (FilesViewFileDropEmptyContent === undefined) {
+ const { default: component } = await import('../views/FilesViewFileDropEmptyContent.vue')
+ FilesViewFileDropEmptyContent = Vue.extend(component)
+ }
+ if (fileDropEmptyContentInstance) {
+ fileDropEmptyContentInstance.$destroy()
+ }
+ fileDropEmptyContentInstance = new FilesViewFileDropEmptyContent({
+ propsData: {
+ foldername,
+ },
+ })
+ fileDropEmptyContentInstance.$mount(div)
+ },
+
+ getContents: async () => {
+ return {
+ contents: [],
+ // Fake a writeonly folder as root
+ folder: new Folder({
+ id: 0,
+ source: `${defaultRemoteURL}${defaultRootPath}`,
+ root: defaultRootPath,
+ owner: null,
+ permissions: Permission.CREATE,
+ }),
+ }
+ },
+ })
+
+ const Navigation = getNavigation()
+ Navigation.register(view)
+}
diff --git a/apps/files_sharing/src/files_views/publicFileShare.ts b/apps/files_sharing/src/files_views/publicFileShare.ts
new file mode 100644
index 00000000000..caa7f862e57
--- /dev/null
+++ b/apps/files_sharing/src/files_views/publicFileShare.ts
@@ -0,0 +1,66 @@
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import type { FileStat, ResponseDataDetailed } from 'webdav'
+import { Folder, Permission, View, davGetDefaultPropfind, davRemoteURL, davResultToNode, davRootPath, getNavigation } from '@nextcloud/files'
+import { translate as t } from '@nextcloud/l10n'
+import { CancelablePromise } from 'cancelable-promise'
+import LinkSvg from '@mdi/svg/svg/link.svg?raw'
+
+import { client } from '../../../files/src/services/WebdavClient'
+import logger from '../services/logger'
+
+export default () => {
+ const view = new View({
+ id: 'public-file-share',
+ name: t('files_sharing', 'Public file share'),
+ caption: t('files_sharing', 'Publicly shared file.'),
+
+ emptyTitle: t('files_sharing', 'No file'),
+ emptyCaption: t('files_sharing', 'The file shared with you will show up here'),
+
+ icon: LinkSvg,
+ order: 1,
+
+ getContents: () => {
+ return new CancelablePromise(async (resolve, reject, onCancel) => {
+ const abort = new AbortController()
+ onCancel(() => abort.abort())
+ try {
+ const node = await client.stat(
+ davRootPath,
+ {
+ data: davGetDefaultPropfind(),
+ details: true,
+ signal: abort.signal,
+ },
+ ) as ResponseDataDetailed<FileStat>
+
+ resolve({
+ // We only have one file as the content
+ contents: [davResultToNode(node.data)],
+ // Fake a readonly folder as root
+ folder: new Folder({
+ id: 0,
+ source: `${davRemoteURL}${davRootPath}`,
+ root: davRootPath,
+ owner: null,
+ permissions: Permission.READ,
+ attributes: {
+ // Ensure the share note is set on the root
+ note: node.data.props?.note,
+ },
+ }),
+ })
+ } catch (e) {
+ logger.error(e as Error)
+ reject(e as Error)
+ }
+ })
+ },
+ })
+
+ const Navigation = getNavigation()
+ Navigation.register(view)
+}
diff --git a/apps/files_sharing/src/files_views/publicShare.ts b/apps/files_sharing/src/files_views/publicShare.ts
new file mode 100644
index 00000000000..4f5526bc829
--- /dev/null
+++ b/apps/files_sharing/src/files_views/publicShare.ts
@@ -0,0 +1,28 @@
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import { translate as t } from '@nextcloud/l10n'
+import { View, getNavigation } from '@nextcloud/files'
+import LinkSvg from '@mdi/svg/svg/link.svg?raw'
+
+import { getContents } from '../../../files/src/services/Files'
+
+export default () => {
+ const view = new View({
+ id: 'public-share',
+ name: t('files_sharing', 'Public share'),
+ caption: t('files_sharing', 'Publicly shared files.'),
+
+ emptyTitle: t('files_sharing', 'No files'),
+ emptyCaption: t('files_sharing', 'Files and folders shared with you will show up here'),
+
+ icon: LinkSvg,
+ order: 1,
+
+ getContents,
+ })
+
+ const Navigation = getNavigation()
+ Navigation.register(view)
+}
diff --git a/apps/files_sharing/src/views/shares.spec.ts b/apps/files_sharing/src/files_views/shares.spec.ts
index 73a55434343..7e5b59e0ad9 100644
--- a/apps/files_sharing/src/views/shares.spec.ts
+++ b/apps/files_sharing/src/files_views/shares.spec.ts
@@ -1,28 +1,14 @@
/**
- * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
/* eslint-disable n/no-extraneous-import */
+/* eslint-disable @typescript-eslint/no-explicit-any */
import type { OCSResponse } from '@nextcloud/typings/ocs'
-import { expect } from '@jest/globals'
+
+import { beforeEach, describe, expect, test, vi } from 'vitest'
import { Folder, Navigation, View, getNavigation } from '@nextcloud/files'
+import * as ncInitialState from '@nextcloud/initial-state'
import axios from '@nextcloud/axios'
import '../main'
@@ -37,16 +23,13 @@ declare global {
describe('Sharing views definition', () => {
let Navigation
beforeEach(() => {
+ delete window._nc_navigation
Navigation = getNavigation()
expect(window._nc_navigation).toBeDefined()
})
- afterAll(() => {
- delete window._nc_navigation
- })
-
test('Default values', () => {
- jest.spyOn(Navigation, 'register')
+ vi.spyOn(Navigation, 'register')
expect(Navigation.views.length).toBe(0)
@@ -54,17 +37,17 @@ describe('Sharing views definition', () => {
const shareOverviewView = Navigation.views.find(view => view.id === 'shareoverview') as View
const sharesChildViews = Navigation.views.filter(view => view.parent === 'shareoverview') as View[]
- expect(Navigation.register).toHaveBeenCalledTimes(6)
+ expect(Navigation.register).toHaveBeenCalledTimes(7)
// one main view and no children
- expect(Navigation.views.length).toBe(6)
+ expect(Navigation.views.length).toBe(7)
expect(shareOverviewView).toBeDefined()
- expect(sharesChildViews.length).toBe(5)
+ expect(sharesChildViews.length).toBe(6)
expect(shareOverviewView?.id).toBe('shareoverview')
expect(shareOverviewView?.name).toBe('Shares')
expect(shareOverviewView?.caption).toBe('Overview of shared files.')
- expect(shareOverviewView?.icon).toBe('<svg>SvgMock</svg>')
+ expect(shareOverviewView?.icon).toMatch(/<svg.+<\/svg>/i)
expect(shareOverviewView?.order).toBe(20)
expect(shareOverviewView?.columns).toStrictEqual([])
expect(shareOverviewView?.getContents).toBeDefined()
@@ -73,6 +56,7 @@ describe('Sharing views definition', () => {
{ id: 'sharingin', name: 'Shared with you' },
{ id: 'sharingout', name: 'Shared with others' },
{ id: 'sharinglinks', name: 'Shared by link' },
+ { id: 'filerequest', name: 'File requests' },
{ id: 'deletedshares', name: 'Deleted shares' },
{ id: 'pendingshares', name: 'Pending shares' },
]
@@ -84,27 +68,45 @@ describe('Sharing views definition', () => {
expect(view?.caption).toBeDefined()
expect(view?.emptyTitle).toBeDefined()
expect(view?.emptyCaption).toBeDefined()
- expect(view?.icon).toBe('<svg>SvgMock</svg>')
+ expect(view?.icon).match(/<svg.+<\/svg>/)
expect(view?.order).toBe(index + 1)
expect(view?.columns).toStrictEqual([])
expect(view?.getContents).toBeDefined()
})
})
+
+ test('Shared with others view is not registered if user has no storage quota', () => {
+ vi.spyOn(Navigation, 'register')
+ const spy = vi.spyOn(ncInitialState, 'loadState').mockImplementationOnce(() => ({ quota: 0 }))
+
+ expect(Navigation.views.length).toBe(0)
+ registerSharingViews()
+ expect(Navigation.register).toHaveBeenCalledTimes(6)
+ expect(Navigation.views.length).toBe(6)
+
+ const shareOverviewView = Navigation.views.find(view => view.id === 'shareoverview') as View
+ const sharesChildViews = Navigation.views.filter(view => view.parent === 'shareoverview') as View[]
+ expect(shareOverviewView).toBeDefined()
+ expect(sharesChildViews.length).toBe(5)
+
+ expect(spy).toHaveBeenCalled()
+ expect(spy).toHaveBeenCalledWith('files', 'storageStats', { quota: -1 })
+
+ const sharedWithOthersView = Navigation.views.find(view => view.id === 'sharingout')
+ expect(sharedWithOthersView).toBeUndefined()
+ })
})
describe('Sharing views contents', () => {
let Navigation
beforeEach(() => {
+ delete window._nc_navigation
Navigation = getNavigation()
expect(window._nc_navigation).toBeDefined()
})
- afterAll(() => {
- delete window._nc_navigation
- })
-
test('Sharing overview get contents', async () => {
- jest.spyOn(axios, 'get').mockImplementation(async (): Promise<any> => {
+ vi.spyOn(axios, 'get').mockImplementation(async (): Promise<any> => {
return {
data: {
ocs: {
@@ -120,7 +122,7 @@ describe('Sharing views contents', () => {
})
registerSharingViews()
- expect(Navigation.views.length).toBe(6)
+ expect(Navigation.views.length).toBe(7)
Navigation.views.forEach(async (view: View) => {
const content = await view.getContents('/')
expect(content.contents).toStrictEqual([])
diff --git a/apps/files_sharing/src/views/shares.ts b/apps/files_sharing/src/files_views/shares.ts
index 3ec11e1a70a..fd5e908638c 100644
--- a/apps/files_sharing/src/views/shares.ts
+++ b/apps/files_sharing/src/files_views/shares.ts
@@ -1,34 +1,20 @@
/**
- * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { translate as t } from '@nextcloud/l10n'
import { View, getNavigation } from '@nextcloud/files'
+import { ShareType } from '@nextcloud/sharing'
import AccountClockSvg from '@mdi/svg/svg/account-clock.svg?raw'
-import AccountGroupSvg from '@mdi/svg/svg/account-group.svg?raw'
-import AccountPlusSvg from '@mdi/svg/svg/account-plus.svg?raw'
+import AccountGroupSvg from '@mdi/svg/svg/account-group-outline.svg?raw'
+import AccountPlusSvg from '@mdi/svg/svg/account-plus-outline.svg?raw'
import AccountSvg from '@mdi/svg/svg/account.svg?raw'
import DeleteSvg from '@mdi/svg/svg/delete.svg?raw'
+import FileUploadSvg from '@mdi/svg/svg/file-upload-outline.svg?raw'
import LinkSvg from '@mdi/svg/svg/link.svg?raw'
-import { getContents } from '../services/SharingService'
+import { getContents, isFileRequest } from '../services/SharingService'
+import { loadState } from '@nextcloud/initial-state'
export const sharesViewId = 'shareoverview'
export const sharedWithYouViewId = 'sharingin'
@@ -36,6 +22,7 @@ export const sharedWithOthersViewId = 'sharingout'
export const sharingByLinksViewId = 'sharinglinks'
export const deletedSharesViewId = 'deletedshares'
export const pendingSharesViewId = 'pendingshares'
+export const fileRequestViewId = 'filerequest'
export default () => {
const Navigation = getNavigation()
@@ -72,22 +59,26 @@ export default () => {
getContents: () => getContents(true, false, false, false),
}))
- Navigation.register(new View({
- id: sharedWithOthersViewId,
- name: t('files_sharing', 'Shared with others'),
- caption: t('files_sharing', 'List of files that you shared with others.'),
+ // Don't show this view if the user has no storage quota
+ const storageStats = loadState('files', 'storageStats', { quota: -1 })
+ if (storageStats.quota !== 0) {
+ Navigation.register(new View({
+ id: sharedWithOthersViewId,
+ name: t('files_sharing', 'Shared with others'),
+ caption: t('files_sharing', 'List of files that you shared with others.'),
- emptyTitle: t('files_sharing', 'Nothing shared yet'),
- emptyCaption: t('files_sharing', 'Files and folders you shared will show up here'),
+ emptyTitle: t('files_sharing', 'Nothing shared yet'),
+ emptyCaption: t('files_sharing', 'Files and folders you shared will show up here'),
- icon: AccountGroupSvg,
- order: 2,
- parent: sharesViewId,
+ icon: AccountGroupSvg,
+ order: 2,
+ parent: sharesViewId,
- columns: [],
+ columns: [],
- getContents: () => getContents(false, true, false, false),
- }))
+ getContents: () => getContents(false, true, false, false),
+ }))
+ }
Navigation.register(new View({
id: sharingByLinksViewId,
@@ -103,7 +94,30 @@ export default () => {
columns: [],
- getContents: () => getContents(false, true, false, false, [window.OC.Share.SHARE_TYPE_LINK]),
+ getContents: () => getContents(false, true, false, false, [ShareType.Link]),
+ }))
+
+ Navigation.register(new View({
+ id: fileRequestViewId,
+ name: t('files_sharing', 'File requests'),
+ caption: t('files_sharing', 'List of file requests.'),
+
+ emptyTitle: t('files_sharing', 'No file requests'),
+ emptyCaption: t('files_sharing', 'File requests you have created will show up here'),
+
+ icon: FileUploadSvg,
+ order: 4,
+ parent: sharesViewId,
+
+ columns: [],
+
+ getContents: () => getContents(false, true, false, false, [ShareType.Link, ShareType.Email])
+ .then(({ folder, contents }) => {
+ return {
+ folder,
+ contents: contents.filter((node) => isFileRequest(node.attributes?.['share-attributes'] || [])),
+ }
+ }),
}))
Navigation.register(new View({
@@ -115,7 +129,7 @@ export default () => {
emptyCaption: t('files_sharing', 'Shares you have left will show up here'),
icon: DeleteSvg,
- order: 4,
+ order: 5,
parent: sharesViewId,
columns: [],
@@ -132,7 +146,7 @@ export default () => {
emptyCaption: t('files_sharing', 'Shares you have received but not approved will show up here'),
icon: AccountClockSvg,
- order: 5,
+ order: 6,
parent: sharesViewId,
columns: [],
diff --git a/apps/files_sharing/src/init-public.ts b/apps/files_sharing/src/init-public.ts
new file mode 100644
index 00000000000..72a3098a0e6
--- /dev/null
+++ b/apps/files_sharing/src/init-public.ts
@@ -0,0 +1,63 @@
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import type { ShareAttribute } from './sharing.d.ts'
+import { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'
+import { Folder, getNavigation } from '@nextcloud/files'
+import { loadState } from '@nextcloud/initial-state'
+import registerFileDropView from './files_views/publicFileDrop.ts'
+import registerPublicShareView from './files_views/publicShare.ts'
+import registerPublicFileShareView from './files_views/publicFileShare.ts'
+import RouterService from '../../files/src/services/RouterService.ts'
+import router from './router/index.ts'
+import logger from './services/logger.ts'
+
+registerFileDropView()
+registerPublicShareView()
+registerPublicFileShareView()
+
+// Get the current view from state and set it active
+const view = loadState<string>('files_sharing', 'view')
+const navigation = getNavigation()
+navigation.setActive(navigation.views.find(({ id }) => id === view) ?? null)
+
+// Force our own router
+window.OCP.Files = window.OCP.Files ?? {}
+window.OCP.Files.Router = new RouterService(router)
+
+// If this is a single file share, so set the fileid as active in the URL
+const fileId = loadState<number|null>('files_sharing', 'fileId', null)
+const token = loadState<string>('files_sharing', 'sharingToken')
+if (fileId !== null) {
+ window.OCP.Files.Router.goToRoute(
+ 'filelist',
+ { ...window.OCP.Files.Router.params, token, fileid: String(fileId) },
+ { ...window.OCP.Files.Router.query, openfile: 'true' },
+ )
+}
+
+// When the file list is loaded we need to apply the "userconfig" setup on the share
+subscribe('files:list:updated', loadShareConfig)
+
+/**
+ * Event handler to load the view config for the current share.
+ * This is done on the `files:list:updated` event to ensure the list and especially the config store was correctly initialized.
+ *
+ * @param context The event context
+ * @param context.folder The current folder
+ */
+function loadShareConfig({ folder }: { folder: Folder }) {
+ // Only setup config once
+ unsubscribe('files:list:updated', loadShareConfig)
+
+ // Share attributes (the same) are set on all folders of a share
+ if (folder.attributes['share-attributes']) {
+ const shareAttributes = JSON.parse(folder.attributes['share-attributes'] || '[]') as Array<ShareAttribute>
+ const gridViewAttribute = shareAttributes.find(({ scope, key }: ShareAttribute) => scope === 'config' && key === 'grid_view')
+ if (gridViewAttribute !== undefined) {
+ logger.debug('Loading share attributes', { gridViewAttribute })
+ emit('files:config:updated', { key: 'grid_view', value: gridViewAttribute.value === true })
+ }
+ }
+}
diff --git a/apps/files_sharing/src/init.ts b/apps/files_sharing/src/init.ts
index 7699fcff9af..f275f3beaf7 100644
--- a/apps/files_sharing/src/init.ts
+++ b/apps/files_sharing/src/init.ts
@@ -1,36 +1,33 @@
/**
- * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Julius Härtl <jus@bitgrid.net>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
-import { registerDavProperty } from '@nextcloud/files'
-import registerSharingViews from './views/shares'
+import { addNewFileMenuEntry } from '@nextcloud/files'
+import { registerDavProperty } from '@nextcloud/files/dav'
+import { registerAccountFilter } from './files_filters/AccountFilter'
+import { entry as newFileRequest } from './files_newMenu/newFileRequest'
-import './actions/acceptShareAction'
-import './actions/openInFilesAction'
-import './actions/rejectShareAction'
-import './actions/restoreShareAction'
-import './actions/sharingStatusAction'
+import registerNoteToRecipient from './files_headers/noteToRecipient'
+import registerSharingViews from './files_views/shares'
+
+import './files_actions/acceptShareAction'
+import './files_actions/openInFilesAction'
+import './files_actions/rejectShareAction'
+import './files_actions/restoreShareAction'
+import './files_actions/sharingStatusAction'
registerSharingViews()
+addNewFileMenuEntry(newFileRequest)
+
+registerDavProperty('nc:note', { nc: 'http://nextcloud.org/ns' })
+registerDavProperty('nc:sharees', { nc: 'http://nextcloud.org/ns' })
+registerDavProperty('nc:hide-download', { nc: 'http://nextcloud.org/ns' })
registerDavProperty('nc:share-attributes', { nc: 'http://nextcloud.org/ns' })
registerDavProperty('oc:share-types', { oc: 'http://owncloud.org/ns' })
registerDavProperty('ocs:share-permissions', { ocs: 'http://open-collaboration-services.org/ns' })
+
+registerAccountFilter()
+
+// Add "note to recipient" message
+registerNoteToRecipient()
diff --git a/apps/files_sharing/src/lib/SharePermissionsToolBox.js b/apps/files_sharing/src/lib/SharePermissionsToolBox.js
index d86f8827b2c..797645ae04d 100644
--- a/apps/files_sharing/src/lib/SharePermissionsToolBox.js
+++ b/apps/files_sharing/src/lib/SharePermissionsToolBox.js
@@ -1,23 +1,6 @@
/**
- * @copyright 2022 Louis Chmn <louis@chmn.me>
- *
- * @author Louis Chmn <louis@chmn.me>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
export const ATOMIC_PERMISSIONS = {
diff --git a/apps/files_sharing/src/lib/SharePermissionsToolBox.spec.js b/apps/files_sharing/src/lib/SharePermissionsToolBox.spec.js
index f66e5e7964b..a58552063d8 100644
--- a/apps/files_sharing/src/lib/SharePermissionsToolBox.spec.js
+++ b/apps/files_sharing/src/lib/SharePermissionsToolBox.spec.js
@@ -1,24 +1,8 @@
/**
- * @copyright 2022 Louis Chmn <louis@chmn.me>
- *
- * @author Louis Chmn <louis@chmn.me>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
+import { describe, expect, test } from 'vitest'
import {
ATOMIC_PERMISSIONS,
diff --git a/apps/files_sharing/src/main.ts b/apps/files_sharing/src/main.ts
index 8462d5b542e..3170fbc2a7b 100644
--- a/apps/files_sharing/src/main.ts
+++ b/apps/files_sharing/src/main.ts
@@ -1,31 +1,9 @@
/**
- * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Julius Härtl <jus@bitgrid.net>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
// register default shares types
-if (!window.OC) {
- window.OC = {}
-}
-
Object.assign(window.OC, {
Share: {
SHARE_TYPE_USER: 0,
diff --git a/apps/files_sharing/src/mixins/ShareDetails.js b/apps/files_sharing/src/mixins/ShareDetails.js
index 3884d22dae6..6ccdf8d63d0 100644
--- a/apps/files_sharing/src/mixins/ShareDetails.js
+++ b/apps/files_sharing/src/mixins/ShareDetails.js
@@ -1,4 +1,12 @@
-import Share from '../models/Share.js'
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import Share from '../models/Share.ts'
+import Config from '../services/ConfigService.ts'
+import { ATOMIC_PERMISSIONS } from '../lib/SharePermissionsToolBox.js'
+import logger from '../services/logger.ts'
export default {
methods: {
@@ -8,17 +16,30 @@ export default {
// TODO : Better name/interface for handler required
// For example `externalAppCreateShareHook` with proper documentation
if (shareRequestObject.handler) {
+ const handlerInput = {}
if (this.suggestions) {
- shareRequestObject.suggestions = this.suggestions
- shareRequestObject.fileInfo = this.fileInfo
- shareRequestObject.query = this.query
+ handlerInput.suggestions = this.suggestions
+ handlerInput.fileInfo = this.fileInfo
+ handlerInput.query = this.query
}
- share = await shareRequestObject.handler(shareRequestObject)
- share = new Share(share)
+ const externalShareRequestObject = await shareRequestObject.handler(handlerInput)
+ share = this.mapShareRequestToShareObject(externalShareRequestObject)
} else {
share = this.mapShareRequestToShareObject(shareRequestObject)
}
+ if (this.fileInfo.type !== 'dir') {
+ const originalPermissions = share.permissions
+ const strippedPermissions = originalPermissions
+ & ~ATOMIC_PERMISSIONS.CREATE
+ & ~ATOMIC_PERMISSIONS.DELETE
+
+ if (originalPermissions !== strippedPermissions) {
+ logger.debug('Removed create/delete permissions from file share (only valid for folders)')
+ share.permissions = strippedPermissions
+ }
+ }
+
const shareDetails = {
fileInfo: this.fileInfo,
share,
@@ -39,18 +60,19 @@ export default {
const share = {
attributes: [
{
- enabled: true,
+ value: true,
key: 'download',
scope: 'permissions',
},
],
+ hideDownload: false,
share_type: shareRequestObject.shareType,
share_with: shareRequestObject.shareWith,
is_no_user: shareRequestObject.isNoUser,
user: shareRequestObject.shareWith,
share_with_displayname: shareRequestObject.displayName,
subtitle: shareRequestObject.subtitle,
- permissions: shareRequestObject.permissions,
+ permissions: shareRequestObject.permissions ?? new Config().defaultPermissions,
expiration: '',
}
diff --git a/apps/files_sharing/src/mixins/ShareRequests.js b/apps/files_sharing/src/mixins/ShareRequests.js
index 5f301108f6f..2c33fa3b0c7 100644
--- a/apps/files_sharing/src/mixins/ShareRequests.js
+++ b/apps/files_sharing/src/mixins/ShareRequests.js
@@ -1,35 +1,17 @@
/**
- * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Julius Härtl <jus@bitgrid.net>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
// TODO: remove when ie not supported
import 'url-search-params-polyfill'
+import { emit } from '@nextcloud/event-bus'
+import { showError } from '@nextcloud/dialogs'
import { generateOcsUrl } from '@nextcloud/router'
import axios from '@nextcloud/axios'
-import Share from '../models/Share.js'
-import { emit } from '@nextcloud/event-bus'
+
+import Share from '../models/Share.ts'
const shareUrl = generateOcsUrl('apps/files_sharing/api/v1/shares')
@@ -46,10 +28,10 @@ export default {
* @param {string} [data.password] password to protect public link Share with
* @param {number} [data.permissions] 1 = read; 2 = update; 4 = create; 8 = delete; 16 = share; 31 = all (default: 31, for public shares: 1)
* @param {boolean} [data.sendPasswordByTalk] send the password via a talk conversation
- * @param {string} [data.expireDate] expire the shareautomatically after
+ * @param {string} [data.expireDate] expire the share automatically after
* @param {string} [data.label] custom label
* @param {string} [data.attributes] Share attributes encoded as json
- * @param data.note
+ * @param {string} data.note custom note to recipient
* @return {Share} the new share
* @throws {Error}
*/
@@ -65,7 +47,7 @@ export default {
} catch (error) {
console.error('Error while creating share', error)
const errorMessage = error?.response?.data?.ocs?.meta?.message
- OC.Notification.showTemporary(
+ showError(
errorMessage ? t('files_sharing', 'Error creating the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error creating the share'),
{ type: 'error' },
)
diff --git a/apps/files_sharing/src/mixins/ShareTypes.js b/apps/files_sharing/src/mixins/ShareTypes.js
deleted file mode 100644
index 8b85f63f456..00000000000
--- a/apps/files_sharing/src/mixins/ShareTypes.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Julius Härtl <jus@bitgrid.net>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-import { Type as ShareTypes } from '@nextcloud/sharing'
-
-export default {
- data() {
- return {
- SHARE_TYPES: ShareTypes,
- }
- },
-}
diff --git a/apps/files_sharing/src/mixins/SharesMixin.js b/apps/files_sharing/src/mixins/SharesMixin.js
index 5f973bf63cf..a461da56d85 100644
--- a/apps/files_sharing/src/mixins/SharesMixin.js
+++ b/apps/files_sharing/src/mixins/SharesMixin.js
@@ -1,47 +1,29 @@
/**
- * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Calviño Sánchez <danxuliu@gmail.com>
- * @author Gary Kim <gary@garykim.dev>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
-import { showError, showSuccess } from '@nextcloud/dialogs'
import { getCurrentUser } from '@nextcloud/auth'
-// eslint-disable-next-line import/no-unresolved, n/no-missing-import
+import { showError, showSuccess } from '@nextcloud/dialogs'
+import { ShareType } from '@nextcloud/sharing'
+import { emit } from '@nextcloud/event-bus'
+
import PQueue from 'p-queue'
import debounce from 'debounce'
-import Share from '../models/Share.js'
+import GeneratePassword from '../utils/GeneratePassword.ts'
+import Share from '../models/Share.ts'
import SharesRequests from './ShareRequests.js'
-import ShareTypes from './ShareTypes.js'
-import Config from '../services/ConfigService.js'
+import Config from '../services/ConfigService.ts'
+import logger from '../services/logger.ts'
import {
BUNDLED_PERMISSIONS,
} from '../lib/SharePermissionsToolBox.js'
+import { fetchNode } from '../../../files/src/services/WebdavClient.ts'
export default {
- mixins: [SharesRequests, ShareTypes],
+ mixins: [SharesRequests],
props: {
fileInfo: {
@@ -62,6 +44,8 @@ export default {
data() {
return {
config: new Config(),
+ node: null,
+ ShareType,
// errors helpers
errors: {},
@@ -84,7 +68,9 @@ export default {
},
computed: {
-
+ path() {
+ return (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')
+ },
/**
* Does the current share have a note
*
@@ -108,10 +94,10 @@ export default {
// Datepicker language
lang() {
const weekdaysShort = window.dayNamesShort
- ? window.dayNamesShort // provided by nextcloud
+ ? window.dayNamesShort // provided by Nextcloud
: ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.']
const monthsShort = window.monthNamesShort
- ? window.monthNamesShort // provided by nextcloud
+ ? window.monthNamesShort // provided by Nextcloud
: ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.']
const firstDayOfWeek = window.firstDay ? window.firstDay : 0
@@ -125,15 +111,18 @@ export default {
monthFormat: 'MMM',
}
},
+ isNewShare() {
+ return !this.share.id
+ },
isFolder() {
return this.fileInfo.type === 'dir'
},
isPublicShare() {
const shareType = this.share.shareType ?? this.share.type
- return [this.SHARE_TYPES.SHARE_TYPE_LINK, this.SHARE_TYPES.SHARE_TYPE_EMAIL].includes(shareType)
+ return [ShareType.Link, ShareType.Email].includes(shareType)
},
isRemoteShare() {
- return this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP || this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE
+ return this.share.type === ShareType.RemoteGroup || this.share.type === ShareType.Remote
},
isShareOwner() {
return this.share && this.share.owner === getCurrentUser().uid
@@ -143,7 +132,7 @@ export default {
return this.config.isDefaultExpireDateEnforced
}
if (this.isRemoteShare) {
- return this.config.isDefaultRemoteExpireDateEnforced
+ return this.config.isDefaultRemoteExpireDateEnforced
}
return this.config.isDefaultInternalExpireDateEnforced
},
@@ -168,10 +157,45 @@ export default {
}
return null
},
+ /**
+ * Is the current share password protected ?
+ *
+ * @return {boolean}
+ */
+ isPasswordProtected: {
+ get() {
+ return this.config.enforcePasswordForPublicLink
+ || this.share.password !== ''
+ || this.share.newPassword !== undefined
+ },
+ async set(enabled) {
+ if (enabled) {
+ this.$set(this.share, 'newPassword', await GeneratePassword(true))
+ } else {
+ this.share.password = ''
+ this.$delete(this.share, 'newPassword')
+ }
+ },
+ },
},
methods: {
/**
+ * Fetch WebDAV node
+ *
+ * @return {Node}
+ */
+ async getNode() {
+ const node = { path: this.path }
+ try {
+ this.node = await fetchNode(node.path)
+ logger.info('Fetched node:', { node: this.node })
+ } catch (error) {
+ logger.error('Error:', error)
+ }
+ },
+
+ /**
* Check if a share is valid before
* firing the request
*
@@ -194,19 +218,7 @@ export default {
},
/**
- * @param {string} date a date with YYYY-MM-DD format
- * @return {Date} date
- */
- parseDateString(date) {
- if (!date) {
- return
- }
- const regex = /([0-9]{4}-[0-9]{2}-[0-9]{2})/i
- return new Date(date.match(regex)?.pop())
- },
-
- /**
- * @param {Date} date
+ * @param {Date} date the date to format
* @return {string} date a date with YYYY-MM-DD format
*/
formatDateToString(date) {
@@ -221,17 +233,14 @@ export default {
*
* @param {Date} date
*/
- onExpirationChange: debounce(function(date) {
- this.share.expireDate = this.formatDateToString(new Date(date))
- }, 500),
- /**
- * Uncheck expire date
- * We need this method because @update:checked
- * is ran simultaneously as @uncheck, so
- * so we cannot ensure data is up-to-date
- */
- onExpirationDisable() {
- this.share.expireDate = ''
+ onExpirationChange(date) {
+ if (!date) {
+ this.share.expireDate = null
+ this.$set(this.share, 'expireDate', null)
+ return
+ }
+ const parsedDate = (date instanceof Date) ? date : new Date(date)
+ this.share.expireDate = this.formatDateToString(parsedDate)
},
/**
@@ -263,12 +272,14 @@ export default {
this.loading = true
this.open = false
await this.deleteShare(this.share.id)
- console.debug('Share deleted', this.share.id)
+ logger.debug('Share deleted', { shareId: this.share.id })
const message = this.share.itemType === 'file'
? t('files_sharing', 'File "{path}" has been unshared', { path: this.share.path })
: t('files_sharing', 'Folder "{path}" has been unshared', { path: this.share.path })
showSuccess(message)
this.$emit('remove:share', this.share)
+ await this.getNode()
+ emit('files:node:updated', this.node)
} catch (error) {
// re-open menu if error
this.open = true
@@ -292,22 +303,30 @@ export default {
const properties = {}
// force value to string because that is what our
// share api controller accepts
- propertyNames.forEach(name => {
- if ((typeof this.share[name]) === 'object') {
+ for (const name of propertyNames) {
+ if (name === 'password') {
+ properties[name] = this.share.newPassword ?? this.share.password
+ continue
+ }
+
+ if (this.share[name] === null || this.share[name] === undefined) {
+ properties[name] = ''
+ } else if ((typeof this.share[name]) === 'object') {
properties[name] = JSON.stringify(this.share[name])
} else {
properties[name] = this.share[name].toString()
}
- })
+ }
- this.updateQueue.add(async () => {
+ return this.updateQueue.add(async () => {
this.saving = true
this.errors = {}
try {
const updatedShare = await this.updateShare(this.share.id, properties)
- if (propertyNames.indexOf('password') >= 0) {
+ if (propertyNames.includes('password')) {
// reset password state after sync
+ this.share.password = this.share.newPassword ?? ''
this.$delete(this.share, 'newPassword')
// updates password expiration time after sync
@@ -315,18 +334,27 @@ export default {
}
// clear any previous errors
- this.$delete(this.errors, propertyNames[0])
- showSuccess(t('files_sharing', 'Share {propertyName} saved', { propertyName: propertyNames[0] }))
- } catch ({ message }) {
+ for (const property of propertyNames) {
+ this.$delete(this.errors, property)
+ }
+ showSuccess(this.updateSuccessMessage(propertyNames))
+ } catch (error) {
+ logger.error('Could not update share', { error, share: this.share, propertyNames })
+
+ const { message } = error
if (message && message !== '') {
- this.onSyncError(propertyNames[0], message)
- showError(t('files_sharing', message))
+ for (const property of propertyNames) {
+ this.onSyncError(property, message)
+ }
+ showError(message)
+ } else {
+ // We do not have information what happened, but we should still inform the user
+ showError(t('files_sharing', 'Could not update share'))
}
} finally {
this.saving = false
}
})
- return
}
// This share does not exists on the server yet
@@ -334,12 +362,45 @@ export default {
},
/**
+ * @param {string[]} names Properties changed
+ */
+ updateSuccessMessage(names) {
+ if (names.length !== 1) {
+ return t('files_sharing', 'Share saved')
+ }
+
+ switch (names[0]) {
+ case 'expireDate':
+ return t('files_sharing', 'Share expiry date saved')
+ case 'hideDownload':
+ return t('files_sharing', 'Share hide-download state saved')
+ case 'label':
+ return t('files_sharing', 'Share label saved')
+ case 'note':
+ return t('files_sharing', 'Share note for recipient saved')
+ case 'password':
+ return t('files_sharing', 'Share password saved')
+ case 'permissions':
+ return t('files_sharing', 'Share permissions saved')
+ default:
+ return t('files_sharing', 'Share saved')
+ }
+ },
+
+ /**
* Manage sync errors
*
* @param {string} property the errored property, e.g. 'password'
* @param {string} message the error message
*/
onSyncError(property, message) {
+ if (property === 'password' && this.share.newPassword) {
+ if (this.share.newPassword === this.share.password) {
+ this.share.password = ''
+ }
+ this.$delete(this.share, 'newPassword')
+ }
+
// re-open menu if closed
this.open = true
switch (property) {
diff --git a/apps/files_sharing/src/models/Share.js b/apps/files_sharing/src/models/Share.ts
index b88d376a0ff..b0638b29448 100644
--- a/apps/files_sharing/src/models/Share.js
+++ b/apps/files_sharing/src/models/Share.ts
@@ -1,30 +1,12 @@
/**
- * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author Daniel Calviño Sánchez <danxuliu@gmail.com>
- * @author Gary Kim <gary@garykim.dev>
- * @author Georg Ehrke <oc.list@georgehrke.com>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
+import type { ShareType } from '@nextcloud/sharing'
+import type { ShareAttribute } from '../sharing'
+import { isFileRequest } from '../services/SharingService'
+
export default class Share {
_share
@@ -39,6 +21,10 @@ export default class Share {
ocsData = ocsData.ocs.data[0]
}
+ // string to int
+ if (typeof ocsData.id === 'string') {
+ ocsData.id = Number.parseInt(ocsData.id)
+ }
// convert int into boolean
ocsData.hide_download = !!ocsData.hide_download
ocsData.mail_send = !!ocsData.mail_send
@@ -64,8 +50,6 @@ export default class Share {
* state and make the whole class reactive
*
* @return {object} the share raw state
- * @readonly
- * @memberof Sidebar
*/
get state() {
return this._share
@@ -73,104 +57,69 @@ export default class Share {
/**
* get the share id
- *
- * @return {number}
- * @readonly
- * @memberof Share
*/
- get id() {
+ get id(): number {
return this._share.id
}
/**
* Get the share type
- *
- * @return {number}
- * @readonly
- * @memberof Share
*/
- get type() {
+ get type(): ShareType {
return this._share.share_type
}
/**
* Get the share permissions
- * See OC.PERMISSION_* variables
- *
- * @return {number}
- * @readonly
- * @memberof Share
+ * See window.OC.PERMISSION_* variables
*/
- get permissions() {
+ get permissions(): number {
return this._share.permissions
}
/**
* Get the share attributes
- *
- * @return {Array}
- * @readonly
- * @memberof Share
*/
- get attributes() {
- return this._share.attributes
+ get attributes(): Array<ShareAttribute> {
+ return this._share.attributes || []
}
/**
* Set the share permissions
- * See OC.PERMISSION_* variables
- *
- * @param {number} permissions valid permission, See OC.PERMISSION_* variables
- * @memberof Share
+ * See window.OC.PERMISSION_* variables
*/
- set permissions(permissions) {
+ set permissions(permissions: number) {
this._share.permissions = permissions
}
// SHARE OWNER --------------------------------------------------
/**
* Get the share owner uid
- *
- * @return {string}
- * @readonly
- * @memberof Share
*/
- get owner() {
+ get owner(): string {
return this._share.uid_owner
}
/**
* Get the share owner's display name
- *
- * @return {string}
- * @readonly
- * @memberof Share
*/
- get ownerDisplayName() {
+ get ownerDisplayName(): string {
return this._share.displayname_owner
}
// SHARED WITH --------------------------------------------------
/**
* Get the share with entity uid
- *
- * @return {string}
- * @readonly
- * @memberof Share
*/
- get shareWith() {
+ get shareWith(): string {
return this._share.share_with
}
/**
* Get the share with entity display name
* fallback to its uid if none
- *
- * @return {string}
- * @readonly
- * @memberof Share
*/
- get shareWithDisplayName() {
+ get shareWithDisplayName(): string {
return this._share.share_with_displayname
|| this._share.share_with
}
@@ -178,59 +127,39 @@ export default class Share {
/**
* Unique display name in case of multiple
* duplicates results with the same name.
- *
- * @return {string}
- * @readonly
- * @memberof Share
*/
- get shareWithDisplayNameUnique() {
+ get shareWithDisplayNameUnique(): string {
return this._share.share_with_displayname_unique
|| this._share.share_with
}
/**
* Get the share with entity link
- *
- * @return {string}
- * @readonly
- * @memberof Share
*/
- get shareWithLink() {
+ get shareWithLink(): string {
return this._share.share_with_link
}
/**
* Get the share with avatar if any
- *
- * @return {string}
- * @readonly
- * @memberof Share
*/
- get shareWithAvatar() {
+ get shareWithAvatar(): string {
return this._share.share_with_avatar
}
// SHARED FILE OR FOLDER OWNER ----------------------------------
/**
* Get the shared item owner uid
- *
- * @return {string}
- * @readonly
- * @memberof Share
*/
- get uidFileOwner() {
+ get uidFileOwner(): string {
return this._share.uid_file_owner
}
/**
* Get the shared item display name
* fallback to its uid if none
- *
- * @return {string}
- * @readonly
- * @memberof Share
*/
- get displaynameFileOwner() {
+ get displaynameFileOwner(): string {
return this._share.displayname_file_owner
|| this._share.uid_file_owner
}
@@ -238,230 +167,176 @@ export default class Share {
// TIME DATA ----------------------------------------------------
/**
* Get the share creation timestamp
- *
- * @return {number}
- * @readonly
- * @memberof Share
*/
- get createdTime() {
+ get createdTime(): number {
return this._share.stime
}
/**
* Get the expiration date
- *
* @return {string} date with YYYY-MM-DD format
- * @readonly
- * @memberof Share
*/
- get expireDate() {
+ get expireDate(): string {
return this._share.expiration
}
/**
* Set the expiration date
- *
* @param {string} date the share expiration date with YYYY-MM-DD format
- * @memberof Share
*/
- set expireDate(date) {
+ set expireDate(date: string) {
this._share.expiration = date
}
// EXTRA DATA ---------------------------------------------------
/**
* Get the public share token
- *
- * @return {string} the token
- * @readonly
- * @memberof Share
*/
- get token() {
+ get token(): string {
return this._share.token
}
/**
+ * Set the public share token
+ */
+ set token(token: string) {
+ this._share.token = token
+ }
+
+ /**
* Get the share note if any
- *
- * @return {string}
- * @readonly
- * @memberof Share
*/
- get note() {
+ get note(): string {
return this._share.note
}
/**
* Set the share note if any
- *
- * @param {string} note the note
- * @memberof Share
*/
- set note(note) {
+ set note(note: string) {
this._share.note = note
}
/**
* Get the share label if any
* Should only exist on link shares
- *
- * @return {string}
- * @readonly
- * @memberof Share
*/
- get label() {
+ get label(): string {
return this._share.label ?? ''
}
/**
* Set the share label if any
* Should only be set on link shares
- *
- * @param {string} label the label
- * @memberof Share
*/
- set label(label) {
+ set label(label: string) {
this._share.label = label
}
/**
* Have a mail been sent
- *
- * @return {boolean}
- * @readonly
- * @memberof Share
*/
- get mailSend() {
+ get mailSend(): boolean {
return this._share.mail_send === true
}
/**
* Hide the download button on public page
- *
- * @return {boolean}
- * @readonly
- * @memberof Share
*/
- get hideDownload() {
+ get hideDownload(): boolean {
return this._share.hide_download === true
+ || this.attributes.find?.(({ scope, key, value }) => scope === 'permissions' && key === 'download' && !value) !== undefined
}
/**
* Hide the download button on public page
- *
- * @param {boolean} state hide the button ?
- * @memberof Share
*/
- set hideDownload(state) {
+ set hideDownload(state: boolean) {
+ // disabling hide-download also enables the download permission
+ // needed for regression in Nextcloud 31.0.0 until (incl.) 31.0.3
+ if (!state) {
+ const attribute = this.attributes.find(({ key, scope }) => key === 'download' && scope === 'permissions')
+ if (attribute) {
+ attribute.value = true
+ }
+ }
+
this._share.hide_download = state === true
}
/**
* Password protection of the share
- *
- * @return {string}
- * @readonly
- * @memberof Share
*/
- get password() {
+ get password():string {
return this._share.password
}
/**
* Password protection of the share
- *
- * @param {string} password the share password
- * @memberof Share
*/
- set password(password) {
+ set password(password: string) {
this._share.password = password
}
/**
* Password expiration time
- *
- * @return {string}
- * @readonly
- * @memberof Share
+ * @return {string} date with YYYY-MM-DD format
*/
- get passwordExpirationTime() {
+ get passwordExpirationTime(): string {
return this._share.password_expiration_time
}
/**
* Password expiration time
- *
- * @param {string} password expiration time
- * @memberof Share
+ * @param {string} passwordExpirationTime date with YYYY-MM-DD format
*/
- set passwordExpirationTime(passwordExpirationTime) {
+ set passwordExpirationTime(passwordExpirationTime: string) {
this._share.password_expiration_time = passwordExpirationTime
}
/**
* Password protection by Talk of the share
- *
- * @return {boolean}
- * @readonly
- * @memberof Share
*/
- get sendPasswordByTalk() {
+ get sendPasswordByTalk(): boolean {
return this._share.send_password_by_talk
}
/**
* Password protection by Talk of the share
*
- * @param {boolean} sendPasswordByTalk whether to send the password by Talk
- * or not
- * @memberof Share
+ * @param {boolean} sendPasswordByTalk whether to send the password by Talk or not
*/
- set sendPasswordByTalk(sendPasswordByTalk) {
+ set sendPasswordByTalk(sendPasswordByTalk: boolean) {
this._share.send_password_by_talk = sendPasswordByTalk
}
// SHARED ITEM DATA ---------------------------------------------
/**
* Get the shared item absolute full path
- *
- * @return {string}
- * @readonly
- * @memberof Share
*/
- get path() {
+ get path(): string {
return this._share.path
}
/**
* Return the item type: file or folder
- *
- * @return {string} 'folder' or 'file'
- * @readonly
- * @memberof Share
+ * @return {string} 'folder' | 'file'
*/
- get itemType() {
+ get itemType(): string {
return this._share.item_type
}
/**
* Get the shared item mimetype
- *
- * @return {string}
- * @readonly
- * @memberof Share
*/
- get mimetype() {
+ get mimetype(): string {
return this._share.mimetype
}
/**
* Get the shared item id
- *
- * @return {number}
- * @readonly
- * @memberof Share
*/
- get fileSource() {
+ get fileSource(): number {
return this._share.file_source
}
@@ -469,23 +344,15 @@ export default class Share {
* Get the target path on the receiving end
* e.g the file /xxx/aaa will be shared in
* the receiving root as /aaa, the fileTarget is /aaa
- *
- * @return {string}
- * @readonly
- * @memberof Share
*/
- get fileTarget() {
+ get fileTarget(): string {
return this._share.file_target
}
/**
* Get the parent folder id if any
- *
- * @return {number}
- * @readonly
- * @memberof Share
*/
- get fileParent() {
+ get fileParent(): number {
return this._share.file_parent
}
@@ -493,86 +360,65 @@ export default class Share {
/**
* Does this share have READ permissions
- *
- * @return {boolean}
- * @readonly
- * @memberof Share
*/
- get hasReadPermission() {
- return !!((this.permissions & OC.PERMISSION_READ))
+ get hasReadPermission(): boolean {
+ return !!((this.permissions & window.OC.PERMISSION_READ))
}
/**
* Does this share have CREATE permissions
- *
- * @return {boolean}
- * @readonly
- * @memberof Share
*/
- get hasCreatePermission() {
- return !!((this.permissions & OC.PERMISSION_CREATE))
+ get hasCreatePermission(): boolean {
+ return !!((this.permissions & window.OC.PERMISSION_CREATE))
}
/**
* Does this share have DELETE permissions
- *
- * @return {boolean}
- * @readonly
- * @memberof Share
*/
- get hasDeletePermission() {
- return !!((this.permissions & OC.PERMISSION_DELETE))
+ get hasDeletePermission(): boolean {
+ return !!((this.permissions & window.OC.PERMISSION_DELETE))
}
/**
* Does this share have UPDATE permissions
- *
- * @return {boolean}
- * @readonly
- * @memberof Share
*/
- get hasUpdatePermission() {
- return !!((this.permissions & OC.PERMISSION_UPDATE))
+ get hasUpdatePermission(): boolean {
+ return !!((this.permissions & window.OC.PERMISSION_UPDATE))
}
/**
* Does this share have SHARE permissions
- *
- * @return {boolean}
- * @readonly
- * @memberof Share
*/
- get hasSharePermission() {
- return !!((this.permissions & OC.PERMISSION_SHARE))
+ get hasSharePermission(): boolean {
+ return !!((this.permissions & window.OC.PERMISSION_SHARE))
}
/**
* Does this share have download permissions
- *
- * @return {boolean}
- * @readonly
- * @memberof Share
*/
- get hasDownloadPermission() {
- for (const i in this._share.attributes) {
- const attr = this._share.attributes[i]
- if (attr.scope === 'permissions' && attr.key === 'download') {
- return attr.enabled
- }
+ get hasDownloadPermission(): boolean {
+ const hasDisabledDownload = (attribute) => {
+ return attribute.scope === 'permissions' && attribute.key === 'download' && attribute.value === false
}
+ return this.attributes.some(hasDisabledDownload)
+ }
- return true
+ /**
+ * Is this mail share a file request ?
+ */
+ get isFileRequest(): boolean {
+ return isFileRequest(JSON.stringify(this.attributes))
}
set hasDownloadPermission(enabled) {
this.setAttribute('permissions', 'download', !!enabled)
}
- setAttribute(scope, key, enabled) {
+ setAttribute(scope, key, value) {
const attrUpdate = {
scope,
key,
- enabled,
+ value,
}
// try and replace existing
@@ -592,45 +438,29 @@ export default class Share {
// ! meaning the permissions for the recipient
/**
* Can the current user EDIT this share ?
- *
- * @return {boolean}
- * @readonly
- * @memberof Share
*/
- get canEdit() {
+ get canEdit(): boolean {
return this._share.can_edit === true
}
/**
* Can the current user DELETE this share ?
- *
- * @return {boolean}
- * @readonly
- * @memberof Share
*/
- get canDelete() {
+ get canDelete(): boolean {
return this._share.can_delete === true
}
/**
* Top level accessible shared folder fileid for the current user
- *
- * @return {string}
- * @readonly
- * @memberof Share
*/
- get viaFileid() {
+ get viaFileid(): string {
return this._share.via_fileid
}
/**
* Top level accessible shared folder path for the current user
- *
- * @return {string}
- * @readonly
- * @memberof Share
*/
- get viaPath() {
+ get viaPath(): string {
return this._share.via_path
}
@@ -640,15 +470,15 @@ export default class Share {
return this._share.parent
}
- get storageId() {
+ get storageId(): string {
return this._share.storage_id
}
- get storage() {
+ get storage(): number {
return this._share.storage
}
- get itemSource() {
+ get itemSource(): number {
return this._share.item_source
}
@@ -656,4 +486,11 @@ export default class Share {
return this._share.status
}
+ /**
+ * Is the share from a trusted server
+ */
+ get isTrustedServer(): boolean {
+ return !!this._share.is_trusted_server
+ }
+
}
diff --git a/apps/files_sharing/src/personal-settings.js b/apps/files_sharing/src/personal-settings.js
index 1142b6e5136..e3184f0041e 100644
--- a/apps/files_sharing/src/personal-settings.js
+++ b/apps/files_sharing/src/personal-settings.js
@@ -1,33 +1,15 @@
/**
- * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>
- * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>
- *
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
+import { getCSPNonce } from '@nextcloud/auth'
import Vue from 'vue'
-import { getRequestToken } from '@nextcloud/auth'
import PersonalSettings from './components/PersonalSettings.vue'
// eslint-disable-next-line camelcase
-__webpack_nonce__ = btoa(getRequestToken())
+__webpack_nonce__ = getCSPNonce()
Vue.prototype.t = t
diff --git a/apps/files_sharing/src/public-nickname-handler.ts b/apps/files_sharing/src/public-nickname-handler.ts
new file mode 100644
index 00000000000..02bdc641aaf
--- /dev/null
+++ b/apps/files_sharing/src/public-nickname-handler.ts
@@ -0,0 +1,86 @@
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import { getBuilder } from '@nextcloud/browser-storage'
+import { getGuestNickname, type NextcloudUser } from '@nextcloud/auth'
+import { getUploader } from '@nextcloud/upload'
+import { loadState } from '@nextcloud/initial-state'
+import { showGuestUserPrompt } from '@nextcloud/dialogs'
+import { t } from '@nextcloud/l10n'
+
+import logger from './services/logger'
+import { subscribe } from '@nextcloud/event-bus'
+
+const storage = getBuilder('files_sharing').build()
+
+// Setup file-request nickname header for the uploader
+const registerFileRequestHeader = (nickname: string) => {
+ const uploader = getUploader()
+ uploader.setCustomHeader('X-NC-Nickname', encodeURIComponent(nickname))
+ logger.debug('Nickname header registered for uploader', { headers: uploader.customHeaders })
+}
+
+// Callback when a nickname was chosen
+const onUserInfoChanged = (guest: NextcloudUser) => {
+ logger.debug('User info changed', { guest })
+ registerFileRequestHeader(guest.displayName ?? '')
+}
+
+// Monitor nickname changes
+subscribe('user:info:changed', onUserInfoChanged)
+
+window.addEventListener('DOMContentLoaded', () => {
+ const nickname = getGuestNickname() ?? ''
+ const dialogShown = storage.getItem('public-auth-prompt-shown') !== null
+
+ // Check if a nickname is mandatory
+ const isFileRequest = loadState('files_sharing', 'isFileRequest', false)
+
+ const owner = loadState('files_sharing', 'owner', '')
+ const ownerDisplayName = loadState('files_sharing', 'ownerDisplayName', '')
+ const label = loadState('files_sharing', 'label', '')
+ const filename = loadState('files_sharing', 'filename', '')
+
+ // If the owner provided a custom label, use it instead of the filename
+ const folder = label || filename
+
+ const options = {
+ nickname,
+ notice: t('files_sharing', 'To upload files to {folder}, you need to provide your name first.', { folder }),
+ subtitle: undefined as string | undefined,
+ title: t('files_sharing', 'Upload files to {folder}', { folder }),
+ }
+
+ // If the guest already has a nickname, we just make them double check
+ if (nickname) {
+ options.notice = t('files_sharing', 'Please confirm your name to upload files to {folder}', { folder })
+ }
+
+ // If the account owner set their name as public,
+ // we show it in the subtitle
+ if (owner) {
+ options.subtitle = t('files_sharing', '{ownerDisplayName} shared a folder with you.', { ownerDisplayName })
+ }
+
+ // If this is a file request, then we need a nickname
+ if (isFileRequest) {
+ // If we don't have a nickname or the public auth prompt hasn't been shown yet, show it
+ // We still show the prompt if the user has a nickname to double check
+ if (!nickname || !dialogShown) {
+ logger.debug('Showing public auth prompt.', { nickname })
+ showGuestUserPrompt(options)
+ }
+ return
+ }
+
+ if (!dialogShown && !nickname) {
+ logger.debug('Public auth prompt not shown yet but nickname is not mandatory.', { nickname })
+ return
+ }
+
+ // Else, we just register the nickname header if any.
+ logger.debug('Public auth prompt already shown.', { nickname })
+ registerFileRequestHeader(nickname)
+})
diff --git a/apps/files_sharing/src/router/index.ts b/apps/files_sharing/src/router/index.ts
new file mode 100644
index 00000000000..fa613dd364f
--- /dev/null
+++ b/apps/files_sharing/src/router/index.ts
@@ -0,0 +1,76 @@
+/**
+ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import type { RawLocation, Route } from 'vue-router'
+
+import { loadState } from '@nextcloud/initial-state'
+import { generateUrl } from '@nextcloud/router'
+import queryString from 'query-string'
+import Router, { isNavigationFailure, NavigationFailureType } from 'vue-router'
+import Vue from 'vue'
+import logger from '../services/logger'
+
+const view = loadState<string>('files_sharing', 'view')
+const sharingToken = loadState<string>('files_sharing', 'sharingToken')
+
+Vue.use(Router)
+
+// Prevent router from throwing errors when we're already on the page we're trying to go to
+const originalPush = Router.prototype.push
+Router.prototype.push = (function(this: Router, ...args: Parameters<typeof originalPush>) {
+ if (args.length > 1) {
+ return originalPush.call(this, ...args)
+ }
+ return originalPush.call<Router, [RawLocation], Promise<Route>>(this, args[0]).catch(ignoreDuplicateNavigation)
+}) as typeof originalPush
+
+const originalReplace = Router.prototype.replace
+Router.prototype.replace = (function(this: Router, ...args: Parameters<typeof originalReplace>) {
+ if (args.length > 1) {
+ return originalReplace.call(this, ...args)
+ }
+ return originalReplace.call<Router, [RawLocation], Promise<Route>>(this, args[0]).catch(ignoreDuplicateNavigation)
+}) as typeof originalReplace
+
+/**
+ * Ignore duplicated-navigation error but forward real exceptions
+ * @param error The thrown error
+ */
+function ignoreDuplicateNavigation(error: unknown): void {
+ if (isNavigationFailure(error, NavigationFailureType.duplicated)) {
+ logger.debug('Ignoring duplicated navigation from vue-router', { error })
+ } else {
+ throw error
+ }
+}
+
+const router = new Router({
+ mode: 'history',
+
+ // if index.php is in the url AND we got this far, then it's working:
+ // let's keep using index.php in the url
+ base: generateUrl('/s'),
+ linkActiveClass: 'active',
+
+ routes: [
+ {
+ path: '/',
+ // Pretending we're using the default view
+ redirect: { name: 'filelist', params: { view, token: sharingToken } },
+ },
+ {
+ path: '/:token',
+ name: 'filelist',
+ props: true,
+ },
+ ],
+
+ // Custom stringifyQuery to prevent encoding of slashes in the url
+ stringifyQuery(query) {
+ const result = queryString.stringify(query).replace(/%2F/gmi, '/')
+ return result ? ('?' + result) : ''
+ },
+})
+
+export default router
diff --git a/apps/files_sharing/src/services/ConfigService.js b/apps/files_sharing/src/services/ConfigService.js
deleted file mode 100644
index 59e84b707c1..00000000000
--- a/apps/files_sharing/src/services/ConfigService.js
+++ /dev/null
@@ -1,341 +0,0 @@
-/**
- * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Julius Härtl <jus@bitgrid.net>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-import { getCapabilities } from '@nextcloud/capabilities'
-
-export default class Config {
-
- constructor() {
- this._capabilities = getCapabilities()
- }
-
- /**
- * Get default share permissions, if any
- *
- * @return {boolean}
- * @readonly
- * @memberof Config
- */
- get defaultPermissions() {
- return this._capabilities.files_sharing?.default_permissions
- }
-
- /**
- * Is public upload allowed on link shares ?
- *
- * @return {boolean}
- * @readonly
- * @memberof Config
- */
- get isPublicUploadEnabled() {
- return this._capabilities.files_sharing?.public.upload
- }
-
- /**
- * Are link share allowed ?
- *
- * @return {boolean}
- * @readonly
- * @memberof Config
- */
- get isShareWithLinkAllowed() {
- return document.getElementById('allowShareWithLink')
- && document.getElementById('allowShareWithLink').value === 'yes'
- }
-
- /**
- * Get the federated sharing documentation link
- *
- * @return {string}
- * @readonly
- * @memberof Config
- */
- get federatedShareDocLink() {
- return OC.appConfig.core.federatedCloudShareDoc
- }
-
- /**
- * Get the default link share expiration date
- *
- * @return {Date|null}
- * @readonly
- * @memberof Config
- */
- get defaultExpirationDate() {
- if (this.isDefaultExpireDateEnabled) {
- return new Date(new Date().setDate(new Date().getDate() + this.defaultExpireDate))
- }
- return null
- }
-
- /**
- * Get the default internal expiration date
- *
- * @return {Date|null}
- * @readonly
- * @memberof Config
- */
- get defaultInternalExpirationDate() {
- if (this.isDefaultInternalExpireDateEnabled) {
- return new Date(new Date().setDate(new Date().getDate() + this.defaultInternalExpireDate))
- }
- return null
- }
-
- /**
- * Get the default remote expiration date
- *
- * @return {Date|null}
- * @readonly
- * @memberof Config
- */
- get defaultRemoteExpirationDateString() {
- if (this.isDefaultRemoteExpireDateEnabled) {
- return new Date(new Date().setDate(new Date().getDate() + this.defaultRemoteExpireDate))
- }
- return null
- }
-
- /**
- * Are link shares password-enforced ?
- *
- * @return {boolean}
- * @readonly
- * @memberof Config
- */
- get enforcePasswordForPublicLink() {
- return OC.appConfig.core.enforcePasswordForPublicLink === true
- }
-
- /**
- * Is password asked by default on link shares ?
- *
- * @return {boolean}
- * @readonly
- * @memberof Config
- */
- get enableLinkPasswordByDefault() {
- return OC.appConfig.core.enableLinkPasswordByDefault === true
- }
-
- /**
- * Is link shares expiration enforced ?
- *
- * @return {boolean}
- * @readonly
- * @memberof Config
- */
- get isDefaultExpireDateEnforced() {
- return OC.appConfig.core.defaultExpireDateEnforced === true
- }
-
- /**
- * Is there a default expiration date for new link shares ?
- *
- * @return {boolean}
- * @readonly
- * @memberof Config
- */
- get isDefaultExpireDateEnabled() {
- return OC.appConfig.core.defaultExpireDateEnabled === true
- }
-
- /**
- * Is internal shares expiration enforced ?
- *
- * @return {boolean}
- * @readonly
- * @memberof Config
- */
- get isDefaultInternalExpireDateEnforced() {
- return OC.appConfig.core.defaultInternalExpireDateEnforced === true
- }
-
- /**
- * Is remote shares expiration enforced ?
- *
- * @return {boolean}
- * @readonly
- * @memberof Config
- */
- get isDefaultRemoteExpireDateEnforced() {
- return OC.appConfig.core.defaultRemoteExpireDateEnforced === true
- }
-
- /**
- * Is there a default expiration date for new internal shares ?
- *
- * @return {boolean}
- * @readonly
- * @memberof Config
- */
- get isDefaultInternalExpireDateEnabled() {
- return OC.appConfig.core.defaultInternalExpireDateEnabled === true
- }
-
- /**
- * Is there a default expiration date for new remote shares ?
- *
- * @return {boolean}
- * @readonly
- * @memberof Config
- */
- get isDefaultRemoteExpireDateEnabled() {
- return OC.appConfig.core.defaultRemoteExpireDateEnabled === true
- }
-
- /**
- * Are users on this server allowed to send shares to other servers ?
- *
- * @return {boolean}
- * @readonly
- * @memberof Config
- */
- get isRemoteShareAllowed() {
- return OC.appConfig.core.remoteShareAllowed === true
- }
-
- /**
- * Is sharing my mail (link share) enabled ?
- *
- * @return {boolean}
- * @readonly
- * @memberof Config
- */
- get isMailShareAllowed() {
- // eslint-disable-next-line camelcase
- return this._capabilities?.files_sharing?.sharebymail !== undefined
- // eslint-disable-next-line camelcase
- && this._capabilities?.files_sharing?.public?.enabled === true
- }
-
- /**
- * Get the default days to link shares expiration
- *
- * @return {number}
- * @readonly
- * @memberof Config
- */
- get defaultExpireDate() {
- return OC.appConfig.core.defaultExpireDate
- }
-
- /**
- * Get the default days to internal shares expiration
- *
- * @return {number}
- * @readonly
- * @memberof Config
- */
- get defaultInternalExpireDate() {
- return OC.appConfig.core.defaultInternalExpireDate
- }
-
- /**
- * Get the default days to remote shares expiration
- *
- * @return {number}
- * @readonly
- * @memberof Config
- */
- get defaultRemoteExpireDate() {
- return OC.appConfig.core.defaultRemoteExpireDate
- }
-
- /**
- * Is resharing allowed ?
- *
- * @return {boolean}
- * @readonly
- * @memberof Config
- */
- get isResharingAllowed() {
- return OC.appConfig.core.resharingAllowed === true
- }
-
- /**
- * Is password enforced for mail shares ?
- *
- * @return {boolean}
- * @readonly
- * @memberof Config
- */
- get isPasswordForMailSharesRequired() {
- return (this._capabilities.files_sharing.sharebymail === undefined) ? false : this._capabilities.files_sharing.sharebymail.password.enforced
- }
-
- /**
- * @return {boolean}
- * @readonly
- * @memberof Config
- */
- get shouldAlwaysShowUnique() {
- return (this._capabilities.files_sharing?.sharee?.always_show_unique === true)
- }
-
- /**
- * Is sharing with groups allowed ?
- *
- * @return {boolean}
- * @readonly
- * @memberof Config
- */
- get allowGroupSharing() {
- return OC.appConfig.core.allowGroupSharing === true
- }
-
- /**
- * Get the maximum results of a share search
- *
- * @return {number}
- * @readonly
- * @memberof Config
- */
- get maxAutocompleteResults() {
- return parseInt(OC.config['sharing.maxAutocompleteResults'], 10) || 25
- }
-
- /**
- * Get the minimal string length
- * to initiate a share search
- *
- * @return {number}
- * @readonly
- * @memberof Config
- */
- get minSearchStringLength() {
- return parseInt(OC.config['sharing.minSearchStringLength'], 10) || 0
- }
-
- /**
- * Get the password policy config
- *
- * @return {object}
- * @readonly
- * @memberof Config
- */
- get passwordPolicy() {
- return this._capabilities.password_policy ? this._capabilities.password_policy : {}
- }
-
-}
diff --git a/apps/files_sharing/src/services/ConfigService.ts b/apps/files_sharing/src/services/ConfigService.ts
new file mode 100644
index 00000000000..547038f362d
--- /dev/null
+++ b/apps/files_sharing/src/services/ConfigService.ts
@@ -0,0 +1,333 @@
+/**
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import { getCapabilities } from '@nextcloud/capabilities'
+import { loadState } from '@nextcloud/initial-state'
+
+type PasswordPolicyCapabilities = {
+ enforceNonCommonPassword: boolean
+ enforceNumericCharacters: boolean
+ enforceSpecialCharacters: boolean
+ enforceUpperLowerCase: boolean
+ minLength: number
+}
+
+type FileSharingCapabilities = {
+ api_enabled: boolean,
+ public: {
+ enabled: boolean,
+ password: {
+ enforced: boolean,
+ askForOptionalPassword: boolean
+ },
+ expire_date: {
+ enabled: boolean,
+ days: number,
+ enforced: boolean
+ },
+ multiple_links: boolean,
+ expire_date_internal: {
+ enabled: boolean
+ },
+ expire_date_remote: {
+ enabled: boolean
+ },
+ send_mail: boolean,
+ upload: boolean,
+ upload_files_drop: boolean,
+ custom_tokens: boolean,
+ },
+ resharing: boolean,
+ user: {
+ send_mail: boolean,
+ expire_date: {
+ enabled: boolean
+ }
+ },
+ group_sharing: boolean,
+ group: {
+ enabled: boolean,
+ expire_date: {
+ enabled: true
+ }
+ },
+ default_permissions: number,
+ federation: {
+ outgoing: boolean,
+ incoming: boolean,
+ expire_date: {
+ enabled: boolean
+ },
+ expire_date_supported: {
+ enabled: boolean
+ }
+ },
+ sharee: {
+ query_lookup_default: boolean,
+ always_show_unique: boolean
+ },
+ sharebymail: {
+ enabled: boolean,
+ send_password_by_mail: boolean,
+ upload_files_drop: {
+ enabled: boolean
+ },
+ password: {
+ enabled: boolean,
+ enforced: boolean
+ },
+ expire_date: {
+ enabled: boolean,
+ enforced: boolean
+ }
+ }
+}
+
+type Capabilities = {
+ files_sharing: FileSharingCapabilities
+ password_policy: PasswordPolicyCapabilities
+}
+
+export default class Config {
+
+ _capabilities: Capabilities
+
+ constructor() {
+ this._capabilities = getCapabilities() as Capabilities
+ }
+
+ /**
+ * Get default share permissions, if any
+ */
+ get defaultPermissions(): number {
+ return this._capabilities.files_sharing?.default_permissions
+ }
+
+ /**
+ * Is public upload allowed on link shares ?
+ * This covers File request and Full upload/edit option.
+ */
+ get isPublicUploadEnabled(): boolean {
+ return this._capabilities.files_sharing?.public?.upload === true
+ }
+
+ /**
+ * Get the federated sharing documentation link
+ */
+ get federatedShareDocLink() {
+ return window.OC.appConfig.core.federatedCloudShareDoc
+ }
+
+ /**
+ * Get the default link share expiration date
+ */
+ get defaultExpirationDate(): Date|null {
+ if (this.isDefaultExpireDateEnabled && this.defaultExpireDate !== null) {
+ return new Date(new Date().setDate(new Date().getDate() + this.defaultExpireDate))
+ }
+ return null
+ }
+
+ /**
+ * Get the default internal expiration date
+ */
+ get defaultInternalExpirationDate(): Date|null {
+ if (this.isDefaultInternalExpireDateEnabled && this.defaultInternalExpireDate !== null) {
+ return new Date(new Date().setDate(new Date().getDate() + this.defaultInternalExpireDate))
+ }
+ return null
+ }
+
+ /**
+ * Get the default remote expiration date
+ */
+ get defaultRemoteExpirationDateString(): Date|null {
+ if (this.isDefaultRemoteExpireDateEnabled && this.defaultRemoteExpireDate !== null) {
+ return new Date(new Date().setDate(new Date().getDate() + this.defaultRemoteExpireDate))
+ }
+ return null
+ }
+
+ /**
+ * Are link shares password-enforced ?
+ */
+ get enforcePasswordForPublicLink(): boolean {
+ return window.OC.appConfig.core.enforcePasswordForPublicLink === true
+ }
+
+ /**
+ * Is password asked by default on link shares ?
+ */
+ get enableLinkPasswordByDefault(): boolean {
+ return window.OC.appConfig.core.enableLinkPasswordByDefault === true
+ }
+
+ /**
+ * Is link shares expiration enforced ?
+ */
+ get isDefaultExpireDateEnforced(): boolean {
+ return window.OC.appConfig.core.defaultExpireDateEnforced === true
+ }
+
+ /**
+ * Is there a default expiration date for new link shares ?
+ */
+ get isDefaultExpireDateEnabled(): boolean {
+ return window.OC.appConfig.core.defaultExpireDateEnabled === true
+ }
+
+ /**
+ * Is internal shares expiration enforced ?
+ */
+ get isDefaultInternalExpireDateEnforced(): boolean {
+ return window.OC.appConfig.core.defaultInternalExpireDateEnforced === true
+ }
+
+ /**
+ * Is there a default expiration date for new internal shares ?
+ */
+ get isDefaultInternalExpireDateEnabled(): boolean {
+ return window.OC.appConfig.core.defaultInternalExpireDateEnabled === true
+ }
+
+ /**
+ * Is remote shares expiration enforced ?
+ */
+ get isDefaultRemoteExpireDateEnforced(): boolean {
+ return window.OC.appConfig.core.defaultRemoteExpireDateEnforced === true
+ }
+
+ /**
+ * Is there a default expiration date for new remote shares ?
+ */
+ get isDefaultRemoteExpireDateEnabled(): boolean {
+ return window.OC.appConfig.core.defaultRemoteExpireDateEnabled === true
+ }
+
+ /**
+ * Are users on this server allowed to send shares to other servers ?
+ */
+ get isRemoteShareAllowed(): boolean {
+ return window.OC.appConfig.core.remoteShareAllowed === true
+ }
+
+ /**
+ * Is federation enabled ?
+ */
+ get isFederationEnabled(): boolean {
+ return this._capabilities?.files_sharing?.federation?.outgoing === true
+ }
+
+ /**
+ * Is public sharing enabled ?
+ */
+ get isPublicShareAllowed(): boolean {
+ return this._capabilities?.files_sharing?.public?.enabled === true
+ }
+
+ /**
+ * Is sharing my mail (link share) enabled ?
+ */
+ get isMailShareAllowed(): boolean {
+ // eslint-disable-next-line camelcase
+ return this._capabilities?.files_sharing?.sharebymail?.enabled === true
+ // eslint-disable-next-line camelcase
+ && this.isPublicShareAllowed === true
+ }
+
+ /**
+ * Get the default days to link shares expiration
+ */
+ get defaultExpireDate(): number|null {
+ return window.OC.appConfig.core.defaultExpireDate
+ }
+
+ /**
+ * Get the default days to internal shares expiration
+ */
+ get defaultInternalExpireDate(): number|null {
+ return window.OC.appConfig.core.defaultInternalExpireDate
+ }
+
+ /**
+ * Get the default days to remote shares expiration
+ */
+ get defaultRemoteExpireDate(): number|null {
+ return window.OC.appConfig.core.defaultRemoteExpireDate
+ }
+
+ /**
+ * Is resharing allowed ?
+ */
+ get isResharingAllowed(): boolean {
+ return window.OC.appConfig.core.resharingAllowed === true
+ }
+
+ /**
+ * Is password enforced for mail shares ?
+ */
+ get isPasswordForMailSharesRequired(): boolean {
+ return this._capabilities.files_sharing?.sharebymail?.password?.enforced === true
+ }
+
+ /**
+ * Always show the email or userid unique sharee label if enabled by the admin
+ */
+ get shouldAlwaysShowUnique(): boolean {
+ return this._capabilities.files_sharing?.sharee?.always_show_unique === true
+ }
+
+ /**
+ * Is sharing with groups allowed ?
+ */
+ get allowGroupSharing(): boolean {
+ return window.OC.appConfig.core.allowGroupSharing === true
+ }
+
+ /**
+ * Get the maximum results of a share search
+ */
+ get maxAutocompleteResults(): number {
+ return parseInt(window.OC.config['sharing.maxAutocompleteResults'], 10) || 25
+ }
+
+ /**
+ * Get the minimal string length
+ * to initiate a share search
+ */
+ get minSearchStringLength(): number {
+ return parseInt(window.OC.config['sharing.minSearchStringLength'], 10) || 0
+ }
+
+ /**
+ * Get the password policy configuration
+ */
+ get passwordPolicy(): PasswordPolicyCapabilities {
+ return this._capabilities?.password_policy || {}
+ }
+
+ /**
+ * Returns true if custom tokens are allowed
+ */
+ get allowCustomTokens(): boolean {
+ return this._capabilities?.files_sharing?.public?.custom_tokens
+ }
+
+ /**
+ * Show federated shares as internal shares
+ * @return {boolean}
+ */
+ get showFederatedSharesAsInternal(): boolean {
+ return loadState('files_sharing', 'showFederatedSharesAsInternal', false)
+ }
+
+ /**
+ * Show federated shares to trusted servers as internal shares
+ * @return {boolean}
+ */
+ get showFederatedSharesToTrustedServersAsInternal(): boolean {
+ return loadState('files_sharing', 'showFederatedSharesToTrustedServersAsInternal', false)
+ }
+
+}
diff --git a/apps/files_sharing/src/services/ExternalLinkActions.js b/apps/files_sharing/src/services/ExternalLinkActions.js
index 1975b38808a..fe5130fbb49 100644
--- a/apps/files_sharing/src/services/ExternalLinkActions.js
+++ b/apps/files_sharing/src/services/ExternalLinkActions.js
@@ -1,23 +1,6 @@
/**
- * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
export default class ExternalLinkActions {
diff --git a/apps/files_sharing/src/services/ExternalShareActions.js b/apps/files_sharing/src/services/ExternalShareActions.js
index 89a46e7e692..6ffd7014fe2 100644
--- a/apps/files_sharing/src/services/ExternalShareActions.js
+++ b/apps/files_sharing/src/services/ExternalShareActions.js
@@ -1,23 +1,6 @@
/**
- * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
export default class ExternalShareActions {
@@ -65,7 +48,7 @@ export default class ExternalShareActions {
if (typeof action !== 'object'
|| typeof action.id !== 'string'
|| typeof action.data !== 'function' // () => {disabled: true}
- || !Array.isArray(action.shareType) // [\@nextcloud/sharing.Types.SHARE_TYPE_LINK, ...]
+ || !Array.isArray(action.shareType) // [\@nextcloud/sharing.Types.Link, ...]
|| typeof action.handlers !== 'object' // {click: () => {}, ...}
|| !Object.values(action.handlers).every(handler => typeof handler === 'function')) {
console.error('Invalid action provided', action)
diff --git a/apps/files_sharing/src/services/GuestNameValidity.ts b/apps/files_sharing/src/services/GuestNameValidity.ts
new file mode 100644
index 00000000000..0557c5253ca
--- /dev/null
+++ b/apps/files_sharing/src/services/GuestNameValidity.ts
@@ -0,0 +1,45 @@
+/*!
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import { InvalidFilenameError, InvalidFilenameErrorReason, validateFilename } from '@nextcloud/files'
+import { t } from '@nextcloud/l10n'
+
+/**
+ * Get the validity of a filename (empty if valid).
+ * This can be used for `setCustomValidity` on input elements
+ * @param name The filename
+ * @param escape Escape the matched string in the error (only set when used in HTML)
+ */
+export function getGuestNameValidity(name: string, escape = false): string {
+ if (name.trim() === '') {
+ return t('files', 'Names must not be empty.')
+ }
+
+ if (name.startsWith('.')) {
+ return t('files', 'Names must not start with a dot.')
+ }
+
+ try {
+ validateFilename(name)
+ return ''
+ } catch (error) {
+ if (!(error instanceof InvalidFilenameError)) {
+ throw error
+ }
+
+ switch (error.reason) {
+ case InvalidFilenameErrorReason.Character:
+ return t('files', '"{char}" is not allowed inside a name.', { char: error.segment }, undefined, { escape })
+ case InvalidFilenameErrorReason.ReservedName:
+ return t('files', '"{segment}" is a reserved name and not allowed.', { segment: error.segment }, undefined, { escape: false })
+ case InvalidFilenameErrorReason.Extension:
+ if (error.segment.match(/\.[a-z]/i)) {
+ return t('files', '"{extension}" is not an allowed name.', { extension: error.segment }, undefined, { escape: false })
+ }
+ return t('files', 'Names must not end with "{extension}".', { extension: error.segment }, undefined, { escape: false })
+ default:
+ return t('files', 'Invalid name.')
+ }
+ }
+}
diff --git a/apps/files_sharing/src/services/ShareSearch.js b/apps/files_sharing/src/services/ShareSearch.js
index 1a9737cbfba..eff209aad2b 100644
--- a/apps/files_sharing/src/services/ShareSearch.js
+++ b/apps/files_sharing/src/services/ShareSearch.js
@@ -1,23 +1,6 @@
/**
- * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
export default class ShareSearch {
diff --git a/apps/files_sharing/src/services/SharingService.spec.ts b/apps/files_sharing/src/services/SharingService.spec.ts
index 79b91c9826f..936c1afafc4 100644
--- a/apps/files_sharing/src/services/SharingService.spec.ts
+++ b/apps/files_sharing/src/services/SharingService.spec.ts
@@ -1,47 +1,35 @@
/**
- * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
import type { OCSResponse } from '@nextcloud/typings/ocs'
-import { expect } from '@jest/globals'
-import { Type } from '@nextcloud/sharing'
-import * as auth from '@nextcloud/auth'
-import axios from '@nextcloud/axios'
-import { getContents } from './SharingService'
import { File, Folder } from '@nextcloud/files'
+import { ShareType } from '@nextcloud/sharing'
+import { beforeAll, beforeEach, describe, expect, test, vi } from 'vitest'
+
+import { getContents } from './SharingService'
+import * as auth from '@nextcloud/auth'
import logger from './logger'
-global.window.OC = {
- TAG_FAVORITE: '_$!<Favorite>!$_',
-}
+const TAG_FAVORITE = '_$!<Favorite>!$_'
-// Mock webroot variable
+const axios = vi.hoisted(() => ({ get: vi.fn() }))
+vi.mock('@nextcloud/auth')
+vi.mock('@nextcloud/axios', () => ({ default: axios }))
+
+// Mock TAG
beforeAll(() => {
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- (window as any)._oc_webroot = ''
+ window.OC = {
+ ...window.OC,
+ TAG_FAVORITE,
+ }
})
describe('SharingService methods definitions', () => {
- beforeAll(() => {
- jest.spyOn(axios, 'get').mockImplementation(async (): Promise<any> => {
+ beforeEach(() => {
+ vi.resetAllMocks()
+ axios.get.mockImplementation(async (): Promise<unknown> => {
return {
data: {
ocs: {
@@ -52,20 +40,16 @@ describe('SharingService methods definitions', () => {
},
data: [],
},
- } as OCSResponse<any>,
+ } as OCSResponse,
}
})
})
- afterAll(() => {
- jest.restoreAllMocks()
- })
-
test('Shared with you', async () => {
await getContents(true, false, false, false, [])
expect(axios.get).toHaveBeenCalledTimes(2)
- expect(axios.get).toHaveBeenNthCalledWith(1, 'http://localhost/ocs/v2.php/apps/files_sharing/api/v1/shares', {
+ expect(axios.get).toHaveBeenNthCalledWith(1, 'http://nextcloud.local/ocs/v2.php/apps/files_sharing/api/v1/shares', {
headers: {
'Content-Type': 'application/json',
},
@@ -74,7 +58,7 @@ describe('SharingService methods definitions', () => {
include_tags: true,
},
})
- expect(axios.get).toHaveBeenNthCalledWith(2, 'http://localhost/ocs/v2.php/apps/files_sharing/api/v1/remote_shares', {
+ expect(axios.get).toHaveBeenNthCalledWith(2, 'http://nextcloud.local/ocs/v2.php/apps/files_sharing/api/v1/remote_shares', {
headers: {
'Content-Type': 'application/json',
},
@@ -88,7 +72,7 @@ describe('SharingService methods definitions', () => {
await getContents(false, true, false, false, [])
expect(axios.get).toHaveBeenCalledTimes(1)
- expect(axios.get).toHaveBeenCalledWith('http://localhost/ocs/v2.php/apps/files_sharing/api/v1/shares', {
+ expect(axios.get).toHaveBeenCalledWith('http://nextcloud.local/ocs/v2.php/apps/files_sharing/api/v1/shares', {
headers: {
'Content-Type': 'application/json',
},
@@ -103,7 +87,7 @@ describe('SharingService methods definitions', () => {
await getContents(false, false, true, false, [])
expect(axios.get).toHaveBeenCalledTimes(2)
- expect(axios.get).toHaveBeenNthCalledWith(1, 'http://localhost/ocs/v2.php/apps/files_sharing/api/v1/shares/pending', {
+ expect(axios.get).toHaveBeenNthCalledWith(1, 'http://nextcloud.local/ocs/v2.php/apps/files_sharing/api/v1/shares/pending', {
headers: {
'Content-Type': 'application/json',
},
@@ -111,7 +95,7 @@ describe('SharingService methods definitions', () => {
include_tags: true,
},
})
- expect(axios.get).toHaveBeenNthCalledWith(2, 'http://localhost/ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending', {
+ expect(axios.get).toHaveBeenNthCalledWith(2, 'http://nextcloud.local/ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending', {
headers: {
'Content-Type': 'application/json',
},
@@ -125,7 +109,7 @@ describe('SharingService methods definitions', () => {
await getContents(false, true, false, false, [])
expect(axios.get).toHaveBeenCalledTimes(1)
- expect(axios.get).toHaveBeenCalledWith('http://localhost/ocs/v2.php/apps/files_sharing/api/v1/shares', {
+ expect(axios.get).toHaveBeenCalledWith('http://nextcloud.local/ocs/v2.php/apps/files_sharing/api/v1/shares', {
headers: {
'Content-Type': 'application/json',
},
@@ -137,7 +121,7 @@ describe('SharingService methods definitions', () => {
})
test('Unknown owner', async () => {
- jest.spyOn(auth, 'getCurrentUser').mockReturnValue(null)
+ vi.spyOn(auth, 'getCurrentUser').mockReturnValue(null)
const results = await getContents(false, true, false, false, [])
expect(results.folder.owner).toEqual(null)
@@ -145,8 +129,9 @@ describe('SharingService methods definitions', () => {
})
describe('SharingService filtering', () => {
- beforeAll(() => {
- jest.spyOn(axios, 'get').mockImplementation(async (): Promise<any> => {
+ beforeEach(() => {
+ vi.resetAllMocks()
+ axios.get.mockImplementation(async (): Promise<unknown> => {
return {
data: {
ocs: {
@@ -158,7 +143,7 @@ describe('SharingService filtering', () => {
data: [
{
id: '62',
- share_type: Type.SHARE_TYPE_USER,
+ share_type: ShareType.User,
uid_owner: 'test',
displayname_owner: 'test',
permissions: 31,
@@ -184,12 +169,8 @@ describe('SharingService filtering', () => {
})
})
- afterAll(() => {
- jest.restoreAllMocks()
- })
-
test('Shared with others filtering', async () => {
- const shares = await getContents(false, true, false, false, [Type.SHARE_TYPE_USER])
+ const shares = await getContents(false, true, false, false, [ShareType.User])
expect(axios.get).toHaveBeenCalledTimes(1)
expect(shares.contents).toHaveLength(1)
@@ -198,7 +179,7 @@ describe('SharingService filtering', () => {
})
test('Shared with others filtering empty', async () => {
- const shares = await getContents(false, true, false, false, [Type.SHARE_TYPE_LINK])
+ const shares = await getContents(false, true, false, false, [ShareType.Link])
expect(axios.get).toHaveBeenCalledTimes(1)
expect(shares.contents).toHaveLength(0)
@@ -291,11 +272,65 @@ describe('SharingService share to Node mapping', () => {
mail_send: 0,
hide_download: 0,
attributes: null,
- tags: [window.OC.TAG_FAVORITE],
+ tags: [TAG_FAVORITE],
}
+ const remoteFileAccepted = {
+ mimetype: 'text/markdown',
+ mtime: 1688721600,
+ permissions: 19,
+ type: 'file',
+ file_id: 1234,
+ id: 4,
+ share_type: ShareType.User,
+ parent: null,
+ remote: 'http://exampe.com',
+ remote_id: '12345',
+ share_token: 'share-token',
+ name: '/test.md',
+ mountpoint: '/shares/test.md',
+ owner: 'owner-uid',
+ user: 'sharee-uid',
+ accepted: true,
+ }
+
+ const remoteFilePending = {
+ mimetype: 'text/markdown',
+ mtime: 1688721600,
+ permissions: 19,
+ type: 'file',
+ file_id: 1234,
+ id: 4,
+ share_type: ShareType.User,
+ parent: null,
+ remote: 'http://exampe.com',
+ remote_id: '12345',
+ share_token: 'share-token',
+ name: '/test.md',
+ mountpoint: '/shares/test.md',
+ owner: 'owner-uid',
+ user: 'sharee-uid',
+ accepted: false,
+ }
+
+ const tempExternalFile = {
+ id: 65,
+ share_type: 0,
+ parent: -1,
+ remote: 'http://nextcloud1.local/',
+ remote_id: '71',
+ share_token: '9GpiAmTIjayclrE',
+ name: '/test.md',
+ owner: 'owner-uid',
+ user: 'sharee-uid',
+ mountpoint: '{{TemporaryMountPointName#/test.md}}',
+ accepted: 0,
+ }
+
+ beforeEach(() => { vi.resetAllMocks() })
+
test('File', async () => {
- jest.spyOn(axios, 'get').mockReturnValueOnce(Promise.resolve({
+ axios.get.mockReturnValueOnce(Promise.resolve({
data: {
ocs: {
data: [shareFile],
@@ -311,7 +346,7 @@ describe('SharingService share to Node mapping', () => {
const file = shares.contents[0] as File
expect(file).toBeInstanceOf(File)
expect(file.fileid).toBe(530936)
- expect(file.source).toBe('http://localhost/remote.php/dav/files/test/document.md')
+ expect(file.source).toBe('http://nextcloud.local/remote.php/dav/files/test/document.md')
expect(file.owner).toBe('test')
expect(file.mime).toBe('text/markdown')
expect(file.mtime).toBeInstanceOf(Date)
@@ -320,11 +355,18 @@ describe('SharingService share to Node mapping', () => {
expect(file.root).toBe('/files/test')
expect(file.attributes).toBeInstanceOf(Object)
expect(file.attributes['has-preview']).toBe(true)
+ expect(file.attributes.sharees).toEqual({
+ sharee: {
+ id: 'user00',
+ 'display-name': 'User00',
+ type: 0,
+ },
+ })
expect(file.attributes.favorite).toBe(0)
})
test('Folder', async () => {
- jest.spyOn(axios, 'get').mockReturnValueOnce(Promise.resolve({
+ axios.get.mockReturnValueOnce(Promise.resolve({
data: {
ocs: {
data: [shareFolder],
@@ -340,7 +382,7 @@ describe('SharingService share to Node mapping', () => {
const folder = shares.contents[0] as Folder
expect(folder).toBeInstanceOf(Folder)
expect(folder.fileid).toBe(531080)
- expect(folder.source).toBe('http://localhost/remote.php/dav/files/test/Folder')
+ expect(folder.source).toBe('http://nextcloud.local/remote.php/dav/files/test/Folder')
expect(folder.owner).toBe('test')
expect(folder.mime).toBe('httpd/unix-directory')
expect(folder.mtime).toBeInstanceOf(Date)
@@ -353,12 +395,116 @@ describe('SharingService share to Node mapping', () => {
expect(folder.attributes.favorite).toBe(1)
})
+ describe('Remote file', () => {
+ test('Accepted', async () => {
+ axios.get.mockReturnValueOnce(Promise.resolve({
+ data: {
+ ocs: {
+ data: [remoteFileAccepted],
+ },
+ },
+ }))
+
+ const shares = await getContents(false, true, false, false)
+
+ expect(axios.get).toHaveBeenCalledTimes(1)
+ expect(shares.contents).toHaveLength(1)
+
+ const file = shares.contents[0] as File
+ expect(file).toBeInstanceOf(File)
+ expect(file.fileid).toBe(1234)
+ expect(file.source).toBe('http://nextcloud.local/remote.php/dav/files/test/shares/test.md')
+ expect(file.owner).toBe('owner-uid')
+ expect(file.mime).toBe('text/markdown')
+ expect(file.mtime?.getTime()).toBe(remoteFileAccepted.mtime * 1000)
+ // not available for remote shares
+ expect(file.size).toBe(undefined)
+ expect(file.permissions).toBe(19)
+ expect(file.root).toBe('/files/test')
+ expect(file.attributes).toBeInstanceOf(Object)
+ expect(file.attributes.favorite).toBe(0)
+ })
+
+ test('Pending', async () => {
+ axios.get.mockReturnValueOnce(Promise.resolve({
+ data: {
+ ocs: {
+ data: [remoteFilePending],
+ },
+ },
+ }))
+
+ const shares = await getContents(false, true, false, false)
+
+ expect(axios.get).toHaveBeenCalledTimes(1)
+ expect(shares.contents).toHaveLength(1)
+
+ const file = shares.contents[0] as File
+ expect(file).toBeInstanceOf(File)
+ expect(file.fileid).toBe(1234)
+ expect(file.source).toBe('http://nextcloud.local/remote.php/dav/files/test/shares/test.md')
+ expect(file.owner).toBe('owner-uid')
+ expect(file.mime).toBe('text/markdown')
+ expect(file.mtime?.getTime()).toBe(remoteFilePending.mtime * 1000)
+ // not available for remote shares
+ expect(file.size).toBe(undefined)
+ expect(file.permissions).toBe(0)
+ expect(file.root).toBe('/files/test')
+ expect(file.attributes).toBeInstanceOf(Object)
+ expect(file.attributes.favorite).toBe(0)
+ })
+ })
+
+ test('External temp file', async () => {
+ axios.get.mockReturnValueOnce(Promise.resolve({
+ data: {
+ ocs: {
+ data: [tempExternalFile],
+ },
+ },
+ }))
+
+ const shares = await getContents(false, true, false, false)
+
+ expect(axios.get).toHaveBeenCalledTimes(1)
+ expect(shares.contents).toHaveLength(1)
+
+ const file = shares.contents[0] as File
+ expect(file).toBeInstanceOf(File)
+ expect(file.fileid).toBe(65)
+ expect(file.source).toBe('http://nextcloud.local/remote.php/dav/files/test/test.md')
+ expect(file.owner).toBe('owner-uid')
+ expect(file.mime).toBe('text/markdown')
+ expect(file.mtime?.getTime()).toBe(undefined)
+ // not available for remote shares
+ expect(file.size).toBe(undefined)
+ expect(file.permissions).toBe(0)
+ expect(file.root).toBe('/files/test')
+ expect(file.attributes).toBeInstanceOf(Object)
+ expect(file.attributes.favorite).toBe(0)
+ })
+
+ test('Empty', async () => {
+ vi.spyOn(logger, 'error').mockImplementationOnce(() => {})
+ axios.get.mockReturnValueOnce(Promise.resolve({
+ data: {
+ ocs: {
+ data: [],
+ },
+ },
+ }))
+
+ const shares = await getContents(false, true, false, false)
+ expect(shares.contents).toHaveLength(0)
+ expect(logger.error).toHaveBeenCalledTimes(0)
+ })
+
test('Error', async () => {
- jest.spyOn(logger, 'error').mockImplementationOnce(() => {})
- jest.spyOn(axios, 'get').mockReturnValueOnce(Promise.resolve({
+ vi.spyOn(logger, 'error').mockImplementationOnce(() => {})
+ axios.get.mockReturnValueOnce(Promise.resolve({
data: {
ocs: {
- data: [{}],
+ data: [null],
},
},
}))
diff --git a/apps/files_sharing/src/services/SharingService.ts b/apps/files_sharing/src/services/SharingService.ts
index 41861c5d3ea..41c20f9aa73 100644
--- a/apps/files_sharing/src/services/SharingService.ts
+++ b/apps/files_sharing/src/services/SharingService.ts
@@ -1,76 +1,107 @@
/**
- * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
-/* eslint-disable camelcase, n/no-extraneous-import */
-import type { AxiosPromise } from 'axios'
+// TODO: Fix this instead of disabling ESLint!!!
+/* eslint-disable @typescript-eslint/no-explicit-any */
+
+import type { AxiosPromise } from '@nextcloud/axios'
+import type { ContentsWithRoot } from '@nextcloud/files'
import type { OCSResponse } from '@nextcloud/typings/ocs'
+import type { ShareAttribute } from '../sharing'
-import { Folder, File, type ContentsWithRoot } from '@nextcloud/files'
-import { generateOcsUrl, generateRemoteUrl } from '@nextcloud/router'
import { getCurrentUser } from '@nextcloud/auth'
+import { Folder, File, Permission, davRemoteURL, davRootPath } from '@nextcloud/files'
+import { generateOcsUrl } from '@nextcloud/router'
import axios from '@nextcloud/axios'
import logger from './logger'
-export const rootPath = `/files/${getCurrentUser()?.uid}`
-
const headers = {
'Content-Type': 'application/json',
}
-const ocsEntryToNode = function(ocsEntry: any): Folder | File | null {
+const ocsEntryToNode = async function(ocsEntry: any): Promise<Folder | File | null> {
try {
+ // Federated share handling
+ if (ocsEntry?.remote_id !== undefined) {
+ if (!ocsEntry.mimetype) {
+ const mime = (await import('mime')).default
+ // This won't catch files without an extension, but this is the best we can do
+ ocsEntry.mimetype = mime.getType(ocsEntry.name)
+ }
+ ocsEntry.item_type = ocsEntry.type || (ocsEntry.mimetype ? 'file' : 'folder')
+
+ // different naming for remote shares
+ ocsEntry.item_mtime = ocsEntry.mtime
+ ocsEntry.file_target = ocsEntry.file_target || ocsEntry.mountpoint
+
+ if (ocsEntry.file_target.includes('TemporaryMountPointName')) {
+ ocsEntry.file_target = ocsEntry.name
+ }
+
+ // If the share is not accepted yet we don't know which permissions it will have
+ if (!ocsEntry.accepted) {
+ // Need to set permissions to NONE for federated shares
+ ocsEntry.item_permissions = Permission.NONE
+ ocsEntry.permissions = Permission.NONE
+ }
+
+ ocsEntry.uid_owner = ocsEntry.owner
+ // TODO: have the real display name stored somewhere
+ ocsEntry.displayname_owner = ocsEntry.owner
+ }
+
const isFolder = ocsEntry?.item_type === 'folder'
const hasPreview = ocsEntry?.has_preview === true
const Node = isFolder ? Folder : File
- const fileid = ocsEntry.file_source
+ // If this is an external share that is not yet accepted,
+ // we don't have an id. We can fallback to the row id temporarily
+ // local shares (this server) use `file_source`, but remote shares (federated) use `file_id`
+ const fileid = ocsEntry.file_source || ocsEntry.file_id || ocsEntry.id
// Generate path and strip double slashes
- const path = ocsEntry?.path || ocsEntry.file_target
- const source = generateRemoteUrl(`dav/${rootPath}/${path}`.replaceAll(/\/\//gm, '/'))
+ const path = ocsEntry.path || ocsEntry.file_target || ocsEntry.name
+ const source = `${davRemoteURL}${davRootPath}/${path.replace(/^\/+/, '')}`
+ let mtime = ocsEntry.item_mtime ? new Date((ocsEntry.item_mtime) * 1000) : undefined
// Prefer share time if more recent than item mtime
- let mtime = ocsEntry?.item_mtime ? new Date((ocsEntry.item_mtime) * 1000) : undefined
if (ocsEntry?.stime > (ocsEntry?.item_mtime || 0)) {
mtime = new Date((ocsEntry.stime) * 1000)
}
+ let sharees: { sharee: object } | undefined
+ if ('share_with' in ocsEntry) {
+ sharees = {
+ sharee: {
+ id: ocsEntry.share_with,
+ 'display-name': ocsEntry.share_with_displayname || ocsEntry.share_with,
+ type: ocsEntry.share_type,
+ },
+ }
+ }
+
return new Node({
id: fileid,
source,
owner: ocsEntry?.uid_owner,
- mime: ocsEntry?.mimetype,
+ mime: ocsEntry?.mimetype || 'application/octet-stream',
mtime,
size: ocsEntry?.item_size,
permissions: ocsEntry?.item_permissions || ocsEntry?.permissions,
- root: rootPath,
+ root: davRootPath,
attributes: {
...ocsEntry,
'has-preview': hasPreview,
+ 'hide-download': ocsEntry?.hide_download === 1,
// Also check the sharingStatusAction.ts code
'owner-id': ocsEntry?.uid_owner,
'owner-display-name': ocsEntry?.displayname_owner,
'share-types': ocsEntry?.share_type,
- favorite: ocsEntry?.tags?.includes(window.OC.TAG_FAVORITE) ? 1 : 0,
+ 'share-attributes': ocsEntry?.attributes || '[]',
+ sharees,
+ favorite: ocsEntry?.tags?.includes((window.OC as { TAG_FAVORITE: string }).TAG_FAVORITE) ? 1 : 0,
},
})
} catch (error) {
@@ -79,12 +110,12 @@ const ocsEntryToNode = function(ocsEntry: any): Folder | File | null {
}
}
-const getShares = function(shared_with_me = false): AxiosPromise<OCSResponse<any>> {
+const getShares = function(shareWithMe = false): AxiosPromise<OCSResponse<any>> {
const url = generateOcsUrl('apps/files_sharing/api/v1/shares')
return axios.get(url, {
headers,
params: {
- shared_with_me,
+ shared_with_me: shareWithMe,
include_tags: true,
},
})
@@ -139,8 +170,28 @@ const getDeletedShares = function(): AxiosPromise<OCSResponse<any>> {
}
/**
+ * Check if a file request is enabled
+ * @param attributes the share attributes json-encoded array
+ */
+export const isFileRequest = (attributes = '[]'): boolean => {
+ const isFileRequest = (attribute) => {
+ return attribute.scope === 'fileRequest' && attribute.key === 'enabled' && attribute.value === true
+ }
+
+ try {
+ const attributesArray = JSON.parse(attributes) as Array<ShareAttribute>
+ return attributesArray.some(isFileRequest)
+ } catch (error) {
+ logger.error('Error while parsing share attributes', { error })
+ return false
+ }
+}
+
+/**
* Group an array of objects (here Nodes) by a key
* and return an array of arrays of them.
+ * @param nodes Nodes to group
+ * @param key The attribute to group by
*/
const groupBy = function(nodes: (Folder | File)[], key: string) {
return Object.values(nodes.reduce(function(acc, curr) {
@@ -167,7 +218,7 @@ export const getContents = async (sharedWithYou = true, sharedWithOthers = true,
const responses = await Promise.all(promises)
const data = responses.map((response) => response.data.ocs.data).flat()
- let contents = data.map(ocsEntryToNode)
+ let contents = (await Promise.all(data.map(ocsEntryToNode)))
.filter((node) => node !== null) as (Folder | File)[]
if (filterTypes.length > 0) {
@@ -185,7 +236,7 @@ export const getContents = async (sharedWithYou = true, sharedWithOthers = true,
return {
folder: new Folder({
id: 0,
- source: generateRemoteUrl('dav' + rootPath),
+ source: `${davRemoteURL}${davRootPath}`,
owner: getCurrentUser()?.uid || null,
}),
contents,
diff --git a/apps/files_sharing/src/services/TabSections.js b/apps/files_sharing/src/services/TabSections.js
index d266909b6cc..ab1237e7044 100644
--- a/apps/files_sharing/src/services/TabSections.js
+++ b/apps/files_sharing/src/services/TabSections.js
@@ -1,23 +1,14 @@
/**
- * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>
- *
- * @author Julius Härtl <jus@bitgrid.net>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+/**
+ * Callback to render a section in the sharing tab.
*
+ * @callback registerSectionCallback
+ * @param {undefined} el - Deprecated and will always be undefined (formerly the root element)
+ * @param {object} fileInfo - File info object
*/
export default class TabSections {
diff --git a/apps/files_sharing/src/services/TokenService.ts b/apps/files_sharing/src/services/TokenService.ts
new file mode 100644
index 00000000000..c497531dfdb
--- /dev/null
+++ b/apps/files_sharing/src/services/TokenService.ts
@@ -0,0 +1,20 @@
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import axios from '@nextcloud/axios'
+import { generateOcsUrl } from '@nextcloud/router'
+
+interface TokenData {
+ ocs: {
+ data: {
+ token: string,
+ }
+ }
+}
+
+export const generateToken = async (): Promise<string> => {
+ const { data } = await axios.get<TokenData>(generateOcsUrl('/apps/files_sharing/api/v1/token'))
+ return data.ocs.data.token
+}
diff --git a/apps/files_sharing/src/services/logger.ts b/apps/files_sharing/src/services/logger.ts
index 19be888bf1f..ea582deee91 100644
--- a/apps/files_sharing/src/services/logger.ts
+++ b/apps/files_sharing/src/services/logger.ts
@@ -1,23 +1,6 @@
/**
- * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { getLoggerBuilder } from '@nextcloud/logger'
diff --git a/apps/files_sharing/src/share.js b/apps/files_sharing/src/share.js
index a54f2f13698..cdc3c917dfa 100644
--- a/apps/files_sharing/src/share.js
+++ b/apps/files_sharing/src/share.js
@@ -1,41 +1,13 @@
/**
- * Copyright (c) 2014
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Calviño Sánchez <danxuliu@gmail.com>
- * @author Joas Schilling <coding@schilljs.com>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Maxence Lange <maxence@nextcloud.com>
- * @author Michael Jobst <mjobst+github@tecratech.de>
- * @author Michael Jobst <mjobst@necls.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Samuel <faust64@gmail.com>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2011-2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
/* eslint-disable */
import escapeHTML from 'escape-html'
-import { Type as ShareTypes } from '@nextcloud/sharing'
+import { ShareType } from '@nextcloud/sharing'
import { getCapabilities } from '@nextcloud/capabilities'
(function() {
@@ -183,25 +155,23 @@ import { getCapabilities } from '@nextcloud/capabilities'
var hasShares = false
_.each(shareTypesStr.split(',') || [], function(shareTypeStr) {
let shareType = parseInt(shareTypeStr, 10)
- if (shareType === ShareTypes.SHARE_TYPE_LINK) {
+ if (shareType === ShareType.Link) {
hasLink = true
- } else if (shareType === ShareTypes.SHARE_TYPE_EMAIL) {
+ } else if (shareType === ShareType.Email) {
hasLink = true
- } else if (shareType === ShareTypes.SHARE_TYPE_USER) {
+ } else if (shareType === ShareType.User) {
hasShares = true
- } else if (shareType === ShareTypes.SHARE_TYPE_GROUP) {
+ } else if (shareType === ShareType.Group) {
hasShares = true
- } else if (shareType === ShareTypes.SHARE_TYPE_REMOTE) {
+ } else if (shareType === ShareType.Remote) {
hasShares = true
- } else if (shareType === ShareTypes.SHARE_TYPE_REMOTE_GROUP) {
+ } else if (shareType === ShareType.RemoteGroup) {
hasShares = true
- } else if (shareType === ShareTypes.SHARE_TYPE_CIRCLE) {
+ } else if (shareType === ShareType.Team) {
hasShares = true
- } else if (shareType === ShareTypes.SHARE_TYPE_ROOM) {
+ } else if (shareType === ShareType.Room) {
hasShares = true
- } else if (shareType === ShareTypes.SHARE_TYPE_DECK) {
- hasShares = true
- } else if (shareType === ShareTypes.SHARE_TYPE_SCIENCEMESH) {
+ } else if (shareType === ShareType.Deck) {
hasShares = true
}
})
@@ -232,8 +202,8 @@ import { getCapabilities } from '@nextcloud/capabilities'
permissions: OC.PERMISSION_ALL,
iconClass: function(fileName, context) {
var shareType = parseInt(context.$file.data('share-types'), 10)
- if (shareType === ShareTypes.SHARE_TYPE_EMAIL
- || shareType === ShareTypes.SHARE_TYPE_LINK) {
+ if (shareType === ShareType.Email
+ || shareType === ShareType.Link) {
return 'icon-public'
}
return 'icon-shared'
diff --git a/apps/files_sharing/src/sharebreadcrumbview.js b/apps/files_sharing/src/sharebreadcrumbview.js
index ef04c9c029d..68ea75d4df9 100644
--- a/apps/files_sharing/src/sharebreadcrumbview.js
+++ b/apps/files_sharing/src/sharebreadcrumbview.js
@@ -1,28 +1,9 @@
/**
- * @copyright 2016 Christoph Wurst <christoph@winzerhof-wurst.at>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
-import { Type as ShareTypes } from '@nextcloud/sharing'
+import { ShareType } from '@nextcloud/sharing'
(function() {
'use strict'
@@ -42,7 +23,7 @@ import { Type as ShareTypes } from '@nextcloud/sharing'
this.$el.removeClass('shared icon-public icon-shared')
if (isShared) {
this.$el.addClass('shared')
- if (data.dirInfo.shareTypes.indexOf(ShareTypes.SHARE_TYPE_LINK) !== -1) {
+ if (data.dirInfo.shareTypes.indexOf(ShareType.Link) !== -1) {
this.$el.addClass('icon-public')
} else {
this.$el.addClass('icon-shared')
diff --git a/apps/files_sharing/src/sharing.d.ts b/apps/files_sharing/src/sharing.d.ts
new file mode 100644
index 00000000000..5c1a211f346
--- /dev/null
+++ b/apps/files_sharing/src/sharing.d.ts
@@ -0,0 +1,10 @@
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+export type ShareAttribute = {
+ value: boolean|string|number|null|object|Array<unknown>
+ key: string
+ scope: string
+}
diff --git a/apps/files_sharing/src/style/sharebreadcrumb.scss b/apps/files_sharing/src/style/sharebreadcrumb.scss
index c4853e05165..6ee05c45306 100644
--- a/apps/files_sharing/src/style/sharebreadcrumb.scss
+++ b/apps/files_sharing/src/style/sharebreadcrumb.scss
@@ -1,23 +1,6 @@
-/**
- * @copyright 2016 Christoph Wurst <christoph@winzerhof-wurst.at>
- *
- * @author 2016 Christoph Wurst <christoph@winzerhof-wurst.at>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+/*!
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
li.crumb span.icon-shared,
@@ -25,7 +8,7 @@ li.crumb span.icon-public {
display: inline-block;
cursor: pointer;
opacity: 0.2;
- margin-right: 6px;
+ margin-inline-end: 6px;
}
li.crumb span.icon-shared.shared,
diff --git a/apps/files_sharing/src/utils/AccountIcon.spec.ts b/apps/files_sharing/src/utils/AccountIcon.spec.ts
new file mode 100644
index 00000000000..bbc7f031774
--- /dev/null
+++ b/apps/files_sharing/src/utils/AccountIcon.spec.ts
@@ -0,0 +1,40 @@
+/*!
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import { describe, expect, it, afterEach } from 'vitest'
+import { generateAvatarSvg } from './AccountIcon'
+describe('AccountIcon', () => {
+
+ afterEach(() => {
+ delete document.body.dataset.themes
+ })
+
+ it('should generate regular account avatar svg', () => {
+ const svg = generateAvatarSvg('admin')
+ expect(svg).toContain('/avatar/admin/32')
+ expect(svg).not.toContain('dark')
+ expect(svg).toContain('?guestFallback=true')
+ })
+
+ it('should generate guest account avatar svg', () => {
+ const svg = generateAvatarSvg('admin', true)
+ expect(svg).toContain('/avatar/guest/admin/32')
+ expect(svg).not.toContain('dark')
+ expect(svg).not.toContain('?guestFallback=true')
+ })
+
+ it('should generate dark mode account avatar svg', () => {
+ document.body.dataset.themes = 'dark'
+ const svg = generateAvatarSvg('admin')
+ expect(svg).toContain('/avatar/admin/32/dark')
+ expect(svg).toContain('?guestFallback=true')
+ })
+
+ it('should generate dark mode guest account avatar svg', () => {
+ document.body.dataset.themes = 'dark'
+ const svg = generateAvatarSvg('admin', true)
+ expect(svg).toContain('/avatar/guest/admin/32/dark')
+ expect(svg).not.toContain('?guestFallback=true')
+ })
+})
diff --git a/apps/files_sharing/src/utils/AccountIcon.ts b/apps/files_sharing/src/utils/AccountIcon.ts
new file mode 100644
index 00000000000..21732f08f68
--- /dev/null
+++ b/apps/files_sharing/src/utils/AccountIcon.ts
@@ -0,0 +1,28 @@
+/*!
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import { generateUrl } from '@nextcloud/router'
+
+const isDarkMode = () => {
+ return window?.matchMedia?.('(prefers-color-scheme: dark)')?.matches === true
+ || document.querySelector('[data-themes*=dark]') !== null
+}
+
+export const generateAvatarSvg = (userId: string, isGuest = false) => {
+ // normal avatar url: /avatar/{userId}/32?guestFallback=true
+ // dark avatar url: /avatar/{userId}/32/dark?guestFallback=true
+ // guest avatar url: /avatar/guest/{userId}/32
+ // guest dark avatar url: /avatar/guest/{userId}/32/dark
+ const basePath = isGuest ? `/avatar/guest/${userId}` : `/avatar/${userId}`
+ const darkModePath = isDarkMode() ? '/dark' : ''
+ const guestFallback = isGuest ? '' : '?guestFallback=true'
+
+ const url = `${basePath}/32${darkModePath}${guestFallback}`
+ const avatarUrl = generateUrl(url, { userId })
+
+ return `<svg width="32" height="32" viewBox="0 0 32 32"
+ xmlns="http://www.w3.org/2000/svg" class="sharing-status__avatar">
+ <image href="${avatarUrl}" height="32" width="32" />
+ </svg>`
+}
diff --git a/apps/files_sharing/src/utils/GeneratePassword.js b/apps/files_sharing/src/utils/GeneratePassword.js
deleted file mode 100644
index 077f385d7d8..00000000000
--- a/apps/files_sharing/src/utils/GeneratePassword.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-import axios from '@nextcloud/axios'
-import Config from '../services/ConfigService.js'
-import { showError, showSuccess } from '@nextcloud/dialogs'
-
-const config = new Config()
-// note: some chars removed on purpose to make them human friendly when read out
-const passwordSet = 'abcdefgijkmnopqrstwxyzABCDEFGHJKLMNPQRSTWXYZ23456789'
-
-/**
- * Generate a valid policy password or
- * request a valid password if password_policy
- * is enabled
- *
- * @return {string} a valid password
- */
-export default async function() {
- // password policy is enabled, let's request a pass
- if (config.passwordPolicy.api && config.passwordPolicy.api.generate) {
- try {
- const request = await axios.get(config.passwordPolicy.api.generate)
- if (request.data.ocs.data.password) {
- showSuccess(t('files_sharing', 'Password created successfully'))
- return request.data.ocs.data.password
- }
- } catch (error) {
- console.info('Error generating password from password_policy', error)
- showError(t('files_sharing', 'Error generating password from password policy'))
- }
- }
-
- const array = new Uint8Array(10)
- const ratio = passwordSet.length / 255
- self.crypto.getRandomValues(array)
- let password = ''
- for (let i = 0; i < array.length; i++) {
- password += passwordSet.charAt(array[i] * ratio)
- }
- return password
-}
diff --git a/apps/files_sharing/src/utils/GeneratePassword.ts b/apps/files_sharing/src/utils/GeneratePassword.ts
new file mode 100644
index 00000000000..82efaaa69d4
--- /dev/null
+++ b/apps/files_sharing/src/utils/GeneratePassword.ts
@@ -0,0 +1,66 @@
+/**
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import axios from '@nextcloud/axios'
+import Config from '../services/ConfigService.ts'
+import { showError, showSuccess } from '@nextcloud/dialogs'
+import { translate as t } from '@nextcloud/l10n'
+
+const config = new Config()
+// note: some chars removed on purpose to make them human friendly when read out
+const passwordSet = 'abcdefgijkmnopqrstwxyzABCDEFGHJKLMNPQRSTWXYZ23456789'
+
+/**
+ * Generate a valid policy password or request a valid password if password_policy is enabled
+ *
+ * @param {boolean} verbose If enabled the the status is shown to the user via toast
+ */
+export default async function(verbose = false): Promise<string> {
+ // password policy is enabled, let's request a pass
+ if (config.passwordPolicy.api && config.passwordPolicy.api.generate) {
+ try {
+ const request = await axios.get(config.passwordPolicy.api.generate)
+ if (request.data.ocs.data.password) {
+ if (verbose) {
+ showSuccess(t('files_sharing', 'Password created successfully'))
+ }
+ return request.data.ocs.data.password
+ }
+ } catch (error) {
+ console.info('Error generating password from password_policy', error)
+ if (verbose) {
+ showError(t('files_sharing', 'Error generating password from password policy'))
+ }
+ }
+ }
+
+ const array = new Uint8Array(10)
+ const ratio = passwordSet.length / 255
+ getRandomValues(array)
+ let password = ''
+ for (let i = 0; i < array.length; i++) {
+ password += passwordSet.charAt(array[i] * ratio)
+ }
+ return password
+}
+
+/**
+ * Fills the given array with cryptographically secure random values.
+ * If the crypto API is not available, it falls back to less secure Math.random().
+ * Crypto API is available in modern browsers on secure contexts (HTTPS).
+ *
+ * @param {Uint8Array} array - The array to fill with random values.
+ */
+function getRandomValues(array: Uint8Array): void {
+ if (self?.crypto?.getRandomValues) {
+ self.crypto.getRandomValues(array)
+ return
+ }
+
+ let len = array.length
+ while (len--) {
+ array[len] = Math.floor(Math.random() * 256)
+ }
+}
diff --git a/apps/files_sharing/src/utils/NodeShareUtils.ts b/apps/files_sharing/src/utils/NodeShareUtils.ts
index f81e18796ed..f14f981e2ad 100644
--- a/apps/files_sharing/src/utils/NodeShareUtils.ts
+++ b/apps/files_sharing/src/utils/NodeShareUtils.ts
@@ -1,28 +1,11 @@
/**
- * @copyright Copyright (c) 2024 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { getCurrentUser } from '@nextcloud/auth'
import type { Node } from '@nextcloud/files'
-import { Type } from '@nextcloud/sharing'
+import { ShareType } from '@nextcloud/sharing'
type Share = {
/** The recipient display name */
@@ -30,7 +13,7 @@ type Share = {
/** The recipient user id */
id: string
/** The share type */
- type: Type
+ type: ShareType
}
const getSharesAttribute = function(node: Node) {
@@ -48,10 +31,10 @@ export const isNodeSharedWithMe = function(node: Node) {
return shares.length > 0 && (
// If some shares are shared with you as a direct user share
- shares.some(share => share.id === uid && share.type === Type.SHARE_TYPE_USER)
+ shares.some(share => share.id === uid && share.type === ShareType.User)
// Or of the file is shared with a group you're in
// (if it's returned by the backend, we assume you're in it)
- || shares.some(share => share.type === Type.SHARE_TYPE_GROUP)
+ || shares.some(share => share.type === ShareType.Group)
)
}
@@ -66,7 +49,7 @@ export const isNodeSharedWithOthers = function(node: Node) {
return shares.length > 0
// If some shares are shared with you as a direct user share
- && shares.some(share => share.id !== uid && share.type !== Type.SHARE_TYPE_GROUP)
+ && shares.some(share => share.id !== uid && share.type !== ShareType.Group)
}
export const isNodeShared = function(node: Node) {
diff --git a/apps/files_sharing/src/utils/SharedWithMe.js b/apps/files_sharing/src/utils/SharedWithMe.js
index 34de3f017ef..2f63932bfbe 100644
--- a/apps/files_sharing/src/utils/SharedWithMe.js
+++ b/apps/files_sharing/src/utils/SharedWithMe.js
@@ -1,30 +1,12 @@
/**
- * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
-import { Type as ShareTypes } from '@nextcloud/sharing'
+import { ShareType } from '@nextcloud/sharing'
const shareWithTitle = function(share) {
- if (share.type === ShareTypes.SHARE_TYPE_GROUP) {
+ if (share.type === ShareType.Group) {
return t(
'files_sharing',
'Shared with you and the group {group} by {owner}',
@@ -35,7 +17,7 @@ const shareWithTitle = function(share) {
undefined,
{ escape: false },
)
- } else if (share.type === ShareTypes.SHARE_TYPE_CIRCLE) {
+ } else if (share.type === ShareType.Team) {
return t(
'files_sharing',
'Shared with you and {circle} by {owner}',
@@ -46,7 +28,7 @@ const shareWithTitle = function(share) {
undefined,
{ escape: false },
)
- } else if (share.type === ShareTypes.SHARE_TYPE_ROOM) {
+ } else if (share.type === ShareType.Room) {
if (share.shareWithDisplayName) {
return t(
'files_sharing',
diff --git a/apps/files_sharing/src/views/CollaborationView.vue b/apps/files_sharing/src/views/CollaborationView.vue
deleted file mode 100644
index a3249f8b5c7..00000000000
--- a/apps/files_sharing/src/views/CollaborationView.vue
+++ /dev/null
@@ -1,53 +0,0 @@
-<!--
- - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>
- -
- - @author Julius Härtl <jus@bitgrid.net>
- -
- - @license GNU AGPL version 3 or any later version
- -
- - This program is free software: you can redistribute it and/or modify
- - it under the terms of the GNU Affero General Public License as
- - published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- -
- - You should have received a copy of the GNU Affero General Public License
- - along with this program. If not, see <http://www.gnu.org/licenses/>.
- -
- -->
-
-<template>
- <CollectionList v-if="fileId"
- :id="fileId"
- type="file"
- :name="filename" />
-</template>
-
-<script>
-import { CollectionList } from 'nextcloud-vue-collections'
-
-export default {
- name: 'CollaborationView',
- components: {
- CollectionList,
- },
- computed: {
- fileId() {
- if (this.$root.model && this.$root.model.id) {
- return '' + this.$root.model.id
- }
- return null
- },
- filename() {
- if (this.$root.model && this.$root.model.name) {
- return '' + this.$root.model.name
- }
- return ''
- },
- },
-}
-</script>
diff --git a/apps/files_sharing/src/views/FilesHeaderNoteToRecipient.vue b/apps/files_sharing/src/views/FilesHeaderNoteToRecipient.vue
new file mode 100644
index 00000000000..ec6348606fb
--- /dev/null
+++ b/apps/files_sharing/src/views/FilesHeaderNoteToRecipient.vue
@@ -0,0 +1,73 @@
+<!--
+ - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
+<template>
+ <NcNoteCard v-if="note.length > 0"
+ class="note-to-recipient"
+ type="info">
+ <p v-if="displayName" class="note-to-recipient__heading">
+ {{ t('files_sharing', 'Note from') }}
+ <NcUserBubble :user="user.id" :display-name="user.displayName" />
+ </p>
+ <p v-else class="note-to-recipient__heading">
+ {{ t('files_sharing', 'Note:') }}
+ </p>
+ <p class="note-to-recipient__text" v-text="note" />
+ </NcNoteCard>
+</template>
+
+<script setup lang="ts">
+import type { Folder } from '@nextcloud/files'
+import { getCurrentUser } from '@nextcloud/auth'
+import { t } from '@nextcloud/l10n'
+import { computed, ref } from 'vue'
+
+import NcNoteCard from '@nextcloud/vue/components/NcNoteCard'
+import NcUserBubble from '@nextcloud/vue/components/NcUserBubble'
+
+const folder = ref<Folder>()
+const note = computed<string>(() => folder.value?.attributes.note ?? '')
+const displayName = computed<string>(() => folder.value?.attributes['owner-display-name'] ?? '')
+const user = computed(() => {
+ const id = folder.value?.owner
+ if (id !== getCurrentUser()?.uid) {
+ return {
+ id,
+ displayName: displayName.value,
+ }
+ }
+ return null
+})
+
+/**
+ * Update the current folder
+ * @param newFolder the new folder to show note for
+ */
+function updateFolder(newFolder: Folder) {
+ folder.value = newFolder
+}
+
+defineExpose({ updateFolder })
+</script>
+
+<style scoped>
+.note-to-recipient {
+ margin-inline: var(--row-height)
+}
+
+.note-to-recipient__text {
+ /* respect new lines */
+ white-space: pre-line;
+}
+
+.note-to-recipient__heading {
+ font-weight: bold;
+}
+
+@media screen and (max-width: 512px) {
+ .note-to-recipient {
+ margin-inline: var(--default-grid-baseline);
+ }
+}
+</style>
diff --git a/apps/files_sharing/src/views/FilesViewFileDropEmptyContent.vue b/apps/files_sharing/src/views/FilesViewFileDropEmptyContent.vue
new file mode 100644
index 00000000000..dac22748d8a
--- /dev/null
+++ b/apps/files_sharing/src/views/FilesViewFileDropEmptyContent.vue
@@ -0,0 +1,136 @@
+<!--
+ - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
+<template>
+ <NcEmptyContent class="file-drop-empty-content"
+ data-cy-files-sharing-file-drop
+ :name="name">
+ <template #icon>
+ <NcIconSvgWrapper :svg="svgCloudUpload" />
+ </template>
+ <template #description>
+ <p>
+ {{ shareNote || t('files_sharing', 'Upload files to {foldername}.', { foldername }) }}
+ </p>
+ <p v-if="disclaimer">
+ {{ t('files_sharing', 'By uploading files, you agree to the terms of service.') }}
+ </p>
+ <NcNoteCard v-if="getSortedUploads().length"
+ class="file-drop-empty-content__note-card"
+ type="success">
+ <h2 id="file-drop-empty-content__heading">
+ {{ t('files_sharing', 'Successfully uploaded files') }}
+ </h2>
+ <ul aria-labelledby="file-drop-empty-content__heading" class="file-drop-empty-content__list">
+ <li v-for="file in getSortedUploads()" :key="file">
+ {{ file }}
+ </li>
+ </ul>
+ </NcNoteCard>
+ </template>
+ <template #action>
+ <template v-if="disclaimer">
+ <!-- Terms of service if enabled -->
+ <NcButton type="primary" @click="showDialog = true">
+ {{ t('files_sharing', 'View terms of service') }}
+ </NcButton>
+ <NcDialog close-on-click-outside
+ content-classes="terms-of-service-dialog"
+ :open.sync="showDialog"
+ :name="t('files_sharing', 'Terms of service')"
+ :message="disclaimer" />
+ </template>
+ <UploadPicker allow-folders
+ :content="() => []"
+ no-menu
+ :destination="uploadDestination"
+ multiple />
+ </template>
+ </NcEmptyContent>
+</template>
+
+<script lang="ts">
+/* eslint-disable import/first */
+
+// We need this on module level rather than on the instance as view will be refreshed by the files app after uploading
+const uploads = new Set<string>()
+</script>
+
+<script setup lang="ts">
+import { loadState } from '@nextcloud/initial-state'
+import { translate as t } from '@nextcloud/l10n'
+import { getUploader, UploadPicker, UploadStatus } from '@nextcloud/upload'
+import { ref } from 'vue'
+
+import NcButton from '@nextcloud/vue/components/NcButton'
+import NcDialog from '@nextcloud/vue/components/NcDialog'
+import NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent'
+import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'
+import NcNoteCard from '@nextcloud/vue/components/NcNoteCard'
+import svgCloudUpload from '@mdi/svg/svg/cloud-upload-outline.svg?raw'
+
+defineProps<{
+ foldername: string
+}>()
+
+const disclaimer = loadState<string>('files_sharing', 'disclaimer', '')
+const shareLabel = loadState<string>('files_sharing', 'label', '')
+const shareNote = loadState<string>('files_sharing', 'note', '')
+
+const name = shareLabel || t('files_sharing', 'File drop')
+
+const showDialog = ref(false)
+const uploadDestination = getUploader().destination
+
+getUploader()
+ .addNotifier((upload) => {
+ if (upload.status === UploadStatus.FINISHED && upload.file.name) {
+ // if a upload is finished and is not a meta upload (name is set)
+ // then we add the upload to the list of finished uploads to be shown to the user
+ uploads.add(upload.file.name)
+ }
+ })
+
+/**
+ * Get the previous uploads as sorted list
+ */
+function getSortedUploads() {
+ return [...uploads].sort((a, b) => a.localeCompare(b))
+}
+</script>
+
+<style scoped lang="scss">
+.file-drop-empty-content {
+ margin: auto;
+ max-width: max(50vw, 300px);
+
+ .file-drop-empty-content__note-card {
+ width: fit-content;
+ margin-inline: auto;
+ }
+
+ #file-drop-empty-content__heading {
+ margin-block: 0 10px;
+ font-weight: bold;
+ font-size: 20px;
+ }
+
+ .file-drop-empty-content__list {
+ list-style: inside;
+ max-height: min(350px, 33vh);
+ overflow-y: scroll;
+ padding-inline-end: calc(2 * var(--default-grid-baseline));
+ }
+
+ :deep(.terms-of-service-dialog) {
+ min-height: min(100px, 20vh);
+ }
+
+ /* TODO fix in library */
+ :deep(.empty-content__action) {
+ display: flex;
+ gap: var(--default-grid-baseline);
+ }
+}
+</style>
diff --git a/apps/files_sharing/src/views/SharingDetailsTab.vue b/apps/files_sharing/src/views/SharingDetailsTab.vue
index 1b764528cb4..b3a3b95d92e 100644
--- a/apps/files_sharing/src/views/SharingDetailsTab.vue
+++ b/apps/files_sharing/src/views/SharingDetailsTab.vue
@@ -1,10 +1,14 @@
+<!--
+ - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
<template>
<div class="sharingTabDetailsView">
<div class="sharingTabDetailsView__header">
<span>
<NcAvatar v-if="isUserShare"
class="sharing-entry__avatar"
- :is-no-user="share.shareType !== SHARE_TYPES.SHARE_TYPE_USER"
+ :is-no-user="share.shareType !== ShareType.User"
:user="share.shareWith"
:display-name="share.shareWithDisplayName"
:menu-position="'left'"
@@ -34,7 +38,7 @@
<NcCheckboxRadioSwitch :button-variant="true"
data-cy-files-sharing-share-permissions-bundle="upload-edit"
:checked.sync="sharingPermission"
- :value="bundledPermissions.ALL.toString()"
+ :value="allPermissions"
name="sharing_permission_radio"
type="radio"
button-variant-grouped="vertical"
@@ -58,7 +62,7 @@
type="radio"
button-variant-grouped="vertical"
@update:checked="toggleCustomPermissions">
- {{ t('files_sharing', 'File drop') }}
+ {{ t('files_sharing', 'File request') }}
<small class="subline">{{ t('files_sharing', 'Upload only') }}</small>
<template #icon>
<UploadIcon :size="20" />
@@ -101,19 +105,33 @@
role="region">
<section>
<NcInputField v-if="isPublicShare"
+ class="sharingTabDetailsView__label"
autocomplete="off"
:label="t('files_sharing', 'Share label')"
:value.sync="share.label" />
+ <NcInputField v-if="config.allowCustomTokens && isPublicShare && !isNewShare"
+ autocomplete="off"
+ :label="t('files_sharing', 'Share link token')"
+ :helper-text="t('files_sharing', 'Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information.')"
+ show-trailing-button
+ :trailing-button-label="loadingToken ? t('files_sharing', 'Generating…') : t('files_sharing', 'Generate new token')"
+ :value.sync="share.token"
+ @trailing-button-click="generateNewToken">
+ <template #trailing-button-icon>
+ <NcLoadingIcon v-if="loadingToken" />
+ <Refresh v-else :size="20" />
+ </template>
+ </NcInputField>
<template v-if="isPublicShare">
<NcCheckboxRadioSwitch :checked.sync="isPasswordProtected" :disabled="isPasswordEnforced">
{{ t('files_sharing', 'Set password') }}
</NcCheckboxRadioSwitch>
<NcPasswordField v-if="isPasswordProtected"
autocomplete="new-password"
- :value="hasUnsavedPassword ? share.newPassword : ''"
+ :value="share.newPassword ?? ''"
:error="passwordError"
- :helper-text="errorPasswordLabel"
- :required="isPasswordEnforced"
+ :helper-text="errorPasswordLabel || passwordHint"
+ :required="isPasswordEnforced && isNewShare"
:label="t('files_sharing', 'Password')"
@update:value="onPasswordChange" />
@@ -140,7 +158,8 @@
:value="new Date(share.expireDate ?? dateTomorrow)"
:min="dateTomorrow"
:max="maxExpirationDateEnforced"
- :hide-label="true"
+ hide-label
+ :label="t('files_sharing', 'Expiration date')"
:placeholder="t('files_sharing', 'Expiration date')"
type="date"
@input="onExpirationChange" />
@@ -150,21 +169,24 @@
@update:checked="queueUpdate('hideDownload')">
{{ t('files_sharing', 'Hide download') }}
</NcCheckboxRadioSwitch>
- <NcCheckboxRadioSwitch v-if="!isPublicShare"
+ <NcCheckboxRadioSwitch v-else
:disabled="!canSetDownload"
:checked.sync="canDownload"
data-cy-files-sharing-share-permissions-checkbox="download">
- {{ t('files_sharing', 'Allow download') }}
+ {{ t('files_sharing', 'Allow download and sync') }}
</NcCheckboxRadioSwitch>
<NcCheckboxRadioSwitch :checked.sync="writeNoteToRecipientIsChecked">
{{ t('files_sharing', 'Note to recipient') }}
</NcCheckboxRadioSwitch>
<template v-if="writeNoteToRecipientIsChecked">
- <label for="share-note-textarea">
- {{ t('files_sharing', 'Enter a note for the share recipient') }}
- </label>
- <textarea id="share-note-textarea" :value="share.note" @input="share.note = $event.target.value" />
+ <NcTextArea :label="t('files_sharing', 'Note to recipient')"
+ :placeholder="t('files_sharing', 'Enter a note for the share recipient')"
+ :value.sync="share.note" />
</template>
+ <NcCheckboxRadioSwitch v-if="isPublicShare && isFolder"
+ :checked.sync="showInGridView">
+ {{ t('files_sharing', 'Show files in grid view') }}
+ </NcCheckboxRadioSwitch>
<ExternalShareAction v-for="action in externalLinkActions"
:id="action.id"
ref="externalLinkActions"
@@ -176,7 +198,7 @@
{{ t('files_sharing', 'Custom permissions') }}
</NcCheckboxRadioSwitch>
<section v-if="setCustomPermissions" class="custom-permissions-group">
- <NcCheckboxRadioSwitch :disabled="!allowsFileDrop && share.type === SHARE_TYPES.SHARE_TYPE_LINK"
+ <NcCheckboxRadioSwitch :disabled="!canRemoveReadPermission"
:checked.sync="hasRead"
data-cy-files-sharing-share-permissions-checkbox="read">
{{ t('files_sharing', 'Read') }}
@@ -192,7 +214,7 @@
data-cy-files-sharing-share-permissions-checkbox="update">
{{ t('files_sharing', 'Edit') }}
</NcCheckboxRadioSwitch>
- <NcCheckboxRadioSwitch v-if="config.isResharingAllowed && share.type !== SHARE_TYPES.SHARE_TYPE_LINK"
+ <NcCheckboxRadioSwitch v-if="resharingIsPossible"
:disabled="!canSetReshare"
:checked.sync="canReshare"
data-cy-files-sharing-share-permissions-checkbox="share">
@@ -204,19 +226,6 @@
{{ t('files_sharing', 'Delete') }}
</NcCheckboxRadioSwitch>
</section>
- <div class="sharingTabDetailsView__delete">
- <NcButton v-if="!isNewShare"
- :aria-label="t('files_sharing', 'Delete share')"
- :disabled="false"
- :readonly="false"
- type="tertiary"
- @click.prevent="removeShare">
- <template #icon>
- <CloseIcon :size="16" />
- </template>
- {{ t('files_sharing', 'Delete share') }}
- </NcButton>
- </div>
</section>
</div>
</div>
@@ -224,11 +233,25 @@
<div class="sharingTabDetailsView__footer">
<div class="button-group">
<NcButton data-cy-files-sharing-share-editor-action="cancel"
- @click="$emit('close-sharing-details')">
+ @click="cancel">
{{ t('files_sharing', 'Cancel') }}
</NcButton>
+ <div class="sharingTabDetailsView__delete">
+ <NcButton v-if="!isNewShare"
+ :aria-label="t('files_sharing', 'Delete share')"
+ :disabled="false"
+ :readonly="false"
+ variant="tertiary"
+ @click.prevent="removeShare">
+ <template #icon>
+ <CloseIcon :size="20" />
+ </template>
+ {{ t('files_sharing', 'Delete share') }}
+ </NcButton>
+ </div>
<NcButton type="primary"
data-cy-files-sharing-share-editor-action="save"
+ :disabled="creating"
@click="saveShare">
{{ shareButtonText }}
<template v-if="creating" #icon>
@@ -241,19 +264,24 @@
</template>
<script>
+import { emit } from '@nextcloud/event-bus'
import { getLanguage } from '@nextcloud/l10n'
-import { Type as ShareType } from '@nextcloud/sharing'
-
-import NcButton from '@nextcloud/vue/dist/Components/NcButton.js'
-import NcInputField from '@nextcloud/vue/dist/Components/NcInputField.js'
-import NcPasswordField from '@nextcloud/vue/dist/Components/NcPasswordField.js'
-import NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'
-import NcDateTimePickerNative from '@nextcloud/vue/dist/Components/NcDateTimePickerNative.js'
-import NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'
-import NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js'
+import { ShareType } from '@nextcloud/sharing'
+import { showError } from '@nextcloud/dialogs'
+import moment from '@nextcloud/moment'
+
+import NcAvatar from '@nextcloud/vue/components/NcAvatar'
+import NcButton from '@nextcloud/vue/components/NcButton'
+import NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'
+import NcDateTimePickerNative from '@nextcloud/vue/components/NcDateTimePickerNative'
+import NcInputField from '@nextcloud/vue/components/NcInputField'
+import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'
+import NcPasswordField from '@nextcloud/vue/components/NcPasswordField'
+import NcTextArea from '@nextcloud/vue/components/NcTextArea'
+
import CircleIcon from 'vue-material-design-icons/CircleOutline.vue'
import CloseIcon from 'vue-material-design-icons/Close.vue'
-import EditIcon from 'vue-material-design-icons/Pencil.vue'
+import EditIcon from 'vue-material-design-icons/PencilOutline.vue'
import EmailIcon from 'vue-material-design-icons/Email.vue'
import LinkIcon from 'vue-material-design-icons/Link.vue'
import GroupIcon from 'vue-material-design-icons/AccountGroup.vue'
@@ -264,14 +292,16 @@ import UploadIcon from 'vue-material-design-icons/Upload.vue'
import MenuDownIcon from 'vue-material-design-icons/MenuDown.vue'
import MenuUpIcon from 'vue-material-design-icons/MenuUp.vue'
import DotsHorizontalIcon from 'vue-material-design-icons/DotsHorizontal.vue'
+import Refresh from 'vue-material-design-icons/Refresh.vue'
import ExternalShareAction from '../components/ExternalShareAction.vue'
-import GeneratePassword from '../utils/GeneratePassword.js'
-import Share from '../models/Share.js'
+import GeneratePassword from '../utils/GeneratePassword.ts'
+import Share from '../models/Share.ts'
import ShareRequests from '../mixins/ShareRequests.js'
-import ShareTypes from '../mixins/ShareTypes.js'
import SharesMixin from '../mixins/SharesMixin.js'
+import { generateToken } from '../services/TokenService.ts'
+import logger from '../services/logger.ts'
import {
ATOMIC_PERMISSIONS,
@@ -284,11 +314,12 @@ export default {
components: {
NcAvatar,
NcButton,
- NcInputField,
- NcPasswordField,
- NcDateTimePickerNative,
NcCheckboxRadioSwitch,
+ NcDateTimePickerNative,
+ NcInputField,
NcLoadingIcon,
+ NcPasswordField,
+ NcTextArea,
CloseIcon,
CircleIcon,
EditIcon,
@@ -302,8 +333,9 @@ export default {
MenuDownIcon,
MenuUpIcon,
DotsHorizontalIcon,
+ Refresh,
},
- mixins: [ShareTypes, ShareRequests, SharesMixin],
+ mixins: [ShareRequests, SharesMixin],
props: {
shareRequestValue: {
type: Object,
@@ -330,6 +362,8 @@ export default {
isFirstComponentLoad: true,
test: false,
creating: false,
+ initialToken: this.share.token,
+ loadingToken: false,
ExternalShareActions: OCA.Sharing.ExternalShareActions.state,
}
@@ -338,34 +372,40 @@ export default {
computed: {
title() {
switch (this.share.type) {
- case this.SHARE_TYPES.SHARE_TYPE_USER:
- return t('files_sharing', 'Share with {userName}', { userName: this.share.shareWithDisplayName })
- case this.SHARE_TYPES.SHARE_TYPE_EMAIL:
+ case ShareType.User:
+ return t('files_sharing', 'Share with {user}', { user: this.share.shareWithDisplayName })
+ case ShareType.Email:
return t('files_sharing', 'Share with email {email}', { email: this.share.shareWith })
- case this.SHARE_TYPES.SHARE_TYPE_LINK:
+ case ShareType.Link:
return t('files_sharing', 'Share link')
- case this.SHARE_TYPES.SHARE_TYPE_GROUP:
+ case ShareType.Group:
return t('files_sharing', 'Share with group')
- case this.SHARE_TYPES.SHARE_TYPE_ROOM:
+ case ShareType.Room:
return t('files_sharing', 'Share in conversation')
- case this.SHARE_TYPES.SHARE_TYPE_REMOTE: {
+ case ShareType.Remote: {
const [user, server] = this.share.shareWith.split('@')
+ if (this.config.showFederatedSharesAsInternal) {
+ return t('files_sharing', 'Share with {user}', { user })
+ }
return t('files_sharing', 'Share with {user} on remote server {server}', { user, server })
}
- case this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP:
+ case ShareType.RemoteGroup:
return t('files_sharing', 'Share with remote group')
- case this.SHARE_TYPES.SHARE_TYPE_GUEST:
+ case ShareType.Guest:
return t('files_sharing', 'Share with guest')
default: {
- if (this.share.id) {
- // Share already exists
- return t('files_sharing', 'Update share')
- } else {
- return t('files_sharing', 'Create share')
- }
+ if (this.share.id) {
+ // Share already exists
+ return t('files_sharing', 'Update share')
+ } else {
+ return t('files_sharing', 'Create share')
+ }
}
}
},
+ allPermissions() {
+ return this.isFolder ? this.bundledPermissions.ALL.toString() : this.bundledPermissions.ALL_FILE.toString()
+ },
/**
* Can the sharee edit the shared file ?
*/
@@ -410,24 +450,34 @@ export default {
this.updateAtomicPermissions({ isReshareChecked: checked })
},
},
+
+ /**
+ * Change the default view for public shares from "list" to "grid"
+ */
+ showInGridView: {
+ get() {
+ return this.getShareAttribute('config', 'grid_view', false)
+ },
+ /** @param {boolean} value If the default view should be changed to "grid" */
+ set(value) {
+ this.setShareAttribute('config', 'grid_view', value)
+ },
+ },
+
/**
* Can the sharee download files or only view them ?
*/
canDownload: {
get() {
- return this.share.attributes.find(attr => attr.key === 'download')?.enabled || false
+ return this.getShareAttribute('permissions', 'download', true)
},
set(checked) {
- // Find the 'download' attribute and update its value
- const downloadAttr = this.share.attributes.find(attr => attr.key === 'download')
- if (downloadAttr) {
- downloadAttr.enabled = checked
- }
+ this.setShareAttribute('permissions', 'download', checked)
},
},
/**
* Is this share readable
- * Needed for some federated shares that might have been added from file drop links
+ * Needed for some federated shares that might have been added from file requests links
*/
hasRead: {
get() {
@@ -453,26 +503,6 @@ export default {
},
},
/**
- * Is the current share password protected ?
- *
- * @return {boolean}
- */
- isPasswordProtected: {
- get() {
- return this.config.enforcePasswordForPublicLink
- || !!this.share.password
- },
- async set(enabled) {
- if (enabled) {
- this.share.password = await GeneratePassword()
- this.$set(this.share, 'newPassword', this.share.password)
- } else {
- this.share.password = ''
- this.$delete(this.share, 'newPassword')
- }
- },
- },
- /**
* Is the current share a folder ?
*
* @return {boolean}
@@ -513,17 +543,14 @@ export default {
return new Date(new Date().setDate(new Date().getDate() + 1))
},
isUserShare() {
- return this.share.type === this.SHARE_TYPES.SHARE_TYPE_USER
+ return this.share.type === ShareType.User
},
isGroupShare() {
- return this.share.type === this.SHARE_TYPES.SHARE_TYPE_GROUP
- },
- isNewShare() {
- return !this.share.id
+ return this.share.type === ShareType.Group
},
allowsFileDrop() {
if (this.isFolder && this.config.isPublicUploadEnabled) {
- if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_LINK || this.share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL) {
+ if (this.share.type === ShareType.Link || this.share.type === ShareType.Email) {
return true
}
}
@@ -539,6 +566,9 @@ export default {
return t('files_sharing', 'Update share')
},
+ resharingIsPossible() {
+ return this.config.isResharingAllowed && this.share.type !== ShareType.Link && this.share.type !== ShareType.Email
+ },
/**
* Can the sharer set whether the sharee can edit the file ?
*
@@ -596,6 +626,12 @@ export default {
// allowed to revoke it too (but not to grant it again).
return (this.fileInfo.canDownload() || this.canDownload)
},
+ canRemoveReadPermission() {
+ return this.allowsFileDrop && (
+ this.share.type === ShareType.Link
+ || this.share.type === ShareType.Email
+ )
+ },
// if newPassword exists, but is empty, it means
// the user deleted the original password
hasUnsavedPassword() {
@@ -652,7 +688,7 @@ export default {
*/
isEmailShareType() {
return this.share
- ? this.share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL
+ ? this.share.type === ShareType.Email
: false
},
canTogglePasswordProtectedByTalkAvailable() {
@@ -669,7 +705,7 @@ export default {
return OC.appswebroots.spreed !== undefined
},
canChangeHideDownload() {
- const hasDisabledDownload = (shareAttribute) => shareAttribute.key === 'download' && shareAttribute.scope === 'permissions' && shareAttribute.enabled === false
+ const hasDisabledDownload = (shareAttribute) => shareAttribute.key === 'download' && shareAttribute.scope === 'permissions' && shareAttribute.value === false
return this.fileInfo.shareAttributes.some(hasDisabledDownload)
},
customPermissionsList() {
@@ -682,8 +718,15 @@ export default {
[ATOMIC_PERMISSIONS.DELETE]: this.t('files_sharing', 'Delete'),
}
- return [ATOMIC_PERMISSIONS.READ, ATOMIC_PERMISSIONS.CREATE, ATOMIC_PERMISSIONS.UPDATE, ATOMIC_PERMISSIONS.SHARE, ATOMIC_PERMISSIONS.DELETE]
- .filter((permission) => hasPermissions(this.share.permissions, permission))
+ const permissionsList = [
+ ATOMIC_PERMISSIONS.READ,
+ ...(this.isFolder ? [ATOMIC_PERMISSIONS.CREATE] : []),
+ ATOMIC_PERMISSIONS.UPDATE,
+ ...(this.resharingIsPossible ? [ATOMIC_PERMISSIONS.SHARE] : []),
+ ...(this.isFolder ? [ATOMIC_PERMISSIONS.DELETE] : []),
+ ]
+
+ return permissionsList.filter((permission) => hasPermissions(this.share.permissions, permission))
.map((permission, index) => index === 0
? translatedPermissions[permission]
: translatedPermissions[permission].toLocaleLowerCase(getLanguage()))
@@ -694,18 +737,25 @@ export default {
},
errorPasswordLabel() {
if (this.passwordError) {
- return t('files_sharing', "Password field can't be empty")
+ return t('files_sharing', 'Password field cannot be empty')
}
return undefined
},
+ passwordHint() {
+ if (this.isNewShare || this.hasUnsavedPassword) {
+ return undefined
+ }
+ return t('files_sharing', 'Replace current password')
+ },
+
/**
* Additional actions for the menu
*
* @return {Array}
*/
externalLinkActions() {
- const filterValidAction = (action) => (action.shareType.includes(ShareType.SHARE_TYPE_LINK) || action.shareType.includes(ShareType.SHARE_TYPE_EMAIL)) && action.advanced
+ const filterValidAction = (action) => (action.shareType.includes(ShareType.Link) || action.shareType.includes(ShareType.Email)) && action.advanced
// filter only the advanced registered actions for said link
return this.ExternalShareActions.actions
.filter(filterValidAction)
@@ -723,8 +773,8 @@ export default {
beforeMount() {
this.initializePermissions()
this.initializeAttributes()
- console.debug('shareSentIn', this.share)
- console.debug('config', this.config)
+ logger.debug('Share object received', { share: this.share })
+ logger.debug('Configuration object received', { config: this.config })
},
mounted() {
@@ -732,6 +782,60 @@ export default {
},
methods: {
+ /**
+ * Set a share attribute on the current share
+ * @param {string} scope The attribute scope
+ * @param {string} key The attribute key
+ * @param {boolean} value The value
+ */
+ setShareAttribute(scope, key, value) {
+ if (!this.share.attributes) {
+ this.$set(this.share, 'attributes', [])
+ }
+
+ const attribute = this.share.attributes
+ .find((attr) => attr.scope === scope || attr.key === key)
+
+ if (attribute) {
+ attribute.value = value
+ } else {
+ this.share.attributes.push({
+ scope,
+ key,
+ value,
+ })
+ }
+ },
+
+ /**
+ * Get the value of a share attribute
+ * @param {string} scope The attribute scope
+ * @param {string} key The attribute key
+ * @param {undefined|boolean} fallback The fallback to return if not found
+ */
+ getShareAttribute(scope, key, fallback = undefined) {
+ const attribute = this.share.attributes?.find((attr) => attr.scope === scope && attr.key === key)
+ return attribute?.value ?? fallback
+ },
+
+ async generateNewToken() {
+ if (this.loadingToken) {
+ return
+ }
+ this.loadingToken = true
+ try {
+ this.share.token = await generateToken()
+ } catch (error) {
+ showError(t('files_sharing', 'Failed to generate a new token'))
+ }
+ this.loadingToken = false
+ },
+
+ cancel() {
+ this.share.token = this.initialToken
+ this.$emit('close-sharing-details')
+ },
+
updateAtomicPermissions({
isReadChecked = this.hasRead,
isEditChecked = this.canEdit,
@@ -740,6 +844,13 @@ export default {
isReshareChecked = this.canReshare,
} = {}) {
// calc permissions if checked
+
+ if (!this.isFolder && (isCreateChecked || isDeleteChecked)) {
+ logger.debug('Ignoring create/delete permissions for file share — only available for folders')
+ isCreateChecked = false
+ isDeleteChecked = false
+ }
+
const permissions = 0
| (isReadChecked ? ATOMIC_PERMISSIONS.READ : 0)
| (isCreateChecked ? ATOMIC_PERMISSIONS.CREATE : 0)
@@ -762,8 +873,8 @@ export default {
async initializeAttributes() {
if (this.isNewShare) {
- if (this.isPasswordEnforced && this.isPublicShare) {
- this.$set(this.share, 'newPassword', await GeneratePassword())
+ if ((this.config.enableLinkPasswordByDefault || this.isPasswordEnforced) && this.isPublicShare) {
+ this.$set(this.share, 'newPassword', await GeneratePassword(true))
this.advancedSectionAccordionExpanded = true
}
/* Set default expiration dates if configured */
@@ -796,6 +907,11 @@ export default {
this.advancedSectionAccordionExpanded = true
}
+ if (this.isValidShareAttribute(this.share.note)) {
+ this.writeNoteToRecipientIsChecked = true
+ this.advancedSectionAccordionExpanded = true
+ }
+
},
handleShareType() {
if ('shareType' in this.share) {
@@ -816,6 +932,10 @@ export default {
this.setCustomPermissions = true
}
}
+ // Read permission required for share creation
+ if (!this.canRemoveReadPermission) {
+ this.hasRead = true
+ }
},
handleCustomPermissions() {
if (!this.isNewShare && (this.hasCustomPermissions || this.share.setCustomPermissions)) {
@@ -834,6 +954,9 @@ export default {
async saveShare() {
const permissionsAndAttributes = ['permissions', 'attributes', 'note', 'expireDate']
const publicShareAttributes = ['label', 'password', 'hideDownload']
+ if (this.config.allowCustomTokens) {
+ publicShareAttributes.push('token')
+ }
if (this.isPublicShare) {
permissionsAndAttributes.push(...publicShareAttributes)
}
@@ -852,10 +975,7 @@ export default {
this.share.note = ''
}
if (this.isPasswordProtected) {
- if (this.hasUnsavedPassword && this.isValidShareAttribute(this.share.newPassword)) {
- this.share.password = this.share.newPassword
- this.$delete(this.share, 'newPassword')
- } else if (this.isPasswordEnforced && !this.isValidShareAttribute(this.share.password)) {
+ if (this.isPasswordEnforced && this.isNewShare && !this.isValidShareAttribute(this.share.password)) {
this.passwordError = true
}
} else {
@@ -879,18 +999,45 @@ export default {
incomingShare.expireDate = this.hasExpirationDate ? this.share.expireDate : ''
if (this.isPasswordProtected) {
- incomingShare.password = this.share.password
+ incomingShare.password = this.share.newPassword
+ }
+
+ let share
+ try {
+ this.creating = true
+ share = await this.addShare(incomingShare)
+ } catch (error) {
+ this.creating = false
+ // Error is already handled by ShareRequests mixin
+ return
+ }
+
+ // ugly hack to make code work - we need the id to be set but at the same time we need to keep values we want to update
+ this.share._share.id = share.id
+ await this.queueUpdate(...permissionsAndAttributes)
+ // Also a ugly hack to update the updated permissions
+ for (const prop of permissionsAndAttributes) {
+ if (prop in share && prop in this.share) {
+ try {
+ share[prop] = this.share[prop]
+ } catch {
+ share._share[prop] = this.share[prop]
+ }
+ }
}
- this.creating = true
- const share = await this.addShare(incomingShare, this.fileInfo)
- this.creating = false
this.share = share
+ this.creating = false
this.$emit('add:share', this.share)
} else {
- this.queueUpdate(...permissionsAndAttributes)
+ // Let's update after creation as some attrs are only available after creation
+ await this.queueUpdate(...permissionsAndAttributes)
+ this.$emit('update:share', this.share)
}
+ await this.getNode()
+ emit('files:node:updated', this.node)
+
if (this.$refs.externalLinkActions?.length > 0) {
await Promise.allSettled(this.$refs.externalLinkActions.map((action) => {
if (typeof action.$children.at(0)?.onSave !== 'function') {
@@ -906,12 +1053,11 @@ export default {
* Process the new share request
*
* @param {Share} share incoming share object
- * @param {object} fileInfo file data
*/
- async addShare(share, fileInfo) {
- console.debug('Adding a new share from the input for', share)
+ async addShare(share) {
+ logger.debug('Adding a new share from the input for', { share })
+ const path = this.path
try {
- const path = (fileInfo.path + '/' + fileInfo.name).replace('//', '/')
const resultingShare = await this.createShare({
path,
shareType: share.shareType,
@@ -924,13 +1070,15 @@ export default {
})
return resultingShare
} catch (error) {
- console.error('Error while adding new share', error)
+ logger.error('Error while adding new share', { error })
} finally {
// this.loading = false // No loader here yet
}
},
async removeShare() {
await this.onDelete()
+ await this.getNode()
+ emit('files:node:updated', this.node)
this.$emit('close-sharing-details')
},
/**
@@ -944,6 +1092,11 @@ export default {
* @param {string} password the changed password
*/
onPasswordChange(password) {
+ if (password === '') {
+ this.$delete(this.share, 'newPassword')
+ this.passwordError = this.isNewShare && this.isPasswordEnforced
+ return
+ }
this.passwordError = !this.isValidShareAttribute(password)
this.$set(this.share, 'newPassword', password)
},
@@ -956,10 +1109,6 @@ export default {
* "sendPasswordByTalk".
*/
onPasswordProtectedByTalkChange() {
- if (this.hasUnsavedPassword) {
- this.share.password = this.share.newPassword.trim()
- }
-
this.queueUpdate('sendPasswordByTalk', 'password')
},
isValidShareAttribute(value) {
@@ -975,22 +1124,22 @@ export default {
},
getShareTypeIcon(type) {
switch (type) {
- case this.SHARE_TYPES.SHARE_TYPE_LINK:
+ case ShareType.Link:
return LinkIcon
- case this.SHARE_TYPES.SHARE_TYPE_GUEST:
+ case ShareType.Guest:
return UserIcon
- case this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP:
- case this.SHARE_TYPES.SHARE_TYPE_GROUP:
+ case ShareType.RemoteGroup:
+ case ShareType.Group:
return GroupIcon
- case this.SHARE_TYPES.SHARE_TYPE_EMAIL:
+ case ShareType.Email:
return EmailIcon
- case this.SHARE_TYPES.SHARE_TYPE_CIRCLE:
+ case ShareType.Team:
return CircleIcon
- case this.SHARE_TYPES.SHARE_TYPE_ROOM:
+ case ShareType.Room:
return ShareIcon
- case this.SHARE_TYPES.SHARE_TYPE_DECK:
+ case ShareType.Deck:
return ShareIcon
- case this.SHARE_TYPES.SHARE_TYPE_SCIENCEMESH:
+ case ShareType.ScienceMesh:
return ShareIcon
default:
return null // Or a default icon component if needed
@@ -1022,7 +1171,7 @@ export default {
h1 {
font-size: 15px;
- padding-left: 0.3em;
+ padding-inline-start: 0.3em;
}
}
@@ -1033,7 +1182,7 @@ export default {
overflow: scroll;
flex-shrink: 1;
padding: 4px;
- padding-right: 12px;
+ padding-inline-end: 12px;
}
&__quick-permissions {
@@ -1055,12 +1204,9 @@ export default {
padding: 0.1em;
}
- ::v-deep label {
-
- span {
- display: flex;
- flex-direction: column;
- }
+ :deep(label span) {
+ display: flex;
+ flex-direction: column;
}
/* Target component based style in NcCheckboxRadioSwitch slot content*/
@@ -1089,8 +1235,8 @@ export default {
&__advanced {
width: 100%;
margin-bottom: 0.5em;
- text-align: left;
- padding-left: 0;
+ text-align: start;
+ padding-inline-start: 0;
section {
@@ -1105,30 +1251,32 @@ export default {
}
/*
- The following style is applied out of the component's scope
- to remove padding from the label.checkbox-radio-switch__label,
- which is used to group radio checkbox items. The use of ::v-deep
- ensures that the padding is modified without being affected by
- the component's scoping.
- Without this achieving left alignment for the checkboxes would not
- be possible.
- */
- span {
- ::v-deep label {
- padding-left: 0 !important;
- background-color: initial !important;
- border: none !important;
- }
+ The following style is applied out of the component's scope
+ to remove padding from the label.checkbox-radio-switch__label,
+ which is used to group radio checkbox items. The use of ::v-deep
+ ensures that the padding is modified without being affected by
+ the component's scoping.
+ Without this achieving left alignment for the checkboxes would not
+ be possible.
+ */
+ span :deep(label) {
+ padding-inline-start: 0 !important;
+ background-color: initial !important;
+ border: none !important;
}
section.custom-permissions-group {
- padding-left: 1.5em;
+ padding-inline-start: 1.5em;
}
}
}
+ &__label {
+ padding-block-end: 6px;
+ }
+
&__delete {
- >button:first-child {
+ > button:first-child {
color: rgb(223, 7, 7);
}
}
@@ -1150,10 +1298,10 @@ export default {
margin-top: 16px;
button {
- margin-left: 16px;
+ margin-inline-start: 16px;
&:first-child {
- margin-left: 0;
+ margin-inline-start: 0;
}
}
}
diff --git a/apps/files_sharing/src/views/SharingInherited.vue b/apps/files_sharing/src/views/SharingInherited.vue
index 515ab8c1608..809de522d93 100644
--- a/apps/files_sharing/src/views/SharingInherited.vue
+++ b/apps/files_sharing/src/views/SharingInherited.vue
@@ -1,27 +1,10 @@
<!--
- - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @author John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @license GNU AGPL version 3 or any later version
- -
- - This program is free software: you can redistribute it and/or modify
- - it under the terms of the GNU Affero General Public License as
- - published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- -
- - You should have received a copy of the GNU Affero General Public License
- - along with this program. If not, see <http://www.gnu.org/licenses/>.
- -
- -->
+ - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
<template>
- <ul id="sharing-inherited-shares">
+ <ul v-if="shares.length" id="sharing-inherited-shares">
<!-- Main collapsible entry -->
<SharingEntrySimple class="sharing-entry__inherited"
:title="mainTitle"
@@ -47,10 +30,10 @@
<script>
import { generateOcsUrl } from '@nextcloud/router'
-import NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'
+import NcActionButton from '@nextcloud/vue/components/NcActionButton'
import axios from '@nextcloud/axios'
-import Share from '../models/Share.js'
+import Share from '../models/Share.ts'
import SharingEntryInherited from '../components/SharingEntryInherited.vue'
import SharingEntrySimple from '../components/SharingEntrySimple.vue'
diff --git a/apps/files_sharing/src/views/SharingLinkList.vue b/apps/files_sharing/src/views/SharingLinkList.vue
index 462d38fe8ad..c3d9a7f83dc 100644
--- a/apps/files_sharing/src/views/SharingLinkList.vue
+++ b/apps/files_sharing/src/views/SharingLinkList.vue
@@ -1,33 +1,12 @@
<!--
- - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @author John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @license GNU AGPL version 3 or any later version
- -
- - This program is free software: you can redistribute it and/or modify
- - it under the terms of the GNU Affero General Public License as
- - published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- -
- - You should have received a copy of the GNU Affero General Public License
- - along with this program. If not, see <http://www.gnu.org/licenses/>.
- -
- -->
+ - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
<template>
- <ul v-if="canLinkShare" class="sharing-link-list">
- <!-- If no link shares, show the add link default entry -->
- <SharingEntryLink v-if="!hasLinkShares && canReshare"
- :can-reshare="canReshare"
- :file-info="fileInfo"
- @add:share="addShare" />
-
+ <ul v-if="canLinkShare"
+ :aria-label="t('files_sharing', 'Link shares')"
+ class="sharing-link-list">
<!-- Else we display the list -->
<template v-if="hasShares">
<!-- using shares[index] to work with .sync -->
@@ -42,17 +21,24 @@
@remove:share="removeShare"
@open-sharing-details="openSharingDetails(share)" />
</template>
+
+ <!-- If no link shares, show the add link default entry -->
+ <SharingEntryLink v-if="!hasLinkShares && canReshare"
+ :can-reshare="canReshare"
+ :file-info="fileInfo"
+ @add:share="addShare" />
</ul>
</template>
<script>
import { getCapabilities } from '@nextcloud/capabilities'
-// eslint-disable-next-line no-unused-vars
+import { t } from '@nextcloud/l10n'
+
import Share from '../models/Share.js'
-import ShareTypes from '../mixins/ShareTypes.js'
import SharingEntryLink from '../components/SharingEntryLink.vue'
import ShareDetails from '../mixins/ShareDetails.js'
+import { ShareType } from '@nextcloud/sharing'
export default {
name: 'SharingLinkList',
@@ -61,7 +47,7 @@ export default {
SharingEntryLink,
},
- mixins: [ShareTypes, ShareDetails],
+ mixins: [ShareDetails],
props: {
fileInfo: {
@@ -95,7 +81,7 @@ export default {
* @return {Array}
*/
hasLinkShares() {
- return this.shares.filter(share => share.type === this.SHARE_TYPES.SHARE_TYPE_LINK).length > 0
+ return this.shares.filter(share => share.type === ShareType.Link).length > 0
},
/**
@@ -109,6 +95,8 @@ export default {
},
methods: {
+ t,
+
/**
* Add a new share into the link shares list
* and return the newly created share component
@@ -118,7 +106,7 @@ export default {
*/
addShare(share, resolve) {
// eslint-disable-next-line vue/no-mutating-props
- this.shares.unshift(share)
+ this.shares.push(share)
this.awaitForShare(share, resolve)
},
diff --git a/apps/files_sharing/src/views/SharingList.vue b/apps/files_sharing/src/views/SharingList.vue
index 6da48c2eece..2167059772e 100644
--- a/apps/files_sharing/src/views/SharingList.vue
+++ b/apps/files_sharing/src/views/SharingList.vue
@@ -1,27 +1,10 @@
<!--
- - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @author John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @license GNU AGPL version 3 or any later version
- -
- - This program is free software: you can redistribute it and/or modify
- - it under the terms of the GNU Affero General Public License as
- - published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- -
- - You should have received a copy of the GNU Affero General Public License
- - along with this program. If not, see <http://www.gnu.org/licenses/>.
- -
- -->
+ - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
<template>
- <ul class="sharing-sharee-list">
+ <ul class="sharing-sharee-list" :aria-label="t('files_sharing', 'Shares')">
<SharingEntry v-for="share in shares"
:key="share.id"
:file-info="fileInfo"
@@ -32,10 +15,10 @@
</template>
<script>
-// eslint-disable-next-line no-unused-vars
+import { t } from '@nextcloud/l10n'
import SharingEntry from '../components/SharingEntry.vue'
-import ShareTypes from '../mixins/ShareTypes.js'
import ShareDetails from '../mixins/ShareDetails.js'
+import { ShareType } from '@nextcloud/sharing'
export default {
name: 'SharingList',
@@ -44,7 +27,7 @@ export default {
SharingEntry,
},
- mixins: [ShareTypes, ShareDetails],
+ mixins: [ShareDetails],
props: {
fileInfo: {
@@ -58,6 +41,12 @@ export default {
required: true,
},
},
+
+ setup() {
+ return {
+ t,
+ }
+ },
computed: {
hasShares() {
return this.shares.length === 0
@@ -65,7 +54,7 @@ export default {
isUnique() {
return (share) => {
return [...this.shares].filter((item) => {
- return share.type === this.SHARE_TYPES.SHARE_TYPE_USER && share.shareWithDisplayName === item.shareWithDisplayName
+ return share.type === ShareType.User && share.shareWithDisplayName === item.shareWithDisplayName
}).length <= 1
}
},
diff --git a/apps/files_sharing/src/views/SharingTab.vue b/apps/files_sharing/src/views/SharingTab.vue
index 7f424dd4b32..2ed44a4b5ad 100644
--- a/apps/files_sharing/src/views/SharingTab.vue
+++ b/apps/files_sharing/src/views/SharingTab.vue
@@ -1,24 +1,7 @@
<!--
- - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @author John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @license GNU AGPL version 3 or any later version
- -
- - This program is free software: you can redistribute it and/or modify
- - it under the terms of the GNU Affero General Public License as
- - published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- -
- - You should have received a copy of the GNU Affero General Public License
- - along with this program. If not, see <http://www.gnu.org/licenses/>.
- -
- -->
+ - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
<template>
<div class="sharingTab" :class="{ 'icon-loading': loading }">
@@ -32,8 +15,8 @@
<div v-show="!showSharingDetailsView"
class="sharingTab__content">
<!-- shared with me information -->
- <ul>
- <SharingEntrySimple v-if="isSharedWithMe" v-bind="sharedWithMe" class="sharing-entry__reshare">
+ <ul v-if="isSharedWithMe">
+ <SharingEntrySimple v-bind="sharedWithMe" class="sharing-entry__reshare">
<template #avatar>
<NcAvatar :user="sharedWithMe.user"
:display-name="sharedWithMe.displayName"
@@ -42,50 +25,123 @@
</SharingEntrySimple>
</ul>
- <!-- add new share input -->
- <SharingInput v-if="!loading"
- :can-reshare="canReshare"
- :file-info="fileInfo"
- :link-shares="linkShares"
- :reshare="reshare"
- :shares="shares"
- @open-sharing-details="toggleShareDetailsView" />
-
- <!-- link shares list -->
- <SharingLinkList v-if="!loading"
- ref="linkShareList"
- :can-reshare="canReshare"
- :file-info="fileInfo"
- :shares="linkShares"
- @open-sharing-details="toggleShareDetailsView" />
-
- <!-- other shares list -->
- <SharingList v-if="!loading"
- ref="shareList"
- :shares="shares"
- :file-info="fileInfo"
- @open-sharing-details="toggleShareDetailsView" />
-
- <!-- inherited shares -->
- <SharingInherited v-if="canReshare && !loading" :file-info="fileInfo" />
-
- <!-- internal link copy -->
- <SharingEntryInternal :file-info="fileInfo" />
-
- <!-- projects -->
- <CollectionList v-if="projectsEnabled && fileInfo"
- :id="`${fileInfo.id}`"
- type="file"
- :name="fileInfo.name" />
- </div>
-
- <!-- additional entries, use it with cautious -->
- <div v-for="(section, index) in sections"
- v-show="!showSharingDetailsView"
- :ref="'section-' + index"
- :key="index"
- class="sharingTab__additionalContent">
- <component :is="section($refs['section-'+index], fileInfo)" :file-info="fileInfo" />
+ <section>
+ <div class="section-header">
+ <h4>{{ t('files_sharing', 'Internal shares') }}</h4>
+ <NcPopover popup-role="dialog">
+ <template #trigger>
+ <NcButton class="hint-icon"
+ type="tertiary-no-background"
+ :aria-label="t('files_sharing', 'Internal shares explanation')">
+ <template #icon>
+ <InfoIcon :size="20" />
+ </template>
+ </NcButton>
+ </template>
+ <p class="hint-body">
+ {{ internalSharesHelpText }}
+ </p>
+ </NcPopover>
+ </div>
+ <!-- add new share input -->
+ <SharingInput v-if="!loading"
+ :can-reshare="canReshare"
+ :file-info="fileInfo"
+ :link-shares="linkShares"
+ :reshare="reshare"
+ :shares="shares"
+ :placeholder="internalShareInputPlaceholder"
+ @open-sharing-details="toggleShareDetailsView" />
+
+ <!-- other shares list -->
+ <SharingList v-if="!loading"
+ ref="shareList"
+ :shares="shares"
+ :file-info="fileInfo"
+ @open-sharing-details="toggleShareDetailsView" />
+
+ <!-- inherited shares -->
+ <SharingInherited v-if="canReshare && !loading" :file-info="fileInfo" />
+
+ <!-- internal link copy -->
+ <SharingEntryInternal :file-info="fileInfo" />
+ </section>
+
+ <section>
+ <div class="section-header">
+ <h4>{{ t('files_sharing', 'External shares') }}</h4>
+ <NcPopover popup-role="dialog">
+ <template #trigger>
+ <NcButton class="hint-icon"
+ type="tertiary-no-background"
+ :aria-label="t('files_sharing', 'External shares explanation')">
+ <template #icon>
+ <InfoIcon :size="20" />
+ </template>
+ </NcButton>
+ </template>
+ <p class="hint-body">
+ {{ externalSharesHelpText }}
+ </p>
+ </NcPopover>
+ </div>
+ <SharingInput v-if="!loading"
+ :can-reshare="canReshare"
+ :file-info="fileInfo"
+ :link-shares="linkShares"
+ :is-external="true"
+ :placeholder="externalShareInputPlaceholder"
+ :reshare="reshare"
+ :shares="shares"
+ @open-sharing-details="toggleShareDetailsView" />
+ <!-- Non link external shares list -->
+ <SharingList v-if="!loading"
+ :shares="externalShares"
+ :file-info="fileInfo"
+ @open-sharing-details="toggleShareDetailsView" />
+ <!-- link shares list -->
+ <SharingLinkList v-if="!loading && isLinkSharingAllowed"
+ ref="linkShareList"
+ :can-reshare="canReshare"
+ :file-info="fileInfo"
+ :shares="linkShares"
+ @open-sharing-details="toggleShareDetailsView" />
+ </section>
+
+ <section v-if="sections.length > 0 && !showSharingDetailsView">
+ <div class="section-header">
+ <h4>{{ t('files_sharing', 'Additional shares') }}</h4>
+ <NcPopover popup-role="dialog">
+ <template #trigger>
+ <NcButton class="hint-icon"
+ type="tertiary-no-background"
+ :aria-label="t('files_sharing', 'Additional shares explanation')">
+ <template #icon>
+ <InfoIcon :size="20" />
+ </template>
+ </NcButton>
+ </template>
+ <p class="hint-body">
+ {{ additionalSharesHelpText }}
+ </p>
+ </NcPopover>
+ </div>
+ <!-- additional entries, use it with cautious -->
+ <div v-for="(component, index) in sectionComponents"
+ :key="index"
+ class="sharingTab__additionalContent">
+ <component :is="component" :file-info="fileInfo" />
+ </div>
+
+ <!-- projects (deprecated as of NC25 (replaced by related_resources) - see instance config "projects.enabled" ; ignore this / remove it / move into own section) -->
+ <div v-if="projectsEnabled"
+ v-show="!showSharingDetailsView && fileInfo"
+ class="sharingTab__additionalContent">
+ <NcCollectionList :id="`${fileInfo.id}`"
+ type="file"
+ :name="fileInfo.name" />
+ </div>
+ </section>
</div>
<!-- share details -->
@@ -99,16 +155,26 @@
</template>
<script>
-import { CollectionList } from 'nextcloud-vue-collections'
+import { getCurrentUser } from '@nextcloud/auth'
+import { getCapabilities } from '@nextcloud/capabilities'
+import { orderBy } from '@nextcloud/files'
+import { loadState } from '@nextcloud/initial-state'
import { generateOcsUrl } from '@nextcloud/router'
-import NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'
+import { ShareType } from '@nextcloud/sharing'
+
+import NcAvatar from '@nextcloud/vue/components/NcAvatar'
+import NcButton from '@nextcloud/vue/components/NcButton'
+import NcCollectionList from '@nextcloud/vue/components/NcCollectionList'
+import NcPopover from '@nextcloud/vue/components/NcPopover'
+import InfoIcon from 'vue-material-design-icons/InformationOutline.vue'
+
import axios from '@nextcloud/axios'
-import { loadState } from '@nextcloud/initial-state'
+import moment from '@nextcloud/moment'
-import Config from '../services/ConfigService.js'
import { shareWithTitle } from '../utils/SharedWithMe.js'
-import Share from '../models/Share.js'
-import ShareTypes from '../mixins/ShareTypes.js'
+
+import Config from '../services/ConfigService.ts'
+import Share from '../models/Share.ts'
import SharingEntryInternal from '../components/SharingEntryInternal.vue'
import SharingEntrySimple from '../components/SharingEntrySimple.vue'
import SharingInput from '../components/SharingInput.vue'
@@ -118,12 +184,18 @@ import SharingLinkList from './SharingLinkList.vue'
import SharingList from './SharingList.vue'
import SharingDetailsTab from './SharingDetailsTab.vue'
+import ShareDetails from '../mixins/ShareDetails.js'
+import logger from '../services/logger.ts'
+
export default {
name: 'SharingTab',
components: {
+ InfoIcon,
NcAvatar,
- CollectionList,
+ NcButton,
+ NcCollectionList,
+ NcPopover,
SharingEntryInternal,
SharingEntrySimple,
SharingInherited,
@@ -132,8 +204,7 @@ export default {
SharingList,
SharingDetailsTab,
},
-
- mixins: [ShareTypes],
+ mixins: [ShareDetails],
data() {
return {
@@ -150,12 +221,17 @@ export default {
sharedWithMe: {},
shares: [],
linkShares: [],
+ externalShares: [],
sections: OCA.Sharing.ShareTabSections.getSections(),
projectsEnabled: loadState('core', 'projects_enabled', false),
showSharingDetailsView: false,
shareDetailsData: {},
returnFocusElement: null,
+
+ internalSharesHelpText: t('files_sharing', 'Share files within your organization. Recipients who can already view the file can also use this link for easy access.'),
+ externalSharesHelpText: t('files_sharing', 'Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID.'),
+ additionalSharesHelpText: t('files_sharing', 'Shares from apps or other sources which are not included in internal or external shares.'),
}
},
@@ -166,15 +242,54 @@ export default {
* @return {boolean}
*/
isSharedWithMe() {
- return Object.keys(this.sharedWithMe).length > 0
+ return !!this.sharedWithMe?.user
+ },
+
+ /**
+ * Is link sharing allowed for the current user?
+ *
+ * @return {boolean}
+ */
+ isLinkSharingAllowed() {
+ const currentUser = getCurrentUser()
+ if (!currentUser) {
+ return false
+ }
+
+ const capabilities = getCapabilities()
+ const publicSharing = capabilities.files_sharing?.public || {}
+ return publicSharing.enabled === true
},
canReshare() {
return !!(this.fileInfo.permissions & OC.PERMISSION_SHARE)
|| !!(this.reshare && this.reshare.hasSharePermission && this.config.isResharingAllowed)
},
- },
+ internalShareInputPlaceholder() {
+ return this.config.showFederatedSharesAsInternal && this.config.isFederationEnabled
+ // TRANSLATORS: Type as in with a keyboard
+ ? t('files_sharing', 'Type names, teams, federated cloud IDs')
+ // TRANSLATORS: Type as in with a keyboard
+ : t('files_sharing', 'Type names or teams')
+ },
+
+ externalShareInputPlaceholder() {
+ if (!this.isLinkSharingAllowed) {
+ // TRANSLATORS: Type as in with a keyboard
+ return this.config.isFederationEnabled ? t('files_sharing', 'Type a federated cloud ID') : ''
+ }
+ return !this.config.showFederatedSharesAsInternal && !this.config.isFederationEnabled
+ // TRANSLATORS: Type as in with a keyboard
+ ? t('files_sharing', 'Type an email')
+ // TRANSLATORS: Type as in with a keyboard
+ : t('files_sharing', 'Type an email or federated cloud ID')
+ },
+
+ sectionComponents() {
+ return this.sections.map((section) => section(undefined, this.fileInfo))
+ },
+ },
methods: {
/**
* Update current fileInfo and fetch new data
@@ -186,7 +301,6 @@ export default {
this.resetState()
this.getShares()
},
-
/**
* Get the existing shares infos
*/
@@ -224,7 +338,7 @@ export default {
this.processSharedWithMe(sharedWithMe)
this.processShares(shares)
} catch (error) {
- if (error.response.data?.ocs?.meta?.message) {
+ if (error?.response?.data?.ocs?.meta?.message) {
this.error = error.response.data.ocs.meta.message
} else {
this.error = t('files_sharing', 'Unable to load the shares list')
@@ -257,7 +371,7 @@ export default {
updateExpirationSubtitle(share) {
const expiration = moment(share.expireDate).unix()
this.$set(this.sharedWithMe, 'subtitle', t('files_sharing', 'Expires {relativetime}', {
- relativetime: OC.Util.relativeModifiedDate(expiration * 1000),
+ relativetime: moment(expiration * 1000).fromNow(),
}))
// share have expired
@@ -277,16 +391,41 @@ export default {
*/
processShares({ data }) {
if (data.ocs && data.ocs.data && data.ocs.data.length > 0) {
- // create Share objects and sort by newest
- const shares = data.ocs.data
- .map(share => new Share(share))
- .sort((a, b) => b.createdTime - a.createdTime)
-
- this.linkShares = shares.filter(share => share.type === this.SHARE_TYPES.SHARE_TYPE_LINK || share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL)
- this.shares = shares.filter(share => share.type !== this.SHARE_TYPES.SHARE_TYPE_LINK && share.type !== this.SHARE_TYPES.SHARE_TYPE_EMAIL)
+ const shares = orderBy(
+ data.ocs.data.map(share => new Share(share)),
+ [
+ // First order by the "share with" label
+ (share) => share.shareWithDisplayName,
+ // Then by the label
+ (share) => share.label,
+ // And last resort order by createdTime
+ (share) => share.createdTime,
+ ],
+ )
+
+ for (const share of shares) {
+ if ([ShareType.Link, ShareType.Email].includes(share.type)) {
+ this.linkShares.push(share)
+ } else if ([ShareType.Remote, ShareType.RemoteGroup].includes(share.type)) {
+ if (this.config.showFederatedSharesToTrustedServersAsInternal) {
+ if (share.isTrustedServer) {
+ this.shares.push(share)
+ } else {
+ this.externalShares.push(share)
+ }
+ } else if (this.config.showFederatedSharesAsInternal) {
+ this.shares.push(share)
+ } else {
+ this.externalShares.push(share)
+ }
+ } else {
+ this.shares.push(share)
+ }
+ }
- console.debug('Processed', this.linkShares.length, 'link share(s)')
- console.debug('Processed', this.shares.length, 'share(s)')
+ logger.debug(`Processed ${this.linkShares.length} link share(s)`)
+ logger.debug(`Processed ${this.shares.length} share(s)`)
+ logger.debug(`Processed ${this.externalShares.length} external share(s)`)
}
},
@@ -319,7 +458,7 @@ export default {
// interval update
this.expirationInterval = setInterval(this.updateExpirationSubtitle, 10000, share)
}
- } else if (this.fileInfo && this.fileInfo.shareOwnerId !== undefined ? this.fileInfo.shareOwnerId !== OC.currentUser : false) {
+ } else if (this.fileInfo && this.fileInfo.shareOwnerId !== undefined ? this.fileInfo.shareOwnerId !== getCurrentUser().uid : false) {
// Fallback to compare owner and current user.
this.sharedWithMe = {
displayName: this.fileInfo.shareOwner,
@@ -345,8 +484,18 @@ export default {
addShare(share, resolve = () => { }) {
// only catching share type MAIL as link shares are added differently
// meaning: not from the ShareInput
- if (share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL) {
+ if (share.type === ShareType.Email) {
this.linkShares.unshift(share)
+ } else if ([ShareType.Remote, ShareType.RemoteGroup].includes(share.type)) {
+ if (this.config.showFederatedSharesAsInternal) {
+ this.shares.unshift(share)
+ } if (this.config.showFederatedSharesToTrustedServersAsInternal) {
+ if (share.isTrustedServer) {
+ this.shares.unshift(share)
+ }
+ } else {
+ this.externalShares.unshift(share)
+ }
} else {
this.shares.unshift(share)
}
@@ -360,8 +509,8 @@ export default {
removeShare(share) {
// Get reference for this.linkShares or this.shares
const shareList
- = share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL
- || share.type === this.SHARE_TYPES.SHARE_TYPE_LINK
+ = share.type === ShareType.Email
+ || share.type === ShareType.Link
? this.linkShares
: this.shares
const index = shareList.findIndex(item => item.id === share.id)
@@ -382,7 +531,7 @@ export default {
let listComponent = this.$refs.shareList
// Only mail shares comes from the input, link shares
// are managed internally in the SharingLinkList component
- if (share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL) {
+ if (share.type === ShareType.Email) {
listComponent = this.$refs.linkShareList
}
const newShare = listComponent.$children.find(component => component.share === share)
@@ -432,10 +581,47 @@ export default {
&__content {
padding: 0 6px;
+
+ section {
+ padding-bottom: 16px;
+
+ .section-header {
+ margin-top: 2px;
+ margin-bottom: 2px;
+ display: flex;
+ align-items: center;
+ padding-bottom: 4px;
+
+ h4 {
+ margin: 0;
+ font-size: 16px;
+ }
+
+ .visually-hidden {
+ display: none;
+ }
+
+ .hint-icon {
+ color: var(--color-primary-element);
+ }
+
+ }
+
+ }
+
+ & > section:not(:last-child) {
+ border-bottom: 2px solid var(--color-border);
+ }
+
}
&__additionalContent {
margin: 44px 0;
}
}
+
+.hint-body {
+ max-width: 300px;
+ padding: var(--border-radius-element);
+}
</style>
diff --git a/apps/files_sharing/templates/Settings/personal.php b/apps/files_sharing/templates/Settings/personal.php
index 30caeb16206..5b4f9891b93 100644
--- a/apps/files_sharing/templates/Settings/personal.php
+++ b/apps/files_sharing/templates/Settings/personal.php
@@ -1,28 +1,11 @@
<?php
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2019, Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
-script(\OCA\Files_Sharing\AppInfo\Application::APP_ID, 'personal-settings');
+\OCP\Util::addScript(\OCA\Files_Sharing\AppInfo\Application::APP_ID, 'personal-settings', 'core');
?>
<div id="files-sharing-personal-settings" class="section">
diff --git a/apps/files_sharing/templates/public.php b/apps/files_sharing/templates/public.php
deleted file mode 100644
index 4d840169b69..00000000000
--- a/apps/files_sharing/templates/public.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-/** @var \OCP\IL10N $l */
-/** @var array $_ */
-?>
-<div id="app-content">
-<?php if ($_['previewSupported']): /* This enables preview images for links (e.g. on Facebook, Google+, ...)*/?>
- <link rel="image_src" href="<?php p($_['previewImage']); ?>" />
-<?php endif; ?>
-
-<input type="hidden" id="sharingUserId" value="<?php p($_['owner']) ?>">
-<input type="hidden" id="filesApp" name="filesApp" value="1">
-<input type="hidden" id="isPublic" name="isPublic" value="1">
-<?php if (!$_['hideDownload']): ?>
- <input type="hidden" name="downloadURL" value="<?php p($_['downloadURL']) ?>" id="downloadURL">
-<?php endif; ?>
-<input type="hidden" name="previewURL" value="<?php p($_['previewURL']) ?>" id="previewURL">
-<input type="hidden" name="sharingToken" value="<?php p($_['sharingToken']) ?>" id="sharingToken">
-<input type="hidden" name="filename" value="<?php p($_['filename']) ?>" id="filename">
-<input type="hidden" name="mimetype" value="<?php p($_['mimetype']) ?>" id="mimetype">
-<input type="hidden" name="previewSupported" value="<?php p($_['previewSupported'] ? 'true' : 'false'); ?>" id="previewSupported">
-<input type="hidden" name="mimetypeIcon" value="<?php p(\OC::$server->getMimeTypeDetector()->mimeTypeIcon($_['mimetype'])); ?>" id="mimetypeIcon">
-<input type="hidden" name="hideDownload" value="<?php p($_['hideDownload'] ? 'true' : 'false'); ?>" id="hideDownload">
-<input type="hidden" id="disclaimerText" value="<?php p($_['disclaimer']) ?>">
-<?php
-$upload_max_filesize = OC::$server->get(\bantu\IniGetWrapper\IniGetWrapper::class)->getBytes('upload_max_filesize');
-$post_max_size = OC::$server->get(\bantu\IniGetWrapper\IniGetWrapper::class)->getBytes('post_max_size');
-$maxUploadFilesize = min($upload_max_filesize, $post_max_size);
-?>
-<input type="hidden" name="maxFilesizeUpload" value="<?php p($maxUploadFilesize); ?>" id="maxFilesizeUpload">
-
-<?php if (!isset($_['hideFileList']) || (isset($_['hideFileList']) && $_['hideFileList'] === false)): ?>
- <input type="hidden" name="filesize" value="<?php p($_['nonHumanFileSize']); ?>" id="filesize">
-<?php endif; ?>
-<input type="hidden" name="maxSizeAnimateGif" value="<?php p($_['maxSizeAnimateGif']); ?>" id="maxSizeAnimateGif">
-<?php if (isset($_['note']) && $_['note'] !== '') : ?>
- <div id="notemenu" class="hidden">
- <div class="icon-comment-white menutoggle" tabindex="0" role="button" aria-haspopup="true" aria-controls="note-content" aria-expanded="false">
- <span class="hidden-visually"><?php p($l->t('Share note'))?></span>
- </div>
- <div id="note-content" class="menu" aria-label="Note content">
- <div class="content">
- <?php p($_['note']); ?>
- </div>
- </div>
- </div>
-<?php endif; ?>
-
-<?php if (!isset($_['hideFileList']) || (isset($_['hideFileList']) && $_['hideFileList'] === false)) { ?>
- <!-- ONLY if this is a folder, we show the grid toggle button -->
- <?php if (empty($_['dir']) === false) { ?>
- <input type="checkbox" class="hidden-visually" id="showgridview"
- <?php if ($_['showgridview']) { ?>checked="checked" <?php } ?>/>
- <label id="view-toggle" for="showgridview" class="button <?php p($_['showgridview'] ? 'icon-toggle-filelist' : 'icon-toggle-pictures') ?>"
- title="<?php p($_['showgridview'] ? $l->t('Show list view') : $l->t('Show grid view'))?>"></label>
- <?php } ?>
-
- <!-- files listing -->
- <div id="files-public-content">
- <div id="preview">
- <?php if (isset($_['folder'])): ?>
- <?php print_unescaped($_['folder']); ?>
- <?php else: ?>
- <!-- preview frame to open file in with viewer -->
- <div id="imgframe"></div>
- <?php if (isset($_['mimetype']) && str_starts_with($_['mimetype'], 'image')): ?>
- <div class="directDownload">
- <div>
- <?php p($_['filename'])?> (<?php p($_['fileSize']) ?>)
- </div>
- <?php if (!$_['hideDownload']) { ?>
- <a href="<?php p($_['downloadURL']); ?>" id="downloadFile" class="button">
- <span class="icon icon-download"></span>
- <?php p($l->t('Download'))?>
- </a>
- <?php } ?>
- </div>
- <?php elseif ($_['previewURL'] === $_['downloadURL'] && !$_['hideDownload']): ?>
- <div class="directDownload">
- <div>
- <?php p($_['filename'])?>&nbsp;(<?php p($_['fileSize']) ?>)
- </div>
- <a href="<?php p($_['downloadURL']); ?>" id="downloadFile" class="button">
- <span class="icon icon-download"></span>
- <?php p($l->t('Download'))?>
- </a>
- </div>
- <?php endif; ?>
- <?php endif; ?>
- </div>
- </div>
-<?php } else { ?>
- <input type="hidden" id="upload-only-interface" value="1"/>
- <div id="public-upload">
- <div
- id="emptycontent"
- class="emptycontent <?php if (!empty($_['note'])) { ?>has-note<?php } ?>">
- <?php if ($_['shareOwner']) { ?>
- <div id="displayavatar"><div class="avatardiv"></div></div>
- <h2><?php p($l->t('Upload files to %s', [$_['shareOwner']])) ?></h2>
- <p><span class="icon-folder"></span> <?php p($_['filename']) ?></p>
- <?php } else { ?>
- <div id="displayavatar"><span class="icon-folder"></span></div>
- <h2><?php p($l->t('Upload files to %s', [$_['filename']])) ?></h2>
- <?php } ?>
-
- <?php if (empty($_['note']) === false) { ?>
- <h3><?php p($l->t('Note')); ?></h3>
- <p class="note"><?php p($_['note']); ?></p>
- <?php } ?>
-
- <input type="file" name="files[]" class="hidden" multiple>
- <a href="#" class="button icon-upload"><?php p($l->t('Select or drop files')) ?></a>
- <div id="drop-upload-progress-indicator" style="padding-top: 25px;" class="hidden"><span class="icon-loading-small"></span><?php p($l->t('Uploading files')) ?></div>
- <div id="drop-upload-done-indicator" style="padding-top: 25px;" class="hidden"><?php p($l->t('Uploaded files:')) ?></div>
- <ul id="drop-uploaded-files"></ul>
-
- <?php if ($_['disclaimer'] !== '') { ?>
- <div>
- <?php
- echo $l->t('By uploading files, you agree to the %1$sterms of service%2$s.', [
- '<span id="show-terms-dialog">', '</span>'
- ]);
- ?>
- </div>
- <?php } ?>
- </div>
- </div>
-<?php } ?>
-
-<?php if (!isset($_['hideFileList']) || (isset($_['hideFileList']) && $_['hideFileList'] !== true)): ?>
- <div class="hiddenuploadfield">
- <input type="file" id="file_upload_start" class="hiddenuploadfield" name="files[]"
- data-url="<?php p(\OC::$server->getURLGenerator()->linkTo('files', 'ajax/upload.php')); ?>" />
- </div>
-<?php endif; ?>
-</div>
diff --git a/apps/files_sharing/templates/sharenotfound.php b/apps/files_sharing/templates/sharenotfound.php
new file mode 100644
index 00000000000..fe653d4ad5a
--- /dev/null
+++ b/apps/files_sharing/templates/sharenotfound.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+use OCP\IURLGenerator;
+use OCP\Server;
+
+$urlGenerator = Server::get(IURLGenerator::class);
+?>
+<div class="body-login-container update">
+ <div>
+ <svg xmlns="http://www.w3.org/2000/svg" height="70" viewBox="0 -960 960 960" width="70">
+ <path fill="currentColor" d="m674-456-50-50 69-70-69-69 50-51 70 70 69-70 51 51-70 69 70 70-51 50-69-69-70 69Zm-290-24q-60 0-102-42t-42-102q0-60 42-102t102-42q60 0 102 42t42 102q0 60-42 102t-102 42ZM96-192v-92q0-26 12.5-47.5T143-366q55-32 116-49t125-17q64 0 125 17t116 49q22 13 34.5 34.5T672-284v92H96Z"/>
+ </svg>
+ </div>
+ <h2><?php p($l->t('Share not found')); ?></h2>
+ <p class="infogroup"><?php p($_['message'] ?: $l->t('This share does not exist or is no longer available')); ?></p>
+ <p><a class="button primary" href="<?php p($urlGenerator->linkTo('', 'index.php')) ?>">
+ <?php p($l->t('Back to %s', [$theme->getName()])); ?>
+ </a></p>
+</div>
diff --git a/apps/files_sharing/tests/ApiTest.php b/apps/files_sharing/tests/ApiTest.php
index cdb6d2ddcca..960f29224bb 100644
--- a/apps/files_sharing/tests/ApiTest.php
+++ b/apps/files_sharing/tests/ApiTest.php
@@ -1,55 +1,44 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Calviño Sánchez <danxuliu@gmail.com>
- * @author Georg Ehrke <oc.list@georgehrke.com>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Richard Steinmetz <richard@steinmetz.cloud>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Robin McCorkell <robin@mccorkell.me.uk>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Valdnet <47037905+Valdnet@users.noreply.github.com>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
+use OC\Core\AppInfo\ConfigLexicon;
use OC\Files\Cache\Scanner;
+use OC\Files\FileInfo;
use OC\Files\Filesystem;
+use OC\Files\Storage\Temporary;
+use OC\Files\View;
+use OCA\Federation\TrustedServers;
use OCA\Files_Sharing\Controller\ShareAPIController;
use OCP\App\IAppManager;
use OCP\AppFramework\OCS\OCSBadRequestException;
use OCP\AppFramework\OCS\OCSException;
use OCP\AppFramework\OCS\OCSForbiddenException;
use OCP\AppFramework\OCS\OCSNotFoundException;
+use OCP\Constants;
+use OCP\Files\Folder;
+use OCP\Files\IRootFolder;
+use OCP\IAppConfig;
use OCP\IConfig;
use OCP\IDateTimeZone;
+use OCP\IGroupManager;
use OCP\IL10N;
use OCP\IPreview;
use OCP\IRequest;
+use OCP\ITagManager;
+use OCP\IURLGenerator;
+use OCP\IUserManager;
+use OCP\Mail\IMailer;
+use OCP\Server;
+use OCP\Share\IProviderFactory;
use OCP\Share\IShare;
use OCP\UserStatus\IManager as IUserStatusManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Container\ContainerInterface;
use Psr\Log\LoggerInterface;
@@ -65,17 +54,15 @@ class ApiTest extends TestCase {
private static $tempStorage;
- /** @var \OCP\Files\Folder */
- private $userFolder;
-
- /** @var string */
- private $subsubfolder;
+ private Folder $userFolder;
+ private string $subsubfolder;
+ protected IAppConfig&MockObject $appConfig;
protected function setUp(): void {
parent::setUp();
- \OC::$server->getConfig()->setAppValue('core', 'shareapi_exclude_groups', 'no');
- \OC::$server->getConfig()->setAppValue('core', 'shareapi_expire_after_n_days', '7');
+ Server::get(IConfig::class)->setAppValue('core', 'shareapi_exclude_groups', 'no');
+ Server::get(IConfig::class)->setAppValue('core', 'shareapi_expire_after_n_days', '7');
Filesystem::getLoader()->removeStorageWrapper('sharing_mask');
@@ -90,16 +77,18 @@ class ApiTest extends TestCase {
$this->view->mkdir($this->folder);
$this->view->mkdir($this->folder . $this->subfolder);
$this->view->mkdir($this->folder . $this->subfolder . $this->subsubfolder);
- $this->view->file_put_contents($this->folder.$this->filename, $this->data);
+ $this->view->file_put_contents($this->folder . $this->filename, $this->data);
$this->view->file_put_contents($this->folder . $this->subfolder . $this->filename, $this->data);
$mount = $this->view->getMount($this->filename);
$mount->getStorage()->getScanner()->scan('', Scanner::SCAN_RECURSIVE);
$this->userFolder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1);
+
+ $this->appConfig = $this->createMock(IAppConfig::class);
}
protected function tearDown(): void {
- if ($this->view instanceof \OC\Files\View) {
+ if ($this->view instanceof View) {
$this->view->unlink($this->filename);
$this->view->deleteAll($this->folder);
}
@@ -111,7 +100,7 @@ class ApiTest extends TestCase {
/**
* @param string $userId The userId of the caller
- * @return \OCA\Files_Sharing\Controller\ShareAPIController
+ * @return ShareAPIController
*/
private function createOCS($userId) {
$l = $this->getMockBuilder(IL10N::class)->getMock();
@@ -126,39 +115,48 @@ class ApiTest extends TestCase {
$previewManager = $this->createMock(IPreview::class);
$dateTimeZone = $this->createMock(IDateTimeZone::class);
$logger = $this->createMock(LoggerInterface::class);
+ $providerFactory = $this->createMock(IProviderFactory::class);
+ $mailer = $this->createMock(IMailer::class);
+ $tagManager = $this->createMock(ITagManager::class);
+ $trustedServers = $this->createMock(TrustedServers::class);
$dateTimeZone->method('getTimeZone')->willReturn(new \DateTimeZone(date_default_timezone_get()));
return new ShareAPIController(
self::APP_NAME,
$this->getMockBuilder(IRequest::class)->getMock(),
$this->shareManager,
- \OC::$server->getGroupManager(),
- \OC::$server->getUserManager(),
- \OC::$server->getRootFolder(),
- \OC::$server->getURLGenerator(),
+ Server::get(IGroupManager::class),
+ Server::get(IUserManager::class),
+ Server::get(IRootFolder::class),
+ Server::get(IURLGenerator::class),
$l,
$config,
+ $this->appConfig,
$appManager,
$serverContainer,
$userStatusManager,
$previewManager,
$dateTimeZone,
$logger,
+ $providerFactory,
+ $mailer,
+ $tagManager,
+ $trustedServers,
$userId,
);
}
- public function testCreateShareUserFile() {
+ public function testCreateShareUserFile(): void {
$this->setUp(); // for some reasons phpunit refuses to do this for us only for this test
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
- $result = $ocs->createShare($this->filename, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_USER, self::TEST_FILES_SHARING_API_USER2);
+ $result = $ocs->createShare($this->filename, Constants::PERMISSION_ALL, IShare::TYPE_USER, self::TEST_FILES_SHARING_API_USER2);
$ocs->cleanup();
$data = $result->getData();
$this->assertEquals(19, $data['permissions']);
$this->assertEmpty($data['expiration']);
- $this->shareManager->getShareById('ocinternal:'.$data['id']);
+ $this->shareManager->getShareById('ocinternal:' . $data['id']);
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
$ocs->deleteShare($data['id']);
@@ -166,16 +164,16 @@ class ApiTest extends TestCase {
$ocs->cleanup();
}
- public function testCreateShareUserFolder() {
+ public function testCreateShareUserFolder(): void {
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
- $result = $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_USER, self::TEST_FILES_SHARING_API_USER2);
+ $result = $ocs->createShare($this->folder, Constants::PERMISSION_ALL, IShare::TYPE_USER, self::TEST_FILES_SHARING_API_USER2);
$ocs->cleanup();
$data = $result->getData();
$this->assertEquals(31, $data['permissions']);
$this->assertEmpty($data['expiration']);
- $this->shareManager->getShareById('ocinternal:'.$data['id']);
+ $this->shareManager->getShareById('ocinternal:' . $data['id']);
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
$ocs->deleteShare($data['id']);
@@ -183,32 +181,32 @@ class ApiTest extends TestCase {
}
- public function testCreateShareGroupFile() {
+ public function testCreateShareGroupFile(): void {
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
- $result = $ocs->createShare($this->filename, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_GROUP, self::TEST_FILES_SHARING_API_GROUP1);
+ $result = $ocs->createShare($this->filename, Constants::PERMISSION_ALL, IShare::TYPE_GROUP, self::TEST_FILES_SHARING_API_GROUP1);
$ocs->cleanup();
$data = $result->getData();
$this->assertEquals(19, $data['permissions']);
$this->assertEmpty($data['expiration']);
- $this->shareManager->getShareById('ocinternal:'.$data['id']);
+ $this->shareManager->getShareById('ocinternal:' . $data['id']);
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
$ocs->deleteShare($data['id']);
$ocs->cleanup();
}
- public function testCreateShareGroupFolder() {
+ public function testCreateShareGroupFolder(): void {
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
- $result = $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_GROUP, self::TEST_FILES_SHARING_API_GROUP1);
+ $result = $ocs->createShare($this->folder, Constants::PERMISSION_ALL, IShare::TYPE_GROUP, self::TEST_FILES_SHARING_API_GROUP1);
$ocs->cleanup();
$data = $result->getData();
$this->assertEquals(31, $data['permissions']);
$this->assertEmpty($data['expiration']);
- $this->shareManager->getShareById('ocinternal:'.$data['id']);
+ $this->shareManager->getShareById('ocinternal:' . $data['id']);
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
$ocs->deleteShare($data['id']);
@@ -218,22 +216,22 @@ class ApiTest extends TestCase {
/**
* @group RoutingWeirdness
*/
- public function testCreateShareLink() {
+ public function testCreateShareLink(): void {
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
- $result = $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK);
+ $result = $ocs->createShare($this->folder, Constants::PERMISSION_ALL, IShare::TYPE_LINK);
$ocs->cleanup();
$data = $result->getData();
- $this->assertEquals(\OCP\Constants::PERMISSION_ALL,
+ $this->assertEquals(Constants::PERMISSION_ALL,
$data['permissions']);
$this->assertEmpty($data['expiration']);
$this->assertTrue(is_string($data['token']));
// check for correct link
- $url = \OC::$server->getURLGenerator()->getAbsoluteURL('/index.php/s/' . $data['token']);
+ $url = Server::get(IURLGenerator::class)->getAbsoluteURL('/index.php/s/' . $data['token']);
$this->assertEquals($url, $data['url']);
- $this->shareManager->getShareById('ocinternal:'.$data['id']);
+ $this->shareManager->getShareById('ocinternal:' . $data['id']);
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
$ocs->deleteShare($data['id']);
@@ -242,43 +240,47 @@ class ApiTest extends TestCase {
/**
* @group RoutingWeirdness
+ * @dataProvider dataAllowFederationOnPublicShares
*/
- public function testCreateShareLinkPublicUpload() {
+ public function testCreateShareLinkPublicUpload(array $appConfig, int $permissions): void {
+ $this->appConfig->method('getValueBool')
+ ->willReturnMap([$appConfig]);
+
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
- $result = $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'true');
+ $result = $ocs->createShare($this->folder, Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'true');
$ocs->cleanup();
$data = $result->getData();
$this->assertEquals(
- \OCP\Constants::PERMISSION_READ |
- \OCP\Constants::PERMISSION_CREATE |
- \OCP\Constants::PERMISSION_UPDATE |
- \OCP\Constants::PERMISSION_DELETE |
- \OCP\Constants::PERMISSION_SHARE,
+ Constants::PERMISSION_READ
+ | Constants::PERMISSION_CREATE
+ | Constants::PERMISSION_UPDATE
+ | Constants::PERMISSION_DELETE
+ | $permissions,
$data['permissions']
);
$this->assertEmpty($data['expiration']);
$this->assertTrue(is_string($data['token']));
// check for correct link
- $url = \OC::$server->getURLGenerator()->getAbsoluteURL('/index.php/s/' . $data['token']);
+ $url = Server::get(IURLGenerator::class)->getAbsoluteURL('/index.php/s/' . $data['token']);
$this->assertEquals($url, $data['url']);
- $this->shareManager->getShareById('ocinternal:'.$data['id']);
+ $this->shareManager->getShareById('ocinternal:' . $data['id']);
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
$ocs->deleteShare($data['id']);
$ocs->cleanup();
}
- public function testEnforceLinkPassword() {
+ public function testEnforceLinkPassword(): void {
$password = md5(time());
- $config = \OC::$server->getConfig();
+ $config = Server::get(IConfig::class);
$config->setAppValue('core', 'shareapi_enforce_links_password', 'yes');
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
try {
- $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK);
+ $ocs->createShare($this->folder, Constants::PERMISSION_ALL, IShare::TYPE_LINK);
$this->fail();
} catch (OCSForbiddenException $e) {
}
@@ -286,7 +288,7 @@ class ApiTest extends TestCase {
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
try {
- $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'false', '');
+ $ocs->createShare($this->folder, Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'false', '');
$this->fail();
} catch (OCSForbiddenException $e) {
}
@@ -294,7 +296,7 @@ class ApiTest extends TestCase {
// share with password should succeed
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
- $result = $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'false', $password);
+ $result = $ocs->createShare($this->folder, Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'false', $password);
$ocs->cleanup();
$data = $result->getData();
@@ -325,29 +327,29 @@ class ApiTest extends TestCase {
/**
* @medium
*/
- public function testSharePermissions() {
+ public function testSharePermissions(): void {
// sharing file to a user should work if shareapi_exclude_groups is set
// to no
- \OC::$server->getConfig()->setAppValue('core', 'shareapi_exclude_groups', 'no');
+ Server::get(IConfig::class)->setAppValue('core', 'shareapi_exclude_groups', 'no');
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
- $result = $ocs->createShare($this->filename, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_USER, self::TEST_FILES_SHARING_API_USER2);
+ $result = $ocs->createShare($this->filename, Constants::PERMISSION_ALL, IShare::TYPE_USER, self::TEST_FILES_SHARING_API_USER2);
$ocs->cleanup();
$data = $result->getData();
- $this->shareManager->getShareById('ocinternal:'.$data['id']);
+ $this->shareManager->getShareById('ocinternal:' . $data['id']);
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
$ocs->deleteShare($data['id']);
$ocs->cleanup();
// exclude groups, but not the group the user belongs to. Sharing should still work
- \OC::$server->getConfig()->setAppValue('core', 'shareapi_exclude_groups', 'yes');
- \OC::$server->getConfig()->setAppValue('core', 'shareapi_exclude_groups_list', 'admin,group1,group2');
+ Server::get(IConfig::class)->setAppValue('core', 'shareapi_exclude_groups', 'yes');
+ Server::get(IConfig::class)->setAppValue('core', 'shareapi_exclude_groups_list', 'admin,group1,group2');
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
- $result = $ocs->createShare($this->filename, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_USER, self::TEST_FILES_SHARING_API_USER2);
+ $result = $ocs->createShare($this->filename, Constants::PERMISSION_ALL, IShare::TYPE_USER, self::TEST_FILES_SHARING_API_USER2);
$ocs->cleanup();
$data = $result->getData();
@@ -359,15 +361,15 @@ class ApiTest extends TestCase {
$ocs->cleanup();
// now we exclude the group the user belongs to ('group'), sharing should fail now
- \OC::$server->getConfig()->setAppValue('core', 'shareapi_exclude_groups_list', 'admin,group');
+ Server::get(IConfig::class)->setAppValue('core', 'shareapi_exclude_groups_list', 'admin,group');
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
- $ocs->createShare($this->filename, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_USER, self::TEST_FILES_SHARING_API_USER2);
+ $ocs->createShare($this->filename, Constants::PERMISSION_ALL, IShare::TYPE_USER, self::TEST_FILES_SHARING_API_USER2);
$ocs->cleanup();
// cleanup
- \OC::$server->getConfig()->setAppValue('core', 'shareapi_exclude_groups', 'no');
- \OC::$server->getConfig()->setAppValue('core', 'shareapi_exclude_groups_list', '');
+ Server::get(IConfig::class)->setAppValue('core', 'shareapi_exclude_groups', 'no');
+ Server::get(IConfig::class)->setAppValue('core', 'shareapi_exclude_groups_list', '');
$this->addToAssertionCount(1);
}
@@ -376,7 +378,7 @@ class ApiTest extends TestCase {
/**
* @medium
*/
- public function testGetAllShares() {
+ public function testGetAllShares(): void {
$node = $this->userFolder->get($this->filename);
$share = $this->shareManager->newShare();
@@ -397,7 +399,7 @@ class ApiTest extends TestCase {
$this->shareManager->deleteShare($share);
}
- public function testGetAllSharesWithMe() {
+ public function testGetAllSharesWithMe(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
$this->logout();
@@ -437,9 +439,9 @@ class ApiTest extends TestCase {
* @medium
* @group RoutingWeirdness
*/
- public function testPublicLinkUrl() {
+ public function testPublicLinkUrl(): void {
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
- $result = $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK);
+ $result = $ocs->createShare($this->folder, Constants::PERMISSION_ALL, IShare::TYPE_LINK);
$ocs->cleanup();
$data = $result->getData();
@@ -449,7 +451,7 @@ class ApiTest extends TestCase {
$id = $data['id'];
// check for correct link
- $url = \OC::$server->getURLGenerator()->getAbsoluteURL('/index.php/s/' . $data['token']);
+ $url = Server::get(IURLGenerator::class)->getAbsoluteURL('/index.php/s/' . $data['token']);
$this->assertEquals($url, $data['url']);
// check for link in getall shares
@@ -486,7 +488,7 @@ class ApiTest extends TestCase {
* @depends testCreateShareUserFile
* @depends testCreateShareLink
*/
- public function testGetShareFromSource() {
+ public function testGetShareFromSource(): void {
$node = $this->userFolder->get($this->filename);
$share = $this->shareManager->newShare();
$share->setNode($node)
@@ -519,7 +521,7 @@ class ApiTest extends TestCase {
* @depends testCreateShareUserFile
* @depends testCreateShareLink
*/
- public function testGetShareFromSourceWithReshares() {
+ public function testGetShareFromSourceWithReshares(): void {
$node = $this->userFolder->get($this->filename);
$share1 = $this->shareManager->newShare();
$share1->setNode($node)
@@ -560,7 +562,7 @@ class ApiTest extends TestCase {
* @medium
* @depends testCreateShareUserFile
*/
- public function testGetShareFromId() {
+ public function testGetShareFromId(): void {
$node = $this->userFolder->get($this->filename);
$share1 = $this->shareManager->newShare();
$share1->setNode($node)
@@ -584,7 +586,7 @@ class ApiTest extends TestCase {
/**
* @medium
*/
- public function testGetShareFromFolder() {
+ public function testGetShareFromFolder(): void {
$node1 = $this->userFolder->get($this->filename);
$share1 = $this->shareManager->newShare();
$share1->setNode($node1)
@@ -594,7 +596,7 @@ class ApiTest extends TestCase {
->setPermissions(19);
$share1 = $this->shareManager->createShare($share1);
- $node2 = $this->userFolder->get($this->folder.'/'.$this->filename);
+ $node2 = $this->userFolder->get($this->folder . '/' . $this->filename);
$share2 = $this->shareManager->newShare();
$share2->setNode($node2)
->setSharedBy(self::TEST_FILES_SHARING_API_USER1)
@@ -614,7 +616,7 @@ class ApiTest extends TestCase {
$this->shareManager->deleteShare($share2);
}
- public function testGetShareFromFolderWithFile() {
+ public function testGetShareFromFolderWithFile(): void {
$node1 = $this->userFolder->get($this->filename);
$share1 = $this->shareManager->newShare();
$share1->setNode($node1)
@@ -640,7 +642,7 @@ class ApiTest extends TestCase {
* share a folder, than reshare a file within the shared folder and check if we construct the correct path
* @medium
*/
- public function testGetShareFromFolderReshares() {
+ public function testGetShareFromFolderReshares(): void {
$node1 = $this->userFolder->get($this->folder);
$share1 = $this->shareManager->newShare();
$share1->setNode($node1)
@@ -652,7 +654,7 @@ class ApiTest extends TestCase {
$share1->setStatus(IShare::STATUS_ACCEPTED);
$this->shareManager->updateShare($share1);
- $node2 = $this->userFolder->get($this->folder.'/'.$this->filename);
+ $node2 = $this->userFolder->get($this->folder . '/' . $this->filename);
$share2 = $this->shareManager->newShare();
$share2->setNode($node2)
->setSharedBy(self::TEST_FILES_SHARING_API_USER2)
@@ -662,7 +664,7 @@ class ApiTest extends TestCase {
$share2->setStatus(IShare::STATUS_ACCEPTED);
$this->shareManager->updateShare($share2);
- $node3 = $this->userFolder->get($this->folder.'/'.$this->subfolder.'/'.$this->filename);
+ $node3 = $this->userFolder->get($this->folder . '/' . $this->subfolder . '/' . $this->filename);
$share3 = $this->shareManager->newShare();
$share3->setNode($node3)
->setSharedBy(self::TEST_FILES_SHARING_API_USER2)
@@ -700,7 +702,7 @@ class ApiTest extends TestCase {
* reshare a sub folder and check if we get the correct path
* @medium
*/
- public function testGetShareFromSubFolderReShares() {
+ public function testGetShareFromSubFolderReShares(): void {
$node1 = $this->userFolder->get($this->folder . $this->subfolder);
$share1 = $this->shareManager->newShare();
$share1->setNode($node1)
@@ -712,7 +714,7 @@ class ApiTest extends TestCase {
$share1->setStatus(IShare::STATUS_ACCEPTED);
$this->shareManager->updateShare($share1);
- $node2 = \OC::$server->getRootFolder()->getUserFolder(self::TEST_FILES_SHARING_API_USER2)->get($this->subfolder);
+ $node2 = Server::get(IRootFolder::class)->getUserFolder(self::TEST_FILES_SHARING_API_USER2)->get($this->subfolder);
$share2 = $this->shareManager->newShare();
$share2->setNode($node2)
->setSharedBy(self::TEST_FILES_SHARING_API_USER2)
@@ -819,7 +821,7 @@ class ApiTest extends TestCase {
* test multiple shared folder if the path gets constructed correctly
* @medium
*/
- public function testGetShareMultipleSharedFolder() {
+ public function testGetShareMultipleSharedFolder(): void {
$this->setUp();
$node1 = $this->userFolder->get($this->folder . $this->subfolder);
$share1 = $this->shareManager->newShare();
@@ -873,7 +875,7 @@ class ApiTest extends TestCase {
$s2 = reset($data2);
$this->assertEquals($this->subfolder, $s1['path']);
- $this->assertEquals($this->folder.$this->subfolder, $s2['path']);
+ $this->assertEquals($this->folder . $this->subfolder, $s2['path']);
$this->shareManager->deleteShare($share1);
$this->shareManager->deleteShare($share2);
@@ -884,7 +886,7 @@ class ApiTest extends TestCase {
* test re-re-share of folder if the path gets constructed correctly
* @medium
*/
- public function testGetShareFromFileReReShares() {
+ public function testGetShareFromFileReReShares(): void {
$node1 = $this->userFolder->get($this->folder . $this->subfolder);
$share1 = $this->shareManager->newShare();
$share1->setNode($node1)
@@ -939,7 +941,7 @@ class ApiTest extends TestCase {
/**
* @medium
*/
- public function testGetShareFromUnknownId() {
+ public function testGetShareFromUnknownId(): void {
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER3);
try {
$ocs->getShare(0);
@@ -955,7 +957,7 @@ class ApiTest extends TestCase {
* @depends testCreateShareUserFile
* @depends testCreateShareLink
*/
- public function testUpdateShare() {
+ public function testUpdateShare(): void {
$password = md5(time());
$node1 = $this->userFolder->get($this->filename);
@@ -983,7 +985,7 @@ class ApiTest extends TestCase {
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
$ocs->updateShare(
$share1->getId(), 1, null, null, null, null, null, null, null,
- '[{"scope": "app1", "key": "attr1", "enabled": true}]'
+ '[{"scope": "app1", "key": "attr1", "value": true}]'
);
$ocs->cleanup();
@@ -1014,8 +1016,13 @@ class ApiTest extends TestCase {
/**
* @medium
+ * @dataProvider dataAllowFederationOnPublicShares
*/
- public function testUpdateShareUpload() {
+ public function testUpdateShareUpload(array $appConfig, int $permissions): void {
+ $this->appConfig->method('getValueBool')->willReturnMap([
+ $appConfig,
+ ]);
+
$node1 = $this->userFolder->get($this->folder);
$share1 = $this->shareManager->newShare();
$share1->setNode($node1)
@@ -1031,11 +1038,11 @@ class ApiTest extends TestCase {
$share1 = $this->shareManager->getShareById($share1->getFullId());
$this->assertEquals(
- \OCP\Constants::PERMISSION_READ |
- \OCP\Constants::PERMISSION_CREATE |
- \OCP\Constants::PERMISSION_UPDATE |
- \OCP\Constants::PERMISSION_DELETE |
- \OCP\Constants::PERMISSION_SHARE,
+ Constants::PERMISSION_READ
+ | Constants::PERMISSION_CREATE
+ | Constants::PERMISSION_UPDATE
+ | Constants::PERMISSION_DELETE
+ | $permissions,
$share1->getPermissions()
);
@@ -1043,10 +1050,17 @@ class ApiTest extends TestCase {
$this->shareManager->deleteShare($share1);
}
+ public static function dataAllowFederationOnPublicShares(): array {
+ return [
+ [['core', ConfigLexicon::SHAREAPI_ALLOW_FEDERATION_ON_PUBLIC_SHARES, false, false], 0],
+ [['core', ConfigLexicon::SHAREAPI_ALLOW_FEDERATION_ON_PUBLIC_SHARES, false, true], Constants::PERMISSION_SHARE],
+ ];
+ }
+
/**
* @medium
*/
- public function testUpdateShareExpireDate() {
+ public function testUpdateShareExpireDate(): void {
$node1 = $this->userFolder->get($this->folder);
$share1 = $this->shareManager->newShare();
$share1->setNode($node1)
@@ -1057,7 +1071,7 @@ class ApiTest extends TestCase {
$share1->setStatus(IShare::STATUS_ACCEPTED);
$this->shareManager->updateShare($share1);
- $config = \OC::$server->getConfig();
+ $config = Server::get(IConfig::class);
// enforce expire date, by default 7 days after the file was shared
$config->setAppValue('core', 'shareapi_default_expire_date', 'yes');
@@ -1119,7 +1133,7 @@ class ApiTest extends TestCase {
* @medium
* @depends testCreateShareUserFile
*/
- public function testDeleteShare() {
+ public function testDeleteShare(): void {
$node1 = $this->userFolder->get($this->filename);
$share1 = $this->shareManager->newShare();
$share1->setNode($node1)
@@ -1151,7 +1165,7 @@ class ApiTest extends TestCase {
/**
* test unshare of a reshared file
*/
- public function testDeleteReshare() {
+ public function testDeleteReshare(): void {
$node1 = $this->userFolder->get($this->folder);
$share1 = $this->shareManager->newShare();
$share1->setNode($node1)
@@ -1164,7 +1178,7 @@ class ApiTest extends TestCase {
$this->shareManager->updateShare($share1);
$user2folder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER2);
- $node2 = $user2folder->get($this->folder.'/'.$this->filename);
+ $node2 = $user2folder->get($this->folder . '/' . $this->filename);
$share2 = $this->shareManager->newShare();
$share2->setNode($node2)
->setSharedBy(self::TEST_FILES_SHARING_API_USER2)
@@ -1186,7 +1200,7 @@ class ApiTest extends TestCase {
/**
* share a folder which contains a share mount point, should be forbidden
*/
- public function testShareFolderWithAMountPoint() {
+ public function testShareFolderWithAMountPoint(): void {
// user 1 shares a folder with user2
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
@@ -1195,7 +1209,7 @@ class ApiTest extends TestCase {
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
$share->setStatus(IShare::STATUS_ACCEPTED);
$this->shareManager->updateShare($share);
@@ -1203,17 +1217,17 @@ class ApiTest extends TestCase {
// user2 shares a file from the folder as link
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $view = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
- $view->mkdir("localDir");
+ $view = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
+ $view->mkdir('localDir');
// move mount point to the folder "localDir"
- $result = $view->rename($this->folder, 'localDir/'.$this->folder);
+ $result = $view->rename($this->folder, 'localDir/' . $this->folder);
$this->assertTrue($result !== false);
// try to share "localDir"
$fileInfo2 = $view->getFileInfo('localDir');
- $this->assertTrue($fileInfo2 instanceof \OC\Files\FileInfo);
+ $this->assertTrue($fileInfo2 instanceof FileInfo);
$pass = true;
try {
@@ -1222,7 +1236,7 @@ class ApiTest extends TestCase {
'localDir',
self::TEST_FILES_SHARING_API_USER2,
self::TEST_FILES_SHARING_API_USER3,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
} catch (\Exception $e) {
$pass = false;
@@ -1246,15 +1260,15 @@ class ApiTest extends TestCase {
*/
public static function initTestMountPointsHook($data) {
if ($data['user'] === self::TEST_FILES_SHARING_API_USER1) {
- \OC\Files\Filesystem::mount(self::$tempStorage, [], '/' . self::TEST_FILES_SHARING_API_USER1 . '/files' . self::TEST_FOLDER_NAME);
+ Filesystem::mount(self::$tempStorage, [], '/' . self::TEST_FILES_SHARING_API_USER1 . '/files' . self::TEST_FOLDER_NAME);
}
}
/**
* Tests mounting a folder that is an external storage mount point.
*/
- public function testShareStorageMountPoint() {
- $tempStorage = new \OC\Files\Storage\Temporary([]);
+ public function testShareStorageMountPoint(): void {
+ $tempStorage = new Temporary([]);
$tempStorage->file_put_contents('test.txt', 'abcdef');
$tempStorage->getScanner()->scan('');
@@ -1269,7 +1283,7 @@ class ApiTest extends TestCase {
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
$share->setStatus(IShare::STATUS_ACCEPTED);
$this->shareManager->updateShare($share);
@@ -1277,7 +1291,7 @@ class ApiTest extends TestCase {
// user2: check that mount point name appears correctly
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $view = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
+ $view = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
$this->assertTrue($view->file_exists($this->folder));
$this->assertTrue($view->file_exists($this->folder . '/test.txt'));
@@ -1290,7 +1304,7 @@ class ApiTest extends TestCase {
\OC_Hook::clear('\OCA\Files_Sharing\Tests\ApiTest', 'initTestMountPointsHook');
}
- public function datesProvider() {
+ public static function datesProvider() {
$date = new \DateTime();
$date->setTime(0, 0);
$date->add(new \DateInterval('P5D'));
@@ -1306,18 +1320,18 @@ class ApiTest extends TestCase {
/**
* Make sure only ISO 8601 dates are accepted
*
- * @dataProvider datesProvider
* @group RoutingWeirdness
*/
- public function testPublicLinkExpireDate($date, $valid) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('datesProvider')]
+ public function testPublicLinkExpireDate($date, $valid): void {
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
try {
- $result = $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'false', '', null, $date);
+ $result = $ocs->createShare($this->folder, Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'false', '', null, $date);
$this->assertTrue($valid);
} catch (OCSNotFoundException $e) {
$this->assertFalse($valid);
- $this->assertEquals('Invalid date, date format must be YYYY-MM-DD', $e->getMessage());
+ $this->assertEquals('Invalid date. Format must be YYYY-MM-DD', $e->getMessage());
$ocs->cleanup();
return;
}
@@ -1328,10 +1342,10 @@ class ApiTest extends TestCase {
$this->assertEquals(substr($date, 0, 10), substr($data['expiration'], 0, 10));
// check for correct link
- $url = \OC::$server->getURLGenerator()->getAbsoluteURL('/index.php/s/' . $data['token']);
+ $url = Server::get(IURLGenerator::class)->getAbsoluteURL('/index.php/s/' . $data['token']);
$this->assertEquals($url, $data['url']);
- $share = $this->shareManager->getShareById('ocinternal:'.$data['id']);
+ $share = $this->shareManager->getShareById('ocinternal:' . $data['id']);
$this->assertEquals($date, $share->getExpirationDate()->format('Y-m-d H:i:s'));
@@ -1341,8 +1355,8 @@ class ApiTest extends TestCase {
/**
* @group RoutingWeirdness
*/
- public function testCreatePublicLinkExpireDateValid() {
- $config = \OC::$server->getConfig();
+ public function testCreatePublicLinkExpireDateValid(): void {
+ $config = Server::get(IConfig::class);
// enforce expire date, by default 7 days after the file was shared
$config->setAppValue('core', 'shareapi_default_expire_date', 'yes');
@@ -1352,7 +1366,7 @@ class ApiTest extends TestCase {
$date->add(new \DateInterval('P5D'));
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
- $result = $ocs->createShare($this->filename, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'false', '', null, $date->format('Y-m-d'));
+ $result = $ocs->createShare($this->filename, Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'false', '', null, $date->format('Y-m-d'));
$ocs->cleanup();
$data = $result->getData();
@@ -1360,10 +1374,10 @@ class ApiTest extends TestCase {
$this->assertEquals($date->format('Y-m-d 00:00:00'), $data['expiration']);
// check for correct link
- $url = \OC::$server->getURLGenerator()->getAbsoluteURL('/index.php/s/' . $data['token']);
+ $url = Server::get(IURLGenerator::class)->getAbsoluteURL('/index.php/s/' . $data['token']);
$this->assertEquals($url, $data['url']);
- $share = $this->shareManager->getShareById('ocinternal:'.$data['id']);
+ $share = $this->shareManager->getShareById('ocinternal:' . $data['id']);
$date->setTime(0, 0, 0);
$this->assertEquals($date, $share->getExpirationDate());
@@ -1373,8 +1387,8 @@ class ApiTest extends TestCase {
$config->setAppValue('core', 'shareapi_enforce_expire_date', 'no');
}
- public function testCreatePublicLinkExpireDateInvalidFuture() {
- $config = \OC::$server->getConfig();
+ public function testCreatePublicLinkExpireDateInvalidFuture(): void {
+ $config = Server::get(IConfig::class);
// enforce expire date, by default 7 days after the file was shared
$config->setAppValue('core', 'shareapi_default_expire_date', 'yes');
@@ -1386,7 +1400,7 @@ class ApiTest extends TestCase {
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
try {
- $ocs->createShare($this->filename, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'false', '', null, $date->format('Y-m-d'));
+ $ocs->createShare($this->filename, Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'false', '', null, $date->format('Y-m-d'));
$this->fail();
} catch (OCSException $e) {
$this->assertEquals(404, $e->getCode());
@@ -1399,7 +1413,7 @@ class ApiTest extends TestCase {
}
public function XtestCreatePublicLinkExpireDateInvalidPast() {
- $config = \OC::$server->getConfig();
+ $config = Server::get(IConfig::class);
$date = new \DateTime();
$date->sub(new \DateInterval('P8D'));
@@ -1407,7 +1421,7 @@ class ApiTest extends TestCase {
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
try {
- $ocs->createShare($this->filename, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'false', '', null, $date->format('Y-m-d'));
+ $ocs->createShare($this->filename, Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'false', '', null, $date->format('Y-m-d'));
$this->fail();
} catch (OCSException $e) {
$this->assertEquals(404, $e->getCode());
@@ -1423,10 +1437,10 @@ class ApiTest extends TestCase {
* test for no invisible shares
* See: https://github.com/owncloud/core/issues/22295
*/
- public function testInvisibleSharesUser() {
+ public function testInvisibleSharesUser(): void {
// simulate a post request
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
- $result = $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_USER, self::TEST_FILES_SHARING_API_USER2);
+ $result = $ocs->createShare($this->folder, Constants::PERMISSION_ALL, IShare::TYPE_USER, self::TEST_FILES_SHARING_API_USER2);
$ocs->cleanup();
$data = $result->getData();
@@ -1437,7 +1451,7 @@ class ApiTest extends TestCase {
$ocs->cleanup();
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER2);
- $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK);
+ $ocs->createShare($this->folder, Constants::PERMISSION_ALL, IShare::TYPE_LINK);
$ocs->cleanup();
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
@@ -1455,10 +1469,10 @@ class ApiTest extends TestCase {
* test for no invisible shares
* See: https://github.com/owncloud/core/issues/22295
*/
- public function testInvisibleSharesGroup() {
+ public function testInvisibleSharesGroup(): void {
// simulate a post request
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
- $result = $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_GROUP, self::TEST_FILES_SHARING_API_GROUP1);
+ $result = $ocs->createShare($this->folder, Constants::PERMISSION_ALL, IShare::TYPE_GROUP, self::TEST_FILES_SHARING_API_GROUP1);
$ocs->cleanup();
$data = $result->getData();
@@ -1471,7 +1485,7 @@ class ApiTest extends TestCase {
\OC_Util::tearDownFS();
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER2);
- $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK);
+ $ocs->createShare($this->folder, Constants::PERMISSION_ALL, IShare::TYPE_LINK);
$ocs->cleanup();
$ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1);
diff --git a/apps/files_sharing/tests/ApplicationTest.php b/apps/files_sharing/tests/ApplicationTest.php
index 270a56504f9..84a3f4b372b 100644
--- a/apps/files_sharing/tests/ApplicationTest.php
+++ b/apps/files_sharing/tests/ApplicationTest.php
@@ -1,50 +1,29 @@
<?php
+
/**
- * @copyright 2022, Vincent Petry <vincent@nextcloud.com>
- *
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Tests;
-use OC\EventDispatcher\EventDispatcher;
-use OC\Share20\Manager;
use OCA\Files_Sharing\AppInfo\Application;
+use OCA\Files_Sharing\Listener\BeforeDirectFileDownloadListener;
+use OCA\Files_Sharing\Listener\BeforeZipCreatedListener;
use OCA\Files_Sharing\SharedStorage;
-use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\Events\BeforeDirectFileDownloadEvent;
use OCP\Files\Events\BeforeZipCreatedEvent;
use OCP\Files\File;
use OCP\Files\Folder;
use OCP\Files\IRootFolder;
use OCP\Files\Storage\IStorage;
-use OCP\IServerContainer;
use OCP\IUser;
use OCP\IUserSession;
use OCP\Share\IAttributes;
use OCP\Share\IShare;
-use Psr\Log\LoggerInterface;
-use Symfony\Component\EventDispatcher\EventDispatcher as SymfonyDispatcher;
use Test\TestCase;
class ApplicationTest extends TestCase {
private Application $application;
- private IEventDispatcher $eventDispatcher;
/** @var IUserSession */
private $userSession;
@@ -52,28 +31,14 @@ class ApplicationTest extends TestCase {
/** @var IRootFolder */
private $rootFolder;
- /** @var Manager */
- private $manager;
protected function setUp(): void {
parent::setUp();
$this->application = new Application([]);
- $symfonyDispatcher = new SymfonyDispatcher();
- $this->eventDispatcher = new EventDispatcher(
- $symfonyDispatcher,
- $this->createMock(IServerContainer::class),
- $this->createMock(LoggerInterface::class)
- );
$this->userSession = $this->createMock(IUserSession::class);
$this->rootFolder = $this->createMock(IRootFolder::class);
-
- $this->application->registerDownloadEvents(
- $this->eventDispatcher,
- $this->userSession,
- $this->rootFolder
- );
}
public function providesDataForCanGet(): array {
@@ -122,9 +87,7 @@ class ApplicationTest extends TestCase {
return $result;
}
- /**
- * @dataProvider providesDataForCanGet
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesDataForCanGet')]
public function testCheckDirectCanBeDownloaded(string $path, Folder $userFolder, bool $run): void {
$user = $this->createMock(IUser::class);
$user->method('getUID')->willReturn('test');
@@ -134,7 +97,11 @@ class ApplicationTest extends TestCase {
// Simulate direct download of file
$event = new BeforeDirectFileDownloadEvent($path);
- $this->eventDispatcher->dispatchTyped($event);
+ $listener = new BeforeDirectFileDownloadListener(
+ $this->userSession,
+ $this->rootFolder
+ );
+ $listener->handle($event);
$this->assertEquals($run, $event->isSuccessful());
}
@@ -199,9 +166,7 @@ class ApplicationTest extends TestCase {
return $return;
}
- /**
- * @dataProvider providesDataForCanZip
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('providesDataForCanZip')]
public function testCheckZipCanBeDownloaded(string $dir, array $files, Folder $userFolder, bool $run): void {
$user = $this->createMock(IUser::class);
$user->method('getUID')->willReturn('test');
@@ -212,7 +177,12 @@ class ApplicationTest extends TestCase {
// Simulate zip download of folder folder
$event = new BeforeZipCreatedEvent($dir, $files);
- $this->eventDispatcher->dispatchTyped($event);
+ $listener = new BeforeZipCreatedListener(
+ $this->userSession,
+ $this->rootFolder
+ );
+ $listener->handle($event);
+
$this->assertEquals($run, $event->isSuccessful());
$this->assertEquals($run, $event->getErrorMessage() === null);
@@ -223,7 +193,11 @@ class ApplicationTest extends TestCase {
// Simulate zip download of folder folder
$event = new BeforeZipCreatedEvent('/test', ['test.txt']);
- $this->eventDispatcher->dispatchTyped($event);
+ $listener = new BeforeZipCreatedListener(
+ $this->userSession,
+ $this->rootFolder
+ );
+ $listener->handle($event);
// It should run as this would restrict e.g. share links otherwise
$this->assertTrue($event->isSuccessful());
diff --git a/apps/files_sharing/tests/CacheTest.php b/apps/files_sharing/tests/CacheTest.php
index 729b701b1a0..e95d3d4f91a 100644
--- a/apps/files_sharing/tests/CacheTest.php
+++ b/apps/files_sharing/tests/CacheTest.php
@@ -1,37 +1,23 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Jörn Friedrich Dreyer <jfd@butonic.de>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
+use OC\Files\Cache\Cache;
+use OC\Files\Filesystem;
+use OC\Files\Storage\Storage;
use OC\Files\Storage\Temporary;
use OC\Files\Storage\Wrapper\Jail;
+use OC\Files\View;
use OCA\Files_Sharing\SharedStorage;
+use OCP\Constants;
+use OCP\Files\Cache\IWatcher;
+use OCP\IUserManager;
+use OCP\Server;
use OCP\Share\IShare;
/**
@@ -42,20 +28,20 @@ use OCP\Share\IShare;
class CacheTest extends TestCase {
/**
- * @var \OC\Files\View
+ * @var View
*/
public $user2View;
- /** @var \OC\Files\Cache\Cache */
+ /** @var Cache */
protected $ownerCache;
- /** @var \OC\Files\Cache\Cache */
+ /** @var Cache */
protected $sharedCache;
- /** @var \OC\Files\Storage\Storage */
+ /** @var Storage */
protected $ownerStorage;
- /** @var \OC\Files\Storage\Storage */
+ /** @var Storage */
protected $sharedStorage;
/** @var \OCP\Share\IManager */
@@ -64,16 +50,16 @@ class CacheTest extends TestCase {
protected function setUp(): void {
parent::setUp();
- $this->shareManager = \OC::$server->getShareManager();
+ $this->shareManager = Server::get(\OCP\Share\IManager::class);
- $userManager = \OC::$server->getUserManager();
+ $userManager = Server::get(IUserManager::class);
$userManager->get(self::TEST_FILES_SHARING_API_USER1)->setDisplayName('User One');
$userManager->get(self::TEST_FILES_SHARING_API_USER2)->setDisplayName('User Two');
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
- $this->user2View = new \OC\Files\View('/'. self::TEST_FILES_SHARING_API_USER2 . '/files');
+ $this->user2View = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
// prepare user1's dir structure
$this->view->mkdir('container');
@@ -103,7 +89,7 @@ class CacheTest extends TestCase {
->setShareType(IShare::TYPE_USER)
->setSharedWith(self::TEST_FILES_SHARING_API_USER2)
->setSharedBy(self::TEST_FILES_SHARING_API_USER1)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL);
+ ->setPermissions(Constants::PERMISSION_ALL);
$share = $this->shareManager->createShare($share);
$share->setStatus(IShare::STATUS_ACCEPTED);
$this->shareManager->updateShare($share);
@@ -114,7 +100,7 @@ class CacheTest extends TestCase {
->setShareType(IShare::TYPE_USER)
->setSharedWith(self::TEST_FILES_SHARING_API_USER2)
->setSharedBy(self::TEST_FILES_SHARING_API_USER1)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL & ~(\OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_DELETE));
+ ->setPermissions(Constants::PERMISSION_ALL & ~(Constants::PERMISSION_CREATE | Constants::PERMISSION_DELETE));
$share = $this->shareManager->createShare($share);
$share->setStatus(IShare::STATUS_ACCEPTED);
$this->shareManager->updateShare($share);
@@ -123,7 +109,7 @@ class CacheTest extends TestCase {
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
// retrieve the shared storage
- $secondView = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2);
+ $secondView = new View('/' . self::TEST_FILES_SHARING_API_USER2);
[$this->sharedStorage,] = $secondView->resolvePath('files/shareddir');
$this->sharedCache = $this->sharedStorage->getCache();
}
@@ -211,7 +197,7 @@ class CacheTest extends TestCase {
* we cannot use a dataProvider because that would cause the stray hook detection to remove the hooks
* that were added in setUpBeforeClass.
*/
- public function testSearch() {
+ public function testSearch(): void {
foreach ($this->searchDataProvider() as $data) {
[$pattern, $expectedFiles] = $data;
@@ -223,7 +209,7 @@ class CacheTest extends TestCase {
/**
* Test searching by mime type
*/
- public function testSearchByMime() {
+ public function testSearchByMime(): void {
$results = $this->sharedStorage->getCache()->searchByMime('text');
$check = [
[
@@ -242,7 +228,7 @@ class CacheTest extends TestCase {
$this->verifyFiles($check, $results);
}
- public function testGetFolderContentsInRoot() {
+ public function testGetFolderContentsInRoot(): void {
$results = $this->user2View->getDirectoryContent('/');
$results = (array_filter($results, function ($file) {
return $file->getName() !== 'welcome.txt';
@@ -272,7 +258,7 @@ class CacheTest extends TestCase {
);
}
- public function testGetFolderContentsInSubdir() {
+ public function testGetFolderContentsInSubdir(): void {
$results = $this->user2View->getDirectoryContent('/shareddir');
$this->verifyFiles(
@@ -310,7 +296,7 @@ class CacheTest extends TestCase {
*
* https://github.com/nextcloud/server/issues/39879
*/
- public function testShareRenameOriginalFileInRecentResults() {
+ public function testShareRenameOriginalFileInRecentResults(): void {
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
$rootFolder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1);
@@ -320,7 +306,7 @@ class CacheTest extends TestCase {
->setShareType(IShare::TYPE_USER)
->setSharedWith(self::TEST_FILES_SHARING_API_USER3)
->setSharedBy(self::TEST_FILES_SHARING_API_USER1)
- ->setPermissions(\OCP\Constants::PERMISSION_READ);
+ ->setPermissions(Constants::PERMISSION_READ);
$share = $this->shareManager->createShare($share);
$share->setStatus(IShare::STATUS_ACCEPTED);
$this->shareManager->updateShare($share);
@@ -339,7 +325,7 @@ class CacheTest extends TestCase {
}, $recents));
}
- public function testGetFolderContentsWhenSubSubdirShared() {
+ public function testGetFolderContentsWhenSubSubdirShared(): void {
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
$rootFolder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1);
@@ -349,14 +335,14 @@ class CacheTest extends TestCase {
->setShareType(IShare::TYPE_USER)
->setSharedWith(self::TEST_FILES_SHARING_API_USER3)
->setSharedBy(self::TEST_FILES_SHARING_API_USER1)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL);
+ ->setPermissions(Constants::PERMISSION_ALL);
$share = $this->shareManager->createShare($share);
$share->setStatus(IShare::STATUS_ACCEPTED);
$this->shareManager->updateShare($share);
self::loginHelper(self::TEST_FILES_SHARING_API_USER3);
- $thirdView = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER3 . '/files');
+ $thirdView = new View('/' . self::TEST_FILES_SHARING_API_USER3 . '/files');
$results = $thirdView->getDirectoryContent('/subdir');
$this->verifyFiles(
@@ -423,10 +409,10 @@ class CacheTest extends TestCase {
}
}
- public function testGetPathByIdDirectShare() {
+ public function testGetPathByIdDirectShare(): void {
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
- \OC\Files\Filesystem::file_put_contents('test.txt', 'foo');
- $info = \OC\Files\Filesystem::getFileInfo('test.txt');
+ Filesystem::file_put_contents('test.txt', 'foo');
+ $info = Filesystem::getFileInfo('test.txt');
$rootFolder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1);
$node = $rootFolder->get('test.txt');
@@ -435,7 +421,7 @@ class CacheTest extends TestCase {
->setShareType(IShare::TYPE_USER)
->setSharedWith(self::TEST_FILES_SHARING_API_USER2)
->setSharedBy(self::TEST_FILES_SHARING_API_USER1)
- ->setPermissions(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE);
+ ->setPermissions(Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE | Constants::PERMISSION_SHARE);
$share = $this->shareManager->createShare($share);
$share->setStatus(IShare::STATUS_ACCEPTED);
$this->shareManager->updateShare($share);
@@ -443,23 +429,22 @@ class CacheTest extends TestCase {
\OC_Util::tearDownFS();
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $this->assertTrue(\OC\Files\Filesystem::file_exists('/test.txt'));
- [$sharedStorage] = \OC\Files\Filesystem::resolvePath('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/test.txt');
+ $this->assertTrue(Filesystem::file_exists('/test.txt'));
+ [$sharedStorage] = Filesystem::resolvePath('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/test.txt');
/**
- * @var \OCA\Files_Sharing\SharedStorage $sharedStorage
+ * @var SharedStorage $sharedStorage
*/
-
$sharedCache = $sharedStorage->getCache();
$this->assertEquals('', $sharedCache->getPathById($info->getId()));
}
- public function testGetPathByIdShareSubFolder() {
+ public function testGetPathByIdShareSubFolder(): void {
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
- \OC\Files\Filesystem::mkdir('foo');
- \OC\Files\Filesystem::mkdir('foo/bar');
- \OC\Files\Filesystem::touch('foo/bar/test.txt');
- $folderInfo = \OC\Files\Filesystem::getFileInfo('foo');
- $fileInfo = \OC\Files\Filesystem::getFileInfo('foo/bar/test.txt');
+ Filesystem::mkdir('foo');
+ Filesystem::mkdir('foo/bar');
+ Filesystem::touch('foo/bar/test.txt');
+ $folderInfo = Filesystem::getFileInfo('foo');
+ $fileInfo = Filesystem::getFileInfo('foo/bar/test.txt');
$rootFolder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1);
$node = $rootFolder->get('foo');
@@ -468,27 +453,26 @@ class CacheTest extends TestCase {
->setShareType(IShare::TYPE_USER)
->setSharedWith(self::TEST_FILES_SHARING_API_USER2)
->setSharedBy(self::TEST_FILES_SHARING_API_USER1)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL);
+ ->setPermissions(Constants::PERMISSION_ALL);
$share = $this->shareManager->createShare($share);
$share->setStatus(IShare::STATUS_ACCEPTED);
$this->shareManager->updateShare($share);
\OC_Util::tearDownFS();
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $this->assertTrue(\OC\Files\Filesystem::file_exists('/foo'));
- [$sharedStorage] = \OC\Files\Filesystem::resolvePath('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/foo');
+ $this->assertTrue(Filesystem::file_exists('/foo'));
+ [$sharedStorage] = Filesystem::resolvePath('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/foo');
/**
- * @var \OCA\Files_Sharing\SharedStorage $sharedStorage
+ * @var SharedStorage $sharedStorage
*/
-
$sharedCache = $sharedStorage->getCache();
$this->assertEquals('', $sharedCache->getPathById($folderInfo->getId()));
$this->assertEquals('bar/test.txt', $sharedCache->getPathById($fileInfo->getId()));
}
- public function testNumericStorageId() {
+ public function testNumericStorageId(): void {
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
- \OC\Files\Filesystem::mkdir('foo');
+ Filesystem::mkdir('foo');
$rootFolder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1);
$node = $rootFolder->get('foo');
@@ -497,23 +481,23 @@ class CacheTest extends TestCase {
->setShareType(IShare::TYPE_USER)
->setSharedWith(self::TEST_FILES_SHARING_API_USER2)
->setSharedBy(self::TEST_FILES_SHARING_API_USER1)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL);
+ ->setPermissions(Constants::PERMISSION_ALL);
$share = $this->shareManager->createShare($share);
$share->setStatus(IShare::STATUS_ACCEPTED);
$this->shareManager->updateShare($share);
\OC_Util::tearDownFS();
- [$sourceStorage] = \OC\Files\Filesystem::resolvePath('/' . self::TEST_FILES_SHARING_API_USER1 . '/files/foo');
+ [$sourceStorage] = Filesystem::resolvePath('/' . self::TEST_FILES_SHARING_API_USER1 . '/files/foo');
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $this->assertTrue(\OC\Files\Filesystem::file_exists('/foo'));
+ $this->assertTrue(Filesystem::file_exists('/foo'));
/** @var SharedStorage $sharedStorage */
- [$sharedStorage] = \OC\Files\Filesystem::resolvePath('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/foo');
+ [$sharedStorage] = Filesystem::resolvePath('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/foo');
$this->assertEquals($sourceStorage->getCache()->getNumericStorageId(), $sharedStorage->getCache()->getNumericStorageId());
}
- public function testShareJailedStorage() {
+ public function testShareJailedStorage(): void {
$sourceStorage = new Temporary();
$sourceStorage->mkdir('jail');
$sourceStorage->mkdir('jail/sub');
@@ -534,25 +518,25 @@ class CacheTest extends TestCase {
->setShareType(IShare::TYPE_USER)
->setSharedWith(self::TEST_FILES_SHARING_API_USER2)
->setSharedBy(self::TEST_FILES_SHARING_API_USER1)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL);
+ ->setPermissions(Constants::PERMISSION_ALL);
$share = $this->shareManager->createShare($share);
$share->setStatus(IShare::STATUS_ACCEPTED);
$this->shareManager->updateShare($share);
\OC_Util::tearDownFS();
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $this->assertEquals('foo', \OC\Files\Filesystem::file_get_contents('/sub/foo.txt'));
+ $this->assertEquals('foo', Filesystem::file_get_contents('/sub/foo.txt'));
- \OC\Files\Filesystem::file_put_contents('/sub/bar.txt', 'bar');
+ Filesystem::file_put_contents('/sub/bar.txt', 'bar');
/** @var SharedStorage $sharedStorage */
- [$sharedStorage] = \OC\Files\Filesystem::resolvePath('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/sub');
+ [$sharedStorage] = Filesystem::resolvePath('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/sub');
$this->assertTrue($sharedStorage->getCache()->inCache('bar.txt'));
$this->assertTrue($sourceStorage->getCache()->inCache('jail/sub/bar.txt'));
}
- public function testSearchShareJailedStorage() {
+ public function testSearchShareJailedStorage(): void {
$sourceStorage = new Temporary();
$sourceStorage->mkdir('jail');
$sourceStorage->mkdir('jail/sub');
@@ -573,7 +557,7 @@ class CacheTest extends TestCase {
->setShareType(IShare::TYPE_USER)
->setSharedWith(self::TEST_FILES_SHARING_API_USER2)
->setSharedBy(self::TEST_FILES_SHARING_API_USER1)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL);
+ ->setPermissions(Constants::PERMISSION_ALL);
$share = $this->shareManager->createShare($share);
$share->setStatus(IShare::STATUS_ACCEPTED);
$this->shareManager->updateShare($share);
@@ -582,9 +566,43 @@ class CacheTest extends TestCase {
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
/** @var SharedStorage $sharedStorage */
- [$sharedStorage] = \OC\Files\Filesystem::resolvePath('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/sub');
+ [$sharedStorage] = Filesystem::resolvePath('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/sub');
- $results = $sharedStorage->getCache()->search("foo.txt");
+ $results = $sharedStorage->getCache()->search('foo.txt');
$this->assertCount(1, $results);
}
+
+ public function testWatcherRootChange() {
+ $sourceStorage = new Temporary();
+ $sourceStorage->mkdir('shared');
+ $sourceStorage->file_put_contents('shared/foo.txt', 'foo');
+ $sourceStorage->getScanner()->scan('');
+ $sourceStorage->getWatcher()->setPolicy(IWatcher::CHECK_ALWAYS);
+ $this->registerMount(self::TEST_FILES_SHARING_API_USER1, $sourceStorage, '/' . self::TEST_FILES_SHARING_API_USER1 . '/files/foo');
+
+ self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
+
+ $rootFolder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1);
+ $node = $rootFolder->get('foo/shared');
+ $this->assertEquals(3, $node->getSize());
+
+ $share = $this->shareManager->newShare();
+ $share->setNode($node)
+ ->setShareType(IShare::TYPE_USER)
+ ->setSharedWith(self::TEST_FILES_SHARING_API_USER2)
+ ->setSharedBy(self::TEST_FILES_SHARING_API_USER1)
+ ->setPermissions(Constants::PERMISSION_ALL);
+ $share = $this->shareManager->createShare($share);
+ $share->setStatus(IShare::STATUS_ACCEPTED);
+ $this->shareManager->updateShare($share);
+ \OC_Util::tearDownFS();
+
+ self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
+
+ $view = Filesystem::getView();
+
+ $sourceStorage->rmdir('shared');
+
+ $this->assertFalse($view->getFileInfo('shared'));
+ }
}
diff --git a/apps/files_sharing/tests/CapabilitiesTest.php b/apps/files_sharing/tests/CapabilitiesTest.php
index 100c7759900..9a076d7a171 100644
--- a/apps/files_sharing/tests/CapabilitiesTest.php
+++ b/apps/files_sharing/tests/CapabilitiesTest.php
@@ -1,30 +1,9 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
@@ -32,9 +11,11 @@ use OC\KnownUser\KnownUserService;
use OC\Share20\Manager;
use OC\Share20\ShareDisableChecker;
use OCA\Files_Sharing\Capabilities;
+use OCP\App\IAppManager;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\IRootFolder;
use OCP\Files\Mount\IMountManager;
+use OCP\IAppConfig;
use OCP\IConfig;
use OCP\IDateTimeZone;
use OCP\IGroupManager;
@@ -75,9 +56,30 @@ class CapabilitiesTest extends \Test\TestCase {
* @param (string[])[] $map Map of arguments to return types for the getAppValue function in the mock
* @return string[]
*/
- private function getResults(array $map) {
+ private function getResults(array $map, array $typedMap = [], bool $federationEnabled = true) {
$config = $this->getMockBuilder(IConfig::class)->disableOriginalConstructor()->getMock();
+ $appManager = $this->getMockBuilder(IAppManager::class)->disableOriginalConstructor()->getMock();
$config->method('getAppValue')->willReturnMap($map);
+ $appManager->method('isEnabledForAnyone')->with('federation')->willReturn($federationEnabled);
+
+ if (empty($typedMap)) {
+ $appConfig = $this->createMock(IAppConfig::class);
+ } else {
+ // hack to help transition from old IConfig to new IAppConfig
+ $appConfig = $this->getMockBuilder(IAppConfig::class)->disableOriginalConstructor()->getMock();
+ $appConfig->expects($this->any())->method('getValueBool')->willReturnCallback(function (...$args) use ($typedMap): bool {
+ foreach ($typedMap as $entry) {
+ if ($entry[0] !== $args[0] || $entry[1] !== $args[1]) {
+ continue;
+ }
+
+ return $entry[2];
+ }
+
+ return false;
+ });
+ }
+
$shareManager = new Manager(
$this->createMock(LoggerInterface::class),
$config,
@@ -97,13 +99,15 @@ class CapabilitiesTest extends \Test\TestCase {
$this->createMock(KnownUserService::class),
$this->createMock(ShareDisableChecker::class),
$this->createMock(IDateTimeZone::class),
+ $appConfig,
);
- $cap = new Capabilities($config, $shareManager);
+
+ $cap = new Capabilities($config, $appConfig, $shareManager, $appManager);
$result = $this->getFilesSharingPart($cap->getCapabilities());
return $result;
}
- public function testEnabledSharingAPI() {
+ public function testEnabledSharingAPI(): void {
$map = [
['core', 'shareapi_enabled', 'yes', 'yes'],
];
@@ -114,7 +118,7 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertArrayHasKey('resharing', $result);
}
- public function testDisabledSharingAPI() {
+ public function testDisabledSharingAPI(): void {
$map = [
['core', 'shareapi_enabled', 'yes', 'no'],
];
@@ -125,7 +129,7 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertFalse($result['resharing']);
}
- public function testNoLinkSharing() {
+ public function testNoLinkSharing(): void {
$map = [
['core', 'shareapi_enabled', 'yes', 'yes'],
['core', 'shareapi_allow_links', 'yes', 'no'],
@@ -135,7 +139,7 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertFalse($result['public']['enabled']);
}
- public function testOnlyLinkSharing() {
+ public function testOnlyLinkSharing(): void {
$map = [
['core', 'shareapi_enabled', 'yes', 'yes'],
['core', 'shareapi_allow_links', 'yes', 'yes'],
@@ -146,20 +150,22 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertTrue($result['public']['enabled']);
}
- public function testLinkPassword() {
+ public function testLinkPassword(): void {
$map = [
['core', 'shareapi_enabled', 'yes', 'yes'],
['core', 'shareapi_allow_links', 'yes', 'yes'],
['core', 'shareapi_enforce_links_password_excluded_groups', '', ''],
- ['core', 'shareapi_enforce_links_password', 'no', 'yes'],
];
- $result = $this->getResults($map);
+ $typedMap = [
+ ['core', 'shareapi_enforce_links_password', true],
+ ];
+ $result = $this->getResults($map, $typedMap);
$this->assertArrayHasKey('password', $result['public']);
$this->assertArrayHasKey('enforced', $result['public']['password']);
$this->assertTrue($result['public']['password']['enforced']);
}
- public function testLinkNoPassword() {
+ public function testLinkNoPassword(): void {
$map = [
['core', 'shareapi_enabled', 'yes', 'yes'],
['core', 'shareapi_allow_links', 'yes', 'yes'],
@@ -172,7 +178,7 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertFalse($result['public']['password']['enforced']);
}
- public function testLinkNoExpireDate() {
+ public function testLinkNoExpireDate(): void {
$map = [
['core', 'shareapi_enabled', 'yes', 'yes'],
['core', 'shareapi_allow_links', 'yes', 'yes'],
@@ -185,7 +191,7 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertFalse($result['public']['expire_date']['enabled']);
}
- public function testLinkExpireDate() {
+ public function testLinkExpireDate(): void {
$map = [
['core', 'shareapi_enabled', 'yes', 'yes'],
['core', 'shareapi_allow_links', 'yes', 'yes'],
@@ -202,7 +208,7 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertFalse($result['public']['expire_date']['enforced']);
}
- public function testLinkExpireDateEnforced() {
+ public function testLinkExpireDateEnforced(): void {
$map = [
['core', 'shareapi_enabled', 'yes', 'yes'],
['core', 'shareapi_allow_links', 'yes', 'yes'],
@@ -216,7 +222,7 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertTrue($result['public']['expire_date']['enforced']);
}
- public function testLinkSendMail() {
+ public function testLinkSendMail(): void {
$map = [
['core', 'shareapi_enabled', 'yes', 'yes'],
['core', 'shareapi_allow_links', 'yes', 'yes'],
@@ -227,7 +233,7 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertTrue($result['public']['send_mail']);
}
- public function testLinkNoSendMail() {
+ public function testLinkNoSendMail(): void {
$map = [
['core', 'shareapi_enabled', 'yes', 'yes'],
['core', 'shareapi_allow_links', 'yes', 'yes'],
@@ -238,7 +244,7 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertFalse($result['public']['send_mail']);
}
- public function testResharing() {
+ public function testResharing(): void {
$map = [
['core', 'shareapi_enabled', 'yes', 'yes'],
['core', 'shareapi_allow_resharing', 'yes', 'yes'],
@@ -248,7 +254,7 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertTrue($result['resharing']);
}
- public function testNoResharing() {
+ public function testNoResharing(): void {
$map = [
['core', 'shareapi_enabled', 'yes', 'yes'],
['core', 'shareapi_allow_resharing', 'yes', 'no'],
@@ -258,7 +264,7 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertFalse($result['resharing']);
}
- public function testLinkPublicUpload() {
+ public function testLinkPublicUpload(): void {
$map = [
['core', 'shareapi_enabled', 'yes', 'yes'],
['core', 'shareapi_allow_links', 'yes', 'yes'],
@@ -270,7 +276,7 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertTrue($result['public']['upload_files_drop']);
}
- public function testLinkNoPublicUpload() {
+ public function testLinkNoPublicUpload(): void {
$map = [
['core', 'shareapi_enabled', 'yes', 'yes'],
['core', 'shareapi_allow_links', 'yes', 'yes'],
@@ -282,7 +288,7 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertFalse($result['public']['upload_files_drop']);
}
- public function testNoGroupSharing() {
+ public function testNoGroupSharing(): void {
$map = [
['core', 'shareapi_enabled', 'yes', 'yes'],
['core', 'shareapi_allow_group_sharing', 'yes', 'no'],
@@ -291,7 +297,7 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertFalse($result['group_sharing']);
}
- public function testGroupSharing() {
+ public function testGroupSharing(): void {
$map = [
['core', 'shareapi_enabled', 'yes', 'yes'],
['core', 'shareapi_allow_group_sharing', 'yes', 'yes'],
@@ -300,7 +306,7 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertTrue($result['group_sharing']);
}
- public function testFederatedSharingIncoming() {
+ public function testFederatedSharingIncoming(): void {
$map = [
['files_sharing', 'incoming_server2server_share_enabled', 'yes', 'yes'],
];
@@ -309,7 +315,7 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertTrue($result['federation']['incoming']);
}
- public function testFederatedSharingNoIncoming() {
+ public function testFederatedSharingNoIncoming(): void {
$map = [
['files_sharing', 'incoming_server2server_share_enabled', 'yes', 'no'],
];
@@ -318,7 +324,7 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertFalse($result['federation']['incoming']);
}
- public function testFederatedSharingOutgoing() {
+ public function testFederatedSharingOutgoing(): void {
$map = [
['files_sharing', 'outgoing_server2server_share_enabled', 'yes', 'yes'],
];
@@ -327,7 +333,7 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertTrue($result['federation']['outgoing']);
}
- public function testFederatedSharingNoOutgoing() {
+ public function testFederatedSharingNoOutgoing(): void {
$map = [
['files_sharing', 'outgoing_server2server_share_enabled', 'yes', 'no'],
];
@@ -336,10 +342,19 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertFalse($result['federation']['outgoing']);
}
- public function testFederatedSharingExpirationDate() {
+ public function testFederatedSharingExpirationDate(): void {
$result = $this->getResults([]);
$this->assertArrayHasKey('federation', $result);
$this->assertEquals(['enabled' => true], $result['federation']['expire_date']);
$this->assertEquals(['enabled' => true], $result['federation']['expire_date_supported']);
}
+
+ public function testFederatedSharingDisabled(): void {
+ $result = $this->getResults([], federationEnabled: false);
+ $this->assertArrayHasKey('federation', $result);
+ $this->assertFalse($result['federation']['incoming']);
+ $this->assertFalse($result['federation']['outgoing']);
+ $this->assertEquals(['enabled' => false], $result['federation']['expire_date']);
+ $this->assertEquals(['enabled' => false], $result['federation']['expire_date_supported']);
+ }
}
diff --git a/apps/files_sharing/tests/Collaboration/ShareRecipientSorterTest.php b/apps/files_sharing/tests/Collaboration/ShareRecipientSorterTest.php
index 6e1aa65cea8..572463a9ebc 100644
--- a/apps/files_sharing/tests/Collaboration/ShareRecipientSorterTest.php
+++ b/apps/files_sharing/tests/Collaboration/ShareRecipientSorterTest.php
@@ -1,26 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de>
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Tests\Collaboration;
@@ -34,13 +16,13 @@ use OCP\Share\IManager;
use Test\TestCase;
class ShareRecipientSorterTest extends TestCase {
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
+ /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
protected $shareManager;
- /** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */
+ /** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */
protected $rootFolder;
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
+ /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
protected $userSession;
- /** @var ShareRecipientSorter */
+ /** @var ShareRecipientSorter */
protected $sorter;
protected function setUp(): void {
@@ -54,10 +36,10 @@ class ShareRecipientSorterTest extends TestCase {
}
/**
- * @dataProvider sortDataProvider
* @param $data
*/
- public function testSort($data) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('sortDataProvider')]
+ public function testSort($data): void {
$node = $this->createMock(Node::class);
/** @var Folder|\PHPUnit\Framework\MockObject\MockObject $folder */
@@ -98,7 +80,7 @@ class ShareRecipientSorterTest extends TestCase {
$this->assertEquals($data['expected'], $workArray);
}
- public function testSortNoNodes() {
+ public function testSortNoNodes(): void {
/** @var Folder|\PHPUnit\Framework\MockObject\MockObject $folder */
$folder = $this->createMock(Folder::class);
$this->rootFolder->expects($this->any())
@@ -128,44 +110,42 @@ class ShareRecipientSorterTest extends TestCase {
]
];
$workArray = $originalArray;
- $this->sorter->sort($workArray, ['itemType' => 'files', 'itemId' => 404]);
+ $this->sorter->sort($workArray, ['itemType' => 'files', 'itemId' => '404']);
$this->assertEquals($originalArray, $workArray);
}
- public function sortDataProvider() {
+ public static function sortDataProvider() {
return [[
[
#0 – sort properly and otherwise keep existing order
- 'context' => ['itemType' => 'files', 'itemId' => 42],
+ 'context' => ['itemType' => 'files', 'itemId' => '42'],
'accessList' => ['users' => ['celia', 'darius', 'faruk', 'gail'], 'bots' => ['r2-d2']],
'input' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
]
],
'expected' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'elena']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'elena']],
+ ],
'bots' => [
['value' => ['shareWith' => 'r2-d2']],
['value' => ['shareWith' => 'c-3po']],
@@ -174,35 +154,33 @@ class ShareRecipientSorterTest extends TestCase {
],
[
#1 – no recipients
- 'context' => ['itemType' => 'files', 'itemId' => 42],
+ 'context' => ['itemType' => 'files', 'itemId' => '42'],
'accessList' => ['users' => false],
'input' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
]
],
'expected' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
@@ -211,35 +189,33 @@ class ShareRecipientSorterTest extends TestCase {
],
[
#2 – unsupported item type
- 'context' => ['itemType' => 'announcements', 'itemId' => 42],
+ 'context' => ['itemType' => 'announcements', 'itemId' => '42'],
'accessList' => null, // not needed
'input' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
]
],
'expected' => [
- 'users' =>
- [
- ['value' => ['shareWith' => 'alice']],
- ['value' => ['shareWith' => 'bob']],
- ['value' => ['shareWith' => 'celia']],
- ['value' => ['shareWith' => 'darius']],
- ['value' => ['shareWith' => 'elena']],
- ['value' => ['shareWith' => 'faruk']],
- ['value' => ['shareWith' => 'gail']],
- ],
+ 'users' => [
+ ['value' => ['shareWith' => 'alice']],
+ ['value' => ['shareWith' => 'bob']],
+ ['value' => ['shareWith' => 'celia']],
+ ['value' => ['shareWith' => 'darius']],
+ ['value' => ['shareWith' => 'elena']],
+ ['value' => ['shareWith' => 'faruk']],
+ ['value' => ['shareWith' => 'gail']],
+ ],
'bots' => [
['value' => ['shareWith' => 'c-3po']],
['value' => ['shareWith' => 'r2-d2']],
@@ -248,7 +224,7 @@ class ShareRecipientSorterTest extends TestCase {
],
[
#3 – no nothing
- 'context' => ['itemType' => 'files', 'itemId' => 42],
+ 'context' => ['itemType' => 'files', 'itemId' => '42'],
'accessList' => [],
'input' => [],
'expected' => [],
diff --git a/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php b/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php
index 5738610d0a5..6f0960bf46c 100644
--- a/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php
+++ b/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php
@@ -1,33 +1,18 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud GmbH.
- *
- * @author Daniel Calviño Sánchez <danxuliu@gmail.com>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Jörn Friedrich Dreyer <jfd@butonic.de>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud GmbH.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests\Command;
use OCA\Files_Sharing\Command\CleanupRemoteStorages;
use OCP\Federation\ICloudId;
use OCP\Federation\ICloudIdManager;
+use OCP\IDBConnection;
+use OCP\Server;
+use PHPUnit\Framework\MockObject\MockObject;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Test\TestCase;
@@ -41,20 +26,9 @@ use Test\TestCase;
*/
class CleanupRemoteStoragesTest extends TestCase {
- /**
- * @var CleanupRemoteStorages
- */
- private $command;
-
- /**
- * @var \OCP\IDBConnection
- */
- private $connection;
-
- /**
- * @var ICloudIdManager|\PHPUnit\Framework\MockObject\MockObject
- */
- private $cloudIdManager;
+ protected IDBConnection $connection;
+ protected CleanupRemoteStorages $command;
+ private ICloudIdManager&MockObject $cloudIdManager;
private $storages = [
['id' => 'shared::7b4a322b22f9d0047c38d77d471ce3cf', 'share_token' => 'f2c69dad1dc0649f26976fd210fc62e1', 'remote' => 'https://hostname.tld/owncloud1', 'user' => 'user1'],
@@ -69,52 +43,52 @@ class CleanupRemoteStoragesTest extends TestCase {
protected function setUp(): void {
parent::setUp();
- $this->connection = \OC::$server->getDatabaseConnection();
+ $this->connection = Server::get(IDBConnection::class);
- $storageQuery = \OC::$server->getDatabaseConnection()->getQueryBuilder();
+ $storageQuery = Server::get(IDBConnection::class)->getQueryBuilder();
$storageQuery->insert('storages')
- ->setValue('id', '?');
+ ->setValue('id', $storageQuery->createParameter('id'));
- $shareExternalQuery = \OC::$server->getDatabaseConnection()->getQueryBuilder();
+ $shareExternalQuery = Server::get(IDBConnection::class)->getQueryBuilder();
$shareExternalQuery->insert('share_external')
- ->setValue('share_token', '?')
- ->setValue('remote', '?')
- ->setValue('name', '?')
- ->setValue('owner', '?')
- ->setValue('user', '?')
- ->setValue('mountpoint', '?')
- ->setValue('mountpoint_hash', '?');
-
- $filesQuery = \OC::$server->getDatabaseConnection()->getQueryBuilder();
+ ->setValue('share_token', $shareExternalQuery->createParameter('share_token'))
+ ->setValue('remote', $shareExternalQuery->createParameter('remote'))
+ ->setValue('name', $shareExternalQuery->createParameter('name'))
+ ->setValue('owner', $shareExternalQuery->createParameter('owner'))
+ ->setValue('user', $shareExternalQuery->createParameter('user'))
+ ->setValue('mountpoint', $shareExternalQuery->createParameter('mountpoint'))
+ ->setValue('mountpoint_hash', $shareExternalQuery->createParameter('mountpoint_hash'));
+
+ $filesQuery = Server::get(IDBConnection::class)->getQueryBuilder();
$filesQuery->insert('filecache')
- ->setValue('storage', '?')
- ->setValue('path', '?')
- ->setValue('path_hash', '?');
+ ->setValue('storage', $filesQuery->createParameter('storage'))
+ ->setValue('path', $filesQuery->createParameter('path'))
+ ->setValue('path_hash', $filesQuery->createParameter('path_hash'));
foreach ($this->storages as &$storage) {
if (isset($storage['id'])) {
- $storageQuery->setParameter(0, $storage['id']);
- $storageQuery->execute();
+ $storageQuery->setParameter('id', $storage['id']);
+ $storageQuery->executeStatement();
$storage['numeric_id'] = $storageQuery->getLastInsertId();
}
if (isset($storage['share_token'])) {
$shareExternalQuery
- ->setParameter(0, $storage['share_token'])
- ->setParameter(1, $storage['remote'])
- ->setParameter(2, 'irrelevant')
- ->setParameter(3, 'irrelevant')
- ->setParameter(4, $storage['user'])
- ->setParameter(5, 'irrelevant')
- ->setParameter(6, 'irrelevant');
+ ->setParameter('share_token', $storage['share_token'])
+ ->setParameter('remote', $storage['remote'])
+ ->setParameter('name', 'irrelevant')
+ ->setParameter('owner', 'irrelevant')
+ ->setParameter('user', $storage['user'])
+ ->setParameter('mountpoint', 'irrelevant')
+ ->setParameter('mountpoint_hash', 'irrelevant');
$shareExternalQuery->executeStatement();
}
if (isset($storage['files_count'])) {
for ($i = 0; $i < $storage['files_count']; $i++) {
- $filesQuery->setParameter(0, $storage['numeric_id']);
- $filesQuery->setParameter(1, 'file' . $i);
- $filesQuery->setParameter(2, md5('file' . $i));
+ $filesQuery->setParameter('storage', $storage['numeric_id']);
+ $filesQuery->setParameter('path', 'file' . $i);
+ $filesQuery->setParameter('path_hash', md5('file' . $i));
$filesQuery->executeStatement();
}
}
@@ -126,11 +100,11 @@ class CleanupRemoteStoragesTest extends TestCase {
}
protected function tearDown(): void {
- $storageQuery = \OC::$server->getDatabaseConnection()->getQueryBuilder();
+ $storageQuery = Server::get(IDBConnection::class)->getQueryBuilder();
$storageQuery->delete('storages')
->where($storageQuery->expr()->eq('id', $storageQuery->createParameter('id')));
- $shareExternalQuery = \OC::$server->getDatabaseConnection()->getQueryBuilder();
+ $shareExternalQuery = Server::get(IDBConnection::class)->getQueryBuilder();
$shareExternalQuery->delete('share_external')
->where($shareExternalQuery->expr()->eq('share_token', $shareExternalQuery->createParameter('share_token')))
->andWhere($shareExternalQuery->expr()->eq('remote', $shareExternalQuery->createParameter('remote')));
@@ -138,13 +112,13 @@ class CleanupRemoteStoragesTest extends TestCase {
foreach ($this->storages as $storage) {
if (isset($storage['id'])) {
$storageQuery->setParameter('id', $storage['id']);
- $storageQuery->execute();
+ $storageQuery->executeStatement();
}
if (isset($storage['share_token'])) {
$shareExternalQuery->setParameter('share_token', $storage['share_token']);
$shareExternalQuery->setParameter('remote', $storage['remote']);
- $shareExternalQuery->execute();
+ $shareExternalQuery->executeStatement();
}
}
@@ -152,7 +126,7 @@ class CleanupRemoteStoragesTest extends TestCase {
}
private function doesStorageExist($numericId) {
- $qb = \OC::$server->getDatabaseConnection()->getQueryBuilder();
+ $qb = Server::get(IDBConnection::class)->getQueryBuilder();
$qb->select('*')
->from('storages')
->where($qb->expr()->eq('numeric_id', $qb->createNamedParameter($numericId)));
@@ -164,7 +138,7 @@ class CleanupRemoteStoragesTest extends TestCase {
return true;
}
- $qb = \OC::$server->getDatabaseConnection()->getQueryBuilder();
+ $qb = Server::get(IDBConnection::class)->getQueryBuilder();
$qb->select('*')
->from('filecache')
->where($qb->expr()->eq('storage', $qb->createNamedParameter($numericId)));
@@ -182,7 +156,7 @@ class CleanupRemoteStoragesTest extends TestCase {
/**
* Test cleanup of orphaned storages
*/
- public function testCleanup() {
+ public function testCleanup(): void {
$input = $this->getMockBuilder(InputInterface::class)
->disableOriginalConstructor()
->getMock();
@@ -191,19 +165,18 @@ class CleanupRemoteStoragesTest extends TestCase {
->getMock();
// parent folder, `files`, ´test` and `welcome.txt` => 4 elements
-
+ $outputCalls = [];
$output
->expects($this->any())
->method('writeln')
- ->withConsecutive(
- ['5 remote storage(s) need(s) to be checked'],
- ['5 remote share(s) exist'],
- );
+ ->willReturnCallback(function (string $text) use (&$outputCalls): void {
+ $outputCalls[] = $text;
+ });
$this->cloudIdManager
->expects($this->any())
->method('getCloudId')
- ->will($this->returnCallback(function (string $user, string $remote) {
+ ->willReturnCallback(function (string $user, string $remote) {
$cloudIdMock = $this->createMock(ICloudId::class);
// The remotes are already sanitized in the original data, so
@@ -214,7 +187,7 @@ class CleanupRemoteStoragesTest extends TestCase {
->willReturn($remote);
return $cloudIdMock;
- }));
+ });
$this->command->execute($input, $output);
@@ -223,5 +196,10 @@ class CleanupRemoteStoragesTest extends TestCase {
$this->assertFalse($this->doesStorageExist($this->storages[3]['numeric_id']));
$this->assertTrue($this->doesStorageExist($this->storages[4]['numeric_id']));
$this->assertFalse($this->doesStorageExist($this->storages[5]['numeric_id']));
+
+ $this->assertEquals([
+ '5 remote storage(s) need(s) to be checked',
+ '5 remote share(s) exist',
+ ], array_slice($outputCalls, 0, 2));
}
}
diff --git a/apps/files_sharing/tests/Command/FixShareOwnersTest.php b/apps/files_sharing/tests/Command/FixShareOwnersTest.php
new file mode 100644
index 00000000000..0fde61895b1
--- /dev/null
+++ b/apps/files_sharing/tests/Command/FixShareOwnersTest.php
@@ -0,0 +1,117 @@
+<?php
+
+/**
+ * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+namespace OCA\Files_Sharing\Tests\Command;
+
+use OCA\Files_Sharing\Command\FixShareOwners;
+use OCA\Files_Sharing\OrphanHelper;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+use Test\TestCase;
+
+/**
+ * Class FixShareOwnersTest
+ *
+ * @package OCA\Files_Sharing\Tests\Command
+ */
+class FixShareOwnersTest extends TestCase {
+ /**
+ * @var FixShareOwners
+ */
+ private $command;
+
+ /**
+ * @var OrphanHelper|\PHPUnit\Framework\MockObject\MockObject
+ */
+ private $orphanHelper;
+
+ protected function setUp(): void {
+ parent::setUp();
+
+ $this->orphanHelper = $this->createMock(OrphanHelper::class);
+ $this->command = new FixShareOwners($this->orphanHelper);
+ }
+
+ public function testExecuteNoSharesDetected() {
+ $this->orphanHelper->expects($this->once())
+ ->method('getAllShares')
+ ->willReturn([
+ ['id' => 1, 'owner' => 'user1', 'fileid' => 1, 'target' => 'target1'],
+ ['id' => 2, 'owner' => 'user2', 'fileid' => 2, 'target' => 'target2'],
+ ]);
+ $this->orphanHelper->expects($this->exactly(2))
+ ->method('isShareValid')
+ ->willReturn(true);
+
+ $input = $this->createMock(InputInterface::class);
+ $output = $this->createMock(OutputInterface::class);
+
+ $output->expects($this->once())
+ ->method('writeln')
+ ->with('No broken shares detected');
+ $this->command->execute($input, $output);
+ }
+
+ public function testExecuteSharesDetected() {
+ $this->orphanHelper->expects($this->once())
+ ->method('getAllShares')
+ ->willReturn([
+ ['id' => 1, 'owner' => 'user1', 'fileid' => 1, 'target' => 'target1'],
+ ['id' => 2, 'owner' => 'user2', 'fileid' => 2, 'target' => 'target2'],
+ ]);
+ $this->orphanHelper->expects($this->exactly(2))
+ ->method('isShareValid')
+ ->willReturnOnConsecutiveCalls(true, false);
+ $this->orphanHelper->expects($this->once())
+ ->method('fileExists')
+ ->willReturn(true);
+ $this->orphanHelper->expects($this->once())
+ ->method('findOwner')
+ ->willReturn('newOwner');
+ $this->orphanHelper->expects($this->once())
+ ->method('updateShareOwner');
+
+ $input = $this->createMock(InputInterface::class);
+ $output = $this->createMock(OutputInterface::class);
+
+ $output->expects($this->once())
+ ->method('writeln')
+ ->with('Share with id <info>2</info> (target: <info>target2</info>) updated to owner <info>newOwner</info>');
+ $this->command->execute($input, $output);
+ }
+
+ public function testExecuteSharesDetectedDryRun() {
+ $this->orphanHelper->expects($this->once())
+ ->method('getAllShares')
+ ->willReturn([
+ ['id' => 1, 'owner' => 'user1', 'fileid' => 1, 'target' => 'target1'],
+ ['id' => 2, 'owner' => 'user2', 'fileid' => 2, 'target' => 'target2'],
+ ]);
+ $this->orphanHelper->expects($this->exactly(2))
+ ->method('isShareValid')
+ ->willReturnOnConsecutiveCalls(true, false);
+ $this->orphanHelper->expects($this->once())
+ ->method('fileExists')
+ ->willReturn(true);
+ $this->orphanHelper->expects($this->once())
+ ->method('findOwner')
+ ->willReturn('newOwner');
+ $this->orphanHelper->expects($this->never())
+ ->method('updateShareOwner');
+
+ $input = $this->createMock(InputInterface::class);
+ $output = $this->createMock(OutputInterface::class);
+
+ $output->expects($this->once())
+ ->method('writeln')
+ ->with('Share with id <info>2</info> (target: <info>target2</info>) can be updated to owner <info>newOwner</info>');
+ $input->expects($this->once())
+ ->method('getOption')
+ ->with('dry-run')
+ ->willReturn(true);
+ $this->command->execute($input, $output);
+ }
+}
diff --git a/apps/files_sharing/tests/Controller/ExternalShareControllerTest.php b/apps/files_sharing/tests/Controller/ExternalShareControllerTest.php
index c4906b9119b..7e054d9a6dc 100644
--- a/apps/files_sharing/tests/Controller/ExternalShareControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ExternalShareControllerTest.php
@@ -1,35 +1,16 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests\Controllers;
use OCA\Files_Sharing\Controller\ExternalSharesController;
use OCA\Files_Sharing\External\Manager;
-use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Http\JSONResponse;
-use OCP\Http\Client\IClient;
use OCP\Http\Client\IClientService;
-use OCP\Http\Client\IResponse;
use OCP\IConfig;
use OCP\IRequest;
use PHPUnit\Framework\MockObject\MockObject;
@@ -70,7 +51,7 @@ class ExternalShareControllerTest extends \Test\TestCase {
);
}
- public function testIndex() {
+ public function testIndex(): void {
$this->externalManager
->expects($this->once())
->method('getOpenShares')
@@ -79,7 +60,7 @@ class ExternalShareControllerTest extends \Test\TestCase {
$this->assertEquals(new JSONResponse(['MyDummyArray']), $this->getExternalShareController()->index());
}
- public function testCreate() {
+ public function testCreate(): void {
$this->externalManager
->expects($this->once())
->method('acceptShare')
@@ -88,7 +69,7 @@ class ExternalShareControllerTest extends \Test\TestCase {
$this->assertEquals(new JSONResponse(), $this->getExternalShareController()->create(4));
}
- public function testDestroy() {
+ public function testDestroy(): void {
$this->externalManager
->expects($this->once())
->method('declineShare')
@@ -96,90 +77,4 @@ class ExternalShareControllerTest extends \Test\TestCase {
$this->assertEquals(new JSONResponse(), $this->getExternalShareController()->destroy(4));
}
-
- public function testRemoteWithValidHttps() {
- $client = $this->createMock(IClient::class);
- $response = $this->createMock(IResponse::class);
- $response
- ->expects($this->exactly(2))
- ->method('getBody')
- ->willReturnOnConsecutiveCalls(
- 'Certainly not a JSON string',
- '{"installed":true,"maintenance":false,"version":"8.1.0.8","versionstring":"8.1.0","edition":""}'
- );
- $client
- ->expects($this->any())
- ->method('get')
- ->willReturn($response);
-
- $this->clientService
- ->expects($this->exactly(2))
- ->method('newClient')
- ->willReturn($client);
-
- $this->assertEquals(new DataResponse('https'), $this->getExternalShareController()->testRemote('nextcloud.com'));
- }
-
- public function testRemoteWithWorkingHttp() {
- $client = $this->createMock(IClient::class);
- $response = $this->createMock(IResponse::class);
- $client
- ->method('get')
- ->willReturn($response);
- $response
- ->expects($this->exactly(5))
- ->method('getBody')
- ->willReturnOnConsecutiveCalls(
- 'Certainly not a JSON string',
- 'Certainly not a JSON string',
- 'Certainly not a JSON string',
- 'Certainly not a JSON string',
- '{"installed":true,"maintenance":false,"version":"8.1.0.8","versionstring":"8.1.0","edition":""}'
- );
- $this->clientService
- ->expects($this->exactly(5))
- ->method('newClient')
- ->willReturn($client);
-
- $this->assertEquals(new DataResponse('http'), $this->getExternalShareController()->testRemote('nextcloud.com'));
- }
-
- public function testRemoteWithInvalidRemote() {
- $client = $this->createMock(IClient::class);
- $response = $this->createMock(IResponse::class);
- $client
- ->expects($this->exactly(6))
- ->method('get')
- ->willReturn($response);
- $response
- ->expects($this->exactly(6))
- ->method('getBody')
- ->willReturn('Certainly not a JSON string');
- $this->clientService
- ->expects($this->exactly(6))
- ->method('newClient')
- ->willReturn($client);
-
- $this->assertEquals(new DataResponse(false), $this->getExternalShareController()->testRemote('nextcloud.com'));
- }
-
- public function dataRemoteWithInvalidRemoteURLs(): array {
- return [
- ['nextcloud.com?query'],
- ['nextcloud.com/#anchor'],
- ['nextcloud.com/;tomcat'],
- ];
- }
-
- /**
- * @dataProvider dataRemoteWithInvalidRemoteURLs
- * @param string $remote
- */
- public function testRemoteWithInvalidRemoteURLs(string $remote) {
- $this->clientService
- ->expects($this->never())
- ->method('newClient');
-
- $this->assertEquals(new DataResponse(false), $this->getExternalShareController()->testRemote($remote));
- }
}
diff --git a/apps/files_sharing/tests/Controller/PublicPreviewControllerTest.php b/apps/files_sharing/tests/Controller/PublicPreviewControllerTest.php
index 9f852721678..f49d839e8d4 100644
--- a/apps/files_sharing/tests/Controller/PublicPreviewControllerTest.php
+++ b/apps/files_sharing/tests/Controller/PublicPreviewControllerTest.php
@@ -1,26 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Tests\Controller;
@@ -37,6 +19,7 @@ use OCP\Files\SimpleFS\ISimpleFile;
use OCP\IPreview;
use OCP\IRequest;
use OCP\ISession;
+use OCP\Preview\IMimeIconProvider;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IManager;
use OCP\Share\IShare;
@@ -45,15 +28,12 @@ use Test\TestCase;
class PublicPreviewControllerTest extends TestCase {
- /** @var IPreview|\PHPUnit\Framework\MockObject\MockObject */
- private $previewManager;
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- private $shareManager;
- /** @var ITimeFactory|MockObject */
- private $timeFactory;
+ private IPreview&MockObject $previewManager;
+ private IManager&MockObject $shareManager;
+ private ITimeFactory&MockObject $timeFactory;
+ private IRequest&MockObject $request;
- /** @var PublicPreviewController */
- private $controller;
+ private PublicPreviewController $controller;
protected function setUp(): void {
parent::setUp();
@@ -61,6 +41,7 @@ class PublicPreviewControllerTest extends TestCase {
$this->previewManager = $this->createMock(IPreview::class);
$this->shareManager = $this->createMock(IManager::class);
$this->timeFactory = $this->createMock(ITimeFactory::class);
+ $this->request = $this->createMock(IRequest::class);
$this->timeFactory->method('getTime')
->willReturn(1337);
@@ -69,35 +50,36 @@ class PublicPreviewControllerTest extends TestCase {
$this->controller = new PublicPreviewController(
'files_sharing',
- $this->createMock(IRequest::class),
+ $this->request,
$this->shareManager,
$this->createMock(ISession::class),
- $this->previewManager
+ $this->previewManager,
+ $this->createMock(IMimeIconProvider::class),
);
}
- public function testInvalidToken() {
+ public function testInvalidToken(): void {
$res = $this->controller->getPreview('', 'file', 10, 10, '');
$expected = new DataResponse([], Http::STATUS_BAD_REQUEST);
$this->assertEquals($expected, $res);
}
- public function testInvalidWidth() {
+ public function testInvalidWidth(): void {
$res = $this->controller->getPreview('token', 'file', 0);
$expected = new DataResponse([], Http::STATUS_BAD_REQUEST);
$this->assertEquals($expected, $res);
}
- public function testInvalidHeight() {
+ public function testInvalidHeight(): void {
$res = $this->controller->getPreview('token', 'file', 10, 0);
$expected = new DataResponse([], Http::STATUS_BAD_REQUEST);
$this->assertEquals($expected, $res);
}
- public function testInvalidShare() {
+ public function testInvalidShare(): void {
$this->shareManager->method('getShareByToken')
->with($this->equalTo('token'))
->willThrowException(new ShareNotFound());
@@ -108,7 +90,7 @@ class PublicPreviewControllerTest extends TestCase {
$this->assertEquals($expected, $res);
}
- public function testShareNotAccessable() {
+ public function testShareNotAccessable(): void {
$share = $this->createMock(IShare::class);
$this->shareManager->method('getShareByToken')
->with($this->equalTo('token'))
@@ -123,6 +105,96 @@ class PublicPreviewControllerTest extends TestCase {
$this->assertEquals($expected, $res);
}
+ public function testShareNoDownload() {
+ $share = $this->createMock(IShare::class);
+ $this->shareManager->method('getShareByToken')
+ ->with($this->equalTo('token'))
+ ->willReturn($share);
+
+ $share->method('getPermissions')
+ ->willReturn(Constants::PERMISSION_READ);
+
+ $share->method('canSeeContent')
+ ->willReturn(false);
+
+ $res = $this->controller->getPreview('token', 'file', 10, 10);
+ $expected = new DataResponse([], Http::STATUS_FORBIDDEN);
+
+ $this->assertEquals($expected, $res);
+ }
+
+ public function testShareNoDownloadButPreviewHeader() {
+ $share = $this->createMock(IShare::class);
+ $this->shareManager->method('getShareByToken')
+ ->with($this->equalTo('token'))
+ ->willReturn($share);
+
+ $share->method('getPermissions')
+ ->willReturn(Constants::PERMISSION_READ);
+
+ $share->method('canSeeContent')
+ ->willReturn(false);
+
+ $this->request->method('getHeader')
+ ->with('x-nc-preview')
+ ->willReturn('true');
+
+ $file = $this->createMock(File::class);
+ $share->method('getNode')
+ ->willReturn($file);
+
+ $preview = $this->createMock(ISimpleFile::class);
+ $preview->method('getName')->willReturn('name');
+ $preview->method('getMTime')->willReturn(42);
+ $this->previewManager->method('getPreview')
+ ->with($this->equalTo($file), 10, 10, false)
+ ->willReturn($preview);
+
+ $preview->method('getMimeType')
+ ->willReturn('myMime');
+
+ $res = $this->controller->getPreview('token', 'file', 10, 10, true);
+ $expected = new FileDisplayResponse($preview, Http::STATUS_OK, ['Content-Type' => 'myMime']);
+ $expected->cacheFor(15 * 60);
+ $this->assertEquals($expected, $res);
+ }
+
+ public function testShareWithAttributes() {
+ $share = $this->createMock(IShare::class);
+ $this->shareManager->method('getShareByToken')
+ ->with($this->equalTo('token'))
+ ->willReturn($share);
+
+ $share->method('getPermissions')
+ ->willReturn(Constants::PERMISSION_READ);
+
+ $share->method('canSeeContent')
+ ->willReturn(true);
+
+ $this->request->method('getHeader')
+ ->with('x-nc-preview')
+ ->willReturn('true');
+
+ $file = $this->createMock(File::class);
+ $share->method('getNode')
+ ->willReturn($file);
+
+ $preview = $this->createMock(ISimpleFile::class);
+ $preview->method('getName')->willReturn('name');
+ $preview->method('getMTime')->willReturn(42);
+ $this->previewManager->method('getPreview')
+ ->with($this->equalTo($file), 10, 10, false)
+ ->willReturn($preview);
+
+ $preview->method('getMimeType')
+ ->willReturn('myMime');
+
+ $res = $this->controller->getPreview('token', 'file', 10, 10, true);
+ $expected = new FileDisplayResponse($preview, Http::STATUS_OK, ['Content-Type' => 'myMime']);
+ $expected->cacheFor(3600 * 24);
+ $this->assertEquals($expected, $res);
+ }
+
public function testPreviewFile() {
$share = $this->createMock(IShare::class);
$this->shareManager->method('getShareByToken')
@@ -136,6 +208,9 @@ class PublicPreviewControllerTest extends TestCase {
$share->method('getNode')
->willReturn($file);
+ $share->method('canSeeContent')
+ ->willReturn(true);
+
$preview = $this->createMock(ISimpleFile::class);
$preview->method('getName')->willReturn('name');
$preview->method('getMTime')->willReturn(42);
@@ -152,7 +227,7 @@ class PublicPreviewControllerTest extends TestCase {
$this->assertEquals($expected, $res);
}
- public function testPreviewFolderInvalidFile() {
+ public function testPreviewFolderInvalidFile(): void {
$share = $this->createMock(IShare::class);
$this->shareManager->method('getShareByToken')
->with($this->equalTo('token'))
@@ -165,6 +240,9 @@ class PublicPreviewControllerTest extends TestCase {
$share->method('getNode')
->willReturn($folder);
+ $share->method('canSeeContent')
+ ->willReturn(true);
+
$folder->method('get')
->with($this->equalTo('file'))
->willThrowException(new NotFoundException());
@@ -175,7 +253,7 @@ class PublicPreviewControllerTest extends TestCase {
}
- public function testPreviewFolderValidFile() {
+ public function testPreviewFolderValidFile(): void {
$share = $this->createMock(IShare::class);
$this->shareManager->method('getShareByToken')
->with($this->equalTo('token'))
@@ -188,6 +266,9 @@ class PublicPreviewControllerTest extends TestCase {
$share->method('getNode')
->willReturn($folder);
+ $share->method('canSeeContent')
+ ->willReturn(true);
+
$file = $this->createMock(File::class);
$folder->method('get')
->with($this->equalTo('file'))
diff --git a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
index b9b3e6fdecf..e6be0342c26 100644
--- a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
@@ -1,51 +1,29 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Calviño Sánchez <danxuliu@gmail.com>
- * @author Georg Ehrke <oc.list@georgehrke.com>
- * @author Joas Schilling <coding@schilljs.com>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Maxence Lange <maxence@artificial-owl.com>
- * @author Maxence Lange <maxence@nextcloud.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Richard Steinmetz <richard@steinmetz.cloud>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Valdnet <47037905+Valdnet@users.noreply.github.com>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests\Controller;
+use OCA\Federation\TrustedServers;
use OCA\Files_Sharing\Controller\ShareAPIController;
use OCP\App\IAppManager;
use OCP\AppFramework\Http\DataResponse;
+use OCP\AppFramework\OCS\OCSBadRequestException;
use OCP\AppFramework\OCS\OCSException;
+use OCP\AppFramework\OCS\OCSForbiddenException;
use OCP\AppFramework\OCS\OCSNotFoundException;
+use OCP\Constants;
use OCP\Files\File;
use OCP\Files\Folder;
use OCP\Files\IRootFolder;
use OCP\Files\Mount\IMountPoint;
+use OCP\Files\Mount\IShareOwnerlessMount;
use OCP\Files\NotFoundException;
-use OCP\Files\Storage;
+use OCP\Files\Storage\IStorage;
+use OCP\IAppConfig;
use OCP\IConfig;
use OCP\IDateTimeZone;
use OCP\IGroup;
@@ -53,15 +31,23 @@ use OCP\IGroupManager;
use OCP\IL10N;
use OCP\IPreview;
use OCP\IRequest;
+use OCP\ITagManager;
+use OCP\ITags;
use OCP\IURLGenerator;
use OCP\IUser;
use OCP\IUserManager;
+use OCP\Lock\ILockingProvider;
use OCP\Lock\LockedException;
+use OCP\Mail\IMailer;
+use OCP\Server;
use OCP\Share\Exceptions\GenericShareException;
+use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IAttributes as IShareAttributes;
use OCP\Share\IManager;
+use OCP\Share\IProviderFactory;
use OCP\Share\IShare;
use OCP\UserStatus\IManager as IUserStatusManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Container\ContainerInterface;
use Psr\Log\LoggerInterface;
use Test\TestCase;
@@ -75,22 +61,29 @@ use Test\TestCase;
class ShareAPIControllerTest extends TestCase {
private string $appName = 'files_sharing';
- private \OC\Share20\Manager|\PHPUnit\Framework\MockObject\MockObject $shareManager;
- private IGroupManager|\PHPUnit\Framework\MockObject\MockObject $groupManager;
- private IUserManager|\PHPUnit\Framework\MockObject\MockObject $userManager;
- private IRequest|\PHPUnit\Framework\MockObject\MockObject $request;
- private IRootFolder|\PHPUnit\Framework\MockObject\MockObject $rootFolder;
- private IURLGenerator|\PHPUnit\Framework\MockObject\MockObject $urlGenerator;
- private string|\PHPUnit\Framework\MockObject\MockObject $currentUser;
- private ShareAPIController $ocs;
- private IL10N|\PHPUnit\Framework\MockObject\MockObject $l;
- private IConfig|\PHPUnit\Framework\MockObject\MockObject $config;
- private IAppManager|\PHPUnit\Framework\MockObject\MockObject $appManager;
- private IServerContainer|\PHPUnit\Framework\MockObject\MockObject $serverContainer;
- private IUserStatusManager|\PHPUnit\Framework\MockObject\MockObject $userStatusManager;
- private IPreview|\PHPUnit\Framework\MockObject\MockObject $previewManager;
- private IDateTimeZone|\PHPUnit\Framework\MockObject\MockObject $dateTimeZone;
- private LoggerInterface $logger;
+ private string $currentUser;
+
+ private ShareAPIController $ocs;
+
+ private IManager&MockObject $shareManager;
+ private IGroupManager&MockObject $groupManager;
+ private IUserManager&MockObject $userManager;
+ private IRequest&MockObject $request;
+ private IRootFolder&MockObject $rootFolder;
+ private IURLGenerator&MockObject $urlGenerator;
+ private IL10N&MockObject $l;
+ private IConfig&MockObject $config;
+ private IAppConfig&MockObject $appConfig;
+ private IAppManager&MockObject $appManager;
+ private ContainerInterface&MockObject $serverContainer;
+ private IUserStatusManager&MockObject $userStatusManager;
+ private IPreview&MockObject $previewManager;
+ private IDateTimeZone&MockObject $dateTimeZone;
+ private LoggerInterface&MockObject $logger;
+ private IProviderFactory&MockObject $factory;
+ private IMailer&MockObject $mailer;
+ private ITagManager&MockObject $tagManager;
+ private TrustedServers&MockObject $trustedServers;
protected function setUp(): void {
$this->shareManager = $this->createMock(IManager::class);
@@ -114,6 +107,7 @@ class ShareAPIControllerTest extends TestCase {
return vsprintf($text, $parameters);
});
$this->config = $this->createMock(IConfig::class);
+ $this->appConfig = $this->createMock(IAppConfig::class);
$this->appManager = $this->createMock(IAppManager::class);
$this->serverContainer = $this->createMock(ContainerInterface::class);
$this->userStatusManager = $this->createMock(IUserStatusManager::class);
@@ -124,6 +118,10 @@ class ShareAPIControllerTest extends TestCase {
});
$this->dateTimeZone = $this->createMock(IDateTimeZone::class);
$this->logger = $this->createMock(LoggerInterface::class);
+ $this->factory = $this->createMock(IProviderFactory::class);
+ $this->mailer = $this->createMock(IMailer::class);
+ $this->tagManager = $this->createMock(ITagManager::class);
+ $this->trustedServers = $this->createMock(TrustedServers::class);
$this->ocs = new ShareAPIController(
$this->appName,
@@ -135,18 +133,24 @@ class ShareAPIControllerTest extends TestCase {
$this->urlGenerator,
$this->l,
$this->config,
+ $this->appConfig,
$this->appManager,
$this->serverContainer,
$this->userStatusManager,
$this->previewManager,
$this->dateTimeZone,
$this->logger,
- $this->currentUser,
+ $this->factory,
+ $this->mailer,
+ $this->tagManager,
+ $this->trustedServers,
+ $this->currentUser
);
+
}
/**
- * @return ShareAPIController|\PHPUnit\Framework\MockObject\MockObject
+ * @return ShareAPIController&MockObject
*/
private function mockFormatShare() {
return $this->getMockBuilder(ShareAPIController::class)
@@ -160,19 +164,24 @@ class ShareAPIControllerTest extends TestCase {
$this->urlGenerator,
$this->l,
$this->config,
+ $this->appConfig,
$this->appManager,
$this->serverContainer,
$this->userStatusManager,
$this->previewManager,
$this->dateTimeZone,
$this->logger,
+ $this->factory,
+ $this->mailer,
+ $this->tagManager,
+ $this->trustedServers,
$this->currentUser,
- ])->setMethods(['formatShare'])
+ ])->onlyMethods(['formatShare'])
->getMock();
}
private function newShare() {
- return \OC::$server->getShareManager()->newShare();
+ return Server::get(IManager::class)->newShare();
}
@@ -181,7 +190,7 @@ class ShareAPIControllerTest extends TestCase {
[
'scope' => 'permissions',
'key' => 'download',
- 'enabled' => true
+ 'value' => true
]
];
@@ -193,16 +202,16 @@ class ShareAPIControllerTest extends TestCase {
return [$shareAttributes, \json_encode($formattedShareAttributes)];
}
- public function testDeleteShareShareNotFound() {
- $this->expectException(\OCP\AppFramework\OCS\OCSNotFoundException::class);
+ public function testDeleteShareShareNotFound(): void {
+ $this->expectException(OCSNotFoundException::class);
$this->expectExceptionMessage('Wrong share ID, share does not exist');
$this->shareManager
->expects($this->exactly(7))
->method('getShareById')
- ->willReturnCallback(function ($id) {
+ ->willReturnCallback(function ($id): void {
if ($id === 'ocinternal:42' || $id === 'ocRoomShare:42' || $id === 'ocFederatedSharing:42' || $id === 'ocCircleShare:42' || $id === 'ocMailShare:42' || $id === 'deck:42' || $id === 'sciencemesh:42') {
- throw new \OCP\Share\Exceptions\ShareNotFound();
+ throw new ShareNotFound();
} else {
throw new \Exception();
}
@@ -213,7 +222,7 @@ class ShareAPIControllerTest extends TestCase {
$this->ocs->deleteShare(42);
}
- public function testDeleteShare() {
+ public function testDeleteShare(): void {
$node = $this->getMockBuilder(File::class)->getMock();
$share = $this->newShare();
@@ -231,7 +240,7 @@ class ShareAPIControllerTest extends TestCase {
$node->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$expected = new DataResponse();
$result = $this->ocs->deleteShare(42);
@@ -241,15 +250,25 @@ class ShareAPIControllerTest extends TestCase {
}
- public function testDeleteShareLocked() {
- $this->expectException(\OCP\AppFramework\OCS\OCSNotFoundException::class);
+ public function testDeleteShareLocked(): void {
+ $this->expectException(OCSNotFoundException::class);
$this->expectExceptionMessage('Could not delete share');
$node = $this->getMockBuilder(File::class)->getMock();
+ $node->method('getId')->willReturn(1);
$share = $this->newShare();
$share->setNode($node);
+ $userFolder = $this->getMockBuilder(Folder::class)->getMock();
+ $this->rootFolder->method('getUserFolder')
+ ->with($this->currentUser)
+ ->willReturn($userFolder);
+
+ $userFolder->method('getById')
+ ->with($share->getNodeId())
+ ->willReturn([$node]);
+
$this->shareManager
->expects($this->once())
->method('getShareById')
@@ -263,8 +282,8 @@ class ShareAPIControllerTest extends TestCase {
$node->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED)
- ->will($this->throwException(new LockedException('mypath')));
+ ->with(ILockingProvider::LOCK_SHARED)
+ ->willThrowException(new LockedException('mypath'));
$this->assertFalse($this->invokePrivate($this->ocs, 'canDeleteFromSelf', [$share]));
$this->assertFalse($this->invokePrivate($this->ocs, 'canDeleteShare', [$share]));
@@ -275,7 +294,7 @@ class ShareAPIControllerTest extends TestCase {
/**
* You can always remove a share that was shared with you
*/
- public function testDeleteShareWithMe() {
+ public function testDeleteShareWithMe(): void {
$node = $this->getMockBuilder(File::class)->getMock();
$share = $this->newShare();
@@ -296,7 +315,7 @@ class ShareAPIControllerTest extends TestCase {
$node->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->assertFalse($this->invokePrivate($this->ocs, 'canDeleteFromSelf', [$share]));
$this->assertTrue($this->invokePrivate($this->ocs, 'canDeleteShare', [$share]));
@@ -307,7 +326,7 @@ class ShareAPIControllerTest extends TestCase {
/**
* You can always delete a share you own
*/
- public function testDeleteShareOwner() {
+ public function testDeleteShareOwner(): void {
$node = $this->getMockBuilder(File::class)->getMock();
$share = $this->newShare();
@@ -327,7 +346,7 @@ class ShareAPIControllerTest extends TestCase {
$node->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->assertFalse($this->invokePrivate($this->ocs, 'canDeleteFromSelf', [$share]));
$this->assertTrue($this->invokePrivate($this->ocs, 'canDeleteShare', [$share]));
@@ -339,7 +358,7 @@ class ShareAPIControllerTest extends TestCase {
* You can always delete a share when you own
* the file path it belong to
*/
- public function testDeleteShareFileOwner() {
+ public function testDeleteShareFileOwner(): void {
$node = $this->getMockBuilder(File::class)->getMock();
$node->method('getId')->willReturn(1);
@@ -360,7 +379,7 @@ class ShareAPIControllerTest extends TestCase {
$node->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->assertFalse($this->invokePrivate($this->ocs, 'canDeleteFromSelf', [$share]));
$this->assertTrue($this->invokePrivate($this->ocs, 'canDeleteShare', [$share]));
@@ -372,7 +391,7 @@ class ShareAPIControllerTest extends TestCase {
* You can remove (the mountpoint, not the share)
* a share if you're in the group the share is shared with
*/
- public function testDeleteSharedWithMyGroup() {
+ public function testDeleteSharedWithMyGroup(): void {
$node = $this->getMockBuilder(File::class)->getMock();
$node->method('getId')->willReturn(1);
@@ -389,7 +408,7 @@ class ShareAPIControllerTest extends TestCase {
// canDeleteShareFromSelf
$user = $this->createMock(IUser::class);
- $group = $this->getMockBuilder('OCP\IGroup')->getMock();
+ $group = $this->getMockBuilder(IGroup::class)->getMock();
$this->groupManager
->method('get')
->with('group')
@@ -404,16 +423,16 @@ class ShareAPIControllerTest extends TestCase {
$node->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
- $userFolder = $this->getMockBuilder('OCP\Files\Folder')->getMock();
+ $userFolder = $this->getMockBuilder(Folder::class)->getMock();
$this->rootFolder->method('getUserFolder')
->with($this->currentUser)
->willReturn($userFolder);
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with($share->getNodeId())
- ->willReturn($share->getNode());
+ ->willReturn([$share->getNode()]);
$this->shareManager->expects($this->once())
->method('deleteFromSelf')
@@ -432,8 +451,8 @@ class ShareAPIControllerTest extends TestCase {
* You cannot remove a share if you're not
* in the group the share is shared with
*/
- public function testDeleteSharedWithGroupIDontBelongTo() {
- $this->expectException(\OCP\AppFramework\OCS\OCSNotFoundException::class);
+ public function testDeleteSharedWithGroupIDontBelongTo(): void {
+ $this->expectException(OCSNotFoundException::class);
$this->expectExceptionMessage('Wrong share ID, share does not exist');
$node = $this->getMockBuilder(File::class)->getMock();
@@ -452,7 +471,7 @@ class ShareAPIControllerTest extends TestCase {
// canDeleteShareFromSelf
$user = $this->createMock(IUser::class);
- $group = $this->getMockBuilder('OCP\IGroup')->getMock();
+ $group = $this->getMockBuilder(IGroup::class)->getMock();
$this->groupManager
->method('get')
->with('group')
@@ -467,16 +486,16 @@ class ShareAPIControllerTest extends TestCase {
$node->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
- $userFolder = $this->getMockBuilder('OCP\Files\Folder')->getMock();
+ $userFolder = $this->getMockBuilder(Folder::class)->getMock();
$this->rootFolder->method('getUserFolder')
->with($this->currentUser)
->willReturn($userFolder);
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with($share->getNodeId())
- ->willReturn($share->getNode());
+ ->willReturn([$share->getNode()]);
$this->shareManager->expects($this->never())
->method('deleteFromSelf');
@@ -490,6 +509,63 @@ class ShareAPIControllerTest extends TestCase {
$this->ocs->deleteShare(42);
}
+ public function testDeleteShareOwnerless(): void {
+ $ocs = $this->mockFormatShare();
+
+ $mount = $this->createMock(IShareOwnerlessMount::class);
+
+ $file = $this->createMock(File::class);
+ $file
+ ->expects($this->exactly(2))
+ ->method('getPermissions')
+ ->willReturn(Constants::PERMISSION_SHARE);
+ $file
+ ->expects($this->once())
+ ->method('getMountPoint')
+ ->willReturn($mount);
+
+ $userFolder = $this->createMock(Folder::class);
+ $userFolder->method('getById')
+ ->with(2)
+ ->willReturn([$file]);
+ $userFolder->method('getFirstNodeById')
+ ->with(2)
+ ->willReturn($file);
+
+ $this->rootFolder
+ ->method('getUserFolder')
+ ->with($this->currentUser)
+ ->willReturn($userFolder);
+
+ $share = $this->createMock(IShare::class);
+ $share
+ ->expects($this->once())
+ ->method('getNode')
+ ->willReturn($file);
+ $share
+ ->expects($this->exactly(2))
+ ->method('getNodeId')
+ ->willReturn(2);
+ $share
+ ->expects($this->exactly(2))
+ ->method('getPermissions')
+ ->willReturn(Constants::PERMISSION_SHARE);
+
+ $this->shareManager
+ ->expects($this->once())
+ ->method('getShareById')
+ ->with('ocinternal:1', $this->currentUser)
+ ->willReturn($share);
+
+ $this->shareManager
+ ->expects($this->once())
+ ->method('deleteShare')
+ ->with($share);
+
+ $result = $ocs->deleteShare(1);
+ $this->assertInstanceOf(DataResponse::class, $result);
+ }
+
/*
* FIXME: Enable once we have a federated Share Provider
@@ -528,10 +604,10 @@ class ShareAPIControllerTest extends TestCase {
$share->method('getToken')->willReturn($token);
$share->method('getPassword')->willReturn($password);
- if ($shareType === IShare::TYPE_USER ||
- $shareType === IShare::TYPE_GROUP ||
- $shareType === IShare::TYPE_LINK) {
- $share->method('getFullId')->willReturn('ocinternal:'.$id);
+ if ($shareType === IShare::TYPE_USER
+ || $shareType === IShare::TYPE_GROUP
+ || $shareType === IShare::TYPE_LINK) {
+ $share->method('getFullId')->willReturn('ocinternal:' . $id);
}
return $share;
@@ -545,14 +621,16 @@ class ShareAPIControllerTest extends TestCase {
->getMock();
$cache->method('getNumericStorageId')->willReturn(101);
- $storage = $this->getMockBuilder(Storage::class)
+ $storage = $this->getMockBuilder(IStorage::class)
->disableOriginalConstructor()
->getMock();
$storage->method('getId')->willReturn('STORAGE');
$storage->method('getCache')->willReturn($cache);
- $parentFolder = $this->getMockBuilder('OCP\Files\Folder')->getMock();
+ $parentFolder = $this->getMockBuilder(Folder::class)->getMock();
$parentFolder->method('getId')->willReturn(3);
+ $mountPoint = $this->createMock(IMountPoint::class);
+ $mountPoint->method('getMountType')->willReturn('');
$file = $this->getMockBuilder('OCP\Files\File')->getMock();
$file->method('getId')->willReturn(1);
@@ -562,8 +640,9 @@ class ShareAPIControllerTest extends TestCase {
$file->method('getSize')->willReturn(123465);
$file->method('getMTime')->willReturn(1234567890);
$file->method('getMimeType')->willReturn('myMimeType');
+ $file->method('getMountPoint')->willReturn($mountPoint);
- $folder = $this->getMockBuilder('OCP\Files\Folder')->getMock();
+ $folder = $this->getMockBuilder(Folder::class)->getMock();
$folder->method('getId')->willReturn(2);
$folder->method('getPath')->willReturn('folder');
$folder->method('getStorage')->willReturn($storage);
@@ -571,6 +650,7 @@ class ShareAPIControllerTest extends TestCase {
$folder->method('getSize')->willReturn(123465);
$folder->method('getMTime')->willReturn(1234567890);
$folder->method('getMimeType')->willReturn('myFolderMimeType');
+ $folder->method('getMountPoint')->willReturn($mountPoint);
[$shareAttributes, $shareAttributesReturnJson] = $this->mockShareAttributes();
@@ -626,6 +706,9 @@ class ShareAPIControllerTest extends TestCase {
'item_size' => 123465,
'item_mtime' => 1234567890,
'attributes' => null,
+ 'item_permissions' => 4,
+ 'is-mount-root' => false,
+ 'mount-type' => '',
];
$data[] = [$share, $expected];
@@ -680,6 +763,9 @@ class ShareAPIControllerTest extends TestCase {
'item_size' => 123465,
'item_mtime' => 1234567890,
'attributes' => null,
+ 'item_permissions' => 4,
+ 'is-mount-root' => false,
+ 'mount-type' => '',
];
$data[] = [$share, $expected];
@@ -740,38 +826,44 @@ class ShareAPIControllerTest extends TestCase {
'item_size' => 123465,
'item_mtime' => 1234567890,
'attributes' => null,
+ 'item_permissions' => 4,
+ 'is-mount-root' => false,
+ 'mount-type' => '',
];
$data[] = [$share, $expected];
return $data;
}
- /**
- * @dataProvider dataGetShare
- */
- public function testGetShare(\OCP\Share\IShare $share, array $result) {
- /** @var ShareAPIController|\PHPUnit\Framework\MockObject\MockObject $ocs */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetShare')]
+ public function testGetShare(IShare $share, array $result): void {
+ /** @var ShareAPIController&MockObject $ocs */
$ocs = $this->getMockBuilder(ShareAPIController::class)
- ->setConstructorArgs([
- $this->appName,
- $this->request,
- $this->shareManager,
- $this->groupManager,
- $this->userManager,
- $this->rootFolder,
- $this->urlGenerator,
- $this->l,
- $this->config,
- $this->appManager,
- $this->serverContainer,
- $this->userStatusManager,
- $this->previewManager,
- $this->dateTimeZone,
- $this->logger,
- $this->currentUser,
-
- ])->setMethods(['canAccessShare'])
- ->getMock();
+ ->setConstructorArgs([
+ $this->appName,
+ $this->request,
+ $this->shareManager,
+ $this->groupManager,
+ $this->userManager,
+ $this->rootFolder,
+ $this->urlGenerator,
+ $this->l,
+ $this->config,
+ $this->appConfig,
+ $this->appManager,
+ $this->serverContainer,
+ $this->userStatusManager,
+ $this->previewManager,
+ $this->dateTimeZone,
+ $this->logger,
+ $this->factory,
+ $this->mailer,
+ $this->tagManager,
+ $this->trustedServers,
+ $this->currentUser,
+ ])
+ ->onlyMethods(['canAccessShare'])
+ ->getMock();
$ocs->expects($this->any())
->method('canAccessShare')
@@ -783,7 +875,7 @@ class ShareAPIControllerTest extends TestCase {
->with($share->getFullId(), 'currentUser')
->willReturn($share);
- $userFolder = $this->getMockBuilder('OCP\Files\Folder')->getMock();
+ $userFolder = $this->getMockBuilder(Folder::class)->getMock();
$userFolder
->method('getRelativePath')
->willReturnArgument(0);
@@ -791,7 +883,6 @@ class ShareAPIControllerTest extends TestCase {
$userFolder->method('getById')
->with($share->getNodeId())
->willReturn([$share->getNode()]);
-
$userFolder->method('getFirstNodeById')
->with($share->getNodeId())
->willReturn($share->getNode());
@@ -817,7 +908,7 @@ class ShareAPIControllerTest extends TestCase {
$user->method('getDisplayName')->willReturn('userDisplay');
$user->method('getSystemEMailAddress')->willReturn('userId@example.com');
- $group = $this->getMockBuilder('OCP\IGroup')->getMock();
+ $group = $this->getMockBuilder(IGroup::class)->getMock();
$group->method('getGID')->willReturn('groupId');
$this->userManager->method('get')->willReturnMap([
@@ -830,17 +921,16 @@ class ShareAPIControllerTest extends TestCase {
]);
$this->dateTimeZone->method('getTimezone')->willReturn(new \DateTimeZone('UTC'));
- $d = $ocs->getShare($share->getId())->getData()[0];
-
- $this->assertEquals($result, $ocs->getShare($share->getId())->getData()[0]);
+ $data = $ocs->getShare($share->getId())->getData()[0];
+ $this->assertEquals($result, $data);
}
- public function testGetShareInvalidNode() {
- $this->expectException(\OCP\AppFramework\OCS\OCSNotFoundException::class);
+ public function testGetShareInvalidNode(): void {
+ $this->expectException(OCSNotFoundException::class);
$this->expectExceptionMessage('Wrong share ID, share does not exist');
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share->setSharedBy('initiator')
->setSharedWith('recipient')
->setShareOwner('owner');
@@ -851,7 +941,7 @@ class ShareAPIControllerTest extends TestCase {
->with('ocinternal:42', 'currentUser')
->willReturn($share);
- $userFolder = $this->getMockBuilder('OCP\Files\Folder')->getMock();
+ $userFolder = $this->getMockBuilder(Folder::class)->getMock();
$this->rootFolder->method('getUserFolder')
->with($this->currentUser)
->willReturn($userFolder);
@@ -871,12 +961,12 @@ class ShareAPIControllerTest extends TestCase {
$folder->method('getDirectoryListing')
->willReturn([$file1, $file2]);
- $file1UserShareOwner = \OC::$server->getShareManager()->newShare();
+ $file1UserShareOwner = Server::get(IManager::class)->newShare();
$file1UserShareOwner->setShareType(IShare::TYPE_USER)
->setSharedWith('recipient')
->setSharedBy('initiator')
->setShareOwner('currentUser')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($file1)
->setId(4);
@@ -885,12 +975,12 @@ class ShareAPIControllerTest extends TestCase {
'share_type' => IShare::TYPE_USER,
];
- $file1UserShareInitiator = \OC::$server->getShareManager()->newShare();
+ $file1UserShareInitiator = Server::get(IManager::class)->newShare();
$file1UserShareInitiator->setShareType(IShare::TYPE_USER)
->setSharedWith('recipient')
->setSharedBy('currentUser')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($file1)
->setId(8);
@@ -899,12 +989,12 @@ class ShareAPIControllerTest extends TestCase {
'share_type' => IShare::TYPE_USER,
];
- $file1UserShareRecipient = \OC::$server->getShareManager()->newShare();
+ $file1UserShareRecipient = Server::get(IManager::class)->newShare();
$file1UserShareRecipient->setShareType(IShare::TYPE_USER)
->setSharedWith('currentUser')
->setSharedBy('initiator')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($file1)
->setId(15);
@@ -913,12 +1003,12 @@ class ShareAPIControllerTest extends TestCase {
'share_type' => IShare::TYPE_USER,
];
- $file1UserShareOther = \OC::$server->getShareManager()->newShare();
+ $file1UserShareOther = Server::get(IManager::class)->newShare();
$file1UserShareOther->setShareType(IShare::TYPE_USER)
->setSharedWith('recipient')
->setSharedBy('initiator')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($file1)
->setId(16);
@@ -927,12 +1017,12 @@ class ShareAPIControllerTest extends TestCase {
'share_type' => IShare::TYPE_USER,
];
- $file1GroupShareOwner = \OC::$server->getShareManager()->newShare();
+ $file1GroupShareOwner = Server::get(IManager::class)->newShare();
$file1GroupShareOwner->setShareType(IShare::TYPE_GROUP)
->setSharedWith('recipient')
->setSharedBy('initiator')
->setShareOwner('currentUser')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($file1)
->setId(23);
@@ -941,12 +1031,12 @@ class ShareAPIControllerTest extends TestCase {
'share_type' => IShare::TYPE_GROUP,
];
- $file1GroupShareRecipient = \OC::$server->getShareManager()->newShare();
+ $file1GroupShareRecipient = Server::get(IManager::class)->newShare();
$file1GroupShareRecipient->setShareType(IShare::TYPE_GROUP)
->setSharedWith('currentUserGroup')
->setSharedBy('initiator')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($file1)
->setId(42);
@@ -955,21 +1045,21 @@ class ShareAPIControllerTest extends TestCase {
'share_type' => IShare::TYPE_GROUP,
];
- $file1GroupShareOther = \OC::$server->getShareManager()->newShare();
+ $file1GroupShareOther = Server::get(IManager::class)->newShare();
$file1GroupShareOther->setShareType(IShare::TYPE_GROUP)
->setSharedWith('recipient')
->setSharedBy('initiator')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($file1)
->setId(108);
- $file1LinkShareOwner = \OC::$server->getShareManager()->newShare();
+ $file1LinkShareOwner = Server::get(IManager::class)->newShare();
$file1LinkShareOwner->setShareType(IShare::TYPE_LINK)
->setSharedWith('recipient')
->setSharedBy('initiator')
->setShareOwner('currentUser')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($file1)
->setId(415);
@@ -978,12 +1068,12 @@ class ShareAPIControllerTest extends TestCase {
'share_type' => IShare::TYPE_LINK,
];
- $file1EmailShareOwner = \OC::$server->getShareManager()->newShare();
+ $file1EmailShareOwner = Server::get(IManager::class)->newShare();
$file1EmailShareOwner->setShareType(IShare::TYPE_EMAIL)
->setSharedWith('recipient')
->setSharedBy('initiator')
->setShareOwner('currentUser')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($file1)
->setId(416);
@@ -992,12 +1082,12 @@ class ShareAPIControllerTest extends TestCase {
'share_type' => IShare::TYPE_EMAIL,
];
- $file1CircleShareOwner = \OC::$server->getShareManager()->newShare();
+ $file1CircleShareOwner = Server::get(IManager::class)->newShare();
$file1CircleShareOwner->setShareType(IShare::TYPE_CIRCLE)
->setSharedWith('recipient')
->setSharedBy('initiator')
->setShareOwner('currentUser')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($file1)
->setId(423);
@@ -1006,12 +1096,12 @@ class ShareAPIControllerTest extends TestCase {
'share_type' => IShare::TYPE_CIRCLE,
];
- $file1RoomShareOwner = \OC::$server->getShareManager()->newShare();
+ $file1RoomShareOwner = Server::get(IManager::class)->newShare();
$file1RoomShareOwner->setShareType(IShare::TYPE_ROOM)
->setSharedWith('recipient')
->setSharedBy('initiator')
->setShareOwner('currentUser')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($file1)
->setId(442);
@@ -1020,12 +1110,12 @@ class ShareAPIControllerTest extends TestCase {
'share_type' => IShare::TYPE_ROOM,
];
- $file1RemoteShareOwner = \OC::$server->getShareManager()->newShare();
+ $file1RemoteShareOwner = Server::get(IManager::class)->newShare();
$file1RemoteShareOwner->setShareType(IShare::TYPE_REMOTE)
->setSharedWith('recipient')
->setSharedBy('initiator')
->setShareOwner('currentUser')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setExpirationDate(new \DateTime('2000-01-01T01:02:03'))
->setNode($file1)
->setId(815);
@@ -1035,12 +1125,12 @@ class ShareAPIControllerTest extends TestCase {
'share_type' => IShare::TYPE_REMOTE,
];
- $file1RemoteGroupShareOwner = \OC::$server->getShareManager()->newShare();
+ $file1RemoteGroupShareOwner = Server::get(IManager::class)->newShare();
$file1RemoteGroupShareOwner->setShareType(IShare::TYPE_REMOTE_GROUP)
->setSharedWith('recipient')
->setSharedBy('initiator')
->setShareOwner('currentUser')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setExpirationDate(new \DateTime('2000-01-02T01:02:03'))
->setNode($file1)
->setId(816);
@@ -1050,12 +1140,12 @@ class ShareAPIControllerTest extends TestCase {
'share_type' => IShare::TYPE_REMOTE_GROUP,
];
- $file2UserShareOwner = \OC::$server->getShareManager()->newShare();
+ $file2UserShareOwner = Server::get(IManager::class)->newShare();
$file2UserShareOwner->setShareType(IShare::TYPE_USER)
->setSharedWith('recipient')
->setSharedBy('initiator')
->setShareOwner('currentUser')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($file2)
->setId(823);
@@ -1378,11 +1468,9 @@ class ShareAPIControllerTest extends TestCase {
return $data;
}
- /**
- * @dataProvider dataGetShares
- */
- public function testGetShares(array $getSharesParameters, array $shares, array $extraShareTypes, array $expected) {
- /** @var \OCA\Files_Sharing\Controller\ShareAPIController $ocs */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetShares')]
+ public function testGetShares(array $getSharesParameters, array $shares, array $extraShareTypes, array $expected): void {
+ /** @var ShareAPIController&MockObject $ocs */
$ocs = $this->getMockBuilder(ShareAPIController::class)
->setConstructorArgs([
$this->appName,
@@ -1394,14 +1482,20 @@ class ShareAPIControllerTest extends TestCase {
$this->urlGenerator,
$this->l,
$this->config,
+ $this->appConfig,
$this->appManager,
$this->serverContainer,
$this->userStatusManager,
$this->previewManager,
$this->dateTimeZone,
$this->logger,
+ $this->factory,
+ $this->mailer,
+ $this->tagManager,
+ $this->trustedServers,
$this->currentUser,
- ])->setMethods(['formatShare'])
+ ])
+ ->onlyMethods(['formatShare'])
->getMock();
$ocs->method('formatShare')
@@ -1414,7 +1508,7 @@ class ShareAPIControllerTest extends TestCase {
}
);
- $userFolder = $this->getMockBuilder('OCP\Files\Folder')->getMock();
+ $userFolder = $this->getMockBuilder(Folder::class)->getMock();
$userFolder->method('get')
->with('path')
->willReturn($getSharesParameters['path']);
@@ -1460,81 +1554,125 @@ class ShareAPIControllerTest extends TestCase {
$this->assertEquals($expected, $result->getData());
}
- public function testCanAccessShare() {
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ public function testCanAccessShareAsOwner(): void {
+ $share = $this->createMock(IShare::class);
$share->method('getShareOwner')->willReturn($this->currentUser);
$this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ }
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ public function testCanAccessShareAsSharer(): void {
+ $share = $this->createMock(IShare::class);
$share->method('getSharedBy')->willReturn($this->currentUser);
$this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ }
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ public function testCanAccessShareAsSharee(): void {
+ $share = $this->createMock(IShare::class);
$share->method('getShareType')->willReturn(IShare::TYPE_USER);
$share->method('getSharedWith')->willReturn($this->currentUser);
$this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ }
- $file = $this->getMockBuilder(File::class)->getMock();
+ public function testCannotAccessLinkShare(): void {
+ $share = $this->createMock(IShare::class);
+ $share->method('getShareType')->willReturn(IShare::TYPE_LINK);
+ $share->method('getNodeId')->willReturn(42);
- $userFolder = $this->getMockBuilder('OCP\Files\Folder')->getMock();
+ $userFolder = $this->createMock(Folder::class);
$this->rootFolder->method('getUserFolder')
->with($this->currentUser)
->willReturn($userFolder);
+ $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ }
+
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataCanAccessShareWithPermissions')]
+ public function testCanAccessShareWithPermissions(int $permissions, bool $expected): void {
+ $share = $this->createMock(IShare::class);
+ $share->method('getShareType')->willReturn(IShare::TYPE_USER);
+ $share->method('getSharedWith')->willReturn($this->createMock(IUser::class));
+ $share->method('getNodeId')->willReturn(42);
+
+ $file = $this->createMock(File::class);
+
+ $userFolder = $this->getMockBuilder(Folder::class)->getMock();
$userFolder->method('getFirstNodeById')
->with($share->getNodeId())
->willReturn($file);
+ $userFolder->method('getById')
+ ->with($share->getNodeId())
+ ->willReturn([$file]);
+ $this->rootFolder->method('getUserFolder')
+ ->with($this->currentUser)
+ ->willReturn($userFolder);
$file->method('getPermissions')
- ->will($this->onConsecutiveCalls(\OCP\Constants::PERMISSION_SHARE, \OCP\Constants::PERMISSION_READ));
+ ->willReturn($permissions);
- // getPermissions -> share
- $share = $this->getMockBuilder(IShare::class)->getMock();
- $share->method('getShareType')->willReturn(IShare::TYPE_USER);
- $share->method('getSharedWith')->willReturn($this->getMockBuilder(IUser::class)->getMock());
- $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ if ($expected) {
+ $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ } else {
+ $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ }
+ }
- // getPermissions -> read
- $share = $this->getMockBuilder(IShare::class)->getMock();
- $share->method('getShareType')->willReturn(IShare::TYPE_USER);
- $share->method('getSharedWith')->willReturn($this->getMockBuilder(IUser::class)->getMock());
- $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ public static function dataCanAccessShareWithPermissions(): array {
+ return [
+ [Constants::PERMISSION_SHARE, true],
+ [Constants::PERMISSION_READ, false],
+ [Constants::PERMISSION_READ | Constants::PERMISSION_SHARE, true],
+ ];
+ }
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataCanAccessShareAsGroupMember')]
+ public function testCanAccessShareAsGroupMember(string $group, bool $expected): void {
+ $share = $this->createMock(IShare::class);
$share->method('getShareType')->willReturn(IShare::TYPE_GROUP);
- $share->method('getSharedWith')->willReturn('group');
+ $share->method('getSharedWith')->willReturn($group);
+ $share->method('getNodeId')->willReturn(42);
+
+ $file = $this->createMock(File::class);
+
+ $userFolder = $this->createMock(Folder::class);
+ $userFolder->method('getFirstNodeById')
+ ->with($share->getNodeId())
+ ->willReturn($file);
+ $userFolder->method('getById')
+ ->with($share->getNodeId())
+ ->willReturn([$file]);
+ $this->rootFolder->method('getUserFolder')
+ ->with($this->currentUser)
+ ->willReturn($userFolder);
$user = $this->createMock(IUser::class);
$this->userManager->method('get')
->with($this->currentUser)
->willReturn($user);
- $group = $this->getMockBuilder('OCP\IGroup')->getMock();
+ $group = $this->createMock(IGroup::class);
$group->method('inGroup')->with($user)->willReturn(true);
- $group2 = $this->getMockBuilder('OCP\IGroup')->getMock();
+ $group2 = $this->createMock(IGroup::class);
$group2->method('inGroup')->with($user)->willReturn(false);
$this->groupManager->method('get')->willReturnMap([
['group', $group],
['group2', $group2],
- ['groupnull', null],
+ ['group-null', null],
]);
- $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
-
- $share = $this->createMock(IShare::class);
- $share->method('getShareType')->willReturn(IShare::TYPE_GROUP);
- $share->method('getSharedWith')->willReturn('group2');
- $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
- // null group
- $share = $this->createMock(IShare::class);
- $share->method('getShareType')->willReturn(IShare::TYPE_GROUP);
- $share->method('getSharedWith')->willReturn('groupnull');
- $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ if ($expected) {
+ $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ } else {
+ $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ }
+ }
- $share = $this->createMock(IShare::class);
- $share->method('getShareType')->willReturn(IShare::TYPE_LINK);
- $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ public static function dataCanAccessShareAsGroupMember(): array {
+ return [
+ ['group', true],
+ ['group2', false],
+ ['group-null', false],
+ ];
}
public function dataCanAccessRoomShare() {
@@ -1564,22 +1702,22 @@ class ShareAPIControllerTest extends TestCase {
}
/**
- * @dataProvider dataCanAccessRoomShare
*
* @param bool $expects
- * @param \OCP\Share\IShare $share
+ * @param IShare $share
* @param bool helperAvailable
* @param bool canAccessShareByHelper
*/
- public function testCanAccessRoomShare(bool $expected, \OCP\Share\IShare $share, bool $helperAvailable, bool $canAccessShareByHelper) {
- $userFolder = $this->getMockBuilder('OCP\Files\Folder')->getMock();
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataCanAccessRoomShare')]
+ public function testCanAccessRoomShare(bool $expected, IShare $share, bool $helperAvailable, bool $canAccessShareByHelper): void {
+ $userFolder = $this->getMockBuilder(Folder::class)->getMock();
$this->rootFolder->method('getUserFolder')
->with($this->currentUser)
->willReturn($userFolder);
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with($share->getNodeId())
- ->willReturn($share->getNode());
+ ->willReturn([$share->getNode()]);
if (!$helperAvailable) {
$this->appManager->method('isEnabledForUser')
@@ -1590,8 +1728,11 @@ class ShareAPIControllerTest extends TestCase {
->with('spreed')
->willReturn(true);
- $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
- ->setMethods(['canAccessShare'])
+ // This is not possible anymore with PHPUnit 10+
+ // as `setMethods` was removed and now real reflection is used, thus the class needs to exist.
+ // $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
+ $helper = $this->getMockBuilder(\stdClass::class)
+ ->addMethods(['canAccessShare'])
->getMock();
$helper->method('canAccessShare')
->with($share, $this->currentUser)
@@ -1606,16 +1747,16 @@ class ShareAPIControllerTest extends TestCase {
}
- public function testCreateShareNoPath() {
- $this->expectException(\OCP\AppFramework\OCS\OCSNotFoundException::class);
+ public function testCreateShareNoPath(): void {
+ $this->expectException(OCSNotFoundException::class);
$this->expectExceptionMessage('Please specify a file or folder path');
$this->ocs->createShare();
}
- public function testCreateShareInvalidPath() {
- $this->expectException(\OCP\AppFramework\OCS\OCSNotFoundException::class);
+ public function testCreateShareInvalidPath(): void {
+ $this->expectException(OCSNotFoundException::class);
$this->expectExceptionMessage('Wrong path, file/folder does not exist');
$userFolder = $this->getMockBuilder(Folder::class)->getMock();
@@ -1627,51 +1768,47 @@ class ShareAPIControllerTest extends TestCase {
$userFolder->expects($this->once())
->method('get')
->with('invalid-path')
- ->will($this->throwException(new \OCP\Files\NotFoundException()));
+ ->willThrowException(new NotFoundException());
$this->ocs->createShare('invalid-path');
}
-
- public function testCreateShareInvalidPermissions() {
- $this->expectException(\OCP\AppFramework\OCS\OCSNotFoundException::class);
- $this->expectExceptionMessage('Invalid permissions');
+ public function testCreateShareInvalidShareType(): void {
+ $this->expectException(OCSBadRequestException::class);
+ $this->expectExceptionMessage('Unknown share type');
$share = $this->newShare();
$this->shareManager->method('newShare')->willReturn($share);
- $userFolder = $this->getMockBuilder(Folder::class)->getMock();
- $this->rootFolder->expects($this->once())
- ->method('getUserFolder')
- ->with('currentUser')
- ->willReturn($userFolder);
+ [$userFolder, $file] = $this->getNonSharedUserFile();
+ $this->rootFolder->expects($this->atLeastOnce())
+ ->method('getUserFolder')
+ ->with('currentUser')
+ ->willReturn($userFolder);
- $path = $this->getMockBuilder(File::class)->getMock();
- $userFolder->expects($this->once())
- ->method('get')
- ->with('valid-path')
- ->willReturn($path);
+ $userFolder->expects($this->atLeastOnce())
+ ->method('get')
+ ->with('valid-path')
+ ->willReturn($file);
$userFolder->method('getById')
->willReturn([]);
- $path->expects($this->once())
+ $file->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
- $this->ocs->createShare('valid-path', 32);
+ $this->ocs->createShare('valid-path', 31);
}
-
- public function testCreateShareUserNoShareWith() {
- $this->expectException(\OCP\AppFramework\OCS\OCSNotFoundException::class);
+ public function testCreateShareUserNoShareWith(): void {
+ $this->expectException(OCSNotFoundException::class);
$this->expectExceptionMessage('Please specify a valid account to share with');
$share = $this->newShare();
$this->shareManager->method('newShare')->willReturn($share);
[$userFolder, $path] = $this->getNonSharedUserFile();
- $this->rootFolder->expects($this->exactly(2))
- ->method('getUserFolder')
+ $this->rootFolder->method('getUserFolder')
->with('currentUser')
->willReturn($userFolder);
@@ -1684,22 +1821,21 @@ class ShareAPIControllerTest extends TestCase {
$path->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
- $this->ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_USER);
+ $this->ocs->createShare('valid-path', Constants::PERMISSION_ALL, IShare::TYPE_USER);
}
- public function testCreateShareUserNoValidShareWith() {
- $this->expectException(\OCP\AppFramework\OCS\OCSNotFoundException::class);
+ public function testCreateShareUserNoValidShareWith(): void {
+ $this->expectException(OCSNotFoundException::class);
$this->expectExceptionMessage('Please specify a valid account to share with');
$share = $this->newShare();
$this->shareManager->method('newShare')->willReturn($share);
[$userFolder, $path] = $this->getNonSharedUserFile();
- $this->rootFolder->expects($this->exactly(2))
- ->method('getUserFolder')
+ $this->rootFolder->method('getUserFolder')
->with('currentUser')
->willReturn($userFolder);
@@ -1711,19 +1847,19 @@ class ShareAPIControllerTest extends TestCase {
->willReturn([]);
$path->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->userManager->method('userExists')
->with('invalidUser')
->willReturn(false);
- $this->ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_USER, 'invalidUser');
+ $this->ocs->createShare('valid-path', Constants::PERMISSION_ALL, IShare::TYPE_USER, 'invalidUser');
}
- public function testCreateShareUser() {
+ public function testCreateShareUser(): void {
$share = $this->newShare();
$this->shareManager->method('newShare')->willReturn($share);
- /** @var \OCA\Files_Sharing\Controller\ShareAPIController $ocs */
+ /** @var ShareAPIController $ocs */
$ocs = $this->getMockBuilder(ShareAPIController::class)
->setConstructorArgs([
$this->appName,
@@ -1735,26 +1871,31 @@ class ShareAPIControllerTest extends TestCase {
$this->urlGenerator,
$this->l,
$this->config,
+ $this->appConfig,
$this->appManager,
$this->serverContainer,
$this->userStatusManager,
$this->previewManager,
$this->dateTimeZone,
$this->logger,
+ $this->factory,
+ $this->mailer,
+ $this->tagManager,
+ $this->trustedServers,
$this->currentUser,
- ])->setMethods(['formatShare'])
+ ])->onlyMethods(['formatShare'])
->getMock();
[$userFolder, $path] = $this->getNonSharedUserFile();
$this->rootFolder->expects($this->exactly(2))
- ->method('getUserFolder')
- ->with('currentUser')
- ->willReturn($userFolder);
+ ->method('getUserFolder')
+ ->with('currentUser')
+ ->willReturn($userFolder);
$userFolder->expects($this->once())
- ->method('get')
- ->with('valid-path')
- ->willReturn($path);
+ ->method('get')
+ ->with('valid-path')
+ ->willReturn($path);
$userFolder->method('getById')
->willReturn([]);
@@ -1762,32 +1903,32 @@ class ShareAPIControllerTest extends TestCase {
$path->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->shareManager->method('createShare')
- ->with($this->callback(function (\OCP\Share\IShare $share) use ($path) {
- return $share->getNode() === $path &&
- $share->getPermissions() === (
- \OCP\Constants::PERMISSION_ALL &
- ~\OCP\Constants::PERMISSION_DELETE &
- ~\OCP\Constants::PERMISSION_CREATE
- ) &&
- $share->getShareType() === IShare::TYPE_USER &&
- $share->getSharedWith() === 'validUser' &&
- $share->getSharedBy() === 'currentUser';
+ ->with($this->callback(function (IShare $share) use ($path) {
+ return $share->getNode() === $path
+ && $share->getPermissions() === (
+ Constants::PERMISSION_ALL
+ & ~Constants::PERMISSION_DELETE
+ & ~Constants::PERMISSION_CREATE
+ )
+ && $share->getShareType() === IShare::TYPE_USER
+ && $share->getSharedWith() === 'validUser'
+ && $share->getSharedBy() === 'currentUser';
}))
->willReturnArgument(0);
$expected = new DataResponse([]);
- $result = $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_USER, 'validUser');
+ $result = $ocs->createShare('valid-path', Constants::PERMISSION_ALL, IShare::TYPE_USER, 'validUser');
$this->assertInstanceOf(get_class($expected), $result);
$this->assertEquals($expected->getData(), $result->getData());
}
- public function testCreateShareGroupNoValidShareWith() {
- $this->expectException(\OCP\AppFramework\OCS\OCSNotFoundException::class);
+ public function testCreateShareGroupNoValidShareWith(): void {
+ $this->expectException(OCSNotFoundException::class);
$this->expectExceptionMessage('Please specify a valid group');
$share = $this->newShare();
@@ -1796,30 +1937,29 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->method('allowGroupSharing')->willReturn(true);
[$userFolder, $path] = $this->getNonSharedUserFile();
- $this->rootFolder->expects($this->exactly(2))
- ->method('getUserFolder')
- ->with('currentUser')
- ->willReturn($userFolder);
+ $this->rootFolder->method('getUserFolder')
+ ->with('currentUser')
+ ->willReturn($userFolder);
$userFolder->expects($this->once())
- ->method('get')
- ->with('valid-path')
- ->willReturn($path);
+ ->method('get')
+ ->with('valid-path')
+ ->willReturn($path);
$userFolder->method('getById')
->willReturn([]);
$path->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
- $this->ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_GROUP, 'invalidGroup');
+ $this->ocs->createShare('valid-path', Constants::PERMISSION_ALL, IShare::TYPE_GROUP, 'invalidGroup');
}
- public function testCreateShareGroup() {
+ public function testCreateShareGroup(): void {
$share = $this->newShare();
$this->shareManager->method('newShare')->willReturn($share);
- /** @var ShareAPIController|\PHPUnit\Framework\MockObject\MockObject $ocs */
+ /** @var ShareAPIController&MockObject $ocs */
$ocs = $this->getMockBuilder(ShareAPIController::class)
->setConstructorArgs([
$this->appName,
@@ -1831,21 +1971,26 @@ class ShareAPIControllerTest extends TestCase {
$this->urlGenerator,
$this->l,
$this->config,
+ $this->appConfig,
$this->appManager,
$this->serverContainer,
$this->userStatusManager,
$this->previewManager,
$this->dateTimeZone,
$this->logger,
+ $this->factory,
+ $this->mailer,
+ $this->tagManager,
+ $this->trustedServers,
$this->currentUser,
- ])->setMethods(['formatShare'])
+ ])->onlyMethods(['formatShare'])
->getMock();
$this->request
->method('getParam')
->willReturnMap([
['path', null, 'valid-path'],
- ['permissions', null, \OCP\Constants::PERMISSION_ALL],
+ ['permissions', null, Constants::PERMISSION_ALL],
['shareType', '-1', IShare::TYPE_GROUP],
['shareWith', null, 'validGroup'],
]);
@@ -1871,36 +2016,35 @@ class ShareAPIControllerTest extends TestCase {
$path->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->shareManager->method('createShare')
- ->with($this->callback(function (\OCP\Share\IShare $share) use ($path) {
- return $share->getNode() === $path &&
- $share->getPermissions() === \OCP\Constants::PERMISSION_ALL &&
- $share->getShareType() === IShare::TYPE_GROUP &&
- $share->getSharedWith() === 'validGroup' &&
- $share->getSharedBy() === 'currentUser';
+ ->with($this->callback(function (IShare $share) use ($path) {
+ return $share->getNode() === $path
+ && $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getShareType() === IShare::TYPE_GROUP
+ && $share->getSharedWith() === 'validGroup'
+ && $share->getSharedBy() === 'currentUser';
}))
->willReturnArgument(0);
$expected = new DataResponse([]);
- $result = $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_GROUP, 'validGroup');
+ $result = $ocs->createShare('valid-path', Constants::PERMISSION_ALL, IShare::TYPE_GROUP, 'validGroup');
$this->assertInstanceOf(get_class($expected), $result);
$this->assertEquals($expected->getData(), $result->getData());
}
- public function testCreateShareGroupNotAllowed() {
- $this->expectException(\OCP\AppFramework\OCS\OCSNotFoundException::class);
+ public function testCreateShareGroupNotAllowed(): void {
+ $this->expectException(OCSNotFoundException::class);
$this->expectExceptionMessage('Group sharing is disabled by the administrator');
$share = $this->newShare();
$this->shareManager->method('newShare')->willReturn($share);
[$userFolder, $path] = $this->getNonSharedUserFolder();
- $this->rootFolder->expects($this->exactly(2))
- ->method('getUserFolder')
+ $this->rootFolder->method('getUserFolder')
->with('currentUser')
->willReturn($userFolder);
@@ -1917,12 +2061,12 @@ class ShareAPIControllerTest extends TestCase {
->method('allowGroupSharing')
->willReturn(false);
- $this->ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_GROUP, 'invalidGroup');
+ $this->ocs->createShare('valid-path', Constants::PERMISSION_ALL, IShare::TYPE_GROUP, 'invalidGroup');
}
- public function testCreateShareLinkNoLinksAllowed() {
- $this->expectException(\OCP\AppFramework\OCS\OCSNotFoundException::class);
+ public function testCreateShareLinkNoLinksAllowed(): void {
+ $this->expectException(OCSNotFoundException::class);
$this->expectExceptionMessage('Public link sharing is disabled by the administrator');
$this->request
@@ -1934,7 +2078,7 @@ class ShareAPIControllerTest extends TestCase {
$path = $this->getMockBuilder(Folder::class)->getMock();
$path->method('getId')->willReturn(42);
- $storage = $this->createMock(Storage::class);
+ $storage = $this->createMock(IStorage::class);
$storage->method('instanceOfStorage')
->willReturnMap([
['OCA\Files_Sharing\External\Storage', false],
@@ -1946,19 +2090,21 @@ class ShareAPIControllerTest extends TestCase {
$this->rootFolder->method('getById')
->willReturn([]);
- $this->shareManager->method('newShare')->willReturn(\OC::$server->getShareManager()->newShare());
+ $this->shareManager->method('newShare')->willReturn(Server::get(IManager::class)->newShare());
+ $this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true);
+ $this->shareManager->method('shareApiAllowLinks')->willReturn(false);
- $this->ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK);
+ $this->ocs->createShare('valid-path', Constants::PERMISSION_ALL, IShare::TYPE_LINK);
}
- public function testCreateShareLinkNoPublicUpload() {
- $this->expectException(\OCP\AppFramework\OCS\OCSForbiddenException::class);
+ public function testCreateShareLinkNoPublicUpload(): void {
+ $this->expectException(OCSForbiddenException::class);
$this->expectExceptionMessage('Public upload disabled by the administrator');
$path = $this->getMockBuilder(Folder::class)->getMock();
$path->method('getId')->willReturn(42);
- $storage = $this->createMock(Storage::class);
+ $storage = $this->createMock(IStorage::class);
$storage->method('instanceOfStorage')
->willReturnMap([
['OCA\Files_Sharing\External\Storage', false],
@@ -1970,44 +2116,46 @@ class ShareAPIControllerTest extends TestCase {
$this->rootFolder->method('getById')
->willReturn([]);
- $this->shareManager->method('newShare')->willReturn(\OC::$server->getShareManager()->newShare());
+ $this->shareManager->method('newShare')->willReturn(Server::get(IManager::class)->newShare());
$this->shareManager->method('shareApiAllowLinks')->willReturn(true);
- $this->ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'true');
+ $this->ocs->createShare('valid-path', Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'true');
}
- public function testCreateShareLinkPublicUploadFile() {
- $this->expectException(\OCP\AppFramework\OCS\OCSNotFoundException::class);
+ public function testCreateShareLinkPublicUploadFile(): void {
+ $this->expectException(OCSBadRequestException::class);
$this->expectExceptionMessage('Public upload is only possible for publicly shared folders');
- $path = $this->getMockBuilder(File::class)->getMock();
- $path->method('getId')->willReturn(42);
- $storage = $this->createMock(Storage::class);
+ $storage = $this->createMock(IStorage::class);
$storage->method('instanceOfStorage')
->willReturnMap([
['OCA\Files_Sharing\External\Storage', false],
['OCA\Files_Sharing\SharedStorage', false],
]);
- $path->method('getStorage')->willReturn($storage);
+
+ $file = $this->createMock(File::class);
+ $file->method('getId')->willReturn(42);
+ $file->method('getStorage')->willReturn($storage);
+
$this->rootFolder->method('getUserFolder')->with($this->currentUser)->willReturnSelf();
- $this->rootFolder->method('get')->with('valid-path')->willReturn($path);
+ $this->rootFolder->method('get')->with('valid-path')->willReturn($file);
$this->rootFolder->method('getById')
->willReturn([]);
- $this->shareManager->method('newShare')->willReturn(\OC::$server->getShareManager()->newShare());
+ $this->shareManager->method('newShare')->willReturn(Server::get(IManager::class)->newShare());
$this->shareManager->method('shareApiAllowLinks')->willReturn(true);
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true);
- $this->ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'true');
+ $this->ocs->createShare('valid-path', Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'true');
}
- public function testCreateShareLinkPublicUploadFolder() {
+ public function testCreateShareLinkPublicUploadFolder(): void {
$ocs = $this->mockFormatShare();
$path = $this->getMockBuilder(Folder::class)->getMock();
$path->method('getId')->willReturn(1);
- $storage = $this->createMock(Storage::class);
+ $storage = $this->createMock(IStorage::class);
$storage->method('instanceOfStorage')
->willReturnMap([
['OCA\Files_Sharing\External\Storage', false],
@@ -2019,34 +2167,34 @@ class ShareAPIControllerTest extends TestCase {
$this->rootFolder->method('getById')
->willReturn([]);
- $this->shareManager->method('newShare')->willReturn(\OC::$server->getShareManager()->newShare());
+ $this->shareManager->method('newShare')->willReturn(Server::get(IManager::class)->newShare());
$this->shareManager->method('shareApiAllowLinks')->willReturn(true);
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true);
$this->shareManager->expects($this->once())->method('createShare')->with(
- $this->callback(function (\OCP\Share\IShare $share) use ($path) {
- return $share->getNode() === $path &&
- $share->getShareType() === IShare::TYPE_LINK &&
- $share->getPermissions() === (\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE) &&
- $share->getSharedBy() === 'currentUser' &&
- $share->getPassword() === null &&
- $share->getExpirationDate() === null;
+ $this->callback(function (IShare $share) use ($path) {
+ return $share->getNode() === $path
+ && $share->getShareType() === IShare::TYPE_LINK
+ && $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE)
+ && $share->getSharedBy() === 'currentUser'
+ && $share->getPassword() === null
+ && $share->getExpirationDate() === null;
})
)->willReturnArgument(0);
$expected = new DataResponse([]);
- $result = $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'true', '', null, '');
+ $result = $ocs->createShare('valid-path', Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'true', '', null, '');
$this->assertInstanceOf(get_class($expected), $result);
$this->assertEquals($expected->getData(), $result->getData());
}
- public function testCreateShareLinkPassword() {
+ public function testCreateShareLinkPassword(): void {
$ocs = $this->mockFormatShare();
$path = $this->getMockBuilder(Folder::class)->getMock();
$path->method('getId')->willReturn(42);
- $storage = $this->createMock(Storage::class);
+ $storage = $this->createMock(IStorage::class);
$storage->method('instanceOfStorage')
->willReturnMap([
['OCA\Files_Sharing\External\Storage', false],
@@ -2058,34 +2206,34 @@ class ShareAPIControllerTest extends TestCase {
$this->rootFolder->method('getById')
->willReturn([]);
- $this->shareManager->method('newShare')->willReturn(\OC::$server->getShareManager()->newShare());
+ $this->shareManager->method('newShare')->willReturn(Server::get(IManager::class)->newShare());
$this->shareManager->method('shareApiAllowLinks')->willReturn(true);
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true);
$this->shareManager->expects($this->once())->method('createShare')->with(
- $this->callback(function (\OCP\Share\IShare $share) use ($path) {
- return $share->getNode() === $path &&
- $share->getShareType() === IShare::TYPE_LINK &&
- $share->getPermissions() === \OCP\Constants::PERMISSION_ALL &&
- $share->getSharedBy() === 'currentUser' &&
- $share->getPassword() === 'password' &&
- $share->getExpirationDate() === null;
+ $this->callback(function (IShare $share) use ($path) {
+ return $share->getNode() === $path
+ && $share->getShareType() === IShare::TYPE_LINK
+ && $share->getPermissions() === Constants::PERMISSION_READ // publicUpload was set to false
+ && $share->getSharedBy() === 'currentUser'
+ && $share->getPassword() === 'password'
+ && $share->getExpirationDate() === null;
})
)->willReturnArgument(0);
$expected = new DataResponse([]);
- $result = $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'false', 'password', null, '');
+ $result = $ocs->createShare('valid-path', Constants::PERMISSION_READ, IShare::TYPE_LINK, null, 'false', 'password', null, '');
$this->assertInstanceOf(get_class($expected), $result);
$this->assertEquals($expected->getData(), $result->getData());
}
- public function testCreateShareLinkSendPasswordByTalk() {
+ public function testCreateShareLinkSendPasswordByTalk(): void {
$ocs = $this->mockFormatShare();
$path = $this->getMockBuilder(Folder::class)->getMock();
$path->method('getId')->willReturn(42);
- $storage = $this->createMock(Storage::class);
+ $storage = $this->createMock(IStorage::class);
$storage->method('instanceOfStorage')
->willReturnMap([
['OCA\Files_Sharing\External\Storage', false],
@@ -2097,41 +2245,41 @@ class ShareAPIControllerTest extends TestCase {
$this->rootFolder->method('getById')
->willReturn([]);
- $this->shareManager->method('newShare')->willReturn(\OC::$server->getShareManager()->newShare());
+ $this->shareManager->method('newShare')->willReturn(Server::get(IManager::class)->newShare());
$this->shareManager->method('shareApiAllowLinks')->willReturn(true);
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true);
$this->appManager->method('isEnabledForUser')->with('spreed')->willReturn(true);
$this->shareManager->expects($this->once())->method('createShare')->with(
- $this->callback(function (\OCP\Share\IShare $share) use ($path) {
- return $share->getNode() === $path &&
- $share->getShareType() === IShare::TYPE_LINK &&
- $share->getPermissions() === \OCP\Constants::PERMISSION_ALL &&
- $share->getSharedBy() === 'currentUser' &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() === null;
+ $this->callback(function (IShare $share) use ($path) {
+ return $share->getNode() === $path
+ && $share->getShareType() === IShare::TYPE_LINK
+ && $share->getPermissions() === (Constants::PERMISSION_ALL & ~(Constants::PERMISSION_SHARE))
+ && $share->getSharedBy() === 'currentUser'
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() === null;
})
)->willReturnArgument(0);
$expected = new DataResponse([]);
- $result = $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'false', 'password', 'true', '');
+ $result = $ocs->createShare('valid-path', Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'true', 'password', 'true', '');
$this->assertInstanceOf(get_class($expected), $result);
$this->assertEquals($expected->getData(), $result->getData());
}
- public function testCreateShareLinkSendPasswordByTalkWithTalkDisabled() {
- $this->expectException(\OCP\AppFramework\OCS\OCSForbiddenException::class);
+ public function testCreateShareLinkSendPasswordByTalkWithTalkDisabled(): void {
+ $this->expectException(OCSForbiddenException::class);
$this->expectExceptionMessage('Sharing valid-path sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled');
$ocs = $this->mockFormatShare();
$path = $this->getMockBuilder(Folder::class)->getMock();
$path->method('getId')->willReturn(42);
- $storage = $this->createMock(Storage::class);
+ $storage = $this->createMock(IStorage::class);
$storage->method('instanceOfStorage')
->willReturnMap([
['OCA\Files_Sharing\External\Storage', false],
@@ -2144,7 +2292,7 @@ class ShareAPIControllerTest extends TestCase {
$this->rootFolder->method('getById')
->willReturn([]);
- $this->shareManager->method('newShare')->willReturn(\OC::$server->getShareManager()->newShare());
+ $this->shareManager->method('newShare')->willReturn(Server::get(IManager::class)->newShare());
$this->shareManager->method('shareApiAllowLinks')->willReturn(true);
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true);
@@ -2152,10 +2300,10 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->expects($this->never())->method('createShare');
- $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'false', 'password', 'true', '');
+ $ocs->createShare('valid-path', Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'false', 'password', 'true', '');
}
- public function testCreateShareValidExpireDate() {
+ public function testCreateShareValidExpireDate(): void {
$ocs = $this->mockFormatShare();
$this->request
@@ -2170,7 +2318,7 @@ class ShareAPIControllerTest extends TestCase {
$path = $this->getMockBuilder(Folder::class)->getMock();
$path->method('getId')->willReturn(42);
- $storage = $this->createMock(Storage::class);
+ $storage = $this->createMock(IStorage::class);
$storage->method('instanceOfStorage')
->willReturnMap([
['OCA\Files_Sharing\External\Storage', false],
@@ -2182,21 +2330,21 @@ class ShareAPIControllerTest extends TestCase {
$this->rootFolder->method('getById')
->willReturn([]);
- $this->shareManager->method('newShare')->willReturn(\OC::$server->getShareManager()->newShare());
+ $this->shareManager->method('newShare')->willReturn(Server::get(IManager::class)->newShare());
$this->shareManager->method('shareApiAllowLinks')->willReturn(true);
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true);
$this->shareManager->expects($this->once())->method('createShare')->with(
- $this->callback(function (\OCP\Share\IShare $share) use ($path) {
+ $this->callback(function (IShare $share) use ($path) {
$date = new \DateTime('2000-01-01');
$date->setTime(0, 0, 0);
- return $share->getNode() === $path &&
- $share->getShareType() === IShare::TYPE_LINK &&
- $share->getPermissions() === \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE &&
- $share->getSharedBy() === 'currentUser' &&
- $share->getPassword() === null &&
- $share->getExpirationDate() == $date;
+ return $share->getNode() === $path
+ && $share->getShareType() === IShare::TYPE_LINK
+ && $share->getPermissions() === Constants::PERMISSION_READ | Constants::PERMISSION_SHARE
+ && $share->getSharedBy() === 'currentUser'
+ && $share->getPassword() === null
+ && $share->getExpirationDate() == $date;
})
)->willReturnArgument(0);
@@ -2208,15 +2356,15 @@ class ShareAPIControllerTest extends TestCase {
}
- public function testCreateShareInvalidExpireDate() {
- $this->expectException(\OCP\AppFramework\OCS\OCSNotFoundException::class);
- $this->expectExceptionMessage('Invalid date, date format must be YYYY-MM-DD');
+ public function testCreateShareInvalidExpireDate(): void {
+ $this->expectException(OCSNotFoundException::class);
+ $this->expectExceptionMessage('Invalid date. Format must be YYYY-MM-DD');
$ocs = $this->mockFormatShare();
$path = $this->getMockBuilder(Folder::class)->getMock();
$path->method('getId')->willReturn(42);
- $storage = $this->createMock(Storage::class);
+ $storage = $this->createMock(IStorage::class);
$storage->method('instanceOfStorage')
->willReturnMap([
['OCA\Files_Sharing\External\Storage', false],
@@ -2228,18 +2376,18 @@ class ShareAPIControllerTest extends TestCase {
$this->rootFolder->method('getById')
->willReturn([]);
- $this->shareManager->method('newShare')->willReturn(\OC::$server->getShareManager()->newShare());
+ $this->shareManager->method('newShare')->willReturn(Server::get(IManager::class)->newShare());
$this->shareManager->method('shareApiAllowLinks')->willReturn(true);
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true);
- $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'false', '', null, 'a1b2d3');
+ $ocs->createShare('valid-path', Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'false', '', null, 'a1b2d3');
}
- public function testCreateShareRemote() {
+ public function testCreateShareRemote(): void {
$share = $this->newShare();
$this->shareManager->method('newShare')->willReturn($share);
- /** @var \OCA\Files_Sharing\Controller\ShareAPIController $ocs */
+ /** @var ShareAPIController $ocs */
$ocs = $this->getMockBuilder(ShareAPIController::class)
->setConstructorArgs([
$this->appName,
@@ -2251,26 +2399,31 @@ class ShareAPIControllerTest extends TestCase {
$this->urlGenerator,
$this->l,
$this->config,
+ $this->appConfig,
$this->appManager,
$this->serverContainer,
$this->userStatusManager,
$this->previewManager,
$this->dateTimeZone,
$this->logger,
+ $this->factory,
+ $this->mailer,
+ $this->tagManager,
+ $this->trustedServers,
$this->currentUser,
- ])->setMethods(['formatShare'])
+ ])->onlyMethods(['formatShare'])
->getMock();
[$userFolder, $path] = $this->getNonSharedUserFile();
$this->rootFolder->expects($this->exactly(2))
- ->method('getUserFolder')
- ->with('currentUser')
- ->willReturn($userFolder);
+ ->method('getUserFolder')
+ ->with('currentUser')
+ ->willReturn($userFolder);
$userFolder->expects($this->once())
- ->method('get')
- ->with('valid-path')
- ->willReturn($path);
+ ->method('get')
+ ->with('valid-path')
+ ->willReturn($path);
$userFolder->method('getById')
->willReturn([]);
@@ -2278,36 +2431,36 @@ class ShareAPIControllerTest extends TestCase {
$path->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->shareManager->method('createShare')
- ->with($this->callback(function (\OCP\Share\IShare $share) use ($path) {
- return $share->getNode() === $path &&
- $share->getPermissions() === (
- \OCP\Constants::PERMISSION_ALL &
- ~\OCP\Constants::PERMISSION_DELETE &
- ~\OCP\Constants::PERMISSION_CREATE
- ) &&
- $share->getShareType() === IShare::TYPE_REMOTE &&
- $share->getSharedWith() === 'user@example.org' &&
- $share->getSharedBy() === 'currentUser';
+ ->with($this->callback(function (IShare $share) use ($path) {
+ return $share->getNode() === $path
+ && $share->getPermissions() === (
+ Constants::PERMISSION_ALL
+ & ~Constants::PERMISSION_DELETE
+ & ~Constants::PERMISSION_CREATE
+ )
+ && $share->getShareType() === IShare::TYPE_REMOTE
+ && $share->getSharedWith() === 'user@example.org'
+ && $share->getSharedBy() === 'currentUser';
}))
->willReturnArgument(0);
$this->shareManager->method('outgoingServer2ServerSharesAllowed')->willReturn(true);
$expected = new DataResponse([]);
- $result = $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_REMOTE, 'user@example.org');
+ $result = $ocs->createShare('valid-path', Constants::PERMISSION_ALL, IShare::TYPE_REMOTE, 'user@example.org');
$this->assertInstanceOf(get_class($expected), $result);
$this->assertEquals($expected->getData(), $result->getData());
}
- public function testCreateShareRemoteGroup() {
+ public function testCreateShareRemoteGroup(): void {
$share = $this->newShare();
$this->shareManager->method('newShare')->willReturn($share);
- /** @var \OCA\Files_Sharing\Controller\ShareAPIController $ocs */
+ /** @var ShareAPIController $ocs */
$ocs = $this->getMockBuilder(ShareAPIController::class)
->setConstructorArgs([
$this->appName,
@@ -2319,26 +2472,31 @@ class ShareAPIControllerTest extends TestCase {
$this->urlGenerator,
$this->l,
$this->config,
+ $this->appConfig,
$this->appManager,
$this->serverContainer,
$this->userStatusManager,
$this->previewManager,
$this->dateTimeZone,
$this->logger,
+ $this->factory,
+ $this->mailer,
+ $this->tagManager,
+ $this->trustedServers,
$this->currentUser,
- ])->setMethods(['formatShare'])
+ ])->onlyMethods(['formatShare'])
->getMock();
[$userFolder, $path] = $this->getNonSharedUserFile();
$this->rootFolder->expects($this->exactly(2))
- ->method('getUserFolder')
- ->with('currentUser')
- ->willReturn($userFolder);
+ ->method('getUserFolder')
+ ->with('currentUser')
+ ->willReturn($userFolder);
$userFolder->expects($this->once())
- ->method('get')
- ->with('valid-path')
- ->willReturn($path);
+ ->method('get')
+ ->with('valid-path')
+ ->willReturn($path);
$userFolder->method('getById')
->willReturn([]);
@@ -2346,32 +2504,32 @@ class ShareAPIControllerTest extends TestCase {
$path->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->shareManager->method('createShare')
- ->with($this->callback(function (\OCP\Share\IShare $share) use ($path) {
- return $share->getNode() === $path &&
- $share->getPermissions() === (
- \OCP\Constants::PERMISSION_ALL &
- ~\OCP\Constants::PERMISSION_DELETE &
- ~\OCP\Constants::PERMISSION_CREATE
- ) &&
- $share->getShareType() === IShare::TYPE_REMOTE_GROUP &&
- $share->getSharedWith() === 'group@example.org' &&
- $share->getSharedBy() === 'currentUser';
+ ->with($this->callback(function (IShare $share) use ($path) {
+ return $share->getNode() === $path
+ && $share->getPermissions() === (
+ Constants::PERMISSION_ALL
+ & ~Constants::PERMISSION_DELETE
+ & ~Constants::PERMISSION_CREATE
+ )
+ && $share->getShareType() === IShare::TYPE_REMOTE_GROUP
+ && $share->getSharedWith() === 'group@example.org'
+ && $share->getSharedBy() === 'currentUser';
}))
->willReturnArgument(0);
$this->shareManager->method('outgoingServer2ServerGroupSharesAllowed')->willReturn(true);
$expected = new DataResponse([]);
- $result = $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_REMOTE_GROUP, 'group@example.org');
+ $result = $ocs->createShare('valid-path', Constants::PERMISSION_ALL, IShare::TYPE_REMOTE_GROUP, 'group@example.org');
$this->assertInstanceOf(get_class($expected), $result);
$this->assertEquals($expected->getData(), $result->getData());
}
- public function testCreateShareRoom() {
+ public function testCreateShareRoom(): void {
$ocs = $this->mockFormatShare();
$share = $this->newShare();
@@ -2379,44 +2537,43 @@ class ShareAPIControllerTest extends TestCase {
[$userFolder, $path] = $this->getNonSharedUserFile();
$this->rootFolder->expects($this->exactly(2))
- ->method('getUserFolder')
- ->with('currentUser')
- ->willReturn($userFolder);
+ ->method('getUserFolder')
+ ->with('currentUser')
+ ->willReturn($userFolder);
$userFolder->expects($this->once())
- ->method('get')
- ->with('valid-path')
- ->willReturn($path);
+ ->method('get')
+ ->with('valid-path')
+ ->willReturn($path);
$userFolder->method('getById')
->willReturn([]);
$path->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->appManager->method('isEnabledForUser')
->with('spreed')
->willReturn(true);
- $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
- ->setMethods(['createShare'])
+ // This is not possible anymore with PHPUnit 10+
+ // as `setMethods` was removed and now real reflection is used, thus the class needs to exist.
+ // $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
+ $helper = $this->getMockBuilder(\stdClass::class)
+ ->addMethods(['createShare'])
->getMock();
$helper->method('createShare')
->with(
$share,
'recipientRoom',
- \OCP\Constants::PERMISSION_ALL &
- ~\OCP\Constants::PERMISSION_DELETE &
- ~\OCP\Constants::PERMISSION_CREATE,
+ Constants::PERMISSION_ALL
+ & ~Constants::PERMISSION_DELETE
+ & ~Constants::PERMISSION_CREATE,
''
)->willReturnCallback(
- function ($share) {
+ function ($share): void {
$share->setSharedWith('recipientRoom');
- $share->setPermissions(
- \OCP\Constants::PERMISSION_ALL &
- ~\OCP\Constants::PERMISSION_DELETE &
- ~\OCP\Constants::PERMISSION_CREATE
- );
+ $share->setPermissions(Constants::PERMISSION_ALL);
}
);
@@ -2425,29 +2582,25 @@ class ShareAPIControllerTest extends TestCase {
->willReturn($helper);
$this->shareManager->method('createShare')
- ->with($this->callback(function (\OCP\Share\IShare $share) use ($path) {
- return $share->getNode() === $path &&
- $share->getPermissions() === (
- \OCP\Constants::PERMISSION_ALL &
- ~\OCP\Constants::PERMISSION_DELETE &
- ~\OCP\Constants::PERMISSION_CREATE
- ) &&
- $share->getShareType() === IShare::TYPE_ROOM &&
- $share->getSharedWith() === 'recipientRoom' &&
- $share->getSharedBy() === 'currentUser';
+ ->with($this->callback(function (IShare $share) use ($path) {
+ return $share->getNode() === $path
+ && $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getShareType() === IShare::TYPE_ROOM
+ && $share->getSharedWith() === 'recipientRoom'
+ && $share->getSharedBy() === 'currentUser';
}))
->willReturnArgument(0);
$expected = new DataResponse([]);
- $result = $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_ROOM, 'recipientRoom');
+ $result = $ocs->createShare('valid-path', Constants::PERMISSION_ALL, IShare::TYPE_ROOM, 'recipientRoom');
$this->assertInstanceOf(get_class($expected), $result);
$this->assertEquals($expected->getData(), $result->getData());
}
- public function testCreateShareRoomHelperNotAvailable() {
- $this->expectException(\OCP\AppFramework\OCS\OCSForbiddenException::class);
+ public function testCreateShareRoomHelperNotAvailable(): void {
+ $this->expectException(OCSForbiddenException::class);
$this->expectExceptionMessage('Sharing valid-path failed because the back end does not support room shares');
$ocs = $this->mockFormatShare();
@@ -2456,22 +2609,21 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->method('newShare')->willReturn($share);
[$userFolder, $path] = $this->getNonSharedUserFolder();
- $this->rootFolder->expects($this->exactly(2))
- ->method('getUserFolder')
- ->with('currentUser')
- ->willReturn($userFolder);
+ $this->rootFolder->method('getUserFolder')
+ ->with('currentUser')
+ ->willReturn($userFolder);
$path->method('getPath')->willReturn('valid-path');
$userFolder->expects($this->once())
- ->method('get')
- ->with('valid-path')
- ->willReturn($path);
+ ->method('get')
+ ->with('valid-path')
+ ->willReturn($path);
$userFolder->method('getById')
->willReturn([]);
$path->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->appManager->method('isEnabledForUser')
->with('spreed')
@@ -2479,12 +2631,12 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->expects($this->never())->method('createShare');
- $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_ROOM, 'recipientRoom');
+ $ocs->createShare('valid-path', Constants::PERMISSION_ALL, IShare::TYPE_ROOM, 'recipientRoom');
}
- public function testCreateShareRoomHelperThrowException() {
- $this->expectException(\OCP\AppFramework\OCS\OCSNotFoundException::class);
+ public function testCreateShareRoomHelperThrowException(): void {
+ $this->expectException(OCSNotFoundException::class);
$this->expectExceptionMessage('Exception thrown by the helper');
$ocs = $this->mockFormatShare();
@@ -2494,40 +2646,40 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->method('newShare')->willReturn($share);
[$userFolder, $path] = $this->getNonSharedUserFile();
- $this->rootFolder->expects($this->exactly(2))
- ->method('getUserFolder')
- ->with('currentUser')
- ->willReturn($userFolder);
+ $this->rootFolder->method('getUserFolder')
+ ->with('currentUser')
+ ->willReturn($userFolder);
$userFolder->expects($this->once())
- ->method('get')
- ->with('valid-path')
- ->willReturn($path);
+ ->method('get')
+ ->with('valid-path')
+ ->willReturn($path);
$userFolder->method('getById')
->willReturn([]);
$path->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->appManager->method('isEnabledForUser')
->with('spreed')
->willReturn(true);
- $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
- ->setMethods(['createShare'])
+ // This is not possible anymore with PHPUnit 10+
+ // as `setMethods` was removed and now real reflection is used, thus the class needs to exist.
+ // $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
+ $helper = $this->getMockBuilder(\stdClass::class)
+ ->addMethods(['createShare'])
->getMock();
$helper->method('createShare')
->with(
$share,
'recipientRoom',
- \OCP\Constants::PERMISSION_ALL &
- ~\OCP\Constants::PERMISSION_DELETE &
- ~\OCP\Constants::PERMISSION_CREATE,
+ Constants::PERMISSION_ALL & ~(Constants::PERMISSION_CREATE | Constants::PERMISSION_DELETE),
''
)->willReturnCallback(
- function ($share) {
- throw new OCSNotFoundException("Exception thrown by the helper");
+ function ($share): void {
+ throw new OCSNotFoundException('Exception thrown by the helper');
}
);
@@ -2537,18 +2689,18 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->expects($this->never())->method('createShare');
- $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_ROOM, 'recipientRoom');
+ $ocs->createShare('valid-path', Constants::PERMISSION_ALL, IShare::TYPE_ROOM, 'recipientRoom');
}
/**
* Test for https://github.com/owncloud/core/issues/22587
* TODO: Remove once proper solution is in place
*/
- public function testCreateReshareOfFederatedMountNoDeletePermissions() {
- $share = \OC::$server->getShareManager()->newShare();
+ public function testCreateReshareOfFederatedMountNoDeletePermissions(): void {
+ $share = Server::get(IManager::class)->newShare();
$this->shareManager->method('newShare')->willReturn($share);
- /** @var ShareAPIController|\PHPUnit\Framework\MockObject\MockObject $ocs */
+ /** @var ShareAPIController&MockObject $ocs */
$ocs = $this->getMockBuilder(ShareAPIController::class)
->setConstructorArgs([
$this->appName,
@@ -2560,14 +2712,19 @@ class ShareAPIControllerTest extends TestCase {
$this->urlGenerator,
$this->l,
$this->config,
+ $this->appConfig,
$this->appManager,
$this->serverContainer,
$this->userStatusManager,
$this->previewManager,
$this->dateTimeZone,
$this->logger,
+ $this->factory,
+ $this->mailer,
+ $this->tagManager,
+ $this->trustedServers,
$this->currentUser,
- ])->setMethods(['formatShare'])
+ ])->onlyMethods(['formatShare'])
->getMock();
$userFolder = $this->getMockBuilder(Folder::class)->getMock();
@@ -2579,7 +2736,7 @@ class ShareAPIControllerTest extends TestCase {
$path = $this->getMockBuilder(Folder::class)->getMock();
$path->method('getId')->willReturn(42);
- $storage = $this->createMock(Storage::class);
+ $storage = $this->createMock(IStorage::class);
$storage->method('instanceOfStorage')
->willReturnMap([
['OCA\Files_Sharing\External\Storage', true],
@@ -2588,7 +2745,7 @@ class ShareAPIControllerTest extends TestCase {
$userFolder->method('getStorage')->willReturn($storage);
$path->method('getStorage')->willReturn($storage);
- $path->method('getPermissions')->willReturn(\OCP\Constants::PERMISSION_READ);
+ $path->method('getPermissions')->willReturn(Constants::PERMISSION_READ);
$userFolder->expects($this->once())
->method('get')
->with('valid-path')
@@ -2601,17 +2758,17 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager
->expects($this->once())
->method('createShare')
- ->with($this->callback(function (\OCP\Share\IShare $share) {
- return $share->getPermissions() === \OCP\Constants::PERMISSION_READ;
+ ->with($this->callback(function (IShare $share) {
+ return $share->getPermissions() === Constants::PERMISSION_READ;
}))
->willReturnArgument(0);
- $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_USER, 'validUser');
+ $ocs->createShare('valid-path', Constants::PERMISSION_ALL, IShare::TYPE_USER, 'validUser');
}
- public function testUpdateShareCantAccess() {
- $this->expectException(\OCP\AppFramework\OCS\OCSNotFoundException::class);
+ public function testUpdateShareCantAccess(): void {
+ $this->expectException(OCSNotFoundException::class);
$this->expectExceptionMessage('Wrong share ID, share does not exist');
[$userFolder, $node] = $this->getNonSharedUserFolder();
@@ -2620,7 +2777,7 @@ class ShareAPIControllerTest extends TestCase {
$node->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share);
@@ -2628,28 +2785,28 @@ class ShareAPIControllerTest extends TestCase {
->with($this->currentUser)
->willReturn($userFolder);
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with($share->getNodeId())
- ->willReturn($share->getNode());
+ ->willReturn([$share->getNode()]);
$this->ocs->updateShare(42);
}
- public function testUpdateNoParametersLink() {
- $this->expectException(\OCP\AppFramework\OCS\OCSBadRequestException::class);
+ public function testUpdateNoParametersLink(): void {
+ $this->expectException(OCSBadRequestException::class);
$this->expectExceptionMessage('Wrong or no update parameter given');
$node = $this->getMockBuilder(Folder::class)->getMock();
$share = $this->newShare();
- $share->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ $share->setPermissions(Constants::PERMISSION_ALL)
->setSharedBy($this->currentUser)
->setShareType(IShare::TYPE_LINK)
->setNode($node);
$node->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share);
@@ -2657,34 +2814,34 @@ class ShareAPIControllerTest extends TestCase {
}
- public function testUpdateNoParametersOther() {
- $this->expectException(\OCP\AppFramework\OCS\OCSBadRequestException::class);
+ public function testUpdateNoParametersOther(): void {
+ $this->expectException(OCSBadRequestException::class);
$this->expectExceptionMessage('Wrong or no update parameter given');
$node = $this->getMockBuilder(Folder::class)->getMock();
$share = $this->newShare();
- $share->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ $share->setPermissions(Constants::PERMISSION_ALL)
->setSharedBy($this->currentUser)
->setShareType(IShare::TYPE_GROUP)
->setNode($node);
$node->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share);
$this->ocs->updateShare(42);
}
- public function testUpdateLinkShareClear() {
+ public function testUpdateLinkShareClear(): void {
$ocs = $this->mockFormatShare();
[$userFolder, $node] = $this->getNonSharedUserFolder();
$node->method('getId')
->willReturn(42);
$share = $this->newShare();
- $share->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ $share->setPermissions(Constants::PERMISSION_ALL)
->setSharedBy($this->currentUser)
->setShareType(IShare::TYPE_LINK)
->setPassword('password')
@@ -2692,25 +2849,25 @@ class ShareAPIControllerTest extends TestCase {
->setNote('note')
->setLabel('label')
->setHideDownload(true)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ ->setPermissions(Constants::PERMISSION_ALL)
->setNode($node);
$node->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share);
$this->shareManager->expects($this->once())->method('updateShare')->with(
- $this->callback(function (\OCP\Share\IShare $share) {
- return $share->getPermissions() === \OCP\Constants::PERMISSION_READ &&
- $share->getPassword() === null &&
- $share->getExpirationDate() === null &&
+ $this->callback(function (IShare $share) {
+ return $share->getPermissions() === Constants::PERMISSION_READ
+ && $share->getPassword() === null
+ && $share->getExpirationDate() === null
// Once set a note or a label are never back to null, only to an
// empty string.
- $share->getNote() === '' &&
- $share->getLabel() === '' &&
- $share->getHideDownload() === false;
+ && $share->getNote() === ''
+ && $share->getLabel() === ''
+ && $share->getHideDownload() === false;
})
)->willReturnArgument(0);
@@ -2721,6 +2878,9 @@ class ShareAPIControllerTest extends TestCase {
->with($this->currentUser)
->willReturn($userFolder);
+ $userFolder->method('getById')
+ ->with(42)
+ ->willReturn([$node]);
$userFolder->method('getFirstNodeById')
->with(42)
->willReturn($node);
@@ -2738,15 +2898,15 @@ class ShareAPIControllerTest extends TestCase {
$this->assertEquals($expected->getData(), $result->getData());
}
- public function testUpdateLinkShareSet() {
+ public function testUpdateLinkShareSet(): void {
$ocs = $this->mockFormatShare();
[$userFolder, $folder] = $this->getNonSharedUserFolder();
$folder->method('getId')
->willReturn(42);
- $share = \OC::$server->getShareManager()->newShare();
- $share->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ $share = Server::get(IManager::class)->newShare();
+ $share->setPermissions(Constants::PERMISSION_ALL)
->setSharedBy($this->currentUser)
->setShareType(IShare::TYPE_LINK)
->setNode($folder);
@@ -2755,16 +2915,16 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true);
$this->shareManager->expects($this->once())->method('updateShare')->with(
- $this->callback(function (\OCP\Share\IShare $share) {
+ $this->callback(function (IShare $share) {
$date = new \DateTime('2000-01-01');
$date->setTime(0, 0, 0);
- return $share->getPermissions() === (\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE) &&
- $share->getPassword() === 'password' &&
- $share->getExpirationDate() == $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ return $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE)
+ && $share->getPassword() === 'password'
+ && $share->getExpirationDate() == $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -2775,9 +2935,9 @@ class ShareAPIControllerTest extends TestCase {
->with($this->currentUser)
->willReturn($userFolder);
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with(42)
- ->willReturn($folder);
+ ->willReturn([$folder]);
$mountPoint = $this->createMock(IMountPoint::class);
$folder->method('getMountPoint')
@@ -2792,18 +2952,16 @@ class ShareAPIControllerTest extends TestCase {
$this->assertEquals($expected->getData(), $result->getData());
}
- /**
- * @dataProvider publicUploadParamsProvider
- */
- public function testUpdateLinkShareEnablePublicUpload($permissions, $publicUpload, $expireDate, $password) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('publicUploadParamsProvider')]
+ public function testUpdateLinkShareEnablePublicUpload($permissions, $publicUpload, $expireDate, $password): void {
$ocs = $this->mockFormatShare();
[$userFolder, $folder] = $this->getNonSharedUserFolder();
$folder->method('getId')
->willReturn(42);
- $share = \OC::$server->getShareManager()->newShare();
- $share->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ $share = Server::get(IManager::class)->newShare();
+ $share->setPermissions(Constants::PERMISSION_ALL)
->setSharedBy($this->currentUser)
->setShareType(IShare::TYPE_LINK)
->setPassword('password')
@@ -2814,10 +2972,10 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->method('getSharedWith')->willReturn([]);
$this->shareManager->expects($this->once())->method('updateShare')->with(
- $this->callback(function (\OCP\Share\IShare $share) {
- return $share->getPermissions() === (\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE) &&
- $share->getPassword() === 'password' &&
- $share->getExpirationDate() === null;
+ $this->callback(function (IShare $share) {
+ return $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE)
+ && $share->getPassword() === 'password'
+ && $share->getExpirationDate() === null;
})
)->willReturnArgument(0);
@@ -2825,9 +2983,9 @@ class ShareAPIControllerTest extends TestCase {
->with($this->currentUser)
->willReturn($userFolder);
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with(42)
- ->willReturn($folder);
+ ->willReturn([$folder]);
$mountPoint = $this->createMock(IMountPoint::class);
$folder->method('getMountPoint')
@@ -2843,28 +3001,26 @@ class ShareAPIControllerTest extends TestCase {
}
- public function publicLinkValidPermissionsProvider() {
+ public static function publicLinkValidPermissionsProvider() {
return [
- [\OCP\Constants::PERMISSION_CREATE],
- [\OCP\Constants::PERMISSION_READ],
- [\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE],
- [\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_DELETE],
- [\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE],
+ [Constants::PERMISSION_CREATE],
+ [Constants::PERMISSION_READ],
+ [Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE],
+ [Constants::PERMISSION_READ | Constants::PERMISSION_DELETE],
+ [Constants::PERMISSION_READ | Constants::PERMISSION_CREATE],
];
}
- /**
- * @dataProvider publicLinkValidPermissionsProvider
- */
- public function testUpdateLinkShareSetCRUDPermissions($permissions) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('publicLinkValidPermissionsProvider')]
+ public function testUpdateLinkShareSetCRUDPermissions($permissions): void {
$ocs = $this->mockFormatShare();
[$userFolder, $folder] = $this->getNonSharedUserFolder();
$folder->method('getId')
->willReturn(42);
- $share = \OC::$server->getShareManager()->newShare();
- $share->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ $share = Server::get(IManager::class)->newShare();
+ $share->setPermissions(Constants::PERMISSION_ALL)
->setSharedBy($this->currentUser)
->setShareType(IShare::TYPE_LINK)
->setPassword('password')
@@ -2883,9 +3039,9 @@ class ShareAPIControllerTest extends TestCase {
->with($this->currentUser)
->willReturn($userFolder);
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with(42)
- ->willReturn($folder);
+ ->willReturn([$folder]);
$mountPoint = $this->createMock(IMountPoint::class);
$folder->method('getMountPoint')
@@ -2894,56 +3050,52 @@ class ShareAPIControllerTest extends TestCase {
->willReturn(42);
$expected = new DataResponse([]);
- $result = $ocs->updateShare(42, $permissions, 'password', null, 'true', null);
+ $result = $ocs->updateShare(42, $permissions, 'password', null, null, null);
$this->assertInstanceOf(get_class($expected), $result);
$this->assertEquals($expected->getData(), $result->getData());
}
- public function publicLinkInvalidPermissionsProvider1() {
+ public static function publicLinkInvalidPermissionsProvider1() {
return [
- [\OCP\Constants::PERMISSION_DELETE],
- [\OCP\Constants::PERMISSION_UPDATE],
- [\OCP\Constants::PERMISSION_SHARE],
+ [Constants::PERMISSION_DELETE],
+ [Constants::PERMISSION_UPDATE],
+ [Constants::PERMISSION_SHARE],
];
}
- /**
- * @dataProvider publicLinkInvalidPermissionsProvider1
- */
- public function testUpdateLinkShareSetInvalidCRUDPermissions1($permissions) {
- $this->expectException(\OCP\AppFramework\OCS\OCSBadRequestException::class);
+ #[\PHPUnit\Framework\Attributes\DataProvider('publicLinkInvalidPermissionsProvider1')]
+ public function testUpdateLinkShareSetInvalidCRUDPermissions1($permissions): void {
+ $this->expectException(OCSBadRequestException::class);
$this->expectExceptionMessage('Share must at least have READ or CREATE permissions');
- $this->testUpdateLinkShareSetCRUDPermissions($permissions);
+ $this->testUpdateLinkShareSetCRUDPermissions($permissions, null);
}
- public function publicLinkInvalidPermissionsProvider2() {
+ public static function publicLinkInvalidPermissionsProvider2() {
return [
- [\OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_DELETE],
- [\OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE],
+ [Constants::PERMISSION_CREATE | Constants::PERMISSION_DELETE],
+ [Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE],
];
}
- /**
- * @dataProvider publicLinkInvalidPermissionsProvider2
- */
- public function testUpdateLinkShareSetInvalidCRUDPermissions2($permissions) {
- $this->expectException(\OCP\AppFramework\OCS\OCSBadRequestException::class);
+ #[\PHPUnit\Framework\Attributes\DataProvider('publicLinkInvalidPermissionsProvider2')]
+ public function testUpdateLinkShareSetInvalidCRUDPermissions2($permissions): void {
+ $this->expectException(OCSBadRequestException::class);
$this->expectExceptionMessage('Share must have READ permission if UPDATE or DELETE permission is set');
$this->testUpdateLinkShareSetCRUDPermissions($permissions);
}
- public function testUpdateLinkShareInvalidDate() {
- $this->expectException(\OCP\AppFramework\OCS\OCSBadRequestException::class);
+ public function testUpdateLinkShareInvalidDate(): void {
+ $this->expectException(OCSBadRequestException::class);
$this->expectExceptionMessage('Invalid date. Format must be YYYY-MM-DD');
$ocs = $this->mockFormatShare();
[$userFolder, $folder] = $this->getNonSharedUserFolder();
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with(42)
- ->willReturn($folder);
+ ->willReturn([$folder]);
$this->rootFolder->method('getUserFolder')
->with($this->currentUser)
->willReturn($userFolder);
@@ -2951,8 +3103,8 @@ class ShareAPIControllerTest extends TestCase {
$folder->method('getId')
->willReturn(42);
- $share = \OC::$server->getShareManager()->newShare();
- $share->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ $share = Server::get(IManager::class)->newShare();
+ $share->setPermissions(Constants::PERMISSION_ALL)
->setSharedBy($this->currentUser)
->setShareType(IShare::TYPE_LINK)
->setNode($folder);
@@ -2963,42 +3115,40 @@ class ShareAPIControllerTest extends TestCase {
$ocs->updateShare(42, null, 'password', null, 'true', '2000-01-a');
}
- public function publicUploadParamsProvider() {
+ public static function publicUploadParamsProvider() {
return [
[null, 'true', null, 'password'],
// legacy had no delete
[
- \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE,
+ Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE,
'true', null, 'password'
],
// correct
[
- \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE,
+ Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE,
null, null, 'password'
],
];
}
- /**
- * @dataProvider publicUploadParamsProvider
- */
- public function testUpdateLinkSharePublicUploadNotAllowed($permissions, $publicUpload, $expireDate, $password) {
- $this->expectException(\OCP\AppFramework\OCS\OCSForbiddenException::class);
+ #[\PHPUnit\Framework\Attributes\DataProvider('publicUploadParamsProvider')]
+ public function testUpdateLinkSharePublicUploadNotAllowed($permissions, $publicUpload, $expireDate, $password): void {
+ $this->expectException(OCSForbiddenException::class);
$this->expectExceptionMessage('Public upload disabled by the administrator');
$ocs = $this->mockFormatShare();
[$userFolder, $folder] = $this->getNonSharedUserFolder();
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with(42)
- ->willReturn($folder);
+ ->willReturn([$folder]);
$this->rootFolder->method('getUserFolder')
->with($this->currentUser)
->willReturn($userFolder);
$folder->method('getId')->willReturn(42);
- $share = \OC::$server->getShareManager()->newShare();
- $share->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ $share = Server::get(IManager::class)->newShare();
+ $share->setPermissions(Constants::PERMISSION_ALL)
->setSharedBy($this->currentUser)
->setShareType(IShare::TYPE_LINK)
->setNode($folder);
@@ -3010,8 +3160,8 @@ class ShareAPIControllerTest extends TestCase {
}
- public function testUpdateLinkSharePublicUploadOnFile() {
- $this->expectException(\OCP\AppFramework\OCS\OCSBadRequestException::class);
+ public function testUpdateLinkSharePublicUploadOnFile(): void {
+ $this->expectException(OCSBadRequestException::class);
$this->expectExceptionMessage('Public upload is only possible for publicly shared folders');
$ocs = $this->mockFormatShare();
@@ -3020,21 +3170,30 @@ class ShareAPIControllerTest extends TestCase {
$file->method('getId')
->willReturn(42);
[$userFolder, $folder] = $this->getNonSharedUserFolder();
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with(42)
- ->willReturn($folder);
+ ->willReturn([$folder]);
$this->rootFolder->method('getUserFolder')
->with($this->currentUser)
->willReturn($userFolder);
- $share = \OC::$server->getShareManager()->newShare();
- $share->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ $share = Server::get(IManager::class)->newShare();
+ $share->setPermissions(Constants::PERMISSION_ALL)
->setSharedBy($this->currentUser)
->setShareType(IShare::TYPE_LINK)
->setNode($file);
- $this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share);
- $this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true);
+ $this->shareManager
+ ->method('getShareById')
+ ->with('ocinternal:42')
+ ->willReturn($share);
+ $this->shareManager
+ ->method('shareApiLinkAllowPublicUpload')
+ ->willReturn(true);
+ $this->shareManager
+ ->method('updateShare')
+ ->with($share)
+ ->willThrowException(new \InvalidArgumentException('File shares cannot have create or delete permissions'));
$ocs->updateShare(42, null, 'password', null, 'true', '');
}
@@ -3047,14 +3206,14 @@ class ShareAPIControllerTest extends TestCase {
[$userFolder, $node] = $this->getNonSharedUserFolder();
$node->method('getId')->willReturn(42);
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with(42)
- ->willReturn($node);
+ ->willReturn([$node]);
$this->rootFolder->method('getUserFolder')
->with($this->currentUser)
->willReturn($userFolder);
$share = $this->newShare();
- $share->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ $share->setPermissions(Constants::PERMISSION_ALL)
->setSharedBy($this->currentUser)
->setShareType(IShare::TYPE_LINK)
->setPassword('password')
@@ -3063,24 +3222,24 @@ class ShareAPIControllerTest extends TestCase {
->setNote('note')
->setLabel('label')
->setHideDownload(true)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ ->setPermissions(Constants::PERMISSION_ALL)
->setNode($node);
$node->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share);
$this->shareManager->expects($this->once())->method('updateShare')->with(
- $this->callback(function (\OCP\Share\IShare $share) use ($date) {
- return $share->getPermissions() === \OCP\Constants::PERMISSION_ALL &&
- $share->getPassword() === 'newpassword' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ $this->callback(function (IShare $share) use ($date) {
+ return $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getPassword() === 'newpassword'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3091,22 +3250,22 @@ class ShareAPIControllerTest extends TestCase {
$this->assertEquals($expected->getData(), $result->getData());
}
- public function testUpdateLinkShareSendPasswordByTalkDoesNotChangeOther() {
+ public function testUpdateLinkShareSendPasswordByTalkDoesNotChangeOther(): void {
$ocs = $this->mockFormatShare();
$date = new \DateTime('2000-01-01');
$date->setTime(0, 0, 0);
[$userFolder, $node] = $this->getNonSharedUserFolder();
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with(42)
- ->willReturn($node);
+ ->willReturn([$node]);
$this->rootFolder->method('getUserFolder')
->with($this->currentUser)
->willReturn($userFolder);
$node->method('getId')->willReturn(42);
$share = $this->newShare();
- $share->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ $share->setPermissions(Constants::PERMISSION_ALL)
->setSharedBy($this->currentUser)
->setShareType(IShare::TYPE_LINK)
->setPassword('password')
@@ -3115,26 +3274,26 @@ class ShareAPIControllerTest extends TestCase {
->setNote('note')
->setLabel('label')
->setHideDownload(true)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ ->setPermissions(Constants::PERMISSION_ALL)
->setNode($node);
$node->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share);
$this->appManager->method('isEnabledForUser')->with('spreed')->willReturn(true);
$this->shareManager->expects($this->once())->method('updateShare')->with(
- $this->callback(function (\OCP\Share\IShare $share) use ($date) {
- return $share->getPermissions() === \OCP\Constants::PERMISSION_ALL &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ $this->callback(function (IShare $share) use ($date) {
+ return $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3146,8 +3305,8 @@ class ShareAPIControllerTest extends TestCase {
}
- public function testUpdateLinkShareSendPasswordByTalkWithTalkDisabledDoesNotChangeOther() {
- $this->expectException(\OCP\AppFramework\OCS\OCSForbiddenException::class);
+ public function testUpdateLinkShareSendPasswordByTalkWithTalkDisabledDoesNotChangeOther(): void {
+ $this->expectException(OCSForbiddenException::class);
$this->expectExceptionMessage('"Sending the password by Nextcloud Talk" for sharing a file or folder failed because Nextcloud Talk is not enabled.');
$ocs = $this->mockFormatShare();
@@ -3156,15 +3315,15 @@ class ShareAPIControllerTest extends TestCase {
$date->setTime(0, 0, 0);
[$userFolder, $node] = $this->getNonSharedUserFolder();
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with(42)
- ->willReturn($node);
+ ->willReturn([$node]);
$this->rootFolder->method('getUserFolder')
->with($this->currentUser)
->willReturn($userFolder);
$node->method('getId')->willReturn(42);
$share = $this->newShare();
- $share->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ $share->setPermissions(Constants::PERMISSION_ALL)
->setSharedBy($this->currentUser)
->setShareType(IShare::TYPE_LINK)
->setPassword('password')
@@ -3173,12 +3332,12 @@ class ShareAPIControllerTest extends TestCase {
->setNote('note')
->setLabel('label')
->setHideDownload(true)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ ->setPermissions(Constants::PERMISSION_ALL)
->setNode($node);
$node->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share);
@@ -3189,22 +3348,22 @@ class ShareAPIControllerTest extends TestCase {
$ocs->updateShare(42, null, null, 'true', null, null, null, null, null);
}
- public function testUpdateLinkShareDoNotSendPasswordByTalkDoesNotChangeOther() {
+ public function testUpdateLinkShareDoNotSendPasswordByTalkDoesNotChangeOther(): void {
$ocs = $this->mockFormatShare();
$date = new \DateTime('2000-01-01');
$date->setTime(0, 0, 0);
[$userFolder, $node] = $this->getNonSharedUserFolder();
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with(42)
- ->willReturn($node);
+ ->willReturn([$node]);
$this->rootFolder->method('getUserFolder')
->with($this->currentUser)
->willReturn($userFolder);
$node->method('getId')->willReturn(42);
$share = $this->newShare();
- $share->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ $share->setPermissions(Constants::PERMISSION_ALL)
->setSharedBy($this->currentUser)
->setShareType(IShare::TYPE_LINK)
->setPassword('password')
@@ -3213,26 +3372,26 @@ class ShareAPIControllerTest extends TestCase {
->setNote('note')
->setLabel('label')
->setHideDownload(true)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ ->setPermissions(Constants::PERMISSION_ALL)
->setNode($node);
$node->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share);
$this->appManager->method('isEnabledForUser')->with('spreed')->willReturn(true);
$this->shareManager->expects($this->once())->method('updateShare')->with(
- $this->callback(function (\OCP\Share\IShare $share) use ($date) {
- return $share->getPermissions() === \OCP\Constants::PERMISSION_ALL &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === false &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ $this->callback(function (IShare $share) use ($date) {
+ return $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === false
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3243,7 +3402,7 @@ class ShareAPIControllerTest extends TestCase {
$this->assertEquals($expected->getData(), $result->getData());
}
- public function testUpdateLinkShareDoNotSendPasswordByTalkWithTalkDisabledDoesNotChangeOther() {
+ public function testUpdateLinkShareDoNotSendPasswordByTalkWithTalkDisabledDoesNotChangeOther(): void {
$ocs = $this->mockFormatShare();
$date = new \DateTime('2000-01-01');
@@ -3254,7 +3413,7 @@ class ShareAPIControllerTest extends TestCase {
->willReturn(42);
$share = $this->newShare();
- $share->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ $share->setPermissions(Constants::PERMISSION_ALL)
->setSharedBy($this->currentUser)
->setShareType(IShare::TYPE_LINK)
->setPassword('password')
@@ -3263,26 +3422,26 @@ class ShareAPIControllerTest extends TestCase {
->setNote('note')
->setLabel('label')
->setHideDownload(true)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ ->setPermissions(Constants::PERMISSION_ALL)
->setNode($node);
$node->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share);
$this->appManager->method('isEnabledForUser')->with('spreed')->willReturn(false);
$this->shareManager->expects($this->once())->method('updateShare')->with(
- $this->callback(function (\OCP\Share\IShare $share) use ($date) {
- return $share->getPermissions() === \OCP\Constants::PERMISSION_ALL &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === false &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ $this->callback(function (IShare $share) use ($date) {
+ return $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === false
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3290,9 +3449,9 @@ class ShareAPIControllerTest extends TestCase {
->with($this->currentUser)
->willReturn($userFolder);
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with(42)
- ->willReturn($node);
+ ->willReturn([$node]);
$mountPoint = $this->createMock(IMountPoint::class);
$node->method('getMountPoint')
@@ -3313,7 +3472,7 @@ class ShareAPIControllerTest extends TestCase {
$this->assertEquals($expected->getData(), $result->getData());
}
- public function testUpdateLinkShareExpireDateDoesNotChangeOther() {
+ public function testUpdateLinkShareExpireDateDoesNotChangeOther(): void {
$ocs = $this->mockFormatShare();
[$userFolder, $node] = $this->getNonSharedUserFolder();
@@ -3321,7 +3480,7 @@ class ShareAPIControllerTest extends TestCase {
->willReturn(42);
$share = $this->newShare();
- $share->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ $share->setPermissions(Constants::PERMISSION_ALL)
->setSharedBy($this->currentUser)
->setShareType(IShare::TYPE_LINK)
->setPassword('password')
@@ -3330,27 +3489,27 @@ class ShareAPIControllerTest extends TestCase {
->setNote('note')
->setLabel('label')
->setHideDownload(true)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ ->setPermissions(Constants::PERMISSION_ALL)
->setNode($node);
$node->expects($this->once())
->method('lock')
- ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
+ ->with(ILockingProvider::LOCK_SHARED);
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share);
$this->shareManager->expects($this->once())->method('updateShare')->with(
- $this->callback(function (\OCP\Share\IShare $share) {
+ $this->callback(function (IShare $share) {
$date = new \DateTime('2010-12-23');
$date->setTime(0, 0, 0);
- return $share->getPermissions() === \OCP\Constants::PERMISSION_ALL &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() == $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ return $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() == $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3358,9 +3517,9 @@ class ShareAPIControllerTest extends TestCase {
->with($this->currentUser)
->willReturn($userFolder);
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with(42)
- ->willReturn($node);
+ ->willReturn([$node]);
$mountPoint = $this->createMock(IMountPoint::class);
$node->method('getMountPoint')
@@ -3375,7 +3534,7 @@ class ShareAPIControllerTest extends TestCase {
$this->assertEquals($expected->getData(), $result->getData());
}
- public function testUpdateLinkSharePublicUploadDoesNotChangeOther() {
+ public function testUpdateLinkSharePublicUploadDoesNotChangeOther(): void {
$ocs = $this->mockFormatShare();
$date = new \DateTime('2000-01-01');
@@ -3384,8 +3543,8 @@ class ShareAPIControllerTest extends TestCase {
$folder->method('getId')
->willReturn(42);
- $share = \OC::$server->getShareManager()->newShare();
- $share->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ $share = Server::get(IManager::class)->newShare();
+ $share->setPermissions(Constants::PERMISSION_ALL)
->setSharedBy($this->currentUser)
->setShareType(IShare::TYPE_LINK)
->setPassword('password')
@@ -3394,21 +3553,21 @@ class ShareAPIControllerTest extends TestCase {
->setNote('note')
->setLabel('label')
->setHideDownload(true)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ ->setPermissions(Constants::PERMISSION_ALL)
->setNode($folder);
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share);
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true);
$this->shareManager->expects($this->once())->method('updateShare')->with(
- $this->callback(function (\OCP\Share\IShare $share) use ($date) {
- return $share->getPermissions() === (\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE) &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ $this->callback(function (IShare $share) use ($date) {
+ return $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE)
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3419,9 +3578,9 @@ class ShareAPIControllerTest extends TestCase {
->with($this->currentUser)
->willReturn($userFolder);
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with(42)
- ->willReturn($folder);
+ ->willReturn([$folder]);
$mountPoint = $this->createMock(IMountPoint::class);
$folder->method('getMountPoint')
@@ -3436,7 +3595,7 @@ class ShareAPIControllerTest extends TestCase {
$this->assertEquals($expected->getData(), $result->getData());
}
- public function testUpdateLinkSharePermissions() {
+ public function testUpdateLinkSharePermissions(): void {
$ocs = $this->mockFormatShare();
$date = new \DateTime('2000-01-01');
@@ -3445,8 +3604,8 @@ class ShareAPIControllerTest extends TestCase {
$folder->method('getId')
->willReturn(42);
- $share = \OC::$server->getShareManager()->newShare();
- $share->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ $share = Server::get(IManager::class)->newShare();
+ $share->setPermissions(Constants::PERMISSION_ALL)
->setSharedBy($this->currentUser)
->setShareType(IShare::TYPE_LINK)
->setPassword('password')
@@ -3455,21 +3614,21 @@ class ShareAPIControllerTest extends TestCase {
->setNote('note')
->setLabel('label')
->setHideDownload(true)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ ->setPermissions(Constants::PERMISSION_ALL)
->setNode($folder);
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share);
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true);
$this->shareManager->expects($this->once())->method('updateShare')->with(
- $this->callback(function (\OCP\Share\IShare $share) use ($date): bool {
- return $share->getPermissions() === (\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE) &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
+ $this->callback(function (IShare $share) use ($date): bool {
+ return $share->getPermissions() === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE)
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
})
)->willReturnArgument(0);
@@ -3479,9 +3638,9 @@ class ShareAPIControllerTest extends TestCase {
->with($this->currentUser)
->willReturn($userFolder);
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with(42)
- ->willReturn($folder);
+ ->willReturn([$folder]);
$mountPoint = $this->createMock(IMountPoint::class);
$folder->method('getMountPoint')
@@ -3496,7 +3655,7 @@ class ShareAPIControllerTest extends TestCase {
$this->assertEquals($expected->getData(), $result->getData());
}
- public function testUpdateLinkSharePermissionsShare() {
+ public function testUpdateLinkSharePermissionsShare(): void {
$ocs = $this->mockFormatShare();
$date = new \DateTime('2000-01-01');
@@ -3505,8 +3664,8 @@ class ShareAPIControllerTest extends TestCase {
$folder->method('getId')
->willReturn(42);
- $share = \OC::$server->getShareManager()->newShare();
- $share->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ $share = Server::get(IManager::class)->newShare();
+ $share->setPermissions(Constants::PERMISSION_ALL)
->setSharedBy($this->currentUser)
->setShareType(IShare::TYPE_LINK)
->setPassword('password')
@@ -3515,31 +3674,33 @@ class ShareAPIControllerTest extends TestCase {
->setNote('note')
->setLabel('label')
->setHideDownload(true)
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($folder);
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share);
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true);
- $this->shareManager->expects($this->once())->method('updateShare')->with(
- $this->callback(function (\OCP\Share\IShare $share) use ($date) {
- return $share->getPermissions() === (\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE) &&
- $share->getPassword() === 'password' &&
- $share->getSendPasswordByTalk() === true &&
- $share->getExpirationDate() === $date &&
- $share->getNote() === 'note' &&
- $share->getLabel() === 'label' &&
- $share->getHideDownload() === true;
- })
- )->willReturnArgument(0);
+ $this->shareManager->expects($this->once())
+ ->method('updateShare')
+ ->with(
+ $this->callback(function (IShare $share) use ($date) {
+ return $share->getPermissions() === Constants::PERMISSION_ALL
+ && $share->getPassword() === 'password'
+ && $share->getSendPasswordByTalk() === true
+ && $share->getExpirationDate() === $date
+ && $share->getNote() === 'note'
+ && $share->getLabel() === 'label'
+ && $share->getHideDownload() === true;
+ })
+ )->willReturnArgument(0);
$this->rootFolder->method('getUserFolder')
->with($this->currentUser)
->willReturn($userFolder);
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with(42)
- ->willReturn($folder);
+ ->willReturn([$folder]);
$mountPoint = $this->createMock(IMountPoint::class);
$folder->method('getMountPoint')
@@ -3550,21 +3711,21 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->method('getSharedWith')->willReturn([]);
$expected = new DataResponse([]);
- $result = $ocs->updateShare(42, 31, null, null, null, null, null, null, null);
+ $result = $ocs->updateShare(42, Constants::PERMISSION_ALL, null, null, null, null, null, null, null);
$this->assertInstanceOf(get_class($expected), $result);
$this->assertEquals($expected->getData(), $result->getData());
}
- public function testUpdateOtherPermissions() {
+ public function testUpdateOtherPermissions(): void {
$ocs = $this->mockFormatShare();
[$userFolder, $file] = $this->getNonSharedUserFolder();
$file->method('getId')
->willReturn(42);
- $share = \OC::$server->getShareManager()->newShare();
- $share->setPermissions(\OCP\Constants::PERMISSION_ALL)
+ $share = Server::get(IManager::class)->newShare();
+ $share->setPermissions(Constants::PERMISSION_ALL)
->setSharedBy($this->currentUser)
->setShareType(IShare::TYPE_USER)
->setNode($file);
@@ -3573,8 +3734,8 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true);
$this->shareManager->expects($this->once())->method('updateShare')->with(
- $this->callback(function (\OCP\Share\IShare $share) {
- return $share->getPermissions() === \OCP\Constants::PERMISSION_ALL;
+ $this->callback(function (IShare $share) {
+ return $share->getPermissions() === Constants::PERMISSION_ALL;
})
)->willReturnArgument(0);
@@ -3585,9 +3746,9 @@ class ShareAPIControllerTest extends TestCase {
->with($this->currentUser)
->willReturn($userFolder);
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with(42)
- ->willReturn($file);
+ ->willReturn([$file]);
$mountPoint = $this->createMock(IMountPoint::class);
$file->method('getMountPoint')
@@ -3602,33 +3763,33 @@ class ShareAPIControllerTest extends TestCase {
$this->assertEquals($expected->getData(), $result->getData());
}
- public function testUpdateShareCannotIncreasePermissions() {
+ public function testUpdateShareCannotIncreasePermissions(): void {
$ocs = $this->mockFormatShare();
[$userFolder, $folder] = $this->getNonSharedUserFolder();
$folder->method('getId')
->willReturn(42);
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share
->setId(42)
->setSharedBy($this->currentUser)
->setShareOwner('anotheruser')
->setShareType(IShare::TYPE_GROUP)
->setSharedWith('group1')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($folder);
// note: updateShare will modify the received instance but getSharedWith will reread from the database,
// so their values will be different
- $incomingShare = \OC::$server->getShareManager()->newShare();
+ $incomingShare = Server::get(IManager::class)->newShare();
$incomingShare
->setId(42)
->setSharedBy($this->currentUser)
->setShareOwner('anotheruser')
->setShareType(IShare::TYPE_GROUP)
->setSharedWith('group1')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($folder);
$this->request
@@ -3651,6 +3812,9 @@ class ShareAPIControllerTest extends TestCase {
->with($this->currentUser)
->willReturn($userFolder);
+ $userFolder->method('getById')
+ ->with(42)
+ ->willReturn([$folder]);
$userFolder->method('getFirstNodeById')
->with(42)
->willReturn($folder);
@@ -3674,33 +3838,33 @@ class ShareAPIControllerTest extends TestCase {
}
}
- public function testUpdateShareCanIncreasePermissionsIfOwner() {
+ public function testUpdateShareCanIncreasePermissionsIfOwner(): void {
$ocs = $this->mockFormatShare();
[$userFolder, $folder] = $this->getNonSharedUserFolder();
$folder->method('getId')
->willReturn(42);
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share
->setId(42)
->setSharedBy($this->currentUser)
->setShareOwner($this->currentUser)
->setShareType(IShare::TYPE_GROUP)
->setSharedWith('group1')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($folder);
// note: updateShare will modify the received instance but getSharedWith will reread from the database,
// so their values will be different
- $incomingShare = \OC::$server->getShareManager()->newShare();
+ $incomingShare = Server::get(IManager::class)->newShare();
$incomingShare
->setId(42)
->setSharedBy($this->currentUser)
->setShareOwner($this->currentUser)
->setShareType(IShare::TYPE_GROUP)
->setSharedWith('group1')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($folder);
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share);
@@ -3721,9 +3885,9 @@ class ShareAPIControllerTest extends TestCase {
->with($this->currentUser)
->willReturn($userFolder);
- $userFolder->method('getFirstNodeById')
+ $userFolder->method('getById')
->with(42)
- ->willReturn($folder);
+ ->willReturn([$folder]);
$mountPoint = $this->createMock(IMountPoint::class);
$folder->method('getMountPoint')
@@ -3735,6 +3899,64 @@ class ShareAPIControllerTest extends TestCase {
$this->assertInstanceOf(DataResponse::class, $result);
}
+ public function testUpdateShareOwnerless(): void {
+ $ocs = $this->mockFormatShare();
+
+ $mount = $this->createMock(IShareOwnerlessMount::class);
+
+ $file = $this->createMock(File::class);
+ $file
+ ->expects($this->exactly(2))
+ ->method('getPermissions')
+ ->willReturn(Constants::PERMISSION_SHARE);
+ $file
+ ->expects($this->once())
+ ->method('getMountPoint')
+ ->willReturn($mount);
+
+ $userFolder = $this->createMock(Folder::class);
+ $userFolder->method('getById')
+ ->with(2)
+ ->willReturn([$file]);
+ $userFolder->method('getFirstNodeById')
+ ->with(2)
+ ->willReturn($file);
+
+ $this->rootFolder
+ ->method('getUserFolder')
+ ->with($this->currentUser)
+ ->willReturn($userFolder);
+
+ $share = $this->createMock(IShare::class);
+ $share
+ ->expects($this->once())
+ ->method('getNode')
+ ->willReturn($file);
+ $share
+ ->expects($this->exactly(2))
+ ->method('getNodeId')
+ ->willReturn(2);
+ $share
+ ->expects($this->exactly(2))
+ ->method('getPermissions')
+ ->willReturn(Constants::PERMISSION_SHARE);
+
+ $this->shareManager
+ ->expects($this->once())
+ ->method('getShareById')
+ ->with('ocinternal:1', $this->currentUser)
+ ->willReturn($share);
+
+ $this->shareManager
+ ->expects($this->once())
+ ->method('updateShare')
+ ->with($share)
+ ->willReturn($share);
+
+ $result = $ocs->updateShare(1, Constants::PERMISSION_ALL);
+ $this->assertInstanceOf(DataResponse::class, $result);
+ }
+
public function dataFormatShare() {
$file = $this->getMockBuilder(File::class)->getMock();
$folder = $this->getMockBuilder(Folder::class)->getMock();
@@ -3745,6 +3967,12 @@ class ShareAPIControllerTest extends TestCase {
$folder->method('getMimeType')->willReturn('myFolderMimeType');
$fileWithPreview->method('getMimeType')->willReturn('mimeWithPreview');
+ $mountPoint = $this->createMock(IMountPoint::class);
+ $mountPoint->method('getMountType')->willReturn('');
+ $file->method('getMountPoint')->willReturn($mountPoint);
+ $folder->method('getMountPoint')->willReturn($mountPoint);
+ $fileWithPreview->method('getMountPoint')->willReturn($mountPoint);
+
$file->method('getPath')->willReturn('file');
$folder->method('getPath')->willReturn('folder');
$fileWithPreview->method('getPath')->willReturn('fileWithPreview');
@@ -3767,7 +3995,7 @@ class ShareAPIControllerTest extends TestCase {
$cache = $this->getMockBuilder('OCP\Files\Cache\ICache')->getMock();
$cache->method('getNumericStorageId')->willReturn(100);
- $storage = $this->createMock(Storage::class);
+ $storage = $this->createMock(IStorage::class);
$storage->method('getId')->willReturn('storageId');
$storage->method('getCache')->willReturn($cache);
@@ -3775,6 +4003,12 @@ class ShareAPIControllerTest extends TestCase {
$folder->method('getStorage')->willReturn($storage);
$fileWithPreview->method('getStorage')->willReturn($storage);
+
+ $mountPoint = $this->getMockBuilder(IMountPoint::class)->getMock();
+ $mountPoint->method('getMountType')->willReturn('');
+ $file->method('getMountPoint')->willReturn($mountPoint);
+ $folder->method('getMountPoint')->willReturn($mountPoint);
+
$owner = $this->getMockBuilder(IUser::class)->getMock();
$owner->method('getDisplayName')->willReturn('ownerDN');
$initiator = $this->getMockBuilder(IUser::class)->getMock();
@@ -3786,12 +4020,12 @@ class ShareAPIControllerTest extends TestCase {
$result = [];
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share->setShareType(IShare::TYPE_USER)
->setSharedWith('recipient')
->setSharedBy('initiator')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setAttributes($shareAttributes)
->setNode($file)
->setShareTime(new \DateTime('2000-01-01T00:01:02'))
@@ -3835,7 +4069,10 @@ class ShareAPIControllerTest extends TestCase {
'can_delete' => false,
'item_size' => 123456,
'item_mtime' => 1234567890,
- 'attributes' => '[{"scope":"permissions","key":"download","enabled":true}]',
+ 'is-mount-root' => false,
+ 'mount-type' => '',
+ 'attributes' => '[{"scope":"permissions","key":"download","value":true}]',
+ 'item_permissions' => 1,
], $share, [], false
];
// User backend up
@@ -3874,7 +4111,10 @@ class ShareAPIControllerTest extends TestCase {
'can_delete' => false,
'item_size' => 123456,
'item_mtime' => 1234567890,
- 'attributes' => '[{"scope":"permissions","key":"download","enabled":true}]',
+ 'is-mount-root' => false,
+ 'mount-type' => '',
+ 'attributes' => '[{"scope":"permissions","key":"download","value":true}]',
+ 'item_permissions' => 1,
], $share, [
['owner', $owner],
['initiator', $initiator],
@@ -3882,12 +4122,12 @@ class ShareAPIControllerTest extends TestCase {
], false
];
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share->setShareType(IShare::TYPE_USER)
->setSharedWith('recipient')
->setSharedBy('initiator')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($file)
->setShareTime(new \DateTime('2000-01-01T00:01:02'))
->setTarget('myTarget')
@@ -3929,16 +4169,19 @@ class ShareAPIControllerTest extends TestCase {
'can_delete' => false,
'item_size' => 123456,
'item_mtime' => 1234567890,
+ 'is-mount-root' => false,
+ 'mount-type' => '',
'attributes' => null,
+ 'item_permissions' => 1,
], $share, [], false
];
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share->setShareType(IShare::TYPE_USER)
->setSharedWith('recipient')
->setSharedBy('initiator')
->setShareOwner('currentUser')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($file)
->setShareTime(new \DateTime('2000-01-01T00:01:02'))
->setTarget('myTarget')
@@ -3980,18 +4223,21 @@ class ShareAPIControllerTest extends TestCase {
'can_delete' => true,
'item_size' => 123456,
'item_mtime' => 1234567890,
+ 'is-mount-root' => false,
+ 'mount-type' => '',
'attributes' => null,
+ 'item_permissions' => 11,
], $share, [], false
];
// with existing group
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share->setShareType(IShare::TYPE_GROUP)
->setSharedWith('recipientGroup')
->setSharedBy('initiator')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($file)
->setShareTime(new \DateTime('2000-01-01T00:01:02'))
->setTarget('myTarget')
@@ -4032,17 +4278,20 @@ class ShareAPIControllerTest extends TestCase {
'can_delete' => false,
'item_size' => 123456,
'item_mtime' => 1234567890,
+ 'is-mount-root' => false,
+ 'mount-type' => '',
'attributes' => null,
+ 'item_permissions' => 1,
], $share, [], false
];
// with unknown group / no group backend
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share->setShareType(IShare::TYPE_GROUP)
->setSharedWith('recipientGroup2')
->setSharedBy('initiator')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($file)
->setShareTime(new \DateTime('2000-01-01T00:01:02'))
->setTarget('myTarget')
@@ -4081,15 +4330,18 @@ class ShareAPIControllerTest extends TestCase {
'can_delete' => false,
'item_size' => 123456,
'item_mtime' => 1234567890,
+ 'is-mount-root' => false,
+ 'mount-type' => '',
'attributes' => null,
+ 'item_permissions' => 1,
], $share, [], false
];
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share->setShareType(IShare::TYPE_LINK)
->setSharedBy('initiator')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($file)
->setShareTime(new \DateTime('2000-01-01T00:01:02'))
->setTarget('myTarget')
@@ -4137,15 +4389,18 @@ class ShareAPIControllerTest extends TestCase {
'can_delete' => false,
'item_size' => 123456,
'item_mtime' => 1234567890,
+ 'is-mount-root' => false,
+ 'mount-type' => '',
'attributes' => null,
+ 'item_permissions' => 1,
], $share, [], false
];
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share->setShareType(IShare::TYPE_LINK)
->setSharedBy('initiator')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($file)
->setShareTime(new \DateTime('2000-01-01T00:01:02'))
->setTarget('myTarget')
@@ -4193,16 +4448,19 @@ class ShareAPIControllerTest extends TestCase {
'can_delete' => false,
'item_size' => 123456,
'item_mtime' => 1234567890,
+ 'is-mount-root' => false,
+ 'mount-type' => '',
'attributes' => null,
+ 'item_permissions' => 1,
], $share, [], false
];
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share->setShareType(IShare::TYPE_REMOTE)
->setSharedBy('initiator')
->setSharedWith('user@server.com')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($folder)
->setShareTime(new \DateTime('2000-01-01T00:01:02'))
->setExpirationDate(new \DateTime('2001-02-03T04:05:06'))
@@ -4243,16 +4501,20 @@ class ShareAPIControllerTest extends TestCase {
'can_delete' => false,
'item_size' => 123456,
'item_mtime' => 1234567890,
+ 'is-mount-root' => false,
+ 'mount-type' => '',
'attributes' => null,
+ 'item_permissions' => 1,
+ 'is_trusted_server' => false,
], $share, [], false
];
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share->setShareType(IShare::TYPE_REMOTE_GROUP)
->setSharedBy('initiator')
->setSharedWith('user@server.com')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($folder)
->setShareTime(new \DateTime('2000-01-01T00:01:02'))
->setExpirationDate(new \DateTime('2001-02-03T04:05:06'))
@@ -4293,19 +4555,23 @@ class ShareAPIControllerTest extends TestCase {
'can_delete' => false,
'item_size' => 123456,
'item_mtime' => 1234567890,
+ 'is-mount-root' => false,
+ 'mount-type' => '',
'attributes' => null,
+ 'item_permissions' => 1,
+ 'is_trusted_server' => false,
], $share, [], false
];
// Circle with id, display name and avatar set by the Circles app
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share->setShareType(IShare::TYPE_CIRCLE)
->setSharedBy('initiator')
->setSharedWith('Circle (Public circle, circleOwner) [4815162342]')
->setSharedWithDisplayName('The display name')
->setSharedWithAvatar('path/to/the/avatar')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($folder)
->setShareTime(new \DateTime('2000-01-01T00:01:02'))
->setTarget('myTarget')
@@ -4346,17 +4612,20 @@ class ShareAPIControllerTest extends TestCase {
'can_delete' => false,
'item_size' => 123456,
'item_mtime' => 1234567890,
+ 'is-mount-root' => false,
+ 'mount-type' => '',
'attributes' => null,
+ 'item_permissions' => 1,
], $share, [], false
];
// Circle with id set by the Circles app
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share->setShareType(IShare::TYPE_CIRCLE)
->setSharedBy('initiator')
->setSharedWith('Circle (Public circle, circleOwner) [4815162342]')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($folder)
->setShareTime(new \DateTime('2000-01-01T00:01:02'))
->setTarget('myTarget')
@@ -4396,17 +4665,20 @@ class ShareAPIControllerTest extends TestCase {
'can_delete' => false,
'item_size' => 123456,
'item_mtime' => 1234567890,
+ 'is-mount-root' => false,
+ 'mount-type' => '',
'attributes' => null,
+ 'item_permissions' => 1,
], $share, [], false
];
// Circle with id not set by the Circles app
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share->setShareType(IShare::TYPE_CIRCLE)
->setSharedBy('initiator')
->setSharedWith('Circle (Public circle, circleOwner)')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($folder)
->setShareTime(new \DateTime('2000-01-01T00:01:02'))
->setTarget('myTarget')
@@ -4446,16 +4718,19 @@ class ShareAPIControllerTest extends TestCase {
'can_delete' => false,
'item_size' => 123456,
'item_mtime' => 1234567890,
+ 'is-mount-root' => false,
+ 'mount-type' => '',
'attributes' => null,
+ 'item_permissions' => 1,
], $share, [], false
];
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share->setShareType(IShare::TYPE_USER)
->setSharedBy('initiator')
->setSharedWith('recipient')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setShareTime(new \DateTime('2000-01-01T00:01:02'))
->setTarget('myTarget')
->setNote('personal note')
@@ -4465,12 +4740,12 @@ class ShareAPIControllerTest extends TestCase {
[], $share, [], true
];
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share->setShareType(IShare::TYPE_EMAIL)
->setSharedBy('initiator')
->setSharedWith('user@server.com')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($folder)
->setShareTime(new \DateTime('2000-01-01T00:01:02'))
->setTarget('myTarget')
@@ -4513,16 +4788,19 @@ class ShareAPIControllerTest extends TestCase {
'password_expiration_time' => null,
'item_size' => 123456,
'item_mtime' => 1234567890,
+ 'is-mount-root' => false,
+ 'mount-type' => '',
'attributes' => null,
+ 'item_permissions' => 1,
], $share, [], false
];
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share->setShareType(IShare::TYPE_EMAIL)
->setSharedBy('initiator')
->setSharedWith('user@server.com')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($folder)
->setShareTime(new \DateTime('2000-01-01T00:01:02'))
->setTarget('myTarget')
@@ -4566,17 +4844,20 @@ class ShareAPIControllerTest extends TestCase {
'password_expiration_time' => null,
'item_size' => 123456,
'item_mtime' => 1234567890,
+ 'is-mount-root' => false,
+ 'mount-type' => '',
'attributes' => null,
+ 'item_permissions' => 1,
], $share, [], false
];
// Preview is available
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share->setShareType(IShare::TYPE_USER)
->setSharedWith('recipient')
->setSharedBy('initiator')
->setShareOwner('currentUser')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($fileWithPreview)
->setShareTime(new \DateTime('2000-01-01T00:01:02'))
->setTarget('myTarget')
@@ -4617,7 +4898,10 @@ class ShareAPIControllerTest extends TestCase {
'can_delete' => true,
'item_size' => 123456,
'item_mtime' => 1234567890,
+ 'is-mount-root' => false,
+ 'mount-type' => '',
'attributes' => null,
+ 'item_permissions' => 11,
], $share, [], false
];
@@ -4625,14 +4909,14 @@ class ShareAPIControllerTest extends TestCase {
}
/**
- * @dataProvider dataFormatShare
*
* @param array $expects
- * @param \OCP\Share\IShare $share
+ * @param IShare $share
* @param array $users
* @param $exception
*/
- public function testFormatShare(array $expects, \OCP\Share\IShare $share, array $users, $exception) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFormatShare')]
+ public function testFormatShare(array $expects, IShare $share, array $users, $exception): void {
$this->userManager->method('get')->willReturnMap($users);
$recipientGroup = $this->createMock(IGroup::class);
@@ -4720,9 +5004,13 @@ class ShareAPIControllerTest extends TestCase {
$file->method('getSize')->willReturn(123456);
$file->method('getMTime')->willReturn(1234567890);
+ $mountPoint = $this->getMockBuilder(IMountPoint::class)->getMock();
+ $mountPoint->method('getMountType')->willReturn('');
+ $file->method('getMountPoint')->willReturn($mountPoint);
+
$cache = $this->getMockBuilder('OCP\Files\Cache\ICache')->getMock();
$cache->method('getNumericStorageId')->willReturn(100);
- $storage = $this->createMock(Storage::class);
+ $storage = $this->createMock(IStorage::class);
$storage->method('getId')->willReturn('storageId');
$storage->method('getCache')->willReturn($cache);
@@ -4730,12 +5018,12 @@ class ShareAPIControllerTest extends TestCase {
$result = [];
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share->setShareType(IShare::TYPE_ROOM)
->setSharedWith('recipientRoom')
->setSharedBy('initiator')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($file)
->setShareTime(new \DateTime('2000-01-01T00:01:02'))
->setTarget('myTarget')
@@ -4775,16 +5063,19 @@ class ShareAPIControllerTest extends TestCase {
'can_delete' => false,
'item_size' => 123456,
'item_mtime' => 1234567890,
+ 'is-mount-root' => false,
+ 'mount-type' => '',
'attributes' => null,
+ 'item_permissions' => 1,
], $share, false, []
];
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(IManager::class)->newShare();
$share->setShareType(IShare::TYPE_ROOM)
->setSharedWith('recipientRoom')
->setSharedBy('initiator')
->setShareOwner('owner')
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setNode($file)
->setShareTime(new \DateTime('2000-01-01T00:01:02'))
->setTarget('myTarget')
@@ -4824,7 +5115,10 @@ class ShareAPIControllerTest extends TestCase {
'can_delete' => false,
'item_size' => 123456,
'item_mtime' => 1234567890,
+ 'is-mount-root' => false,
+ 'mount-type' => '',
'attributes' => null,
+ 'item_permissions' => 9,
], $share, true, [
'share_with_displayname' => 'recipientRoomName'
]
@@ -4834,14 +5128,14 @@ class ShareAPIControllerTest extends TestCase {
}
/**
- * @dataProvider dataFormatRoomShare
*
* @param array $expects
- * @param \OCP\Share\IShare $share
+ * @param IShare $share
* @param bool $helperAvailable
* @param array $formatShareByHelper
*/
- public function testFormatRoomShare(array $expects, \OCP\Share\IShare $share, bool $helperAvailable, array $formatShareByHelper) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataFormatRoomShare')]
+ public function testFormatRoomShare(array $expects, IShare $share, bool $helperAvailable, array $formatShareByHelper): void {
$this->rootFolder->method('getUserFolder')
->with($this->currentUser)
->willReturnSelf();
@@ -4863,12 +5157,18 @@ class ShareAPIControllerTest extends TestCase {
->with('spreed')
->willReturn(true);
- $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
- ->setMethods(['formatShare'])
+ // This is not possible anymore with PHPUnit 10+
+ // as `setMethods` was removed and now real reflection is used, thus the class needs to exist.
+ // $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
+ $helper = $this->getMockBuilder(\stdClass::class)
+ ->addMethods(['formatShare', 'canAccessShare'])
->getMock();
$helper->method('formatShare')
->with($share)
->willReturn($formatShareByHelper);
+ $helper->method('canAccessShare')
+ ->with($share)
+ ->willReturn(true);
$this->serverContainer->method('get')
->with('\OCA\Talk\Share\Helper\ShareAPIController')
@@ -4879,10 +5179,13 @@ class ShareAPIControllerTest extends TestCase {
$this->assertEquals($expects, $result);
}
+ /**
+ * @return list{Folder, Folder}
+ */
private function getNonSharedUserFolder(): array {
$node = $this->getMockBuilder(Folder::class)->getMock();
$userFolder = $this->getMockBuilder(Folder::class)->getMock();
- $storage = $this->createMock(Storage::class);
+ $storage = $this->createMock(IStorage::class);
$storage->method('instanceOfStorage')
->willReturnMap([
['OCA\Files_Sharing\External\Storage', false],
@@ -4891,13 +5194,19 @@ class ShareAPIControllerTest extends TestCase {
$userFolder->method('getStorage')->willReturn($storage);
$node->method('getStorage')->willReturn($storage);
$node->method('getId')->willReturn(42);
+ $user = $this->createMock(IUser::class);
+ $user->method('getUID')->willReturn($this->currentUser);
+ $node->method('getOwner')->willReturn($user);
return [$userFolder, $node];
}
+ /**
+ * @return list{Folder, File}
+ */
private function getNonSharedUserFile(): array {
$node = $this->getMockBuilder(File::class)->getMock();
$userFolder = $this->getMockBuilder(Folder::class)->getMock();
- $storage = $this->createMock(Storage::class);
+ $storage = $this->createMock(IStorage::class);
$storage->method('instanceOfStorage')
->willReturnMap([
['OCA\Files_Sharing\External\Storage', false],
@@ -4908,4 +5217,164 @@ class ShareAPIControllerTest extends TestCase {
$node->method('getId')->willReturn(42);
return [$userFolder, $node];
}
+
+ public function testPopulateTags(): void {
+ $tagger = $this->createMock(ITags::class);
+ $this->tagManager->method('load')
+ ->with('files')
+ ->willReturn($tagger);
+ $data = [
+ ['file_source' => 10],
+ ['file_source' => 22, 'foo' => 'bar'],
+ ['file_source' => 42, 'x' => 'y'],
+ ];
+ $tags = [
+ 10 => ['tag3'],
+ 42 => ['tag1', 'tag2'],
+ ];
+ $tagger->method('getTagsForObjects')
+ ->with([10, 22, 42])
+ ->willReturn($tags);
+
+ $result = self::invokePrivate($this->ocs, 'populateTags', [$data]);
+ $this->assertSame([
+ ['file_source' => 10, 'tags' => ['tag3']],
+ ['file_source' => 22, 'foo' => 'bar', 'tags' => []],
+ ['file_source' => 42, 'x' => 'y', 'tags' => ['tag1', 'tag2']],
+ ], $result);
+ }
+
+ public function trustedServerProvider(): array {
+ return [
+ 'Trusted server' => [true, true],
+ 'Untrusted server' => [false, false],
+ ];
+ }
+
+ /**
+ * @dataProvider trustedServerProvider
+ */
+ public function testFormatShareWithFederatedShare(bool $isKnownServer, bool $isTrusted): void {
+ $nodeId = 12;
+ $nodePath = '/test.txt';
+ $share = $this->createShare(
+ 1,
+ IShare::TYPE_REMOTE,
+ 'recipient@remoteserver.com', // shared with
+ 'sender@testserver.com', // shared by
+ 'shareOwner', // share owner
+ $nodePath, // path
+ Constants::PERMISSION_READ,
+ time(),
+ null,
+ null,
+ $nodePath,
+ $nodeId
+ );
+
+ $node = $this->createMock(\OCP\Files\File::class);
+ $node->method('getId')->willReturn($nodeId);
+ $node->method('getPath')->willReturn($nodePath);
+ $node->method('getInternalPath')->willReturn(ltrim($nodePath, '/'));
+ $mountPoint = $this->createMock(\OCP\Files\Mount\IMountPoint::class);
+ $mountPoint->method('getMountType')->willReturn('local');
+ $node->method('getMountPoint')->willReturn($mountPoint);
+ $node->method('getMimetype')->willReturn('text/plain');
+ $storage = $this->createMock(\OCP\Files\Storage\IStorage::class);
+ $storageCache = $this->createMock(\OCP\Files\Cache\ICache::class);
+ $storageCache->method('getNumericStorageId')->willReturn(1);
+ $storage->method('getCache')->willReturn($storageCache);
+ $storage->method('getId')->willReturn('home::shareOwner');
+ $node->method('getStorage')->willReturn($storage);
+ $parent = $this->createMock(\OCP\Files\Folder::class);
+ $parent->method('getId')->willReturn(2);
+ $node->method('getParent')->willReturn($parent);
+ $node->method('getSize')->willReturn(1234);
+ $node->method('getMTime')->willReturn(1234567890);
+
+ $this->previewManager->method('isAvailable')->with($node)->willReturn(false);
+
+ $this->rootFolder->method('getUserFolder')
+ ->with($this->currentUser)
+ ->willReturnSelf();
+
+ $this->rootFolder->method('getFirstNodeById')
+ ->with($share->getNodeId())
+ ->willReturn($node);
+
+ $this->rootFolder->method('getRelativePath')
+ ->with($node->getPath())
+ ->willReturnArgument(0);
+
+ $serverName = 'remoteserver.com';
+ $this->trustedServers->method('isTrustedServer')
+ ->with($serverName)
+ ->willReturn($isKnownServer);
+
+ $result = $this->invokePrivate($this->ocs, 'formatShare', [$share]);
+
+ $this->assertSame($isTrusted, $result['is_trusted_server']);
+ }
+
+ public function testFormatShareWithFederatedShareWithAtInUsername(): void {
+ $nodeId = 12;
+ $nodePath = '/test.txt';
+ $share = $this->createShare(
+ 1,
+ IShare::TYPE_REMOTE,
+ 'recipient@domain.com@remoteserver.com',
+ 'sender@testserver.com',
+ 'shareOwner',
+ $nodePath,
+ Constants::PERMISSION_READ,
+ time(),
+ null,
+ null,
+ $nodePath,
+ $nodeId
+ );
+
+ $node = $this->createMock(\OCP\Files\File::class);
+ $node->method('getId')->willReturn($nodeId);
+ $node->method('getPath')->willReturn($nodePath);
+ $node->method('getInternalPath')->willReturn(ltrim($nodePath, '/'));
+ $mountPoint = $this->createMock(\OCP\Files\Mount\IMountPoint::class);
+ $mountPoint->method('getMountType')->willReturn('local');
+ $node->method('getMountPoint')->willReturn($mountPoint);
+ $node->method('getMimetype')->willReturn('text/plain');
+ $storage = $this->createMock(\OCP\Files\Storage\IStorage::class);
+ $storageCache = $this->createMock(\OCP\Files\Cache\ICache::class);
+ $storageCache->method('getNumericStorageId')->willReturn(1);
+ $storage->method('getCache')->willReturn($storageCache);
+ $storage->method('getId')->willReturn('home::shareOwner');
+ $node->method('getStorage')->willReturn($storage);
+ $parent = $this->createMock(\OCP\Files\Folder::class);
+ $parent->method('getId')->willReturn(2);
+ $node->method('getParent')->willReturn($parent);
+ $node->method('getSize')->willReturn(1234);
+ $node->method('getMTime')->willReturn(1234567890);
+
+ $this->previewManager->method('isAvailable')->with($node)->willReturn(false);
+
+ $this->rootFolder->method('getUserFolder')
+ ->with($this->currentUser)
+ ->willReturnSelf();
+
+ $this->rootFolder->method('getFirstNodeById')
+ ->with($share->getNodeId())
+ ->willReturn($node);
+
+ $this->rootFolder->method('getRelativePath')
+ ->with($node->getPath())
+ ->willReturnArgument(0);
+
+ $serverName = 'remoteserver.com';
+ $this->trustedServers->method('isTrustedServer')
+ ->with($serverName)
+ ->willReturn(true);
+
+ $result = $this->invokePrivate($this->ocs, 'formatShare', [$share]);
+
+ $this->assertTrue($result['is_trusted_server']);
+ }
}
diff --git a/apps/files_sharing/tests/Controller/ShareControllerTest.php b/apps/files_sharing/tests/Controller/ShareControllerTest.php
index c8dc6c5de66..011210aff42 100644
--- a/apps/files_sharing/tests/Controller/ShareControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ShareControllerTest.php
@@ -1,37 +1,9 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Calviño Sánchez <danxuliu@gmail.com>
- * @author Georg Ehrke <oc.list@georgehrke.com>
- * @author Joas Schilling <coding@schilljs.com>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Michael Weimann <mail@michael-weimann.eu>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests\Controllers;
@@ -46,18 +18,20 @@ use OCP\Accounts\IAccount;
use OCP\Accounts\IAccountManager;
use OCP\Accounts\IAccountProperty;
use OCP\Activity\IManager;
+use OCP\AppFramework\Http\ContentSecurityPolicy;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Http\Template\ExternalShareMenuAction;
use OCP\AppFramework\Http\Template\LinkMenuAction;
use OCP\AppFramework\Http\Template\PublicTemplateResponse;
use OCP\AppFramework\Http\Template\SimpleMenuAction;
+use OCP\AppFramework\Services\IInitialState;
use OCP\Constants;
use OCP\Defaults;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\File;
use OCP\Files\IRootFolder;
use OCP\Files\NotFoundException;
-use OCP\Files\Storage;
+use OCP\IAppConfig;
use OCP\IConfig;
use OCP\IL10N;
use OCP\IPreview;
@@ -67,7 +41,9 @@ use OCP\IURLGenerator;
use OCP\IUser;
use OCP\IUserManager;
use OCP\Security\ISecureRandom;
+use OCP\Server;
use OCP\Share\Exceptions\ShareNotFound;
+use OCP\Share\IAttributes;
use OCP\Share\IPublicShareTemplateFactory;
use OCP\Share\IShare;
use PHPUnit\Framework\MockObject\MockObject;
@@ -78,41 +54,27 @@ use PHPUnit\Framework\MockObject\MockObject;
* @package OCA\Files_Sharing\Controllers
*/
class ShareControllerTest extends \Test\TestCase {
- /** @var string */
- private $user;
- /** @var string */
- private $oldUser;
-
- /** @var string */
- private $appName = 'files_sharing';
- /** @var ShareController */
- private $shareController;
- /** @var IURLGenerator|MockObject */
- private $urlGenerator;
- /** @var ISession|MockObject */
- private $session;
- /** @var \OCP\IPreview|MockObject */
- private $previewManager;
- /** @var \OCP\IConfig|MockObject */
- private $config;
- /** @var \OC\Share20\Manager|MockObject */
- private $shareManager;
- /** @var IUserManager|MockObject */
- private $userManager;
- /** @var FederatedShareProvider|MockObject */
- private $federatedShareProvider;
- /** @var IAccountManager|MockObject */
- private $accountManager;
- /** @var IEventDispatcher|MockObject */
- private $eventDispatcher;
- /** @var IL10N */
- private $l10n;
- /** @var ISecureRandom */
- private $secureRandom;
- /** @var Defaults|MockObject */
- private $defaults;
- /** @var IPublicShareTemplateFactory|MockObject */
- private $publicShareTemplateFactory;
+
+ private string $user;
+ private string $oldUser;
+ private string $appName = 'files_sharing';
+ private ShareController $shareController;
+
+ private IL10N&MockObject $l10n;
+ private IConfig&MockObject $config;
+ private ISession&MockObject $session;
+ private Defaults&MockObject $defaults;
+ private IAppConfig&MockObject $appConfig;
+ private Manager&MockObject $shareManager;
+ private IPreview&MockObject $previewManager;
+ private IUserManager&MockObject $userManager;
+ private IInitialState&MockObject $initialState;
+ private IURLGenerator&MockObject $urlGenerator;
+ private ISecureRandom&MockObject $secureRandom;
+ private IAccountManager&MockObject $accountManager;
+ private IEventDispatcher&MockObject $eventDispatcher;
+ private FederatedShareProvider&MockObject $federatedShareProvider;
+ private IPublicShareTemplateFactory&MockObject $publicShareTemplateFactory;
protected function setUp(): void {
parent::setUp();
@@ -123,7 +85,9 @@ class ShareControllerTest extends \Test\TestCase {
$this->session = $this->createMock(ISession::class);
$this->previewManager = $this->createMock(IPreview::class);
$this->config = $this->createMock(IConfig::class);
+ $this->appConfig = $this->createMock(IAppConfig::class);
$this->userManager = $this->createMock(IUserManager::class);
+ $this->initialState = $this->createMock(IInitialState::class);
$this->federatedShareProvider = $this->createMock(FederatedShareProvider::class);
$this->federatedShareProvider->expects($this->any())
->method('isOutgoingServer2serverShareEnabled')->willReturn(true);
@@ -150,10 +114,12 @@ class ShareControllerTest extends \Test\TestCase {
$this->defaults,
$this->config,
$this->createMock(IRequest::class),
+ $this->initialState,
+ $this->appConfig,
)
);
- $this->shareController = new \OCA\Files_Sharing\Controller\ShareController(
+ $this->shareController = new ShareController(
$this->appName,
$this->createMock(IRequest::class),
$this->config,
@@ -178,9 +144,9 @@ class ShareControllerTest extends \Test\TestCase {
$this->oldUser = \OC_User::getUser();
// Create a dummy user
- $this->user = \OC::$server->getSecureRandom()->generate(12, ISecureRandom::CHAR_LOWER);
+ $this->user = Server::get(ISecureRandom::class)->generate(12, ISecureRandom::CHAR_LOWER);
- \OC::$server->getUserManager()->createUser($this->user, $this->user);
+ Server::get(IUserManager::class)->createUser($this->user, $this->user);
\OC_Util::tearDownFS();
$this->loginAsUser($this->user);
}
@@ -189,13 +155,13 @@ class ShareControllerTest extends \Test\TestCase {
\OC_Util::tearDownFS();
\OC_User::setUserId('');
Filesystem::tearDown();
- $user = \OC::$server->getUserManager()->get($this->user);
+ $user = Server::get(IUserManager::class)->get($this->user);
if ($user !== null) {
$user->delete();
}
\OC_User::setIncognitoMode(false);
- \OC::$server->getSession()->set('public_link_authenticated', '');
+ Server::get(ISession::class)->set('public_link_authenticated', '');
// Set old user
\OC_User::setUserId($this->oldUser);
@@ -203,14 +169,14 @@ class ShareControllerTest extends \Test\TestCase {
parent::tearDown();
}
- public function testShowShareInvalidToken() {
+ public function testShowShareInvalidToken(): void {
$this->shareController->setToken('invalidtoken');
$this->shareManager
->expects($this->once())
->method('getShareByToken')
->with('invalidtoken')
- ->will($this->throwException(new ShareNotFound()));
+ ->willThrowException(new ShareNotFound());
$this->expectException(NotFoundException::class);
@@ -218,10 +184,10 @@ class ShareControllerTest extends \Test\TestCase {
$this->shareController->showShare();
}
- public function testShowShareNotAuthenticated() {
+ public function testShowShareNotAuthenticated(): void {
$this->shareController->setToken('validtoken');
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(\OCP\Share\IManager::class)->newShare();
$share->setPassword('password');
$this->shareManager
@@ -237,7 +203,7 @@ class ShareControllerTest extends \Test\TestCase {
}
- public function testShowShare() {
+ public function testShowShare(): void {
$note = 'personal note';
$filename = 'file1.txt';
@@ -273,29 +239,36 @@ class ShareControllerTest extends \Test\TestCase {
->with($owner)
->willReturn($account);
- $share = \OC::$server->getShareManager()->newShare();
- $share->setId(42);
- $share->setPassword('password')
+ /** @var Manager */
+ $manager = Server::get(Manager::class);
+ $share = $manager->newShare();
+ $share->setId(42)
+ ->setPermissions(Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE)
+ ->setPassword('password')
->setShareOwner('ownerUID')
->setSharedBy('initiatorUID')
->setNode($file)
->setNote($note)
- ->setTarget("/$filename");
+ ->setTarget("/$filename")
+ ->setToken('token');
$this->session->method('exists')->with('public_link_authenticated')->willReturn(true);
$this->session->method('get')->with('public_link_authenticated')->willReturn('42');
- $this->urlGenerator->expects($this->exactly(3))
+ $this->urlGenerator->expects(self::atLeast(2))
->method('linkToRouteAbsolute')
- ->withConsecutive(
- ['files_sharing.sharecontroller.downloadShare', ['token' => 'token', 'filename' => $filename]],
- ['files_sharing.sharecontroller.showShare', ['token' => 'token']],
- ['files_sharing.PublicPreview.getPreview', ['token' => 'token', 'x' => 200, 'y' => 200, 'file' => '/'.$filename]],
- )->willReturnOnConsecutiveCalls(
- 'downloadURL',
- 'shareUrl',
- 'previewImage',
- );
+ ->willReturnMap([
+ // every file has the show show share url in the opengraph url prop
+ ['files_sharing.sharecontroller.showShare', ['token' => 'token'], 'shareUrl'],
+ // this share is not an image to the default preview is used
+ ['files_sharing.PublicPreview.getPreview', ['x' => 256, 'y' => 256, 'file' => $share->getTarget(), 'token' => 'token'], 'previewUrl'],
+ ]);
+
+ $this->urlGenerator->expects($this->once())
+ ->method('getAbsoluteURL')
+ ->willReturnMap([
+ ['/public.php/dav/files/token/?accept=zip', 'downloadUrl'],
+ ]);
$this->previewManager->method('isMimeSupported')->with('text/plain')->willReturn(true);
@@ -308,19 +281,12 @@ class ShareControllerTest extends \Test\TestCase {
['preview_max_y', 1024, 1024],
]
);
- $shareTmpl['maxSizeAnimateGif'] = $this->config->getSystemValue('max_filesize_animated_gifs_public_sharing', 10);
- $shareTmpl['previewEnabled'] = $this->config->getSystemValue('enable_previews', true);
$this->shareManager
->expects($this->once())
->method('getShareByToken')
->with('token')
->willReturn($share);
- $this->config
- ->expects($this->once())
- ->method('getAppValue')
- ->with('core', 'shareapi_public_link_disclaimertext', null)
- ->willReturn('My disclaimer text');
$this->userManager->method('get')->willReturnCallback(function (string $uid) use ($owner, $initiator) {
if ($uid === 'ownerUID') {
@@ -352,55 +318,50 @@ class ShareControllerTest extends \Test\TestCase {
->method('getProductName')
->willReturn('Nextcloud');
- $response = $this->shareController->showShare();
- $sharedTmplParams = [
- 'owner' => 'ownerUID',
- 'filename' => $filename,
- 'directory_path' => "/$filename",
- 'mimetype' => 'text/plain',
- 'dirToken' => 'token',
+ // Ensure the correct initial state is setup
+ // Shared node is a file so this is a single file share:
+ $view = 'public-file-share';
+ // Set up initial state
+ $initialState = [];
+ $this->initialState->expects(self::any())
+ ->method('provideInitialState')
+ ->willReturnCallback(function ($key, $value) use (&$initialState): void {
+ $initialState[$key] = $value;
+ });
+ $expectedInitialState = [
+ 'isPublic' => true,
'sharingToken' => 'token',
- 'server2serversharing' => true,
- 'protected' => 'true',
- 'dir' => '',
- 'downloadURL' => 'downloadURL',
- 'fileSize' => '33 B',
- 'nonHumanFileSize' => 33,
- 'maxSizeAnimateGif' => 10,
- 'previewSupported' => true,
- 'previewEnabled' => true,
- 'previewMaxX' => 1024,
- 'previewMaxY' => 1024,
- 'hideFileList' => false,
- 'shareOwner' => 'ownerDisplay',
- 'disclaimer' => 'My disclaimer text',
- 'shareUrl' => 'shareUrl',
- 'previewImage' => 'previewImage',
- 'previewURL' => 'downloadURL',
- 'note' => $note,
- 'hideDownload' => false,
- 'showgridview' => false
+ 'sharePermissions' => (Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE),
+ 'filename' => $filename,
+ 'view' => $view,
+ 'fileId' => 111,
+ 'owner' => 'ownerUID',
+ 'ownerDisplayName' => 'ownerDisplay',
+ 'isFileRequest' => false,
];
- $csp = new \OCP\AppFramework\Http\ContentSecurityPolicy();
+ $response = $this->shareController->showShare();
+
+ $this->assertEquals($expectedInitialState, $initialState);
+
+ $csp = new ContentSecurityPolicy();
$csp->addAllowedFrameDomain('\'self\'');
- $expectedResponse = new PublicTemplateResponse($this->appName, 'public', $sharedTmplParams);
+ $expectedResponse = new PublicTemplateResponse('files', 'index');
+ $expectedResponse->setParams(['pageTitle' => $filename]);
$expectedResponse->setContentSecurityPolicy($csp);
- $expectedResponse->setHeaderTitle($sharedTmplParams['filename']);
- $expectedResponse->setHeaderDetails('shared by ' . $sharedTmplParams['shareOwner']);
+ $expectedResponse->setHeaderTitle($filename);
+ $expectedResponse->setHeaderDetails('shared by ownerDisplay');
$expectedResponse->setHeaderActions([
- new SimpleMenuAction('download', $this->l10n->t('Download'), 'icon-download-white', $sharedTmplParams['downloadURL'], 0),
- new SimpleMenuAction('download', $this->l10n->t('Download'), 'icon-download', $sharedTmplParams['downloadURL'], 10, $sharedTmplParams['fileSize']),
- new LinkMenuAction($this->l10n->t('Direct link'), 'icon-public', $sharedTmplParams['previewURL']),
- new ExternalShareMenuAction($this->l10n->t('Add to your Nextcloud'), 'icon-external', $sharedTmplParams['owner'], $sharedTmplParams['shareOwner'], $sharedTmplParams['filename']),
+ new SimpleMenuAction('download', $this->l10n->t('Download'), 'icon-download', 'downloadUrl', 0, '33'),
+ new ExternalShareMenuAction($this->l10n->t('Add to your Nextcloud'), 'icon-external', 'owner', 'ownerDisplay', $filename),
+ new LinkMenuAction($this->l10n->t('Direct link'), 'icon-public', 'downloadUrl'),
]);
$this->assertEquals($expectedResponse, $response);
}
- public function testShowShareWithPrivateName() {
- $note = 'personal note';
- $filename = 'file1.txt';
+ public function testShowFileDropShare(): void {
+ $filename = 'folder1';
$this->shareController->setToken('token');
@@ -414,17 +375,15 @@ class ShareControllerTest extends \Test\TestCase {
$initiator->method('getUID')->willReturn('initiatorUID');
$initiator->method('isEnabled')->willReturn(true);
- $file = $this->createMock(File::class);
- $file->method('getName')->willReturn($filename);
- $file->method('getMimetype')->willReturn('text/plain');
- $file->method('getSize')->willReturn(33);
+ $file = $this->createMock(Folder::class);
$file->method('isReadable')->willReturn(true);
$file->method('isShareable')->willReturn(true);
- $file->method('getId')->willReturn(111);
+ $file->method('getId')->willReturn(1234);
+ $file->method('getName')->willReturn($filename);
$accountName = $this->createMock(IAccountProperty::class);
$accountName->method('getScope')
- ->willReturn(IAccountManager::SCOPE_LOCAL);
+ ->willReturn(IAccountManager::SCOPE_PUBLISHED);
$account = $this->createMock(IAccount::class);
$account->method('getProperty')
->with(IAccountManager::PROPERTY_DISPLAYNAME)
@@ -434,31 +393,36 @@ class ShareControllerTest extends \Test\TestCase {
->with($owner)
->willReturn($account);
- $share = \OC::$server->getShareManager()->newShare();
- $share->setId(42);
- $share->setPassword('password')
+ /** @var Manager */
+ $manager = Server::get(Manager::class);
+ $share = $manager->newShare();
+ $share->setId(42)
+ ->setPermissions(Constants::PERMISSION_CREATE)
+ ->setPassword('password')
->setShareOwner('ownerUID')
->setSharedBy('initiatorUID')
+ ->setNote('The note')
+ ->setLabel('A label')
->setNode($file)
- ->setNote($note)
- ->setTarget("/$filename");
+ ->setTarget("/$filename")
+ ->setToken('token');
+
+ $this->appConfig
+ ->expects($this->once())
+ ->method('getValueString')
+ ->with('core', 'shareapi_public_link_disclaimertext', '')
+ ->willReturn('My disclaimer text');
$this->session->method('exists')->with('public_link_authenticated')->willReturn(true);
$this->session->method('get')->with('public_link_authenticated')->willReturn('42');
- $this->urlGenerator->expects($this->exactly(3))
+ $this->urlGenerator->expects(self::atLeastOnce())
->method('linkToRouteAbsolute')
- ->withConsecutive(
- ['files_sharing.sharecontroller.downloadShare', ['token' => 'token', 'filename' => $filename]],
- ['files_sharing.sharecontroller.showShare', ['token' => 'token']],
- ['files_sharing.PublicPreview.getPreview', ['token' => 'token', 'x' => 200, 'y' => 200, 'file' => '/'.$filename]],
- )->willReturnOnConsecutiveCalls(
- 'downloadURL',
- 'shareUrl',
- 'previewImage',
- );
-
- $this->previewManager->method('isMimeSupported')->with('text/plain')->willReturn(true);
+ ->willReturnMap([
+ // every file has the show show share url in the opengraph url prop
+ ['files_sharing.sharecontroller.showShare', ['token' => 'token'], 'shareUrl'],
+ // there is no preview or folders so no other link for opengraph
+ ]);
$this->config->method('getSystemValue')
->willReturnMap(
@@ -469,19 +433,12 @@ class ShareControllerTest extends \Test\TestCase {
['preview_max_y', 1024, 1024],
]
);
- $shareTmpl['maxSizeAnimateGif'] = $this->config->getSystemValue('max_filesize_animated_gifs_public_sharing', 10);
- $shareTmpl['previewEnabled'] = $this->config->getSystemValue('enable_previews', true);
$this->shareManager
->expects($this->once())
->method('getShareByToken')
->with('token')
->willReturn($share);
- $this->config
- ->expects($this->once())
- ->method('getAppValue')
- ->with('core', 'shareapi_public_link_disclaimertext', null)
- ->willReturn('My disclaimer text');
$this->userManager->method('get')->willReturnCallback(function (string $uid) use ($owner, $initiator) {
if ($uid === 'ownerUID') {
@@ -505,67 +462,56 @@ class ShareControllerTest extends \Test\TestCase {
$this->l10n->expects($this->any())
->method('t')
- ->will($this->returnCallback(function ($text, $parameters) {
+ ->willReturnCallback(function ($text, $parameters) {
return vsprintf($text, $parameters);
- }));
-
- $this->defaults->expects(self::any())
- ->method('getProductName')
- ->willReturn('Nextcloud');
+ });
- $response = $this->shareController->showShare();
- $sharedTmplParams = [
- 'owner' => '',
- 'filename' => $filename,
- 'directory_path' => "/$filename",
- 'mimetype' => 'text/plain',
- 'dirToken' => 'token',
+ // Set up initial state
+ $initialState = [];
+ $this->initialState->expects(self::any())
+ ->method('provideInitialState')
+ ->willReturnCallback(function ($key, $value) use (&$initialState): void {
+ $initialState[$key] = $value;
+ });
+ $expectedInitialState = [
+ 'isPublic' => true,
'sharingToken' => 'token',
- 'server2serversharing' => true,
- 'protected' => 'true',
- 'dir' => '',
- 'downloadURL' => 'downloadURL',
- 'fileSize' => '33 B',
- 'nonHumanFileSize' => 33,
- 'maxSizeAnimateGif' => 10,
- 'previewSupported' => true,
- 'previewEnabled' => true,
- 'previewMaxX' => 1024,
- 'previewMaxY' => 1024,
- 'hideFileList' => false,
- 'shareOwner' => '',
+ 'sharePermissions' => Constants::PERMISSION_CREATE,
+ 'filename' => $filename,
+ 'view' => 'public-file-drop',
'disclaimer' => 'My disclaimer text',
- 'shareUrl' => 'shareUrl',
- 'previewImage' => 'previewImage',
- 'previewURL' => 'downloadURL',
- 'note' => $note,
- 'hideDownload' => false,
- 'showgridview' => false
+ 'owner' => 'ownerUID',
+ 'ownerDisplayName' => 'ownerDisplay',
+ 'isFileRequest' => false,
+ 'note' => 'The note',
+ 'label' => 'A label',
];
- $csp = new \OCP\AppFramework\Http\ContentSecurityPolicy();
+ $response = $this->shareController->showShare();
+
+ $this->assertEquals($expectedInitialState, $initialState);
+
+ $csp = new ContentSecurityPolicy();
$csp->addAllowedFrameDomain('\'self\'');
- $expectedResponse = new PublicTemplateResponse($this->appName, 'public', $sharedTmplParams);
+ $expectedResponse = new PublicTemplateResponse('files', 'index');
+ $expectedResponse->setParams(['pageTitle' => 'A label']);
$expectedResponse->setContentSecurityPolicy($csp);
- $expectedResponse->setHeaderTitle($sharedTmplParams['filename']);
- $expectedResponse->setHeaderDetails('');
+ $expectedResponse->setHeaderTitle('A label');
+ $expectedResponse->setHeaderDetails('shared by ownerDisplay');
$expectedResponse->setHeaderActions([
- new SimpleMenuAction('download', $this->l10n->t('Download'), 'icon-download-white', $sharedTmplParams['downloadURL'], 0),
- new SimpleMenuAction('download', $this->l10n->t('Download'), 'icon-download', $sharedTmplParams['downloadURL'], 10, $sharedTmplParams['fileSize']),
- new LinkMenuAction($this->l10n->t('Direct link'), 'icon-public', $sharedTmplParams['previewURL']),
- new ExternalShareMenuAction($this->l10n->t('Add to your Nextcloud'), 'icon-external', $sharedTmplParams['owner'], $sharedTmplParams['shareOwner'], $sharedTmplParams['filename']),
+ new LinkMenuAction($this->l10n->t('Direct link'), 'icon-public', 'shareUrl'),
]);
$this->assertEquals($expectedResponse, $response);
}
- public function testShowShareHideDownload() {
+ public function testShowShareWithPrivateName(): void {
$note = 'personal note';
$filename = 'file1.txt';
$this->shareController->setToken('token');
- $owner = $this->getMockBuilder(IUser::class)->getMock();
+ $owner = $this->createMock(IUser::class);
$owner->method('getDisplayName')->willReturn('ownerDisplay');
$owner->method('getUID')->willReturn('ownerUID');
$owner->method('isEnabled')->willReturn(true);
@@ -575,7 +521,7 @@ class ShareControllerTest extends \Test\TestCase {
$initiator->method('getUID')->willReturn('initiatorUID');
$initiator->method('isEnabled')->willReturn(true);
- $file = $this->getMockBuilder('OCP\Files\File')->getMock();
+ $file = $this->createMock(File::class);
$file->method('getName')->willReturn($filename);
$file->method('getMimetype')->willReturn('text/plain');
$file->method('getSize')->willReturn(33);
@@ -585,7 +531,7 @@ class ShareControllerTest extends \Test\TestCase {
$accountName = $this->createMock(IAccountProperty::class);
$accountName->method('getScope')
- ->willReturn(IAccountManager::SCOPE_PUBLISHED);
+ ->willReturn(IAccountManager::SCOPE_LOCAL);
$account = $this->createMock(IAccount::class);
$account->method('getProperty')
->with(IAccountManager::PROPERTY_DISPLAYNAME)
@@ -595,33 +541,35 @@ class ShareControllerTest extends \Test\TestCase {
->with($owner)
->willReturn($account);
- $share = \OC::$server->getShareManager()->newShare();
+ /** @var IShare */
+ $share = Server::get(Manager::class)->newShare();
$share->setId(42);
$share->setPassword('password')
->setShareOwner('ownerUID')
->setSharedBy('initiatorUID')
->setNode($file)
->setNote($note)
- ->setTarget("/$filename")
- ->setHideDownload(true);
+ ->setToken('token')
+ ->setPermissions(Constants::PERMISSION_ALL & ~Constants::PERMISSION_SHARE)
+ ->setTarget("/$filename");
$this->session->method('exists')->with('public_link_authenticated')->willReturn(true);
$this->session->method('get')->with('public_link_authenticated')->willReturn('42');
- // Even if downloads are disabled the "downloadURL" parameter is
- // provided to the template, as it is needed to preview audio and GIF
- // files.
- $this->urlGenerator->expects($this->exactly(3))
+ $this->urlGenerator->expects(self::atLeast(2))
->method('linkToRouteAbsolute')
- ->withConsecutive(
- ['files_sharing.sharecontroller.downloadShare', ['token' => 'token', 'filename' => $filename]],
- ['files_sharing.sharecontroller.showShare', ['token' => 'token']],
- ['files_sharing.PublicPreview.getPreview', ['token' => 'token', 'x' => 200, 'y' => 200, 'file' => '/'.$filename]],
- )->willReturnOnConsecutiveCalls(
- 'downloadURL',
- 'shareUrl',
- 'previewImage',
- );
+ ->willReturnMap([
+ // every file has the show show share url in the opengraph url prop
+ ['files_sharing.sharecontroller.showShare', ['token' => 'token'], 'shareUrl'],
+ // this share is not an image to the default preview is used
+ ['files_sharing.PublicPreview.getPreview', ['x' => 256, 'y' => 256, 'file' => $share->getTarget(), 'token' => 'token'], 'previewUrl'],
+ ]);
+
+ $this->urlGenerator->expects($this->once())
+ ->method('getAbsoluteURL')
+ ->willReturnMap([
+ ['/public.php/dav/files/token/?accept=zip', 'downloadUrl'],
+ ]);
$this->previewManager->method('isMimeSupported')->with('text/plain')->willReturn(true);
@@ -642,11 +590,6 @@ class ShareControllerTest extends \Test\TestCase {
->method('getShareByToken')
->with('token')
->willReturn($share);
- $this->config
- ->expects($this->once())
- ->method('getAppValue')
- ->with('core', 'shareapi_public_link_disclaimertext', null)
- ->willReturn('My disclaimer text');
$this->userManager->method('get')->willReturnCallback(function (string $uid) use ($owner, $initiator) {
if ($uid === 'ownerUID') {
@@ -674,175 +617,31 @@ class ShareControllerTest extends \Test\TestCase {
return vsprintf($text, $parameters);
});
- $response = $this->shareController->showShare();
- $sharedTmplParams = [
- 'owner' => 'ownerUID',
- 'filename' => $filename,
- 'directory_path' => "/$filename",
- 'mimetype' => 'text/plain',
- 'dirToken' => 'token',
- 'sharingToken' => 'token',
- 'server2serversharing' => true,
- 'protected' => 'true',
- 'dir' => '',
- 'downloadURL' => 'downloadURL',
- 'fileSize' => '33 B',
- 'nonHumanFileSize' => 33,
- 'maxSizeAnimateGif' => 10,
- 'previewSupported' => true,
- 'previewEnabled' => true,
- 'previewMaxX' => 1024,
- 'previewMaxY' => 1024,
- 'hideFileList' => false,
- 'shareOwner' => 'ownerDisplay',
- 'disclaimer' => 'My disclaimer text',
- 'shareUrl' => 'shareUrl',
- 'previewImage' => 'previewImage',
- 'previewURL' => 'downloadURL',
- 'note' => $note,
- 'hideDownload' => true,
- 'showgridview' => false
- ];
-
- $csp = new \OCP\AppFramework\Http\ContentSecurityPolicy();
- $csp->addAllowedFrameDomain('\'self\'');
- $expectedResponse = new PublicTemplateResponse($this->appName, 'public', $sharedTmplParams);
- $expectedResponse->setContentSecurityPolicy($csp);
- $expectedResponse->setHeaderTitle($sharedTmplParams['filename']);
- $expectedResponse->setHeaderDetails('shared by ' . $sharedTmplParams['shareOwner']);
- $expectedResponse->setHeaderActions([]);
-
- $this->assertEquals($expectedResponse, $response);
- }
-
- /**
- * Checks file drop shares:
- * - there must not be any header action
- * - the template param "hideFileList" should be true
- *
- * @test
- * @return void
- */
- public function testShareFileDrop() {
- $this->shareController->setToken('token');
-
- $owner = $this->getMockBuilder(IUser::class)->getMock();
- $owner->method('getDisplayName')->willReturn('ownerDisplay');
- $owner->method('getUID')->willReturn('ownerUID');
- $owner->method('isEnabled')->willReturn(true);
-
- $initiator = $this->createMock(IUser::class);
- $initiator->method('getDisplayName')->willReturn('initiatorDisplay');
- $initiator->method('getUID')->willReturn('initiatorUID');
- $initiator->method('isEnabled')->willReturn(true);
-
- /* @var MockObject|Storage $storage */
- $storage = $this->getMockBuilder(Storage::class)
- ->disableOriginalConstructor()
- ->getMock();
-
- /* @var MockObject|Folder $folder */
- $folder = $this->getMockBuilder(Folder::class)
- ->disableOriginalConstructor()
- ->getMock();
- $folder->method('getName')->willReturn('/fileDrop');
- $folder->method('isReadable')->willReturn(true);
- $folder->method('isShareable')->willReturn(true);
- $folder->method('getStorage')->willReturn($storage);
- $folder->method('get')->with('')->willReturn($folder);
- $folder->method('getSize')->willReturn(1337);
- $folder->method('getId')->willReturn(111);
-
- $accountName = $this->createMock(IAccountProperty::class);
- $accountName->method('getScope')
- ->willReturn(IAccountManager::SCOPE_PUBLISHED);
- $account = $this->createMock(IAccount::class);
- $account->method('getProperty')
- ->with(IAccountManager::PROPERTY_DISPLAYNAME)
- ->willReturn($accountName);
- $this->accountManager->expects($this->once())
- ->method('getAccount')
- ->with($owner)
- ->willReturn($account);
-
- $share = \OC::$server->getShareManager()->newShare();
- $share->setId(42);
- $share->setPermissions(Constants::PERMISSION_CREATE)
- ->setShareOwner('ownerUID')
- ->setSharedBy('initiatorUID')
- ->setNode($folder)
- ->setTarget('/fileDrop');
-
- $this->shareManager
- ->expects($this->once())
- ->method('getShareByToken')
- ->with('token')
- ->willReturn($share);
-
- $this->userManager->method('get')->willReturnCallback(function (string $uid) use ($owner, $initiator) {
- if ($uid === 'ownerUID') {
- return $owner;
- }
- if ($uid === 'initiatorUID') {
- return $initiator;
- }
- return null;
- });
-
- $this->l10n->expects($this->any())
- ->method('t')
- ->willReturnCallback(function ($text, $parameters) {
- return vsprintf($text, $parameters);
- });
+ $this->defaults->expects(self::any())
+ ->method('getProductName')
+ ->willReturn('Nextcloud');
$response = $this->shareController->showShare();
- // skip the "folder" param for tests
- $responseParams = $response->getParams();
- unset($responseParams['folder']);
- $response->setParams($responseParams);
-
- $sharedTmplParams = [
- 'owner' => 'ownerUID',
- 'filename' => '/fileDrop',
- 'directory_path' => '/fileDrop',
- 'mimetype' => null,
- 'dirToken' => 'token',
- 'sharingToken' => 'token',
- 'server2serversharing' => true,
- 'protected' => 'false',
- 'dir' => null,
- 'downloadURL' => '',
- 'fileSize' => '1 KB',
- 'nonHumanFileSize' => 1337,
- 'maxSizeAnimateGif' => null,
- 'previewSupported' => null,
- 'previewEnabled' => null,
- 'previewMaxX' => null,
- 'previewMaxY' => null,
- 'hideFileList' => true,
- 'shareOwner' => 'ownerDisplay',
- 'disclaimer' => null,
- 'shareUrl' => '',
- 'previewImage' => '',
- 'previewURL' => '',
- 'note' => '',
- 'hideDownload' => false,
- 'showgridview' => false
- ];
- $csp = new \OCP\AppFramework\Http\ContentSecurityPolicy();
+ $csp = new ContentSecurityPolicy();
$csp->addAllowedFrameDomain('\'self\'');
- $expectedResponse = new PublicTemplateResponse($this->appName, 'public', $sharedTmplParams);
+ $expectedResponse = new PublicTemplateResponse('files', 'index');
+ $expectedResponse->setParams(['pageTitle' => $filename]);
$expectedResponse->setContentSecurityPolicy($csp);
- $expectedResponse->setHeaderTitle($sharedTmplParams['filename']);
- $expectedResponse->setHeaderDetails('shared by ' . $sharedTmplParams['shareOwner']);
+ $expectedResponse->setHeaderTitle($filename);
+ $expectedResponse->setHeaderDetails('');
+ $expectedResponse->setHeaderActions([
+ new SimpleMenuAction('download', $this->l10n->t('Download'), 'icon-download', 'downloadUrl', 0, '33'),
+ new ExternalShareMenuAction($this->l10n->t('Add to your Nextcloud'), 'icon-external', 'owner', 'ownerDisplay', $filename),
+ new LinkMenuAction($this->l10n->t('Direct link'), 'icon-public', 'downloadUrl'),
+ ]);
- self::assertEquals($expectedResponse, $response);
+ $this->assertEquals($expectedResponse, $response);
}
- public function testShowShareInvalid() {
- $this->expectException(\OCP\Files\NotFoundException::class);
+ public function testShowShareInvalid(): void {
+ $this->expectException(NotFoundException::class);
$filename = 'file1.txt';
$this->shareController->setToken('token');
@@ -858,7 +657,7 @@ class ShareControllerTest extends \Test\TestCase {
$file->method('isShareable')->willReturn(false);
$file->method('isReadable')->willReturn(true);
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(\OCP\Share\IManager::class)->newShare();
$share->setId(42);
$share->setPassword('password')
->setShareOwner('ownerUID')
@@ -891,13 +690,13 @@ class ShareControllerTest extends \Test\TestCase {
$this->shareController->showShare();
}
- public function testDownloadShareWithCreateOnlyShare() {
+ public function testDownloadShareWithCreateOnlyShare(): void {
$share = $this->getMockBuilder(IShare::class)->getMock();
$share->method('getPassword')->willReturn('password');
$share
->expects($this->once())
->method('getPermissions')
- ->willReturn(\OCP\Constants::PERMISSION_CREATE);
+ ->willReturn(Constants::PERMISSION_CREATE);
$this->shareManager
->expects($this->once())
@@ -911,7 +710,35 @@ class ShareControllerTest extends \Test\TestCase {
$this->assertEquals($expectedResponse, $response);
}
- public function testDisabledOwner() {
+ public function testDownloadShareWithoutDownloadPermission(): void {
+ $attributes = $this->createMock(IAttributes::class);
+ $attributes->expects(self::once())
+ ->method('getAttribute')
+ ->with('permissions', 'download')
+ ->willReturn(false);
+
+ $share = $this->createMock(IShare::class);
+ $share->method('getPassword')->willReturn('password');
+ $share->expects(self::once())
+ ->method('getPermissions')
+ ->willReturn(Constants::PERMISSION_READ);
+ $share->expects(self::once())
+ ->method('getAttributes')
+ ->willReturn($attributes);
+
+ $this->shareManager
+ ->expects(self::once())
+ ->method('getShareByToken')
+ ->with('validtoken')
+ ->willReturn($share);
+
+ // Test with a password protected share and no authentication
+ $response = $this->shareController->downloadShare('validtoken');
+ $expectedResponse = new DataResponse('Share has no download permission');
+ $this->assertEquals($expectedResponse, $response);
+ }
+
+ public function testDisabledOwner(): void {
$this->shareController->setToken('token');
$owner = $this->getMockBuilder(IUser::class)->getMock();
@@ -923,7 +750,7 @@ class ShareControllerTest extends \Test\TestCase {
/* @var MockObject|Folder $folder */
$folder = $this->createMock(Folder::class);
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(\OCP\Share\IManager::class)->newShare();
$share->setId(42);
$share->setPermissions(Constants::PERMISSION_CREATE)
->setShareOwner('ownerUID')
@@ -952,7 +779,7 @@ class ShareControllerTest extends \Test\TestCase {
$this->shareController->showShare();
}
- public function testDisabledInitiator() {
+ public function testDisabledInitiator(): void {
$this->shareController->setToken('token');
$owner = $this->getMockBuilder(IUser::class)->getMock();
@@ -964,7 +791,7 @@ class ShareControllerTest extends \Test\TestCase {
/* @var MockObject|Folder $folder */
$folder = $this->createMock(Folder::class);
- $share = \OC::$server->getShareManager()->newShare();
+ $share = Server::get(\OCP\Share\IManager::class)->newShare();
$share->setId(42);
$share->setPermissions(Constants::PERMISSION_CREATE)
->setShareOwner('ownerUID')
diff --git a/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php b/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php
index 18bda2f488d..1a678610805 100644
--- a/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php
@@ -1,25 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2016 Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Tests\Controller;
@@ -33,15 +16,13 @@ use OCP\IRequest;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IManager as ShareManager;
use OCP\Share\IShare;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class ShareInfoControllerTest extends TestCase {
- /** @var ShareInfoController */
- private $controller;
-
- /** @var ShareManager|\PHPUnit\Framework\MockObject\MockObject */
- private $shareManager;
+ protected ShareInfoController $controller;
+ protected ShareManager&MockObject $shareManager;
protected function setUp(): void {
@@ -49,17 +30,14 @@ class ShareInfoControllerTest extends TestCase {
$this->shareManager = $this->createMock(ShareManager::class);
- $this->controller = $this->getMockBuilder(ShareInfoController::class)
- ->setConstructorArgs([
- 'files_sharing',
- $this->createMock(IRequest::class),
- $this->shareManager
- ])
- ->setMethods(['addROWrapper'])
- ->getMock();
+ $this->controller = new ShareInfoController(
+ 'files_sharing',
+ $this->createMock(IRequest::class),
+ $this->shareManager
+ );
}
- public function testNoShare() {
+ public function testNoShare(): void {
$this->shareManager->method('getShareByToken')
->with('token')
->willThrowException(new ShareNotFound());
@@ -69,7 +47,7 @@ class ShareInfoControllerTest extends TestCase {
$this->assertEquals($expected, $this->controller->info('token'));
}
- public function testWrongPassword() {
+ public function testWrongPassword(): void {
$share = $this->createMock(IShare::class);
$share->method('getPassword')
->willReturn('sharePass');
@@ -86,7 +64,7 @@ class ShareInfoControllerTest extends TestCase {
$this->assertEquals($expected, $this->controller->info('token', 'pass'));
}
- public function testNoReadPermissions() {
+ public function testNoReadPermissions(): void {
$share = $this->createMock(IShare::class);
$share->method('getPassword')
->willReturn('sharePass');
@@ -125,7 +103,7 @@ class ShareInfoControllerTest extends TestCase {
return $file;
}
- public function testInfoFile() {
+ public function testInfoFile(): void {
$file = $this->prepareFile();
$share = $this->createMock(IShare::class);
@@ -157,7 +135,7 @@ class ShareInfoControllerTest extends TestCase {
$this->assertEquals($expected, $this->controller->info('token', 'pass'));
}
- public function testInfoFileRO() {
+ public function testInfoFileRO(): void {
$file = $this->prepareFile();
$share = $this->createMock(IShare::class);
@@ -239,7 +217,7 @@ class ShareInfoControllerTest extends TestCase {
return $root;
}
- public function testInfoFolder() {
+ public function testInfoFolder(): void {
$file = $this->prepareFolder();
$share = $this->createMock(IShare::class);
diff --git a/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php
index b56e57d272a..18e1bf0347b 100644
--- a/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php
@@ -1,41 +1,18 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Citharel <nextcloud@tcit.fr>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests\Controller;
use OCA\Files_Sharing\Controller\ShareesAPIController;
use OCA\Files_Sharing\Tests\TestCase;
-use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCS\OCSBadRequestException;
use OCP\Collaboration\Collaborators\ISearch;
+use OCP\GlobalScale\IConfig as GlobalScaleIConfig;
use OCP\IConfig;
use OCP\IRequest;
use OCP\IURLGenerator;
@@ -63,7 +40,7 @@ class ShareesAPIControllerTest extends TestCase {
/** @var IManager|MockObject */
protected $shareManager;
- /** @var ISearch|MockObject */
+ /** @var ISearch|MockObject */
protected $collaboratorSearch;
/** @var IConfig|MockObject */
@@ -93,7 +70,7 @@ class ShareesAPIControllerTest extends TestCase {
);
}
- public function dataSearch(): array {
+ public static function dataSearch(): array {
$noRemote = [IShare::TYPE_USER, IShare::TYPE_GROUP, IShare::TYPE_EMAIL];
$allTypes = [IShare::TYPE_USER, IShare::TYPE_GROUP, IShare::TYPE_REMOTE, IShare::TYPE_REMOTE_GROUP, IShare::TYPE_EMAIL];
@@ -221,7 +198,6 @@ class ShareesAPIControllerTest extends TestCase {
}
/**
- * @dataProvider dataSearch
*
* @param array $getData
* @param string $apiSetting
@@ -235,6 +211,7 @@ class ShareesAPIControllerTest extends TestCase {
* @param bool $allowGroupSharing
* @throws OCSBadRequestException
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSearch')]
public function testSearch(
array $getData,
string $apiSetting,
@@ -247,21 +224,21 @@ class ShareesAPIControllerTest extends TestCase {
bool $shareWithGroupOnly,
bool $shareeEnumeration,
bool $allowGroupSharing,
- ) {
+ ): void {
$search = $getData['search'] ?? '';
$itemType = $getData['itemType'] ?? 'irrelevant';
$page = $getData['page'] ?? 1;
$perPage = $getData['perPage'] ?? 200;
$shareType = $getData['shareType'] ?? null;
+ $globalConfig = $this->createMock(GlobalScaleIConfig::class);
+ $globalConfig->expects(self::once())
+ ->method('isGlobalScaleEnabled')
+ ->willReturn(true);
+ $this->overwriteService(GlobalScaleIConfig::class, $globalConfig);
+
/** @var IConfig|MockObject $config */
$config = $this->createMock(IConfig::class);
- $config->expects($this->exactly(1))
- ->method('getAppValue')
- ->with($this->anything(), $this->anything(), $this->anything())
- ->willReturnMap([
- ['files_sharing', 'lookupServerEnabled', 'yes', 'yes'],
- ]);
$this->shareManager->expects($this->once())
->method('allowGroupSharing')
@@ -322,10 +299,10 @@ class ShareesAPIControllerTest extends TestCase {
}
});
- $this->assertInstanceOf(Http\DataResponse::class, $sharees->search($search, $itemType, $page, $perPage, $shareType));
+ $this->assertInstanceOf(DataResponse::class, $sharees->search($search, $itemType, $page, $perPage, $shareType));
}
- public function dataSearchInvalid(): array {
+ public static function dataSearchInvalid(): array {
return [
// Test invalid pagination
[[
@@ -352,12 +329,12 @@ class ShareesAPIControllerTest extends TestCase {
}
/**
- * @dataProvider dataSearchInvalid
*
* @param array $getData
* @param string $message
*/
- public function testSearchInvalid($getData, $message) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSearchInvalid')]
+ public function testSearchInvalid($getData, $message): void {
$page = $getData['page'] ?? 1;
$perPage = $getData['perPage'] ?? 200;
@@ -400,7 +377,7 @@ class ShareesAPIControllerTest extends TestCase {
}
}
- public function dataIsRemoteSharingAllowed() {
+ public static function dataIsRemoteSharingAllowed() {
return [
['file', true],
['folder', true],
@@ -410,16 +387,16 @@ class ShareesAPIControllerTest extends TestCase {
}
/**
- * @dataProvider dataIsRemoteSharingAllowed
*
* @param string $itemType
* @param bool $expected
*/
- public function testIsRemoteSharingAllowed($itemType, $expected) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataIsRemoteSharingAllowed')]
+ public function testIsRemoteSharingAllowed($itemType, $expected): void {
$this->assertSame($expected, $this->invokePrivate($this->sharees, 'isRemoteSharingAllowed', [$itemType]));
}
- public function testSearchSharingDisabled() {
+ public function testSearchSharingDisabled(): void {
$this->shareManager->expects($this->once())
->method('sharingDisabledForUser')
->with($this->uid)
@@ -436,14 +413,14 @@ class ShareesAPIControllerTest extends TestCase {
$this->assertInstanceOf(DataResponse::class, $this->sharees->search('', null, 1, 10, [], false));
}
- public function testSearchNoItemType() {
- $this->expectException(\OCP\AppFramework\OCS\OCSBadRequestException::class);
+ public function testSearchNoItemType(): void {
+ $this->expectException(OCSBadRequestException::class);
$this->expectExceptionMessage('Missing itemType');
$this->sharees->search('', null, 1, 10, [], false);
}
- public function dataGetPaginationLink() {
+ public static function dataGetPaginationLink() {
return [
[1, '/ocs/v1.php', ['perPage' => 2], '<?perPage=2&page=2>; rel="next"'],
[10, '/ocs/v2.php', ['perPage' => 2], '<?perPage=2&page=11>; rel="next"'],
@@ -451,14 +428,14 @@ class ShareesAPIControllerTest extends TestCase {
}
/**
- * @dataProvider dataGetPaginationLink
*
* @param int $page
* @param string $scriptName
* @param array $params
* @param array $expected
*/
- public function testGetPaginationLink($page, $scriptName, $params, $expected) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetPaginationLink')]
+ public function testGetPaginationLink($page, $scriptName, $params, $expected): void {
$this->request->expects($this->once())
->method('getScriptName')
->willReturn($scriptName);
@@ -466,7 +443,7 @@ class ShareesAPIControllerTest extends TestCase {
$this->assertEquals($expected, $this->invokePrivate($this->sharees, 'getPaginationLink', [$page, $params]));
}
- public function dataIsV2() {
+ public static function dataIsV2() {
return [
['/ocs/v1.php', false],
['/ocs/v2.php', true],
@@ -474,12 +451,12 @@ class ShareesAPIControllerTest extends TestCase {
}
/**
- * @dataProvider dataIsV2
*
* @param string $scriptName
* @param bool $expected
*/
- public function testIsV2($scriptName, $expected) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataIsV2')]
+ public function testIsV2($scriptName, $expected): void {
$this->request->expects($this->once())
->method('getScriptName')
->willReturn($scriptName);
diff --git a/apps/files_sharing/tests/DeleteOrphanedSharesJobTest.php b/apps/files_sharing/tests/DeleteOrphanedSharesJobTest.php
index 0a39246e030..c245d157151 100644
--- a/apps/files_sharing/tests/DeleteOrphanedSharesJobTest.php
+++ b/apps/files_sharing/tests/DeleteOrphanedSharesJobTest.php
@@ -1,32 +1,20 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
+use OC\Files\Filesystem;
+use OC\SystemConfig;
use OCA\Files_Sharing\DeleteOrphanedSharesJob;
+use OCP\App\IAppManager;
+use OCP\Constants;
+use OCP\IDBConnection;
+use OCP\IUserManager;
+use OCP\Server;
use OCP\Share\IShare;
/**
@@ -48,7 +36,7 @@ class DeleteOrphanedSharesJobTest extends \Test\TestCase {
private $job;
/**
- * @var \OCP\IDBConnection
+ * @var IDBConnection
*/
private $connection;
@@ -63,43 +51,43 @@ class DeleteOrphanedSharesJobTest extends \Test\TestCase {
private $user2;
public static function setUpBeforeClass(): void {
- $appManager = \OC::$server->getAppManager();
+ $appManager = Server::get(IAppManager::class);
self::$trashBinStatus = $appManager->isEnabledForUser('files_trashbin');
$appManager->disableApp('files_trashbin');
// just in case...
- \OC\Files\Filesystem::getLoader()->removeStorageWrapper('oc_trashbin');
+ Filesystem::getLoader()->removeStorageWrapper('oc_trashbin');
}
public static function tearDownAfterClass(): void {
if (self::$trashBinStatus) {
- \OC::$server->getAppManager()->enableApp('files_trashbin');
+ Server::get(IAppManager::class)->enableApp('files_trashbin');
}
}
protected function setUp(): void {
parent::setUp();
- $this->connection = \OC::$server->getDatabaseConnection();
+ $this->connection = Server::get(IDBConnection::class);
// clear occasional leftover shares from other tests
$this->connection->executeUpdate('DELETE FROM `*PREFIX*share`');
$this->user1 = $this->getUniqueID('user1_');
$this->user2 = $this->getUniqueID('user2_');
- $userManager = \OC::$server->getUserManager();
+ $userManager = Server::get(IUserManager::class);
$userManager->createUser($this->user1, 'pass');
$userManager->createUser($this->user2, 'pass');
- \OC::registerShareHooks(\OC::$server->getSystemConfig());
+ \OC::registerShareHooks(Server::get(SystemConfig::class));
- $this->job = \OCP\Server::get(DeleteOrphanedSharesJob::class);
+ $this->job = Server::get(DeleteOrphanedSharesJob::class);
}
protected function tearDown(): void {
$this->connection->executeUpdate('DELETE FROM `*PREFIX*share`');
- $userManager = \OC::$server->getUserManager();
+ $userManager = Server::get(IUserManager::class);
$user1 = $userManager->get($this->user1);
if ($user1) {
$user1->delete();
@@ -127,19 +115,19 @@ class DeleteOrphanedSharesJobTest extends \Test\TestCase {
/**
* Test clearing orphaned shares
*/
- public function testClearShares() {
+ public function testClearShares(): void {
$this->loginAsUser($this->user1);
$user1Folder = \OC::$server->getUserFolder($this->user1);
$testFolder = $user1Folder->newFolder('test');
$testSubFolder = $testFolder->newFolder('sub');
- $shareManager = \OC::$server->getShareManager();
+ $shareManager = Server::get(\OCP\Share\IManager::class);
$share = $shareManager->newShare();
$share->setNode($testSubFolder)
->setShareType(IShare::TYPE_USER)
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setSharedWith($this->user2)
->setSharedBy($this->user1);
diff --git a/apps/files_sharing/tests/EncryptedSizePropagationTest.php b/apps/files_sharing/tests/EncryptedSizePropagationTest.php
index 37eec01b9d7..1be17df3957 100644
--- a/apps/files_sharing/tests/EncryptedSizePropagationTest.php
+++ b/apps/files_sharing/tests/EncryptedSizePropagationTest.php
@@ -1,29 +1,15 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Robin Appelman <robin@icewind.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
use OC\Files\View;
+use OCP\ITempManager;
+use OCP\Server;
use Test\Traits\EncryptionTrait;
/**
@@ -32,13 +18,27 @@ use Test\Traits\EncryptionTrait;
class EncryptedSizePropagationTest extends SizePropagationTest {
use EncryptionTrait;
+ protected function setUp(): void {
+ parent::setUp();
+ $this->config->setAppValue('encryption', 'useMasterKey', '0');
+ }
+
protected function setupUser($name, $password = '') {
$this->createUser($name, $password);
- $tmpFolder = \OC::$server->getTempManager()->getTemporaryFolder();
- $this->registerMount($name, '\OC\Files\Storage\Local', '/' . $name, ['datadir' => $tmpFolder]);
- $this->config->setAppValue('encryption', 'useMasterKey', '0');
+ $this->registerMountForUser($name);
$this->setupForUser($name, $password);
$this->loginWithEncryption($name);
return new View('/' . $name . '/files');
}
+
+ private function registerMountForUser($user): void {
+ $tmpFolder = Server::get(ITempManager::class)->getTemporaryFolder();
+ $this->registerMount($user, '\OC\Files\Storage\Local', '/' . $user, ['datadir' => $tmpFolder]);
+ }
+
+ protected function loginHelper($user, $create = false, $password = false) {
+ $this->registerMountForUser($user);
+ $this->setupForUser($user, $password);
+ parent::loginHelper($user, $create, $password);
+ }
}
diff --git a/apps/files_sharing/tests/EtagPropagationTest.php b/apps/files_sharing/tests/EtagPropagationTest.php
index 77149ae388e..d8580ea92d5 100644
--- a/apps/files_sharing/tests/EtagPropagationTest.php
+++ b/apps/files_sharing/tests/EtagPropagationTest.php
@@ -1,35 +1,17 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Jörn Friedrich Dreyer <jfd@butonic.de>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
use OC\Files\Filesystem;
use OC\Files\View;
+use OCP\Constants;
+use OCP\Files\IRootFolder;
+use OCP\Server;
use OCP\Share\IShare;
/**
@@ -54,8 +36,8 @@ class EtagPropagationTest extends PropagationTestCase {
$this->fileIds[self::TEST_FILES_SHARING_API_USER3] = [];
$this->fileIds[self::TEST_FILES_SHARING_API_USER4] = [];
- $rootFolder = \OC::$server->getRootFolder();
- $shareManager = \OC::$server->getShareManager();
+ $rootFolder = Server::get(IRootFolder::class);
+ $shareManager = Server::get(\OCP\Share\IManager::class);
$this->rootView = new View('');
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
@@ -78,7 +60,7 @@ class EtagPropagationTest extends PropagationTestCase {
->setShareType(IShare::TYPE_USER)
->setSharedWith(self::TEST_FILES_SHARING_API_USER2)
->setSharedBy(self::TEST_FILES_SHARING_API_USER1)
- ->setPermissions(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE);
+ ->setPermissions(Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE | Constants::PERMISSION_SHARE);
$share = $shareManager->createShare($share);
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER2);
$node = $rootFolder->getUserFolder(self::TEST_FILES_SHARING_API_USER1)
@@ -89,7 +71,7 @@ class EtagPropagationTest extends PropagationTestCase {
->setShareType(IShare::TYPE_USER)
->setSharedWith(self::TEST_FILES_SHARING_API_USER2)
->setSharedBy(self::TEST_FILES_SHARING_API_USER1)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL);
+ ->setPermissions(Constants::PERMISSION_ALL);
$share = $shareManager->createShare($share);
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER2);
@@ -98,7 +80,7 @@ class EtagPropagationTest extends PropagationTestCase {
->setShareType(IShare::TYPE_USER)
->setSharedWith(self::TEST_FILES_SHARING_API_USER3)
->setSharedBy(self::TEST_FILES_SHARING_API_USER1)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL);
+ ->setPermissions(Constants::PERMISSION_ALL);
$share = $shareManager->createShare($share);
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER3);
@@ -112,7 +94,7 @@ class EtagPropagationTest extends PropagationTestCase {
->setShareType(IShare::TYPE_USER)
->setSharedWith(self::TEST_FILES_SHARING_API_USER2)
->setSharedBy(self::TEST_FILES_SHARING_API_USER1)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL);
+ ->setPermissions(Constants::PERMISSION_ALL);
$share = $shareManager->createShare($share);
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER2);
@@ -139,7 +121,7 @@ class EtagPropagationTest extends PropagationTestCase {
->setShareType(IShare::TYPE_USER)
->setSharedWith(self::TEST_FILES_SHARING_API_USER4)
->setSharedBy(self::TEST_FILES_SHARING_API_USER2)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL);
+ ->setPermissions(Constants::PERMISSION_ALL);
$share = $shareManager->createShare($share);
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER4);
@@ -153,7 +135,7 @@ class EtagPropagationTest extends PropagationTestCase {
->setShareType(IShare::TYPE_USER)
->setSharedWith(self::TEST_FILES_SHARING_API_USER4)
->setSharedBy(self::TEST_FILES_SHARING_API_USER2)
- ->setPermissions(\OCP\Constants::PERMISSION_ALL);
+ ->setPermissions(Constants::PERMISSION_ALL);
$share = $shareManager->createShare($share);
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER4);
@@ -193,7 +175,7 @@ class EtagPropagationTest extends PropagationTestCase {
}
}
- public function testOwnerWritesToShare() {
+ public function testOwnerWritesToShare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
Filesystem::file_put_contents('/sub1/sub2/folder/asd.txt', 'bar');
$this->assertEtagsNotChanged([self::TEST_FILES_SHARING_API_USER4]);
@@ -203,7 +185,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testOwnerWritesToSingleFileShare() {
+ public function testOwnerWritesToSingleFileShare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
Filesystem::file_put_contents('/foo.txt', 'longer_bar');
$t = (int)Filesystem::filemtime('/foo.txt') - 1;
@@ -214,7 +196,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testOwnerWritesToShareWithReshare() {
+ public function testOwnerWritesToShareWithReshare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
Filesystem::file_put_contents('/sub1/sub2/folder/inside/bar.txt', 'bar');
$this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
@@ -223,7 +205,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testOwnerRenameInShare() {
+ public function testOwnerRenameInShare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
$this->assertEtagsNotChanged([self::TEST_FILES_SHARING_API_USER4]);
Filesystem::rename('/sub1/sub2/folder/file.txt', '/sub1/sub2/folder/renamed.txt');
@@ -233,7 +215,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testOwnerRenameInReShare() {
+ public function testOwnerRenameInReShare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
Filesystem::rename('/sub1/sub2/folder/inside/file.txt', '/sub1/sub2/folder/inside/renamed.txt');
$this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
@@ -242,7 +224,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testOwnerRenameIntoReShare() {
+ public function testOwnerRenameIntoReShare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
Filesystem::rename('/sub1/sub2/folder/file.txt', '/sub1/sub2/folder/inside/renamed.txt');
$this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
@@ -251,7 +233,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testOwnerRenameOutOfReShare() {
+ public function testOwnerRenameOutOfReShare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
Filesystem::rename('/sub1/sub2/folder/inside/file.txt', '/sub1/sub2/folder/renamed.txt');
$this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
@@ -260,7 +242,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testOwnerDeleteInShare() {
+ public function testOwnerDeleteInShare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
Filesystem::unlink('/sub1/sub2/folder/file.txt');
$this->assertEtagsNotChanged([self::TEST_FILES_SHARING_API_USER4]);
@@ -270,7 +252,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testOwnerDeleteInReShare() {
+ public function testOwnerDeleteInReShare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
Filesystem::unlink('/sub1/sub2/folder/inside/file.txt');
$this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
@@ -279,13 +261,13 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testOwnerUnshares() {
+ public function testOwnerUnshares(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
$folderInfo = $this->rootView->getFileInfo('/' . self::TEST_FILES_SHARING_API_USER1 . '/files/sub1/sub2/folder');
$this->assertInstanceOf('\OC\Files\FileInfo', $folderInfo);
$node = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1)->get('/sub1/sub2/folder');
- $shareManager = \OC::$server->getShareManager();
+ $shareManager = Server::get(\OCP\Share\IManager::class);
$shares = $shareManager->getSharesBy(self::TEST_FILES_SHARING_API_USER1, IShare::TYPE_USER, $node, true);
foreach ($shares as $share) {
@@ -302,13 +284,13 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testOwnerUnsharesFlatReshares() {
+ public function testOwnerUnsharesFlatReshares(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
$folderInfo = $this->rootView->getFileInfo('/' . self::TEST_FILES_SHARING_API_USER1 . '/files/sub1/sub2/folder/inside');
$this->assertInstanceOf('\OC\Files\FileInfo', $folderInfo);
$node = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1)->get('/sub1/sub2/folder/inside');
- $shareManager = \OC::$server->getShareManager();
+ $shareManager = Server::get(\OCP\Share\IManager::class);
$shares = $shareManager->getSharesBy(self::TEST_FILES_SHARING_API_USER1, IShare::TYPE_USER, $node, true);
foreach ($shares as $share) {
@@ -323,7 +305,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testRecipientUnsharesFromSelf() {
+ public function testRecipientUnsharesFromSelf(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
$ls = $this->rootView->getDirectoryContent('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/sub1/sub2/');
$this->assertTrue(
@@ -337,7 +319,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testRecipientWritesToShare() {
+ public function testRecipientWritesToShare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
Filesystem::file_put_contents('/sub1/sub2/folder/asd.txt', 'bar');
$this->assertEtagsNotChanged([self::TEST_FILES_SHARING_API_USER4]);
@@ -350,7 +332,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testRecipientWritesToReshare() {
+ public function testRecipientWritesToReshare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
Filesystem::file_put_contents('/sub1/sub2/folder/inside/asd.txt', 'bar');
$this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
@@ -359,7 +341,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testRecipientWritesToOtherRecipientsReshare() {
+ public function testRecipientWritesToOtherRecipientsReshare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER3);
Filesystem::file_put_contents('/sub1/sub2/folder/inside/asd.txt', 'bar');
$this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
@@ -368,7 +350,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testRecipientRenameInShare() {
+ public function testRecipientRenameInShare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
Filesystem::rename('/sub1/sub2/folder/file.txt', '/sub1/sub2/folder/renamed.txt');
$this->assertEtagsNotChanged([self::TEST_FILES_SHARING_API_USER4]);
@@ -378,7 +360,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testRecipientRenameInReShare() {
+ public function testRecipientRenameInReShare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
Filesystem::rename('/sub1/sub2/folder/inside/file.txt', '/sub1/sub2/folder/inside/renamed.txt');
$this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
@@ -387,7 +369,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testRecipientRenameResharedFolder() {
+ public function testRecipientRenameResharedFolder(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
Filesystem::rename('/directReshare', '/sub1/directReshare');
$this->assertEtagsNotChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER3, self::TEST_FILES_SHARING_API_USER4]);
@@ -398,7 +380,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testRecipientDeleteInShare() {
+ public function testRecipientDeleteInShare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
Filesystem::unlink('/sub1/sub2/folder/file.txt');
$this->assertEtagsNotChanged([self::TEST_FILES_SHARING_API_USER4]);
@@ -408,7 +390,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testRecipientDeleteInReShare() {
+ public function testRecipientDeleteInReShare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
Filesystem::unlink('/sub1/sub2/folder/inside/file.txt');
$this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
@@ -417,7 +399,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testReshareRecipientWritesToReshare() {
+ public function testReshareRecipientWritesToReshare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER4);
Filesystem::file_put_contents('/sub1/sub2/inside/asd.txt', 'bar');
$this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
@@ -426,7 +408,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testReshareRecipientRenameInReShare() {
+ public function testReshareRecipientRenameInReShare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER4);
Filesystem::rename('/sub1/sub2/inside/file.txt', '/sub1/sub2/inside/renamed.txt');
$this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
@@ -435,7 +417,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testReshareRecipientDeleteInReShare() {
+ public function testReshareRecipientDeleteInReShare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER4);
Filesystem::unlink('/sub1/sub2/inside/file.txt');
$this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
@@ -444,7 +426,7 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testRecipientUploadInDirectReshare() {
+ public function testRecipientUploadInDirectReshare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
Filesystem::file_put_contents('/directReshare/test.txt', 'sad');
$this->assertEtagsNotChanged([self::TEST_FILES_SHARING_API_USER3]);
@@ -453,19 +435,19 @@ class EtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testEtagChangeOnPermissionsChange() {
+ public function testEtagChangeOnPermissionsChange(): void {
$userFolder = $this->rootFolder->getUserFolder(self::TEST_FILES_SHARING_API_USER1);
$node = $userFolder->get('/sub1/sub2/folder');
$shares = $this->shareManager->getSharesBy(self::TEST_FILES_SHARING_API_USER1, IShare::TYPE_USER, $node);
- /** @var \OCP\Share\IShare[] $shares */
- $shares = array_filter($shares, function (\OCP\Share\IShare $share) {
+ /** @var IShare[] $shares */
+ $shares = array_filter($shares, function (IShare $share) {
return $share->getSharedWith() === self::TEST_FILES_SHARING_API_USER2;
});
$this->assertCount(1, $shares);
$share = $shares[0];
- $share->setPermissions(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE);
+ $share->setPermissions(Constants::PERMISSION_READ | Constants::PERMISSION_SHARE);
$this->shareManager->updateShare($share);
$this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER2]);
diff --git a/apps/files_sharing/tests/ExpireSharesJobTest.php b/apps/files_sharing/tests/ExpireSharesJobTest.php
index e12eac5ba06..42bc5a4b659 100644
--- a/apps/files_sharing/tests/ExpireSharesJobTest.php
+++ b/apps/files_sharing/tests/ExpireSharesJobTest.php
@@ -1,32 +1,19 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
+use OC\SystemConfig;
use OCA\Files_Sharing\ExpireSharesJob;
use OCP\AppFramework\Utility\ITimeFactory;
+use OCP\Constants;
+use OCP\IDBConnection;
+use OCP\IUserManager;
+use OCP\Server;
use OCP\Share\IManager;
use OCP\Share\IShare;
@@ -42,7 +29,7 @@ class ExpireSharesJobTest extends \Test\TestCase {
/** @var ExpireSharesJob */
private $job;
- /** @var \OCP\IDBConnection */
+ /** @var IDBConnection */
private $connection;
/** @var string */
@@ -54,26 +41,26 @@ class ExpireSharesJobTest extends \Test\TestCase {
protected function setUp(): void {
parent::setUp();
- $this->connection = \OC::$server->getDatabaseConnection();
+ $this->connection = Server::get(IDBConnection::class);
// clear occasional leftover shares from other tests
$this->connection->executeUpdate('DELETE FROM `*PREFIX*share`');
$this->user1 = $this->getUniqueID('user1_');
$this->user2 = $this->getUniqueID('user2_');
- $userManager = \OC::$server->getUserManager();
+ $userManager = Server::get(IUserManager::class);
$userManager->createUser($this->user1, 'longrandompassword');
$userManager->createUser($this->user2, 'longrandompassword');
- \OC::registerShareHooks(\OC::$server->getSystemConfig());
+ \OC::registerShareHooks(Server::get(SystemConfig::class));
- $this->job = new ExpireSharesJob(\OC::$server->get(ITimeFactory::class), \OC::$server->get(IManager::class), $this->connection);
+ $this->job = new ExpireSharesJob(Server::get(ITimeFactory::class), Server::get(IManager::class), $this->connection);
}
protected function tearDown(): void {
$this->connection->executeUpdate('DELETE FROM `*PREFIX*share`');
- $userManager = \OC::$server->getUserManager();
+ $userManager = Server::get(IUserManager::class);
$user1 = $userManager->get($this->user1);
if ($user1) {
$user1->delete();
@@ -103,7 +90,7 @@ class ExpireSharesJobTest extends \Test\TestCase {
return $shares;
}
- public function dataExpireLinkShare() {
+ public static function dataExpireLinkShare() {
return [
[false, '', false, false],
[false, '', true, false],
@@ -119,25 +106,25 @@ class ExpireSharesJobTest extends \Test\TestCase {
}
/**
- * @dataProvider dataExpireLinkShare
*
* @param bool addExpiration Should we add an expire date
* @param string $interval The dateInterval
* @param bool $addInterval If true add to the current time if false subtract
* @param bool $shouldExpire Should this share be expired
*/
- public function testExpireLinkShare($addExpiration, $interval, $addInterval, $shouldExpire) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataExpireLinkShare')]
+ public function testExpireLinkShare($addExpiration, $interval, $addInterval, $shouldExpire): void {
$this->loginAsUser($this->user1);
$user1Folder = \OC::$server->getUserFolder($this->user1);
$testFolder = $user1Folder->newFolder('test');
- $shareManager = \OC::$server->getShareManager();
+ $shareManager = Server::get(\OCP\Share\IManager::class);
$share = $shareManager->newShare();
$share->setNode($testFolder)
->setShareType(IShare::TYPE_LINK)
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setSharedBy($this->user1);
$shareManager->createShare($share);
@@ -183,18 +170,18 @@ class ExpireSharesJobTest extends \Test\TestCase {
}
}
- public function testDoNotExpireOtherShares() {
+ public function testDoNotExpireOtherShares(): void {
$this->loginAsUser($this->user1);
$user1Folder = \OC::$server->getUserFolder($this->user1);
$testFolder = $user1Folder->newFolder('test');
- $shareManager = \OC::$server->getShareManager();
+ $shareManager = Server::get(\OCP\Share\IManager::class);
$share = $shareManager->newShare();
$share->setNode($testFolder)
->setShareType(IShare::TYPE_USER)
- ->setPermissions(\OCP\Constants::PERMISSION_READ)
+ ->setPermissions(Constants::PERMISSION_READ)
->setSharedBy($this->user1)
->setSharedWith($this->user2);
diff --git a/apps/files_sharing/tests/External/CacheTest.php b/apps/files_sharing/tests/External/CacheTest.php
index c77012c3e44..39e2057a24c 100644
--- a/apps/files_sharing/tests/External/CacheTest.php
+++ b/apps/files_sharing/tests/External/CacheTest.php
@@ -1,37 +1,20 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests\External;
use OC\Federation\CloudIdManager;
+use OC\Files\Storage\Storage;
+use OCA\Files_Sharing\External\Cache;
use OCA\Files_Sharing\Tests\TestCase;
use OCP\Contacts\IManager;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Federation\ICloudIdManager;
+use OCP\Files\Cache\ICacheEntry;
use OCP\ICacheFactory;
use OCP\IURLGenerator;
use OCP\IUserManager;
@@ -48,12 +31,12 @@ class CacheTest extends TestCase {
protected $contactsManager;
/**
- * @var \OC\Files\Storage\Storage
+ * @var Storage
**/
private $storage;
/**
- * @var \OCA\Files_Sharing\External\Cache
+ * @var Cache
*/
private $cache;
@@ -62,7 +45,7 @@ class CacheTest extends TestCase {
*/
private $remoteUser;
- /** @var ICloudIdManager */
+ /** @var ICloudIdManager */
private $cloudIdManager;
protected function setUp(): void {
@@ -71,11 +54,11 @@ class CacheTest extends TestCase {
$this->contactsManager = $this->createMock(IManager::class);
$this->cloudIdManager = new CloudIdManager(
+ $this->createMock(ICacheFactory::class),
+ $this->createMock(IEventDispatcher::class),
$this->contactsManager,
$this->createMock(IURLGenerator::class),
$this->createMock(IUserManager::class),
- $this->createMock(ICacheFactory::class),
- $this->createMock(IEventDispatcher::class)
);
$this->remoteUser = $this->getUniqueID('remoteuser');
@@ -91,10 +74,11 @@ class CacheTest extends TestCase {
->method('search')
->willReturn([]);
- $this->cache = new \OCA\Files_Sharing\External\Cache(
+ $this->cache = new Cache(
$this->storage,
$this->cloudIdManager->getCloudId($this->remoteUser, 'http://example.com/owncloud')
);
+ $this->cache->insert('', ['size' => 0, 'mtime' => 0, 'mimetype' => ICacheEntry::DIRECTORY_MIMETYPE]);
$this->cache->put(
'test.txt',
[
@@ -112,7 +96,7 @@ class CacheTest extends TestCase {
parent::tearDown();
}
- public function testGetInjectsOwnerDisplayName() {
+ public function testGetInjectsOwnerDisplayName(): void {
$info = $this->cache->get('test.txt');
$this->assertEquals(
$this->remoteUser . '@example.com/owncloud',
@@ -120,12 +104,12 @@ class CacheTest extends TestCase {
);
}
- public function testGetReturnsFalseIfNotFound() {
+ public function testGetReturnsFalseIfNotFound(): void {
$info = $this->cache->get('unexisting-entry.txt');
$this->assertFalse($info);
}
- public function testGetFolderPopulatesOwner() {
+ public function testGetFolderPopulatesOwner(): void {
$dirId = $this->cache->put(
'subdir',
[
diff --git a/apps/files_sharing/tests/External/ManagerTest.php b/apps/files_sharing/tests/External/ManagerTest.php
index 0e80479eafe..14c6afec4d8 100644
--- a/apps/files_sharing/tests/External/ManagerTest.php
+++ b/apps/files_sharing/tests/External/ManagerTest.php
@@ -1,32 +1,9 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Kesselberg <mail@danielkesselberg.de>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests\External;
@@ -43,16 +20,21 @@ use OCP\EventDispatcher\IEventDispatcher;
use OCP\Federation\ICloudFederationFactory;
use OCP\Federation\ICloudFederationProviderManager;
use OCP\Files\NotFoundException;
+use OCP\Http\Client\IClient;
use OCP\Http\Client\IClientService;
use OCP\Http\Client\IResponse;
use OCP\ICacheFactory;
+use OCP\IDBConnection;
use OCP\IGroup;
use OCP\IGroupManager;
use OCP\IURLGenerator;
use OCP\IUser;
use OCP\IUserManager;
use OCP\IUserSession;
+use OCP\OCS\IDiscoveryService;
+use OCP\Server;
use OCP\Share\IShare;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Test\Traits\UserTrait;
@@ -66,42 +48,19 @@ use Test\Traits\UserTrait;
class ManagerTest extends TestCase {
use UserTrait;
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $contactsManager;
-
- /** @var Manager|\PHPUnit\Framework\MockObject\MockObject **/
- private $manager;
-
- /** @var \OC\Files\Mount\Manager */
- private $mountManager;
-
- /** @var IClientService|\PHPUnit\Framework\MockObject\MockObject */
- private $clientService;
-
- /** @var ICloudFederationProviderManager|\PHPUnit\Framework\MockObject\MockObject */
- private $cloudFederationProviderManager;
-
- /** @var ICloudFederationFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $cloudFederationFactory;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|IGroupManager */
- private $groupManager;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|IUserManager */
- private $userManager;
-
- /** @var LoggerInterface */
- private $logger;
-
- private $uid;
-
- /**
- * @var \OCP\IUser
- */
- private $user;
- private $testMountProvider;
- /** @var IEventDispatcher|\PHPUnit\Framework\MockObject\MockObject */
- private $eventDispatcher;
+ protected string $uid;
+ protected IUser $user;
+ protected MountProvider $testMountProvider;
+ protected IEventDispatcher&MockObject $eventDispatcher;
+ protected LoggerInterface&MockObject $logger;
+ protected \OC\Files\Mount\Manager $mountManager;
+ protected IManager&MockObject $contactsManager;
+ protected Manager&MockObject $manager;
+ protected IClientService&MockObject $clientService;
+ protected ICloudFederationProviderManager&MockObject $cloudFederationProviderManager;
+ protected ICloudFederationFactory&MockObject $cloudFederationFactory;
+ protected IGroupManager&MockObject $groupManager;
+ protected IUserManager&MockObject $userManager;
protected function setUp(): void {
parent::setUp();
@@ -128,14 +87,14 @@ class ManagerTest extends TestCase {
$this->manager = $this->createManagerForUser($this->uid);
- $this->testMountProvider = new MountProvider(\OC::$server->getDatabaseConnection(), function () {
+ $this->testMountProvider = new MountProvider(Server::get(IDBConnection::class), function () {
return $this->manager;
}, new CloudIdManager(
+ $this->createMock(ICacheFactory::class),
+ $this->createMock(IEventDispatcher::class),
$this->contactsManager,
$this->createMock(IURLGenerator::class),
$this->userManager,
- $this->createMock(ICacheFactory::class),
- $this->createMock(IEventDispatcher::class)
));
$group1 = $this->createMock(IGroup::class);
@@ -149,15 +108,15 @@ class ManagerTest extends TestCase {
$this->userManager->expects($this->any())->method('get')->willReturn($this->user);
$this->groupManager->expects($this->any())->method(('getUserGroups'))->willReturn([$group1, $group2]);
$this->groupManager->expects($this->any())->method(('get'))
- ->will($this->returnValueMap([
+ ->willReturnMap([
['group1', $group1],
['group2', $group2],
- ]));
+ ]);
}
protected function tearDown(): void {
// clear the share external table to avoid side effects
- $query = \OC::$server->getDatabaseConnection()->prepare('DELETE FROM `*PREFIX*share_external`');
+ $query = Server::get(IDBConnection::class)->prepare('DELETE FROM `*PREFIX*share_external`');
$result = $query->execute();
$result->closeCursor();
@@ -175,12 +134,12 @@ class ManagerTest extends TestCase {
return $this->getMockBuilder(Manager::class)
->setConstructorArgs(
[
- \OC::$server->getDatabaseConnection(),
+ Server::get(IDBConnection::class),
$this->mountManager,
new StorageFactory(),
$this->clientService,
- \OC::$server->getNotificationManager(),
- \OC::$server->query(\OCP\OCS\IDiscoveryService::class),
+ Server::get(\OCP\Notification\IManager::class),
+ Server::get(IDiscoveryService::class),
$this->cloudFederationProviderManager,
$this->cloudFederationFactory,
$this->groupManager,
@@ -189,7 +148,7 @@ class ManagerTest extends TestCase {
$this->eventDispatcher,
$this->logger,
]
- )->setMethods(['tryOCMEndPoint'])->getMock();
+ )->onlyMethods(['tryOCMEndPoint'])->getMock();
}
private function setupMounts() {
@@ -205,7 +164,7 @@ class ManagerTest extends TestCase {
$this->mountManager->addMount(new MountPoint(Temporary::class, '', []));
}
- public function testAddUserShare() {
+ public function testAddUserShare(): void {
$this->doTestAddShare([
'remote' => 'http://localhost',
'token' => 'token1',
@@ -219,7 +178,7 @@ class ManagerTest extends TestCase {
], false);
}
- public function testAddGroupShare() {
+ public function testAddGroupShare(): void {
$this->doTestAddShare([
'remote' => 'http://localhost',
'token' => 'token1',
@@ -242,14 +201,12 @@ class ManagerTest extends TestCase {
if ($isGroup) {
$this->manager->expects($this->never())->method('tryOCMEndPoint');
} else {
- $this->manager->method('tryOCMEndPoint')
- ->withConsecutive(
- ['http://localhost', 'token1', '2342', 'accept'],
- ['http://localhost', 'token3', '2342', 'decline'],
- )->willReturnOnConsecutiveCalls(
- false,
- false,
- );
+ $this->manager->expects(self::atLeast(2))
+ ->method('tryOCMEndPoint')
+ ->willReturnMap([
+ ['http://localhost', 'token1', '2342', 'accept', false],
+ ['http://localhost', 'token3', '2342', 'decline', false],
+ ]);
}
// Add a share for "user"
@@ -275,12 +232,18 @@ class ManagerTest extends TestCase {
$this->assertNotMount('{{TemporaryMountPointName#' . $shareData1['name'] . '}}');
$this->assertNotMount('{{TemporaryMountPointName#' . $shareData1['name'] . '}}-1');
+ $newClientCalls = [];
+ $this->clientService
+ ->method('newClient')
+ ->willReturnCallback(function () use (&$newClientCalls): IClient {
+ if (!empty($newClientCalls)) {
+ return array_shift($newClientCalls);
+ }
+ return $this->createMock(IClient::class);
+ });
if (!$isGroup) {
- $client = $this->getMockBuilder('OCP\Http\Client\IClient')
- ->disableOriginalConstructor()->getMock();
- $this->clientService->expects($this->at(0))
- ->method('newClient')
- ->willReturn($client);
+ $client = $this->createMock(IClient::class);
+ $newClientCalls[] = $client;
$response = $this->createMock(IResponse::class);
$response->method('getBody')
->willReturn(json_encode([
@@ -332,11 +295,8 @@ class ManagerTest extends TestCase {
$this->assertNotMount('{{TemporaryMountPointName#' . $shareData1['name'] . '}}-1');
if (!$isGroup) {
- $client = $this->getMockBuilder('OCP\Http\Client\IClient')
- ->disableOriginalConstructor()->getMock();
- $this->clientService->expects($this->at(0))
- ->method('newClient')
- ->willReturn($client);
+ $client = $this->createMock(IClient::class);
+ $newClientCalls[] = $client;
$response = $this->createMock(IResponse::class);
$response->method('getBody')
->willReturn(json_encode([
@@ -388,16 +348,10 @@ class ManagerTest extends TestCase {
// no http requests here
$this->manager->removeGroupShares('group1');
} else {
- $client1 = $this->getMockBuilder('OCP\Http\Client\IClient')
- ->disableOriginalConstructor()->getMock();
- $client2 = $this->getMockBuilder('OCP\Http\Client\IClient')
- ->disableOriginalConstructor()->getMock();
- $this->clientService->expects($this->exactly(2))
- ->method('newClient')
- ->willReturnOnConsecutiveCalls(
- $client1,
- $client2,
- );
+ $client1 = $this->createMock(IClient::class);
+ $client2 = $this->createMock(IClient::class);
+ $newClientCalls[] = $client1;
+ $newClientCalls[] = $client2;
$response = $this->createMock(IResponse::class);
$response->method('getBody')
->willReturn(json_encode([
@@ -498,7 +452,7 @@ class ManagerTest extends TestCase {
return [$shareData, $groupShare];
}
- public function testAcceptOriginalGroupShare() {
+ public function testAcceptOriginalGroupShare(): void {
[$shareData, $groupShare] = $this->createTestGroupShare();
$this->assertTrue($this->manager->acceptShare($groupShare['id']));
$this->verifyAcceptedGroupShare($shareData);
@@ -508,7 +462,7 @@ class ManagerTest extends TestCase {
$this->verifyAcceptedGroupShare($shareData);
}
- public function testAcceptGroupShareAgainThroughGroupShare() {
+ public function testAcceptGroupShareAgainThroughGroupShare(): void {
[$shareData, $groupShare] = $this->createTestGroupShare();
$this->assertTrue($this->manager->acceptShare($groupShare['id']));
$this->verifyAcceptedGroupShare($shareData);
@@ -530,7 +484,7 @@ class ManagerTest extends TestCase {
$this->verifyAcceptedGroupShare($shareData, '/SharedFolder');
}
- public function testAcceptGroupShareAgainThroughSubShare() {
+ public function testAcceptGroupShareAgainThroughSubShare(): void {
[$shareData, $groupShare] = $this->createTestGroupShare();
$this->assertTrue($this->manager->acceptShare($groupShare['id']));
$this->verifyAcceptedGroupShare($shareData);
@@ -552,7 +506,7 @@ class ManagerTest extends TestCase {
$this->verifyAcceptedGroupShare($shareData);
}
- public function testDeclineOriginalGroupShare() {
+ public function testDeclineOriginalGroupShare(): void {
[$shareData, $groupShare] = $this->createTestGroupShare();
$this->assertTrue($this->manager->declineShare($groupShare['id']));
$this->verifyDeclinedGroupShare($shareData);
@@ -562,7 +516,7 @@ class ManagerTest extends TestCase {
$this->verifyDeclinedGroupShare($shareData);
}
- public function testDeclineGroupShareAgainThroughGroupShare() {
+ public function testDeclineGroupShareAgainThroughGroupShare(): void {
[$shareData, $groupShare] = $this->createTestGroupShare();
$this->assertTrue($this->manager->acceptShare($groupShare['id']));
$this->verifyAcceptedGroupShare($shareData);
@@ -576,7 +530,7 @@ class ManagerTest extends TestCase {
$this->verifyDeclinedGroupShare($shareData, '/SharedFolder');
}
- public function testDeclineGroupShareAgainThroughSubshare() {
+ public function testDeclineGroupShareAgainThroughSubshare(): void {
[$shareData, $groupShare] = $this->createTestGroupShare();
$this->assertTrue($this->manager->acceptShare($groupShare['id']));
$this->verifyAcceptedGroupShare($shareData);
@@ -594,7 +548,7 @@ class ManagerTest extends TestCase {
$this->verifyDeclinedGroupShare($shareData, '/SharedFolder');
}
- public function testDeclineGroupShareAgainThroughMountPoint() {
+ public function testDeclineGroupShareAgainThroughMountPoint(): void {
[$shareData, $groupShare] = $this->createTestGroupShare();
$this->assertTrue($this->manager->acceptShare($groupShare['id']));
$this->verifyAcceptedGroupShare($shareData);
@@ -607,7 +561,7 @@ class ManagerTest extends TestCase {
$this->assertFalse($this->manager->removeShare($this->uid . '/files/' . $shareData['name']));
}
- public function testDeclineThenAcceptGroupShareAgainThroughGroupShare() {
+ public function testDeclineThenAcceptGroupShareAgainThroughGroupShare(): void {
[$shareData, $groupShare] = $this->createTestGroupShare();
// decline, this creates a declined sub-share
$this->assertTrue($this->manager->declineShare($groupShare['id']));
@@ -625,7 +579,7 @@ class ManagerTest extends TestCase {
$this->verifyAcceptedGroupShare($shareData, '/SharedFolder');
}
- public function testDeclineThenAcceptGroupShareAgainThroughSubShare() {
+ public function testDeclineThenAcceptGroupShareAgainThroughSubShare(): void {
[$shareData, $groupShare] = $this->createTestGroupShare();
// decline, this creates a declined sub-share
$this->assertTrue($this->manager->declineShare($groupShare['id']));
@@ -643,7 +597,7 @@ class ManagerTest extends TestCase {
$this->verifyAcceptedGroupShare($shareData);
}
- public function testDeleteUserShares() {
+ public function testDeleteUserShares(): void {
// user 1 shares
$shareData = $this->createTestUserShare($this->uid);
@@ -668,10 +622,10 @@ class ManagerTest extends TestCase {
'user' => 'user2',
'remoteId' => '2342'
];
- $this->assertSame(null, call_user_func_array([$manager2, 'addShare'], $shareData2));
- $user2Shares = $manager2->getOpenShares();
- $this->assertCount(2, $user2Shares);
+ $this->assertCount(1, $manager2->getOpenShares());
+ $this->assertSame(null, call_user_func_array([$manager2, 'addShare'], $shareData2));
+ $this->assertCount(2, $manager2->getOpenShares());
$this->manager->expects($this->once())->method('tryOCMEndPoint')->with('http://localhost', 'token1', '2342', 'decline')->willReturn([]);
$this->manager->removeUserShares($this->uid);
@@ -690,7 +644,7 @@ class ManagerTest extends TestCase {
$this->assertEquals($user2Shares[1]['user'], 'user2');
}
- public function testDeleteGroupShares() {
+ public function testDeleteGroupShares(): void {
$shareData = $this->createTestUserShare($this->uid);
[$shareData, $groupShare] = $this->createTestGroupShare();
@@ -713,10 +667,10 @@ class ManagerTest extends TestCase {
'user' => 'user2',
'remoteId' => '2342'
];
- $this->assertSame(null, call_user_func_array([$manager2, 'addShare'], $shareData2));
- $user2Shares = $manager2->getOpenShares();
- $this->assertCount(2, $user2Shares);
+ $this->assertCount(1, $manager2->getOpenShares());
+ $this->assertSame(null, call_user_func_array([$manager2, 'addShare'], $shareData2));
+ $this->assertCount(2, $manager2->getOpenShares());
$this->manager->expects($this->never())->method('tryOCMEndPoint');
$this->manager->removeGroupShares('group1');
@@ -744,7 +698,7 @@ class ManagerTest extends TestCase {
$this->assertEquals($expected['token'], $actual['share_token'], 'Asserting token of a share #' . $share);
$this->assertEquals($expected['name'], $actual['name'], 'Asserting name of a share #' . $share);
$this->assertEquals($expected['owner'], $actual['owner'], 'Asserting owner of a share #' . $share);
- $this->assertEquals($expected['accepted'], (int) $actual['accepted'], 'Asserting accept of a share #' . $share);
+ $this->assertEquals($expected['accepted'], (int)$actual['accepted'], 'Asserting accept of a share #' . $share);
$this->assertEquals($targetEntity, $actual['user'], 'Asserting user of a share #' . $share);
$this->assertEquals($mountPoint, $actual['mountpoint'], 'Asserting mountpoint of a share #' . $share);
}
diff --git a/apps/files_sharing/tests/External/ScannerTest.php b/apps/files_sharing/tests/External/ScannerTest.php
index 8d077715b2d..8b44d47f2b1 100644
--- a/apps/files_sharing/tests/External/ScannerTest.php
+++ b/apps/files_sharing/tests/External/ScannerTest.php
@@ -1,29 +1,15 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests\External;
+use OC\Files\Cache\Cache;
use OCA\Files_Sharing\External\Scanner;
+use OCA\Files_Sharing\External\Storage;
use Test\TestCase;
/**
@@ -31,9 +17,9 @@ use Test\TestCase;
*/
class ScannerTest extends TestCase {
protected Scanner $scanner;
- /** @var \OCA\Files_Sharing\External\Storage|\PHPUnit\Framework\MockObject\MockObject */
+ /** @var Storage|\PHPUnit\Framework\MockObject\MockObject */
protected $storage;
- /** @var \OC\Files\Cache\Cache|\PHPUnit\Framework\MockObject\MockObject */
+ /** @var Cache|\PHPUnit\Framework\MockObject\MockObject */
protected $cache;
protected function setUp(): void {
@@ -52,7 +38,7 @@ class ScannerTest extends TestCase {
$this->scanner = new Scanner($this->storage);
}
- public function testScan() {
+ public function testScan(): void {
$this->storage->expects($this->any())
->method('getShareInfo')
->willReturn(['status' => 'success', 'data' => []]);
@@ -64,7 +50,7 @@ class ScannerTest extends TestCase {
$this->addToAssertionCount(1);
}
- public function testScanFile() {
+ public function testScanFile(): void {
// FIXME add real tests, we are currently only checking for
// Declaration of OCA\Files_Sharing\External\Scanner::*() should be
// compatible with OC\Files\Cache\Scanner::*()
diff --git a/apps/files_sharing/tests/ExternalStorageTest.php b/apps/files_sharing/tests/ExternalStorageTest.php
index d180b06d641..1d9d2eed7bd 100644
--- a/apps/files_sharing/tests/ExternalStorageTest.php
+++ b/apps/files_sharing/tests/ExternalStorageTest.php
@@ -1,34 +1,15 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
use OC\Federation\CloudId;
use OCA\Files_Sharing\External\Manager as ExternalShareManager;
+use OCA\Files_Sharing\External\Storage;
use OCP\Http\Client\IClient;
use OCP\Http\Client\IClientService;
use OCP\Http\Client\IResponse;
@@ -39,7 +20,7 @@ use OCP\Http\Client\IResponse;
* @group DB
*/
class ExternalStorageTest extends \Test\TestCase {
- public function optionsProvider() {
+ public static function optionsProvider() {
return [
[
'http://remoteserver:8080/owncloud',
@@ -107,16 +88,15 @@ class ExternalStorageTest extends \Test\TestCase {
);
}
- /**
- * @dataProvider optionsProvider
- */
- public function testStorageMountOptions($inputUri, $baseUri) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('optionsProvider')]
+ public function testStorageMountOptions($inputUri, $baseUri): void {
$storage = $this->getTestStorage($inputUri);
$this->assertEquals($baseUri, $storage->getBaseUri());
}
- public function testIfTestReturnsTheValue() {
- $result = $this->getTestStorage('https://remoteserver')->test();
+ public function testIfTestReturnsTheValue(): void {
+ $storage = $this->getTestStorage('https://remoteserver');
+ $result = $storage->test();
$this->assertSame(true, $result);
}
}
@@ -124,14 +104,14 @@ class ExternalStorageTest extends \Test\TestCase {
/**
* Dummy subclass to make it possible to access private members
*/
-class TestSharingExternalStorage extends \OCA\Files_Sharing\External\Storage {
+class TestSharingExternalStorage extends Storage {
public function getBaseUri() {
return $this->createBaseUri();
}
- public function stat($path) {
+ public function stat(string $path): array|false {
if ($path === '') {
- return true;
+ return ['key' => 'value'];
}
return parent::stat($path);
}
diff --git a/apps/files_sharing/tests/GroupEtagPropagationTest.php b/apps/files_sharing/tests/GroupEtagPropagationTest.php
index 1a7c075ddf8..da9c7c6bd07 100644
--- a/apps/files_sharing/tests/GroupEtagPropagationTest.php
+++ b/apps/files_sharing/tests/GroupEtagPropagationTest.php
@@ -1,32 +1,15 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
use OC\Files\Filesystem;
use OC\Files\View;
+use OCP\Constants;
use OCP\Share\IShare;
/**
@@ -57,7 +40,7 @@ class GroupEtagPropagationTest extends PropagationTestCase {
'/test',
self::TEST_FILES_SHARING_API_USER1,
'group1',
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER2);
$this->fileIds[self::TEST_FILES_SHARING_API_USER1][''] = $view1->getFileInfo('')->getId();
@@ -72,7 +55,7 @@ class GroupEtagPropagationTest extends PropagationTestCase {
'/test',
self::TEST_FILES_SHARING_API_USER2,
'group2',
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER3);
$share = $this->share(
@@ -80,7 +63,7 @@ class GroupEtagPropagationTest extends PropagationTestCase {
'/test/sub',
self::TEST_FILES_SHARING_API_USER2,
'group3',
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER4);
@@ -108,7 +91,7 @@ class GroupEtagPropagationTest extends PropagationTestCase {
}
}
- public function testGroupReShareRecipientWrites() {
+ public function testGroupReShareRecipientWrites(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER3);
Filesystem::file_put_contents('/test/sub/file.txt', 'asd');
@@ -118,7 +101,7 @@ class GroupEtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testGroupReShareSubFolderRecipientWrites() {
+ public function testGroupReShareSubFolderRecipientWrites(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER4);
Filesystem::file_put_contents('/sub/file.txt', 'asd');
@@ -128,7 +111,7 @@ class GroupEtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testRecipientUnsharesFromSelf() {
+ public function testRecipientUnsharesFromSelf(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
$this->assertTrue(
$this->rootView->unlink('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/test')
@@ -138,7 +121,7 @@ class GroupEtagPropagationTest extends PropagationTestCase {
$this->assertAllUnchanged();
}
- public function testRecipientUnsharesFromSelfUniqueGroupShare() {
+ public function testRecipientUnsharesFromSelfUniqueGroupShare(): void {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
// rename to create an extra entry in the share table
$this->rootView->rename('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/test', '/' . self::TEST_FILES_SHARING_API_USER2 . '/files/test_renamed');
diff --git a/apps/files_sharing/tests/HelperTest.php b/apps/files_sharing/tests/HelperTest.php
index 5b8fb2cded1..4d0d747b3e4 100644
--- a/apps/files_sharing/tests/HelperTest.php
+++ b/apps/files_sharing/tests/HelperTest.php
@@ -1,30 +1,17 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
+use OC\Files\Filesystem;
+use OCA\Files_Sharing\Helper;
+use OCP\IConfig;
+use OCP\Server;
+
/**
* Class HelperTest
*
@@ -35,16 +22,16 @@ class HelperTest extends TestCase {
/**
* test set and get share folder
*/
- public function testSetGetShareFolder() {
- $this->assertSame('/', \OCA\Files_Sharing\Helper::getShareFolder());
+ public function testSetGetShareFolder(): void {
+ $this->assertSame('/', Helper::getShareFolder());
- \OCA\Files_Sharing\Helper::setShareFolder('/Shared/Folder');
+ Helper::setShareFolder('/Shared/Folder');
- $sharedFolder = \OCA\Files_Sharing\Helper::getShareFolder();
- $this->assertSame('/Shared/Folder', \OCA\Files_Sharing\Helper::getShareFolder());
- $this->assertTrue(\OC\Files\Filesystem::is_dir($sharedFolder));
+ $sharedFolder = Helper::getShareFolder();
+ $this->assertSame('/Shared/Folder', Helper::getShareFolder());
+ $this->assertTrue(Filesystem::is_dir($sharedFolder));
// cleanup
- \OC::$server->getConfig()->deleteSystemValue('share_folder');
+ Server::get(IConfig::class)->deleteSystemValue('share_folder');
}
}
diff --git a/apps/files_sharing/tests/Listener/LoadAdditionalListenerTest.php b/apps/files_sharing/tests/Listener/LoadAdditionalListenerTest.php
new file mode 100644
index 00000000000..75bee35d58a
--- /dev/null
+++ b/apps/files_sharing/tests/Listener/LoadAdditionalListenerTest.php
@@ -0,0 +1,120 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\Files_Sharing\Tests\Listener;
+
+use OC\InitialStateService;
+use OCA\Files\Event\LoadAdditionalScriptsEvent;
+use OCA\Files_Sharing\Listener\LoadAdditionalListener;
+use OCP\EventDispatcher\Event;
+use OCP\IConfig;
+use OCP\L10N\IFactory;
+use OCP\Share\IManager;
+use OCP\Util;
+use PHPUnit\Framework\MockObject\MockObject;
+use Psr\Log\LoggerInterface;
+use Test\TestCase;
+
+class LoadAdditionalListenerTest extends TestCase {
+ protected LoggerInterface&MockObject $logger;
+ protected LoadAdditionalScriptsEvent&MockObject $event;
+ protected IManager&MockObject $shareManager;
+ protected IFactory&MockObject $factory;
+ protected InitialStateService&MockObject $initialStateService;
+ protected IConfig&MockObject $config;
+
+ protected function setUp(): void {
+ parent::setUp();
+
+ $this->logger = $this->createMock(LoggerInterface::class);
+ $this->event = $this->createMock(LoadAdditionalScriptsEvent::class);
+ $this->shareManager = $this->createMock(IManager::class);
+ $this->factory = $this->createMock(IFactory::class);
+ $this->initialStateService = $this->createMock(InitialStateService::class);
+ $this->config = $this->createMock(IConfig::class);
+
+ /* Empty static array to avoid inter-test conflicts */
+ \OC_Util::$styles = [];
+ self::invokePrivate(Util::class, 'scripts', [[]]);
+ self::invokePrivate(Util::class, 'scriptDeps', [[]]);
+ self::invokePrivate(Util::class, 'scriptsInit', [[]]);
+ }
+
+ protected function tearDown(): void {
+ parent::tearDown();
+
+ \OC_Util::$styles = [];
+ self::invokePrivate(Util::class, 'scripts', [[]]);
+ self::invokePrivate(Util::class, 'scriptDeps', [[]]);
+ self::invokePrivate(Util::class, 'scriptsInit', [[]]);
+ }
+
+ public function testHandleIgnoresNonMatchingEvent(): void {
+ $listener = new LoadAdditionalListener();
+ $event = $this->createMock(Event::class);
+
+ // Should not throw or call anything
+ $listener->handle($event);
+
+ $this->assertTrue(true); // No exception means pass
+ }
+
+ public function testHandleWithLoadAdditionalScriptsEvent(): void {
+ $listener = new LoadAdditionalListener();
+
+ $this->shareManager->method('shareApiEnabled')->willReturn(false);
+ $this->factory->method('findLanguage')->willReturn('language_mock');
+ $this->config->method('getSystemValueBool')->willReturn(true);
+
+ $this->overwriteService(IManager::class, $this->shareManager);
+ $this->overwriteService(IFactory::class, $this->factory);
+ $this->overwriteService(InitialStateService::class, $this->initialStateService);
+ $this->overwriteService(IConfig::class, $this->config);
+
+ $scriptsBefore = Util::getScripts();
+ $this->assertNotContains('files_sharing/l10n/language_mock', $scriptsBefore);
+ $this->assertNotContains('files_sharing/js/additionalScripts', $scriptsBefore);
+ $this->assertNotContains('files_sharing/js/init', $scriptsBefore);
+ $this->assertNotContains('files_sharing/css/icons', \OC_Util::$styles);
+
+ // Util static methods can't be easily mocked, so just ensure no exceptions
+ $listener->handle($this->event);
+
+ // assert array $scripts contains the expected scripts
+ $scriptsAfter = Util::getScripts();
+ $this->assertContains('files_sharing/l10n/language_mock', $scriptsAfter);
+ $this->assertContains('files_sharing/js/additionalScripts', $scriptsAfter);
+ $this->assertNotContains('files_sharing/js/init', $scriptsAfter);
+
+ $this->assertContains('files_sharing/css/icons', \OC_Util::$styles);
+ }
+
+ public function testHandleWithLoadAdditionalScriptsEventWithShareApiEnabled(): void {
+ $listener = new LoadAdditionalListener();
+
+ $this->shareManager->method('shareApiEnabled')->willReturn(true);
+ $this->config->method('getSystemValueBool')->willReturn(true);
+
+ $this->overwriteService(IManager::class, $this->shareManager);
+ $this->overwriteService(InitialStateService::class, $this->initialStateService);
+ $this->overwriteService(IConfig::class, $this->config);
+ $this->overwriteService(IFactory::class, $this->factory);
+
+ $scriptsBefore = Util::getScripts();
+ $this->assertNotContains('files_sharing/js/init', $scriptsBefore);
+
+ // Util static methods can't be easily mocked, so just ensure no exceptions
+ $listener->handle($this->event);
+
+ $scriptsAfter = Util::getScripts();
+
+ // assert array $scripts contains the expected scripts
+ $this->assertContains('files_sharing/js/init', $scriptsAfter);
+ }
+}
diff --git a/apps/files_sharing/tests/LockingTest.php b/apps/files_sharing/tests/LockingTest.php
index 5d6d7b30ec0..280c364a136 100644
--- a/apps/files_sharing/tests/LockingTest.php
+++ b/apps/files_sharing/tests/LockingTest.php
@@ -1,33 +1,19 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
use OC\Files\Filesystem;
use OC\Files\View;
+use OCP\Constants;
+use OCP\IUserManager;
use OCP\Lock\ILockingProvider;
+use OCP\Lock\LockedException;
+use OCP\Server;
use OCP\Share\IShare;
/**
@@ -50,7 +36,7 @@ class LockingTest extends TestCase {
parent::setUp();
$this->userBackend = new \Test\Util\User\Dummy();
- \OC::$server->getUserManager()->registerBackend($this->userBackend);
+ Server::get(IUserManager::class)->registerBackend($this->userBackend);
$this->ownerUid = $this->getUniqueID('owner_');
$this->recipientUid = $this->getUniqueID('recipient_');
@@ -67,7 +53,7 @@ class LockingTest extends TestCase {
'/foo/bar.txt',
$this->ownerUid,
$this->recipientUid,
- \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE
+ Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE | Constants::PERMISSION_SHARE
);
$this->loginAsUser($this->recipientUid);
@@ -75,13 +61,13 @@ class LockingTest extends TestCase {
}
protected function tearDown(): void {
- \OC::$server->getUserManager()->removeBackend($this->userBackend);
+ Server::get(IUserManager::class)->removeBackend($this->userBackend);
parent::tearDown();
}
- public function testLockAsRecipient() {
- $this->expectException(\OCP\Lock\LockedException::class);
+ public function testLockAsRecipient(): void {
+ $this->expectException(LockedException::class);
$this->loginAsUser($this->ownerUid);
@@ -92,7 +78,7 @@ class LockingTest extends TestCase {
Filesystem::rename('/foo', '/asd');
}
- public function testUnLockAsRecipient() {
+ public function testUnLockAsRecipient(): void {
$this->loginAsUser($this->ownerUid);
Filesystem::initMountPoints($this->recipientUid);
@@ -103,7 +89,7 @@ class LockingTest extends TestCase {
$this->assertTrue(Filesystem::rename('/foo', '/asd'));
}
- public function testChangeLock() {
+ public function testChangeLock(): void {
Filesystem::initMountPoints($this->recipientUid);
$recipientView = new View('/' . $this->recipientUid . '/files');
$recipientView->lockFile('bar.txt', ILockingProvider::LOCK_SHARED);
diff --git a/apps/files_sharing/tests/Middleware/OCSShareAPIMiddlewareTest.php b/apps/files_sharing/tests/Middleware/OCSShareAPIMiddlewareTest.php
index 7a579c9cddb..efc6b3f7f7f 100644
--- a/apps/files_sharing/tests/Middleware/OCSShareAPIMiddlewareTest.php
+++ b/apps/files_sharing/tests/Middleware/OCSShareAPIMiddlewareTest.php
@@ -1,27 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2016 Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Tests\Middleware;
@@ -92,13 +73,13 @@ class OCSShareAPIMiddlewareTest extends \Test\TestCase {
}
/**
- * @dataProvider dataBeforeController
*
* @param Controller $controller
* @param bool $enabled
* @param bool $exception
*/
- public function testBeforeController(Controller $controller, $enabled, $exception) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataBeforeController')]
+ public function testBeforeController(Controller $controller, $enabled, $exception): void {
$this->shareManager->method('shareApiEnabled')->willReturn($enabled);
try {
@@ -124,12 +105,12 @@ class OCSShareAPIMiddlewareTest extends \Test\TestCase {
}
/**
- * @dataProvider dataAfterController
*
* @param Controller $controller
* @param bool $called
*/
- public function testAfterController(Controller $controller) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataAfterController')]
+ public function testAfterController(Controller $controller): void {
if ($controller instanceof ShareAPIController) {
$controller->expects($this->once())->method('cleanup');
}
diff --git a/apps/files_sharing/tests/Middleware/ShareInfoMiddlewareTest.php b/apps/files_sharing/tests/Middleware/ShareInfoMiddlewareTest.php
index 41f104fe20b..631b6a0f51c 100644
--- a/apps/files_sharing/tests/Middleware/ShareInfoMiddlewareTest.php
+++ b/apps/files_sharing/tests/Middleware/ShareInfoMiddlewareTest.php
@@ -1,25 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2016 Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_Sharing\Tests\Middleware;
@@ -29,6 +12,7 @@ use OCA\Files_Sharing\Middleware\ShareInfoMiddleware;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\JSONResponse;
+use OCP\AppFramework\Http\Response;
use OCP\Share\IManager as ShareManager;
use Test\TestCase;
@@ -47,14 +31,14 @@ class ShareInfoMiddlewareTest extends TestCase {
$this->middleware = new ShareInfoMiddleware($this->shareManager);
}
- public function testBeforeControllerNoShareInfo() {
+ public function testBeforeControllerNoShareInfo(): void {
$this->shareManager->expects($this->never())
->method($this->anything());
$this->middleware->beforeController($this->createMock(ShareInfoMiddlewareTestController::class), 'foo');
}
- public function testBeforeControllerShareInfoNoS2s() {
+ public function testBeforeControllerShareInfoNoS2s(): void {
$this->shareManager->expects($this->once())
->method('outgoingServer2ServerSharesAllowed')
->willReturn(false);
@@ -63,7 +47,7 @@ class ShareInfoMiddlewareTest extends TestCase {
$this->middleware->beforeController($this->createMock(ShareInfoController::class), 'foo');
}
- public function testBeforeControllerShareInfo() {
+ public function testBeforeControllerShareInfo(): void {
$this->shareManager->expects($this->once())
->method('outgoingServer2ServerSharesAllowed')
->willReturn(true);
@@ -71,7 +55,7 @@ class ShareInfoMiddlewareTest extends TestCase {
$this->middleware->beforeController($this->createMock(ShareInfoController::class), 'foo');
}
- public function testAfterExceptionNoShareInfo() {
+ public function testAfterExceptionNoShareInfo(): void {
$exeption = new \Exception();
try {
@@ -83,7 +67,7 @@ class ShareInfoMiddlewareTest extends TestCase {
}
- public function testAfterExceptionNoS2S() {
+ public function testAfterExceptionNoS2S(): void {
$exeption = new \Exception();
try {
@@ -94,7 +78,7 @@ class ShareInfoMiddlewareTest extends TestCase {
}
}
- public function testAfterExceptionS2S() {
+ public function testAfterExceptionS2S(): void {
$expected = new JSONResponse([], Http::STATUS_NOT_FOUND);
$this->assertEquals(
@@ -103,8 +87,8 @@ class ShareInfoMiddlewareTest extends TestCase {
);
}
- public function testAfterControllerNoShareInfo() {
- $response = $this->createMock(Http\Response::class);
+ public function testAfterControllerNoShareInfo(): void {
+ $response = $this->createMock(Response::class);
$this->assertEquals(
$response,
@@ -112,8 +96,8 @@ class ShareInfoMiddlewareTest extends TestCase {
);
}
- public function testAfterControllerNoJSON() {
- $response = $this->createMock(Http\Response::class);
+ public function testAfterControllerNoJSON(): void {
+ $response = $this->createMock(Response::class);
$this->assertEquals(
$response,
@@ -121,7 +105,7 @@ class ShareInfoMiddlewareTest extends TestCase {
);
}
- public function testAfterControllerJSONok() {
+ public function testAfterControllerJSONok(): void {
$data = ['foo' => 'bar'];
$response = new JSONResponse($data);
@@ -136,7 +120,7 @@ class ShareInfoMiddlewareTest extends TestCase {
);
}
- public function testAfterControllerJSONerror() {
+ public function testAfterControllerJSONerror(): void {
$data = ['foo' => 'bar'];
$response = new JSONResponse($data, Http::STATUS_FORBIDDEN);
diff --git a/apps/files_sharing/tests/Middleware/SharingCheckMiddlewareTest.php b/apps/files_sharing/tests/Middleware/SharingCheckMiddlewareTest.php
index 379cb88567e..3d86007a54c 100644
--- a/apps/files_sharing/tests/Middleware/SharingCheckMiddlewareTest.php
+++ b/apps/files_sharing/tests/Middleware/SharingCheckMiddlewareTest.php
@@ -1,28 +1,9 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Middleware;
@@ -55,9 +36,9 @@ class SharingCheckMiddlewareTest extends \Test\TestCase {
private $controllerMock;
/** @var IControllerMethodReflector|\PHPUnit\Framework\MockObject\MockObject */
private $reflector;
- /** @var IManager | \PHPUnit\Framework\MockObject\MockObject */
+ /** @var IManager | \PHPUnit\Framework\MockObject\MockObject */
private $shareManager;
- /** @var IRequest | \PHPUnit\Framework\MockObject\MockObject */
+ /** @var IRequest | \PHPUnit\Framework\MockObject\MockObject */
private $request;
protected function setUp(): void {
@@ -79,7 +60,7 @@ class SharingCheckMiddlewareTest extends \Test\TestCase {
$this->request);
}
- public function testIsSharingEnabledWithAppEnabled() {
+ public function testIsSharingEnabledWithAppEnabled(): void {
$this->appManager
->expects($this->once())
->method('isEnabledForUser')
@@ -89,7 +70,7 @@ class SharingCheckMiddlewareTest extends \Test\TestCase {
$this->assertTrue(self::invokePrivate($this->sharingCheckMiddleware, 'isSharingEnabled'));
}
- public function testIsSharingEnabledWithAppDisabled() {
+ public function testIsSharingEnabledWithAppDisabled(): void {
$this->appManager
->expects($this->once())
->method('isEnabledForUser')
@@ -99,7 +80,7 @@ class SharingCheckMiddlewareTest extends \Test\TestCase {
$this->assertFalse(self::invokePrivate($this->sharingCheckMiddleware, 'isSharingEnabled'));
}
- public function externalSharesChecksDataProvider() {
+ public static function externalSharesChecksDataProvider() {
$data = [];
foreach ([false, true] as $annIn) {
@@ -134,10 +115,8 @@ class SharingCheckMiddlewareTest extends \Test\TestCase {
return $data;
}
- /**
- * @dataProvider externalSharesChecksDataProvider
- */
- public function testExternalSharesChecks($annotations, $config, $expectedResult) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('externalSharesChecksDataProvider')]
+ public function testExternalSharesChecks($annotations, $config, $expectedResult): void {
$this->reflector
->expects($this->atLeastOnce())
->method('hasAnnotation')
@@ -150,10 +129,8 @@ class SharingCheckMiddlewareTest extends \Test\TestCase {
$this->assertEquals($expectedResult, self::invokePrivate($this->sharingCheckMiddleware, 'externalSharesChecks'));
}
- /**
- * @dataProvider externalSharesChecksDataProvider
- */
- public function testBeforeControllerWithExternalShareControllerWithSharingEnabled($annotations, $config, $noException) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('externalSharesChecksDataProvider')]
+ public function testBeforeControllerWithExternalShareControllerWithSharingEnabled($annotations, $config, $noException): void {
$this->appManager
->expects($this->once())
->method('isEnabledForUser')
@@ -182,7 +159,7 @@ class SharingCheckMiddlewareTest extends \Test\TestCase {
$this->assertNotEquals($noException, $exceptionThrown);
}
- public function testBeforeControllerWithShareControllerWithSharingEnabled() {
+ public function testBeforeControllerWithShareControllerWithSharingEnabled(): void {
$share = $this->createMock(IShare::class);
$this->appManager
@@ -197,8 +174,8 @@ class SharingCheckMiddlewareTest extends \Test\TestCase {
}
- public function testBeforeControllerWithSharingDisabled() {
- $this->expectException(\OCP\Files\NotFoundException::class);
+ public function testBeforeControllerWithSharingDisabled(): void {
+ $this->expectException(NotFoundException::class);
$this->expectExceptionMessage('Sharing is disabled.');
$this->appManager
@@ -211,18 +188,18 @@ class SharingCheckMiddlewareTest extends \Test\TestCase {
}
- public function testAfterExceptionWithRegularException() {
+ public function testAfterExceptionWithRegularException(): void {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('My Exception message');
$this->sharingCheckMiddleware->afterException($this->controllerMock, 'myMethod', new \Exception('My Exception message'));
}
- public function testAfterExceptionWithNotFoundException() {
+ public function testAfterExceptionWithNotFoundException(): void {
$this->assertEquals(new NotFoundResponse(), $this->sharingCheckMiddleware->afterException($this->controllerMock, 'myMethod', new NotFoundException('My Exception message')));
}
- public function testAfterExceptionWithS2SException() {
+ public function testAfterExceptionWithS2SException(): void {
$this->assertEquals(new JSONResponse('My Exception message', 405), $this->sharingCheckMiddleware->afterException($this->controllerMock, 'myMethod', new S2SException('My Exception message')));
}
}
diff --git a/apps/files_sharing/tests/Migration/SetPasswordColumnTest.php b/apps/files_sharing/tests/Migration/SetPasswordColumnTest.php
index 20eb6e96171..3cbbad0f8bc 100644
--- a/apps/files_sharing/tests/Migration/SetPasswordColumnTest.php
+++ b/apps/files_sharing/tests/Migration/SetPasswordColumnTest.php
@@ -1,33 +1,18 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2017 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests\Migration;
use OCA\Files_Sharing\Migration\SetPasswordColumn;
use OCA\Files_Sharing\Tests\TestCase;
use OCP\IConfig;
+use OCP\IDBConnection;
use OCP\Migration\IOutput;
+use OCP\Server;
use OCP\Share\IShare;
/**
@@ -37,7 +22,7 @@ use OCP\Share\IShare;
*/
class SetPasswordColumnTest extends TestCase {
- /** @var \OCP\IDBConnection */
+ /** @var IDBConnection */
private $connection;
/** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
@@ -51,7 +36,7 @@ class SetPasswordColumnTest extends TestCase {
protected function setUp(): void {
parent::setUp();
- $this->connection = \OC::$server->getDatabaseConnection();
+ $this->connection = Server::get(IDBConnection::class);
$this->config = $this->createMock(IConfig::class);
$this->migration = new SetPasswordColumn($this->connection, $this->config);
@@ -68,7 +53,7 @@ class SetPasswordColumnTest extends TestCase {
$query->delete($this->table)->execute();
}
- public function testAddPasswordColumn() {
+ public function testAddPasswordColumn(): void {
$this->config->expects($this->once())
->method('getAppValue')
->with('files_sharing', 'installed_version', '0.0.0')
diff --git a/apps/files_sharing/tests/MountProviderTest.php b/apps/files_sharing/tests/MountProviderTest.php
index af552f48218..e043a1cb1ef 100644
--- a/apps/files_sharing/tests/MountProviderTest.php
+++ b/apps/files_sharing/tests/MountProviderTest.php
@@ -1,38 +1,19 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Calviño Sánchez <danxuliu@gmail.com>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Maxence Lange <maxence@nextcloud.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
use OC\Memcache\NullCache;
+use OC\Share20\Share;
use OCA\Files_Sharing\MountProvider;
+use OCA\Files_Sharing\SharedMount;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\IRootFolder;
+use OCP\Files\Mount\IMountManager;
use OCP\Files\Storage\IStorageFactory;
use OCP\ICacheFactory;
use OCP\IConfig;
@@ -41,29 +22,21 @@ use OCP\IUserManager;
use OCP\Share\IAttributes as IShareAttributes;
use OCP\Share\IManager;
use OCP\Share\IShare;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
/**
* @group DB
*/
class MountProviderTest extends \Test\TestCase {
- /** @var MountProvider */
- private $provider;
-
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var IUser|MockObject */
- private $user;
- /** @var IStorageFactory|MockObject */
- private $loader;
+ protected MountProvider $provider;
- /** @var IManager|MockObject */
- private $shareManager;
-
- /** @var LoggerInterface|MockObject */
- private $logger;
+ protected IUser&MockObject $user;
+ protected IConfig&MockObject $config;
+ protected IManager&MockObject $shareManager;
+ protected IStorageFactory&MockObject $loader;
+ protected LoggerInterface&MockObject $logger;
protected function setUp(): void {
parent::setUp();
@@ -77,8 +50,9 @@ class MountProviderTest extends \Test\TestCase {
$cacheFactory = $this->createMock(ICacheFactory::class);
$cacheFactory->method('createLocal')
->willReturn(new NullCache());
+ $mountManager = $this->createMock(IMountManager::class);
- $this->provider = new MountProvider($this->config, $this->shareManager, $this->logger, $eventDispatcher, $cacheFactory);
+ $this->provider = new MountProvider($this->config, $this->shareManager, $this->logger, $eventDispatcher, $cacheFactory, $mountManager);
}
private function makeMockShareAttributes($attrs) {
@@ -88,16 +62,16 @@ class MountProviderTest extends \Test\TestCase {
$shareAttributes = $this->createMock(IShareAttributes::class);
$shareAttributes->method('toArray')->willReturn($attrs);
- $shareAttributes->method('getAttribute')->will(
- $this->returnCallback(function ($scope, $key) use ($attrs) {
+ $shareAttributes->method('getAttribute')->willReturnCallback(
+ function ($scope, $key) use ($attrs) {
$result = null;
foreach ($attrs as $attr) {
if ($attr['key'] === $key && $attr['scope'] === $scope) {
- $result = $attr['enabled'];
+ $result = $attr['value'];
}
}
return $result;
- })
+ }
);
return $shareAttributes;
}
@@ -109,7 +83,7 @@ class MountProviderTest extends \Test\TestCase {
->willReturn($permissions);
$share->expects($this->any())
->method('getAttributes')
- ->will($this->returnValue($this->makeMockShareAttributes($attributes)));
+ ->willReturn($this->makeMockShareAttributes($attributes));
$share->expects($this->any())
->method('getShareOwner')
->willReturn($owner);
@@ -136,11 +110,11 @@ class MountProviderTest extends \Test\TestCase {
* - shares that were opted out of (permissions === 0)
* - shares with a group in which the owner is already in
*/
- public function testExcludeShares() {
+ public function testExcludeShares(): void {
$rootFolder = $this->createMock(IRootFolder::class);
$userManager = $this->createMock(IUserManager::class);
$attr1 = [];
- $attr2 = [['scope' => 'permission', 'key' => 'download', 'enabled' => true]];
+ $attr2 = [['scope' => 'permission', 'key' => 'download', 'value' => true]];
$userShares = [
$this->makeMockShare(1, 100, 'user2', '/share2', 0, $attr1),
$this->makeMockShare(2, 100, 'user2', '/share2', 31, $attr2),
@@ -164,38 +138,34 @@ class MountProviderTest extends \Test\TestCase {
];
// tests regarding circles and sciencemesh are made in the apps themselves.
$circleShares = [];
- $sciencemeshShares = [];
+ $scienceMeshShares = [];
$this->user->expects($this->any())
->method('getUID')
->willReturn('user1');
$this->shareManager->expects($this->exactly(6))
->method('getSharedWith')
- ->withConsecutive(
- ['user1', IShare::TYPE_USER],
- ['user1', IShare::TYPE_GROUP, null, -1],
- ['user1', IShare::TYPE_CIRCLE, null, -1],
- ['user1', IShare::TYPE_ROOM, null, -1],
- ['user1', IShare::TYPE_DECK, null, -1],
- ['user1', IShare::TYPE_SCIENCEMESH, null, -1],
- )->willReturnOnConsecutiveCalls(
- $userShares,
- $groupShares,
- $circleShares,
- $roomShares,
- $deckShares,
- $sciencemeshShares
- );
+ ->willReturnMap([
+ ['user1', IShare::TYPE_USER, null, -1, 0, $userShares],
+ ['user1', IShare::TYPE_GROUP, null, -1, 0, $groupShares],
+ ['user1', IShare::TYPE_CIRCLE, null, -1, 0, $circleShares],
+ ['user1', IShare::TYPE_ROOM, null, -1, 0, $roomShares],
+ ['user1', IShare::TYPE_DECK, null, -1, 0, $deckShares],
+ ['user1', IShare::TYPE_SCIENCEMESH, null, -1, 0, $scienceMeshShares],
+ ]);
+
$this->shareManager->expects($this->any())
->method('newShare')
->willReturnCallback(function () use ($rootFolder, $userManager) {
- return new \OC\Share20\Share($rootFolder, $userManager);
+ return new Share($rootFolder, $userManager);
});
+
$mounts = $this->provider->getMountsForUser($this->user, $this->loader);
$this->assertCount(4, $mounts);
$this->assertInstanceOf('OCA\Files_Sharing\SharedMount', $mounts[0]);
$this->assertInstanceOf('OCA\Files_Sharing\SharedMount', $mounts[1]);
$this->assertInstanceOf('OCA\Files_Sharing\SharedMount', $mounts[2]);
$this->assertInstanceOf('OCA\Files_Sharing\SharedMount', $mounts[3]);
+ /** @var SharedMount[] $mounts */
$mountedShare1 = $mounts[0]->getShare();
$this->assertEquals('2', $mountedShare1->getId());
$this->assertEquals('user2', $mountedShare1->getShareOwner());
@@ -224,7 +194,7 @@ class MountProviderTest extends \Test\TestCase {
$this->assertEquals(31, $mountedShare4->getPermissions());
}
- public function mergeSharesDataProvider() {
+ public static function mergeSharesDataProvider(): array {
// note: the user in the specs here is the shareOwner not recipient
// the recipient is always "user1"
return [
@@ -244,14 +214,14 @@ class MountProviderTest extends \Test\TestCase {
// #1: share as outsider with "group1" and "user1" with different permissions
[
[
- [1, 100, 'user2', '/share', 31, [['scope' => 'permission', 'key' => 'download', 'enabled' => true], ['scope' => 'app', 'key' => 'attribute1', 'enabled' => true]]],
+ [1, 100, 'user2', '/share', 31, [['scope' => 'permission', 'key' => 'download', 'value' => true], ['scope' => 'app', 'key' => 'attribute1', 'value' => true]]],
],
[
- [2, 100, 'user2', '/share', 15, [['scope' => 'permission', 'key' => 'download', 'enabled' => false], ['scope' => 'app', 'key' => 'attribute2', 'enabled' => false]]],
+ [2, 100, 'user2', '/share', 15, [['scope' => 'permission', 'key' => 'download', 'value' => false], ['scope' => 'app', 'key' => 'attribute2', 'value' => false]]],
],
[
// use highest permissions
- ['1', 100, 'user2', '/share', 31, [['scope' => 'permission', 'key' => 'download', 'enabled' => true], ['scope' => 'app', 'key' => 'attribute1', 'enabled' => true], ['scope' => 'app', 'key' => 'attribute2', 'enabled' => false]]],
+ ['1', 100, 'user2', '/share', 31, [['scope' => 'permission', 'key' => 'download', 'value' => true], ['scope' => 'app', 'key' => 'attribute1', 'value' => true], ['scope' => 'app', 'key' => 'attribute2', 'value' => false]]],
],
],
// #2: share as outsider with "group1" and "group2" with same permissions
@@ -272,12 +242,12 @@ class MountProviderTest extends \Test\TestCase {
[
],
[
- [1, 100, 'user2', '/share', 31, [['scope' => 'permission', 'key' => 'download', 'enabled' => false]]],
- [2, 100, 'user2', '/share', 15, [['scope' => 'permission', 'key' => 'download', 'enabled' => true]]],
+ [1, 100, 'user2', '/share', 31, [['scope' => 'permission', 'key' => 'download', 'value' => false]]],
+ [2, 100, 'user2', '/share', 15, [['scope' => 'permission', 'key' => 'download', 'value' => true]]],
],
[
// use higher permissions (most permissive)
- ['1', 100, 'user2', '/share', 31, [['scope' => 'permission', 'key' => 'download', 'enabled' => true]]],
+ ['1', 100, 'user2', '/share', 31, [['scope' => 'permission', 'key' => 'download', 'value' => true]]],
],
],
// #4: share as insider with "group1"
@@ -296,8 +266,8 @@ class MountProviderTest extends \Test\TestCase {
[
],
[
- [1, 100, 'user1', '/share', 31, [['scope' => 'permission', 'key' => 'download', 'enabled' => true]]],
- [2, 100, 'user1', '/share', 15, [['scope' => 'permission', 'key' => 'download', 'enabled' => false]]],
+ [1, 100, 'user1', '/share', 31, [['scope' => 'permission', 'key' => 'download', 'value' => true]]],
+ [2, 100, 'user1', '/share', 15, [['scope' => 'permission', 'key' => 'download', 'value' => false]]],
],
[
// no received share since "user1" is the sharer/owner
@@ -363,13 +333,13 @@ class MountProviderTest extends \Test\TestCase {
* Happens when sharing the same entry to a user through multiple ways,
* like several groups and also direct shares at the same time.
*
- * @dataProvider mergeSharesDataProvider
*
* @param array $userShares array of user share specs
* @param array $groupShares array of group share specs
* @param array $expectedShares array of expected supershare specs
*/
- public function testMergeShares($userShares, $groupShares, $expectedShares, $moveFails = false) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('mergeSharesDataProvider')]
+ public function testMergeShares($userShares, $groupShares, $expectedShares, $moveFails = false): void {
$rootFolder = $this->createMock(IRootFolder::class);
$userManager = $this->createMock(IUserManager::class);
@@ -388,34 +358,28 @@ class MountProviderTest extends \Test\TestCase {
$circleShares = [];
$roomShares = [];
$deckShares = [];
- $sciencemeshShares = [];
+ $scienceMeshShares = [];
$this->shareManager->expects($this->exactly(6))
->method('getSharedWith')
- ->withConsecutive(
- ['user1', IShare::TYPE_USER],
- ['user1', IShare::TYPE_GROUP, null, -1],
- ['user1', IShare::TYPE_CIRCLE, null, -1],
- ['user1', IShare::TYPE_ROOM, null, -1],
- ['user1', IShare::TYPE_DECK, null, -1],
- ['user1', IShare::TYPE_SCIENCEMESH, null, -1],
- )->willReturnOnConsecutiveCalls(
- $userShares,
- $groupShares,
- $circleShares,
- $roomShares,
- $deckShares,
- $sciencemeshShares
- );
+ ->willReturnMap([
+ ['user1', IShare::TYPE_USER, null, -1, 0, $userShares],
+ ['user1', IShare::TYPE_GROUP, null, -1, 0, $groupShares],
+ ['user1', IShare::TYPE_CIRCLE, null, -1, 0, $circleShares],
+ ['user1', IShare::TYPE_ROOM, null, -1, 0, $roomShares],
+ ['user1', IShare::TYPE_DECK, null, -1, 0, $deckShares],
+ ['user1', IShare::TYPE_SCIENCEMESH, null, -1, 0, $scienceMeshShares],
+ ]);
+
$this->shareManager->expects($this->any())
->method('newShare')
->willReturnCallback(function () use ($rootFolder, $userManager) {
- return new \OC\Share20\Share($rootFolder, $userManager);
+ return new Share($rootFolder, $userManager);
});
if ($moveFails) {
$this->shareManager->expects($this->any())
->method('moveShare')
- ->will($this->throwException(new \InvalidArgumentException()));
+ ->willThrowException(new \InvalidArgumentException());
}
$mounts = $this->provider->getMountsForUser($this->user, $this->loader);
@@ -427,6 +391,7 @@ class MountProviderTest extends \Test\TestCase {
$this->assertInstanceOf('OCA\Files_Sharing\SharedMount', $mount);
// supershare
+ /** @var SharedMount $mount */
$share = $mount->getShare();
$this->assertEquals($expectedShare[0], $share->getId());
diff --git a/apps/files_sharing/tests/PropagationTestCase.php b/apps/files_sharing/tests/PropagationTestCase.php
index dbe711c9583..98bf5ad92fd 100644
--- a/apps/files_sharing/tests/PropagationTestCase.php
+++ b/apps/files_sharing/tests/PropagationTestCase.php
@@ -1,31 +1,20 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
+use OC\Files\View;
+use OCA\Files_Sharing\Helper;
+use OCP\IUserSession;
+use OCP\Server;
+
abstract class PropagationTestCase extends TestCase {
/**
- * @var \OC\Files\View
+ * @var View
*/
protected $rootView;
protected $fileIds = []; // [$user=>[$path=>$id]]
@@ -33,7 +22,7 @@ abstract class PropagationTestCase extends TestCase {
public static function setUpBeforeClass(): void {
parent::setUpBeforeClass();
- \OCA\Files_Sharing\Helper::registerHooks();
+ Helper::registerHooks();
}
protected function setUp(): void {
@@ -56,7 +45,7 @@ abstract class PropagationTestCase extends TestCase {
* @param string $subPath
*/
protected function assertEtagsChanged($users, $subPath = '') {
- $oldUser = \OC::$server->getUserSession()->getUser();
+ $oldUser = Server::get(IUserSession::class)->getUser();
foreach ($users as $user) {
$this->loginAsUser($user);
$id = $this->fileIds[$user][$subPath];
@@ -73,7 +62,7 @@ abstract class PropagationTestCase extends TestCase {
* @param string $subPath
*/
protected function assertEtagsNotChanged($users, $subPath = '') {
- $oldUser = \OC::$server->getUserSession()->getUser();
+ $oldUser = Server::get(IUserSession::class)->getUser();
foreach ($users as $user) {
$this->loginAsUser($user);
$id = $this->fileIds[$user][$subPath];
diff --git a/apps/files_sharing/tests/ShareTest.php b/apps/files_sharing/tests/ShareTest.php
index 45bd5a3d707..737ad6dcb4e 100644
--- a/apps/files_sharing/tests/ShareTest.php
+++ b/apps/files_sharing/tests/ShareTest.php
@@ -1,32 +1,20 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
+use OC\Files\FileInfo;
+use OC\Files\Filesystem;
+use OCA\Files_Sharing\Helper;
+use OCP\Constants;
+use OCP\IConfig;
+use OCP\IGroupManager;
+use OCP\IUserManager;
+use OCP\Server;
use OCP\Share\IShare;
/**
@@ -55,7 +43,7 @@ class ShareTest extends TestCase {
$this->view->mkdir($this->folder);
$this->view->mkdir($this->folder . $this->subfolder);
$this->view->mkdir($this->folder . $this->subfolder . $this->subsubfolder);
- $this->view->file_put_contents($this->folder.$this->filename, $this->data);
+ $this->view->file_put_contents($this->folder . $this->filename, $this->data);
$this->view->file_put_contents($this->folder . $this->subfolder . $this->filename, $this->data);
}
@@ -69,9 +57,9 @@ class ShareTest extends TestCase {
parent::tearDown();
}
- public function testUnshareFromSelf() {
- $groupManager = \OC::$server->getGroupManager();
- $userManager = \OC::$server->getUserManager();
+ public function testUnshareFromSelf(): void {
+ $groupManager = Server::get(IGroupManager::class);
+ $userManager = Server::get(IUserManager::class);
$testGroup = $groupManager->createGroup('testGroup');
$user1 = $userManager->get(self::TEST_FILES_SHARING_API_USER2);
@@ -84,7 +72,7 @@ class ShareTest extends TestCase {
$this->filename,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE
+ Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE | Constants::PERMISSION_SHARE
);
$share2 = $this->share(
@@ -92,44 +80,44 @@ class ShareTest extends TestCase {
$this->filename,
self::TEST_FILES_SHARING_API_USER1,
'testGroup',
- \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE
+ Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE | Constants::PERMISSION_SHARE
);
$this->shareManager->acceptShare($share2, self::TEST_FILES_SHARING_API_USER2);
$this->shareManager->acceptShare($share2, self::TEST_FILES_SHARING_API_USER3);
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename));
+ $this->assertTrue(Filesystem::file_exists($this->filename));
self::loginHelper(self::TEST_FILES_SHARING_API_USER3);
- $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename));
+ $this->assertTrue(Filesystem::file_exists($this->filename));
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- \OC\Files\Filesystem::unlink($this->filename);
+ Filesystem::unlink($this->filename);
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
// both group share and user share should be gone
- $this->assertFalse(\OC\Files\Filesystem::file_exists($this->filename));
+ $this->assertFalse(Filesystem::file_exists($this->filename));
// for user3 nothing should change
self::loginHelper(self::TEST_FILES_SHARING_API_USER3);
- $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename));
+ $this->assertTrue(Filesystem::file_exists($this->filename));
$this->shareManager->deleteShare($share1);
$this->shareManager->deleteShare($share2);
}
/**
- * @param \OC\Files\FileInfo[] $content
+ * @param FileInfo[] $content
* @param string[] $expected
*/
public function verifyDirContent($content, $expected) {
foreach ($content as $c) {
if (!in_array($c['name'], $expected)) {
- $this->assertTrue(false, "folder should only contain '" . implode(',', $expected) . "', found: " .$c['name']);
+ $this->assertTrue(false, "folder should only contain '" . implode(',', $expected) . "', found: " . $c['name']);
}
}
}
- public function testShareWithDifferentShareFolder() {
+ public function testShareWithDifferentShareFolder(): void {
$fileinfo = $this->view->getFileInfo($this->filename);
$folderinfo = $this->view->getFileInfo($this->folder);
@@ -138,40 +126,40 @@ class ShareTest extends TestCase {
$this->filename,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE
+ Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE | Constants::PERMISSION_SHARE
);
- \OCA\Files_Sharing\Helper::setShareFolder('/Shared/subfolder');
+ Helper::setShareFolder('/Shared/subfolder');
$share = $this->share(
IShare::TYPE_USER,
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename));
- $this->assertTrue(\OC\Files\Filesystem::file_exists('/Shared/subfolder/' . $this->folder));
+ $this->assertTrue(Filesystem::file_exists($this->filename));
+ $this->assertTrue(Filesystem::file_exists('/Shared/subfolder/' . $this->folder));
//cleanup
- \OC::$server->getConfig()->deleteSystemValue('share_folder');
+ Server::get(IConfig::class)->deleteSystemValue('share_folder');
}
- public function testShareWithGroupUniqueName() {
+ public function testShareWithGroupUniqueName(): void {
$this->markTestSkipped('TODO: Disable because fails on drone');
$this->loginHelper(self::TEST_FILES_SHARING_API_USER1);
- \OC\Files\Filesystem::file_put_contents('test.txt', 'test');
+ Filesystem::file_put_contents('test.txt', 'test');
$share = $this->share(
IShare::TYPE_GROUP,
'test.txt',
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_GROUP1,
- \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE
+ Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE | Constants::PERMISSION_SHARE
);
$this->loginHelper(self::TEST_FILES_SHARING_API_USER2);
@@ -181,14 +169,14 @@ class ShareTest extends TestCase {
$this->assertSame('/test.txt', $share->getTarget());
$this->assertSame(19, $share->getPermissions());
- \OC\Files\Filesystem::rename('test.txt', 'new test.txt');
+ Filesystem::rename('test.txt', 'new test.txt');
$shares = $this->shareManager->getSharedWith(self::TEST_FILES_SHARING_API_USER2, IShare::TYPE_GROUP);
$share = $shares[0];
$this->assertSame('/new test.txt', $share->getTarget());
$this->assertSame(19, $share->getPermissions());
- $share->setPermissions(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE);
+ $share->setPermissions(Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE);
$this->shareManager->updateShare($share);
$this->loginHelper(self::TEST_FILES_SHARING_API_USER2);
@@ -201,9 +189,9 @@ class ShareTest extends TestCase {
/**
* shared files should never have delete permissions
- * @dataProvider dataProviderTestFileSharePermissions
*/
- public function testFileSharePermissions($permission, $expectedvalid) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataProviderTestFileSharePermissions')]
+ public function testFileSharePermissions($permission, $expectedvalid): void {
$pass = true;
try {
$this->share(
@@ -220,12 +208,12 @@ class ShareTest extends TestCase {
$this->assertEquals($expectedvalid, $pass);
}
- public function dataProviderTestFileSharePermissions() {
- $permission1 = \OCP\Constants::PERMISSION_ALL;
- $permission3 = \OCP\Constants::PERMISSION_READ;
- $permission4 = \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE;
- $permission5 = \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_DELETE;
- $permission6 = \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE;
+ public static function dataProviderTestFileSharePermissions() {
+ $permission1 = Constants::PERMISSION_ALL;
+ $permission3 = Constants::PERMISSION_READ;
+ $permission4 = Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE;
+ $permission5 = Constants::PERMISSION_READ | Constants::PERMISSION_DELETE;
+ $permission6 = Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE;
return [
[$permission1, false],
@@ -236,18 +224,18 @@ class ShareTest extends TestCase {
];
}
- public function testFileOwner() {
+ public function testFileOwner(): void {
$this->share(
IShare::TYPE_USER,
$this->filename,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_READ
+ Constants::PERMISSION_READ
);
$this->loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $info = \OC\Files\Filesystem::getFileInfo($this->filename);
+ $info = Filesystem::getFileInfo($this->filename);
$this->assertSame(self::TEST_FILES_SHARING_API_USER1, $info->getOwner()->getUID());
}
diff --git a/apps/files_sharing/tests/SharedMountTest.php b/apps/files_sharing/tests/SharedMountTest.php
index e320b85cb22..cc9c70a241f 100644
--- a/apps/files_sharing/tests/SharedMountTest.php
+++ b/apps/files_sharing/tests/SharedMountTest.php
@@ -1,39 +1,23 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
+use OC\Files\Filesystem;
+use OC\Files\View;
use OC\Memcache\ArrayCache;
use OCA\Files_Sharing\MountProvider;
+use OCA\Files_Sharing\SharedMount;
+use OCP\Constants;
use OCP\ICacheFactory;
+use OCP\IDBConnection;
use OCP\IGroupManager;
use OCP\IUserManager;
+use OCP\Server;
use OCP\Share\IShare;
/**
@@ -68,8 +52,8 @@ class SharedMountTest extends TestCase {
$this->view->file_put_contents($this->folder . $this->filename, 'file in subfolder');
$this->view->file_put_contents($this->folder2 . $this->filename, 'file in subfolder2');
- $this->groupManager = \OC::$server->getGroupManager();
- $this->userManager = \OC::$server->getUserManager();
+ $this->groupManager = Server::get(IGroupManager::class);
+ $this->userManager = Server::get(IUserManager::class);
}
protected function tearDown(): void {
@@ -88,7 +72,7 @@ class SharedMountTest extends TestCase {
/**
* test if the mount point moves up if the parent folder no longer exists
*/
- public function testShareMountLoseParentFolder() {
+ public function testShareMountLoseParentFolder(): void {
// share to user
$share = $this->share(
@@ -96,7 +80,7 @@ class SharedMountTest extends TestCase {
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_ALL);
+ Constants::PERMISSION_ALL);
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER2);
$share->setTarget('/foo/bar' . $this->folder);
@@ -120,18 +104,18 @@ class SharedMountTest extends TestCase {
/**
* @medium
*/
- public function testDeleteParentOfMountPoint() {
+ public function testDeleteParentOfMountPoint(): void {
// share to user
$share = $this->share(
IShare::TYPE_USER,
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $user2View = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
+ $user2View = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
$this->assertTrue($user2View->file_exists($this->folder));
// create a local folder
@@ -160,31 +144,31 @@ class SharedMountTest extends TestCase {
$this->view->unlink($this->folder);
}
- public function testMoveSharedFile() {
+ public function testMoveSharedFile(): void {
$share = $this->share(
IShare::TYPE_USER,
$this->filename,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE
+ Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE | Constants::PERMISSION_SHARE
);
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- \OC\Files\Filesystem::rename($this->filename, $this->filename . '_renamed');
+ Filesystem::rename($this->filename, $this->filename . '_renamed');
- $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename . '_renamed'));
- $this->assertFalse(\OC\Files\Filesystem::file_exists($this->filename));
+ $this->assertTrue(Filesystem::file_exists($this->filename . '_renamed'));
+ $this->assertFalse(Filesystem::file_exists($this->filename));
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
- $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename));
- $this->assertFalse(\OC\Files\Filesystem::file_exists($this->filename . '_renamed'));
+ $this->assertTrue(Filesystem::file_exists($this->filename));
+ $this->assertFalse(Filesystem::file_exists($this->filename . '_renamed'));
// rename back to original name
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- \OC\Files\Filesystem::rename($this->filename . '_renamed', $this->filename);
- $this->assertFalse(\OC\Files\Filesystem::file_exists($this->filename . '_renamed'));
- $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename));
+ Filesystem::rename($this->filename . '_renamed', $this->filename);
+ $this->assertFalse(Filesystem::file_exists($this->filename . '_renamed'));
+ $this->assertTrue(Filesystem::file_exists($this->filename));
//cleanup
$this->shareManager->deleteShare($share);
@@ -194,7 +178,7 @@ class SharedMountTest extends TestCase {
* share file with a group if a user renames the file the filename should not change
* for the other users
*/
- public function testMoveGroupShare() {
+ public function testMoveGroupShare(): void {
$testGroup = $this->groupManager->createGroup('testGroup');
$user1 = $this->userManager->get(self::TEST_FILES_SHARING_API_USER1);
$user2 = $this->userManager->get(self::TEST_FILES_SHARING_API_USER2);
@@ -209,7 +193,7 @@ class SharedMountTest extends TestCase {
$this->filename,
self::TEST_FILES_SHARING_API_USER1,
'testGroup',
- \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE
+ Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE | Constants::PERMISSION_SHARE
);
$this->shareManager->acceptShare($share, $user1->getUID());
$this->shareManager->acceptShare($share, $user2->getUID());
@@ -217,20 +201,20 @@ class SharedMountTest extends TestCase {
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename));
+ $this->assertTrue(Filesystem::file_exists($this->filename));
- \OC\Files\Filesystem::rename($this->filename, 'newFileName');
+ Filesystem::rename($this->filename, 'newFileName');
- $this->assertTrue(\OC\Files\Filesystem::file_exists('newFileName'));
- $this->assertFalse(\OC\Files\Filesystem::file_exists($this->filename));
+ $this->assertTrue(Filesystem::file_exists('newFileName'));
+ $this->assertFalse(Filesystem::file_exists($this->filename));
self::loginHelper(self::TEST_FILES_SHARING_API_USER3);
- $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename));
- $this->assertFalse(\OC\Files\Filesystem::file_exists('newFileName'));
+ $this->assertTrue(Filesystem::file_exists($this->filename));
+ $this->assertFalse(Filesystem::file_exists('newFileName'));
self::loginHelper(self::TEST_FILES_SHARING_API_USER3);
- $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename));
- $this->assertFalse(\OC\Files\Filesystem::file_exists('newFileName'));
+ $this->assertTrue(Filesystem::file_exists($this->filename));
+ $this->assertFalse(Filesystem::file_exists('newFileName'));
//cleanup
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
@@ -241,12 +225,12 @@ class SharedMountTest extends TestCase {
}
/**
- * @dataProvider dataProviderTestStripUserFilesPath
* @param string $path
* @param string $expectedResult
* @param bool $exception if a exception is expected
*/
- public function testStripUserFilesPath($path, $expectedResult, $exception) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataProviderTestStripUserFilesPath')]
+ public function testStripUserFilesPath($path, $expectedResult, $exception): void {
$testClass = new DummyTestClassSharedMount(null, null);
try {
$result = $testClass->stripUserFilesPathDummy($path);
@@ -260,7 +244,7 @@ class SharedMountTest extends TestCase {
}
}
- public function dataProviderTestStripUserFilesPath() {
+ public static function dataProviderTestStripUserFilesPath() {
return [
['/user/files/foo.txt', '/foo.txt', false],
['/user/files/folder/foo.txt', '/folder/foo.txt', false],
@@ -275,7 +259,7 @@ class SharedMountTest extends TestCase {
* If the permissions on a group share are upgraded be sure to still respect
* removed shares by a member of that group
*/
- public function testPermissionUpgradeOnUserDeletedGroupShare() {
+ public function testPermissionUpgradeOnUserDeletedGroupShare(): void {
$testGroup = $this->groupManager->createGroup('testGroup');
$user1 = $this->userManager->get(self::TEST_FILES_SHARING_API_USER1);
$user2 = $this->userManager->get(self::TEST_FILES_SHARING_API_USER2);
@@ -284,7 +268,7 @@ class SharedMountTest extends TestCase {
$testGroup->addUser($user2);
$testGroup->addUser($user3);
- $connection = \OC::$server->getDatabaseConnection();
+ $connection = Server::get(IDBConnection::class);
// Share item with group
$fileinfo = $this->view->getFileInfo($this->folder);
@@ -293,7 +277,7 @@ class SharedMountTest extends TestCase {
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
'testGroup',
- \OCP\Constants::PERMISSION_READ
+ Constants::PERMISSION_READ
);
$this->shareManager->acceptShare($share, $user1->getUID());
$this->shareManager->acceptShare($share, $user2->getUID());
@@ -301,14 +285,14 @@ class SharedMountTest extends TestCase {
// Login as user 2 and verify the item exists
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $this->assertTrue(\OC\Files\Filesystem::file_exists($this->folder));
+ $this->assertTrue(Filesystem::file_exists($this->folder));
$result = $this->shareManager->getShareById($share->getFullId(), self::TEST_FILES_SHARING_API_USER2);
$this->assertNotEmpty($result);
- $this->assertEquals(\OCP\Constants::PERMISSION_READ, $result->getPermissions());
+ $this->assertEquals(Constants::PERMISSION_READ, $result->getPermissions());
// Delete the share
- $this->assertTrue(\OC\Files\Filesystem::rmdir($this->folder));
- $this->assertFalse(\OC\Files\Filesystem::file_exists($this->folder));
+ $this->assertTrue(Filesystem::rmdir($this->folder));
+ $this->assertFalse(Filesystem::file_exists($this->folder));
// Verify we do not get a share
$result = $this->shareManager->getShareById($share->getFullId(), self::TEST_FILES_SHARING_API_USER2);
@@ -316,12 +300,12 @@ class SharedMountTest extends TestCase {
// Login as user 1 again and change permissions
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
- $share->setPermissions(\OCP\Constants::PERMISSION_ALL);
+ $share->setPermissions(Constants::PERMISSION_ALL);
$share = $this->shareManager->updateShare($share);
// Login as user 2 and verify
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $this->assertFalse(\OC\Files\Filesystem::file_exists($this->folder));
+ $this->assertFalse(Filesystem::file_exists($this->folder));
$result = $this->shareManager->getShareById($share->getFullId(), self::TEST_FILES_SHARING_API_USER2);
$this->assertEquals(0, $result->getPermissions());
@@ -337,7 +321,7 @@ class SharedMountTest extends TestCase {
/**
* test if the mount point gets renamed if a folder exists at the target
*/
- public function testShareMountOverFolder() {
+ public function testShareMountOverFolder(): void {
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
$this->view2->mkdir('bar');
@@ -349,7 +333,7 @@ class SharedMountTest extends TestCase {
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_ALL);
+ Constants::PERMISSION_ALL);
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER2);
$share->setTarget('/bar');
@@ -372,7 +356,7 @@ class SharedMountTest extends TestCase {
/**
* test if the mount point gets renamed if another share exists at the target
*/
- public function testShareMountOverShare() {
+ public function testShareMountOverShare(): void {
// create a shared cache
$caches = [];
$cacheFactory = $this->createMock(ICacheFactory::class);
@@ -392,9 +376,9 @@ class SharedMountTest extends TestCase {
});
// hack to overwrite the cache factory, we can't use the proper "overwriteService" since the mount provider is created before this test is called
- $mountProvider = \OCP\Server::get(MountProvider::class);
+ $mountProvider = Server::get(MountProvider::class);
$reflectionClass = new \ReflectionClass($mountProvider);
- $reflectionCacheFactory = $reflectionClass->getProperty("cacheFactory");
+ $reflectionCacheFactory = $reflectionClass->getProperty('cacheFactory');
$reflectionCacheFactory->setAccessible(true);
$reflectionCacheFactory->setValue($mountProvider, $cacheFactory);
@@ -404,7 +388,7 @@ class SharedMountTest extends TestCase {
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_ALL);
+ Constants::PERMISSION_ALL);
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER2);
$share->setTarget('/foobar');
@@ -417,7 +401,7 @@ class SharedMountTest extends TestCase {
$this->folder2,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_ALL);
+ Constants::PERMISSION_ALL);
$this->shareManager->acceptShare($share2, self::TEST_FILES_SHARING_API_USER2);
$share2->setTarget('/foobar');
@@ -441,7 +425,7 @@ class SharedMountTest extends TestCase {
}
}
-class DummyTestClassSharedMount extends \OCA\Files_Sharing\SharedMount {
+class DummyTestClassSharedMount extends SharedMount {
public function __construct($storage, $mountpoint, $arguments = null, $loader = null) {
// noop
}
diff --git a/apps/files_sharing/tests/SharedStorageTest.php b/apps/files_sharing/tests/SharedStorageTest.php
index 5209a30634a..1c1f0a7b71d 100644
--- a/apps/files_sharing/tests/SharedStorageTest.php
+++ b/apps/files_sharing/tests/SharedStorageTest.php
@@ -1,38 +1,26 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
+use OC\Files\Cache\FailedCache;
+use OC\Files\Filesystem;
+use OC\Files\Storage\FailedStorage;
+use OC\Files\Storage\Storage;
+use OC\Files\Storage\Temporary;
use OC\Files\View;
use OCA\Files_Sharing\SharedStorage;
use OCA\Files_Trashbin\AppInfo\Application;
use OCP\AppFramework\Bootstrap\IBootContext;
+use OCP\Constants;
+use OCP\Files\Config\IMountProviderCollection;
use OCP\Files\NotFoundException;
+use OCP\IUserManager;
+use OCP\Server;
use OCP\Share\IShare;
/**
@@ -54,8 +42,8 @@ class SharedStorageTest extends TestCase {
$this->view->mkdir($this->folder);
// save file with content
- $this->view->file_put_contents($this->filename, "root file");
- $this->view->file_put_contents($this->folder . $this->filename, "file in subfolder");
+ $this->view->file_put_contents($this->filename, 'root file');
+ $this->view->file_put_contents($this->folder . $this->filename, 'file in subfolder');
}
protected function tearDown(): void {
@@ -68,7 +56,7 @@ class SharedStorageTest extends TestCase {
}
}
- \OC\Files\Filesystem::getLoader()->removeStorageWrapper('oc_trashbin');
+ Filesystem::getLoader()->removeStorageWrapper('oc_trashbin');
parent::tearDown();
}
@@ -78,7 +66,7 @@ class SharedStorageTest extends TestCase {
*
* @medium
*/
- public function testParentOfMountPointIsGone() {
+ public function testParentOfMountPointIsGone(): void {
// share to user
$share = $this->share(
@@ -86,11 +74,11 @@ class SharedStorageTest extends TestCase {
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $user2View = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
+ $user2View = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
$this->assertTrue($user2View->file_exists($this->folder));
// create a local folder
@@ -105,8 +93,8 @@ class SharedStorageTest extends TestCase {
$this->assertFalse($user2View->is_dir($this->folder));
// delete the local folder
- /** @var \OC\Files\Storage\Storage $storage */
- [$storage, $internalPath] = \OC\Files\Filesystem::resolvePath('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/localfolder');
+ /** @var Storage $storage */
+ [$storage, $internalPath] = Filesystem::resolvePath('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/localfolder');
$storage->rmdir($internalPath);
//enforce reload of the mount points
@@ -123,7 +111,7 @@ class SharedStorageTest extends TestCase {
/**
* @medium
*/
- public function testRenamePartFile() {
+ public function testRenamePartFile(): void {
// share to user
$share = $this->share(
@@ -131,12 +119,12 @@ class SharedStorageTest extends TestCase {
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $user2View = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
+ $user2View = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
$this->assertTrue($user2View->file_exists($this->folder));
@@ -161,7 +149,7 @@ class SharedStorageTest extends TestCase {
$this->shareManager->deleteShare($share);
}
- public function testFilesize() {
+ public function testFilesize(): void {
$folderSize = $this->view->filesize($this->folder);
$file1Size = $this->view->filesize($this->folder . $this->filename);
$file2Size = $this->view->filesize($this->filename);
@@ -171,7 +159,7 @@ class SharedStorageTest extends TestCase {
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
$share2 = $this->share(
@@ -179,45 +167,45 @@ class SharedStorageTest extends TestCase {
$this->filename,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE
+ Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE | Constants::PERMISSION_SHARE
);
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
// compare file size between user1 and user2, should always be the same
- $this->assertSame($folderSize, \OC\Files\Filesystem::filesize($this->folder));
- $this->assertSame($file1Size, \OC\Files\Filesystem::filesize($this->folder . $this->filename));
- $this->assertSame($file2Size, \OC\Files\Filesystem::filesize($this->filename));
+ $this->assertSame($folderSize, Filesystem::filesize($this->folder));
+ $this->assertSame($file1Size, Filesystem::filesize($this->folder . $this->filename));
+ $this->assertSame($file2Size, Filesystem::filesize($this->filename));
//cleanup
$this->shareManager->deleteShare($share1);
$this->shareManager->deleteShare($share2);
}
- public function testGetPermissions() {
+ public function testGetPermissions(): void {
$share = $this->share(
IShare::TYPE_USER,
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_READ
+ Constants::PERMISSION_READ
);
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $this->assertTrue(\OC\Files\Filesystem::is_dir($this->folder));
+ $this->assertTrue(Filesystem::is_dir($this->folder));
// for the share root we expect:
// the read permissions (1)
// the delete permission (8), to enable unshare
- $rootInfo = \OC\Files\Filesystem::getFileInfo($this->folder);
+ $rootInfo = Filesystem::getFileInfo($this->folder);
$this->assertSame(9, $rootInfo->getPermissions());
// for the file within the shared folder we expect:
// the read permissions (1)
- $subfileInfo = \OC\Files\Filesystem::getFileInfo($this->folder . $this->filename);
+ $subfileInfo = Filesystem::getFileInfo($this->folder . $this->filename);
$this->assertSame(1, $subfileInfo->getPermissions());
@@ -225,7 +213,7 @@ class SharedStorageTest extends TestCase {
$this->shareManager->deleteShare($share);
}
- public function testFopenWithReadOnlyPermission() {
+ public function testFopenWithReadOnlyPermission(): void {
$this->view->file_put_contents($this->folder . '/existing.txt', 'foo');
$share = $this->share(
@@ -233,11 +221,11 @@ class SharedStorageTest extends TestCase {
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_READ
+ Constants::PERMISSION_READ
);
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $user2View = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
+ $user2View = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
// part file should be forbidden
$handle = $user2View->fopen($this->folder . '/test.txt.part', 'w');
@@ -257,7 +245,7 @@ class SharedStorageTest extends TestCase {
$this->shareManager->deleteShare($share);
}
- public function testFopenWithCreateOnlyPermission() {
+ public function testFopenWithCreateOnlyPermission(): void {
$this->view->file_put_contents($this->folder . '/existing.txt', 'foo');
$fileinfoFolder = $this->view->getFileInfo($this->folder);
@@ -266,11 +254,11 @@ class SharedStorageTest extends TestCase {
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE
+ Constants::PERMISSION_READ | Constants::PERMISSION_CREATE
);
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $user2View = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
+ $user2View = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
// create part file allowed
$handle = $user2View->fopen($this->folder . '/test.txt.part', 'w');
@@ -304,7 +292,7 @@ class SharedStorageTest extends TestCase {
$this->shareManager->deleteShare($share);
}
- public function testFopenWithUpdateOnlyPermission() {
+ public function testFopenWithUpdateOnlyPermission(): void {
$this->view->file_put_contents($this->folder . '/existing.txt', 'foo');
$share = $this->share(
@@ -312,11 +300,11 @@ class SharedStorageTest extends TestCase {
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE
+ Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE
);
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $user2View = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
+ $user2View = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
// create part file allowed
$handle = $user2View->fopen($this->folder . '/test.txt.part', 'w');
@@ -350,7 +338,7 @@ class SharedStorageTest extends TestCase {
$this->shareManager->deleteShare($share);
}
- public function testFopenWithDeleteOnlyPermission() {
+ public function testFopenWithDeleteOnlyPermission(): void {
$this->view->file_put_contents($this->folder . '/existing.txt', 'foo');
$share = $this->share(
@@ -358,11 +346,11 @@ class SharedStorageTest extends TestCase {
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_DELETE
+ Constants::PERMISSION_READ | Constants::PERMISSION_DELETE
);
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $user2View = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
+ $user2View = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
// part file should be forbidden
$handle = $user2View->fopen($this->folder . '/test.txt.part', 'w');
@@ -382,8 +370,8 @@ class SharedStorageTest extends TestCase {
$this->shareManager->deleteShare($share);
}
- public function testMountSharesOtherUser() {
- $rootView = new \OC\Files\View('');
+ public function testMountSharesOtherUser(): void {
+ $rootView = new View('');
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
// share 2 different files with 2 different users
@@ -392,22 +380,22 @@ class SharedStorageTest extends TestCase {
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
$share2 = $this->share(
IShare::TYPE_USER,
$this->filename,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER3,
- \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE
+ Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE | Constants::PERMISSION_SHARE
);
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
$this->assertTrue($rootView->file_exists('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/' . $this->folder));
- $mountConfigManager = \OC::$server->getMountProviderCollection();
- $mounts = $mountConfigManager->getMountsForUser(\OC::$server->getUserManager()->get(self::TEST_FILES_SHARING_API_USER3));
- array_walk($mounts, [\OC\Files\Filesystem::getMountManager(), 'addMount']);
+ $mountConfigManager = Server::get(IMountProviderCollection::class);
+ $mounts = $mountConfigManager->getMountsForUser(Server::get(IUserManager::class)->get(self::TEST_FILES_SHARING_API_USER3));
+ array_walk($mounts, [Filesystem::getMountManager(), 'addMount']);
$this->assertTrue($rootView->file_exists('/' . self::TEST_FILES_SHARING_API_USER3 . '/files/' . $this->filename));
@@ -423,7 +411,7 @@ class SharedStorageTest extends TestCase {
$this->shareManager->deleteShare($share2);
}
- public function testCopyFromStorage() {
+ public function testCopyFromStorage(): void {
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
$share = $this->share(
@@ -431,20 +419,17 @@ class SharedStorageTest extends TestCase {
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $view = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
+ $view = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
$this->assertTrue($view->file_exists($this->folder));
- /**
- * @var \OCP\Files\Storage $sharedStorage
- */
[$sharedStorage,] = $view->resolvePath($this->folder);
$this->assertTrue($sharedStorage->instanceOfStorage('OCA\Files_Sharing\ISharedStorage'));
- $sourceStorage = new \OC\Files\Storage\Temporary([]);
+ $sourceStorage = new Temporary([]);
$sourceStorage->file_put_contents('foo.txt', 'asd');
$sharedStorage->copyFromStorage($sourceStorage, 'foo.txt', 'bar.txt');
@@ -456,7 +441,7 @@ class SharedStorageTest extends TestCase {
$this->shareManager->deleteShare($share);
}
- public function testMoveFromStorage() {
+ public function testMoveFromStorage(): void {
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
$share = $this->share(
@@ -464,21 +449,19 @@ class SharedStorageTest extends TestCase {
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $view = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
+ $view = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
$this->assertTrue($view->file_exists($this->folder));
- /**
- * @var \OCP\Files\Storage $sharedStorage
- */
[$sharedStorage,] = $view->resolvePath($this->folder);
$this->assertTrue($sharedStorage->instanceOfStorage('OCA\Files_Sharing\ISharedStorage'));
- $sourceStorage = new \OC\Files\Storage\Temporary([]);
+ $sourceStorage = new Temporary([]);
$sourceStorage->file_put_contents('foo.txt', 'asd');
+ $sourceStorage->getScanner()->scan('');
$sharedStorage->moveFromStorage($sourceStorage, 'foo.txt', 'bar.txt');
$this->assertTrue($sharedStorage->file_exists('bar.txt'));
@@ -489,13 +472,13 @@ class SharedStorageTest extends TestCase {
$this->shareManager->deleteShare($share);
}
- public function testNameConflict() {
+ public function testNameConflict(): void {
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
- $view1 = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER1 . '/files');
+ $view1 = new View('/' . self::TEST_FILES_SHARING_API_USER1 . '/files');
$view1->mkdir('foo');
self::loginHelper(self::TEST_FILES_SHARING_API_USER3);
- $view3 = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER3 . '/files');
+ $view3 = new View('/' . self::TEST_FILES_SHARING_API_USER3 . '/files');
$view3->mkdir('foo');
// share a folder with the same name from two different users to the same user
@@ -506,7 +489,7 @@ class SharedStorageTest extends TestCase {
'foo',
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_GROUP1,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
$this->shareManager->acceptShare($share1, self::TEST_FILES_SHARING_API_USER2);
@@ -519,19 +502,19 @@ class SharedStorageTest extends TestCase {
'foo',
self::TEST_FILES_SHARING_API_USER3,
self::TEST_FILES_SHARING_API_GROUP1,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
$this->shareManager->acceptShare($share2, self::TEST_FILES_SHARING_API_USER2);
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $view2 = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
+ $view2 = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
$this->assertTrue($view2->file_exists('/foo'));
$this->assertTrue($view2->file_exists('/foo (2)'));
$mount = $view2->getMount('/foo');
$this->assertInstanceOf('\OCA\Files_Sharing\SharedMount', $mount);
- /** @var \OCA\Files_Sharing\SharedStorage $storage */
+ /** @var SharedStorage $storage */
$storage = $mount->getStorage();
$this->assertEquals(self::TEST_FILES_SHARING_API_USER1, $storage->getOwner(''));
@@ -540,7 +523,7 @@ class SharedStorageTest extends TestCase {
$this->shareManager->deleteShare($share2);
}
- public function testOwnerPermissions() {
+ public function testOwnerPermissions(): void {
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
$share = $this->share(
@@ -548,11 +531,11 @@ class SharedStorageTest extends TestCase {
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_ALL - \OCP\Constants::PERMISSION_DELETE
+ Constants::PERMISSION_ALL - Constants::PERMISSION_DELETE
);
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $view = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
+ $view = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
$this->assertTrue($view->file_exists($this->folder));
$view->file_put_contents($this->folder . '/newfile.txt', 'asd');
@@ -560,14 +543,14 @@ class SharedStorageTest extends TestCase {
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
$this->assertTrue($this->view->file_exists($this->folder . '/newfile.txt'));
- $this->assertEquals(\OCP\Constants::PERMISSION_ALL - \OCP\Constants::PERMISSION_CREATE,
+ $this->assertEquals(Constants::PERMISSION_ALL - Constants::PERMISSION_CREATE,
$this->view->getFileInfo($this->folder . '/newfile.txt')->getPermissions());
$this->view->unlink($this->folder);
$this->shareManager->deleteShare($share);
}
- public function testInitWithNonExistingUser() {
+ public function testInitWithNonExistingUser(): void {
$share = $this->createMock(IShare::class);
$share->method('getShareOwner')->willReturn('unexist');
$ownerView = $this->createMock(View::class);
@@ -579,16 +562,16 @@ class SharedStorageTest extends TestCase {
]);
// trigger init
- $this->assertInstanceOf(\OC\Files\Storage\FailedStorage::class, $storage->getSourceStorage());
- $this->assertInstanceOf(\OC\Files\Cache\FailedCache::class, $storage->getCache());
+ $this->assertInstanceOf(FailedStorage::class, $storage->getSourceStorage());
+ $this->assertInstanceOf(FailedCache::class, $storage->getCache());
}
- public function testInitWithNotFoundSource() {
+ public function testInitWithNotFoundSource(): void {
$share = $this->createMock(IShare::class);
$share->method('getShareOwner')->willReturn(self::TEST_FILES_SHARING_API_USER1);
$share->method('getNodeId')->willReturn(1);
$ownerView = $this->createMock(View::class);
- $ownerView->method('getPath')->will($this->throwException(new NotFoundException()));
+ $ownerView->method('getPath')->willThrowException(new NotFoundException());
$storage = new SharedStorage([
'ownerView' => $ownerView,
'superShare' => $share,
@@ -597,7 +580,33 @@ class SharedStorageTest extends TestCase {
]);
// trigger init
- $this->assertInstanceOf(\OC\Files\Storage\FailedStorage::class, $storage->getSourceStorage());
- $this->assertInstanceOf(\OC\Files\Cache\FailedCache::class, $storage->getCache());
+ $this->assertInstanceOf(FailedStorage::class, $storage->getSourceStorage());
+ $this->assertInstanceOf(FailedCache::class, $storage->getCache());
+ }
+
+ public function testCopyPermissions(): void {
+ self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
+
+ $share = $this->share(
+ IShare::TYPE_USER,
+ $this->filename,
+ self::TEST_FILES_SHARING_API_USER1,
+ self::TEST_FILES_SHARING_API_USER2,
+ Constants::PERMISSION_ALL - Constants::PERMISSION_CREATE - Constants::PERMISSION_DELETE
+ );
+
+ self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
+ $view = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
+ $this->assertTrue($view->file_exists($this->filename));
+
+ $this->assertTrue($view->copy($this->filename, '/target.txt'));
+
+ $this->assertTrue($view->file_exists('/target.txt'));
+
+ $info = $view->getFileInfo('/target.txt');
+ $this->assertEquals(Constants::PERMISSION_ALL - Constants::PERMISSION_CREATE, $info->getPermissions());
+
+ $this->view->unlink($this->filename);
+ $this->shareManager->deleteShare($share);
}
}
diff --git a/apps/files_sharing/tests/SharesReminderJobTest.php b/apps/files_sharing/tests/SharesReminderJobTest.php
new file mode 100644
index 00000000000..ce468e279ec
--- /dev/null
+++ b/apps/files_sharing/tests/SharesReminderJobTest.php
@@ -0,0 +1,193 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\Files_Sharing\Tests;
+
+use OC\SystemConfig;
+use OCA\Files_Sharing\SharesReminderJob;
+use OCP\AppFramework\Utility\ITimeFactory;
+use OCP\Constants;
+use OCP\Defaults;
+use OCP\Files\IMimeTypeLoader;
+use OCP\Files\IRootFolder;
+use OCP\IDBConnection;
+use OCP\IURLGenerator;
+use OCP\IUserManager;
+use OCP\L10N\IFactory;
+use OCP\Mail\IMailer;
+use OCP\Mail\IMessage;
+use OCP\Server;
+use OCP\Share\IManager;
+use OCP\Share\IShare;
+use PHPUnit\Framework\MockObject\MockObject;
+use Psr\Log\LoggerInterface;
+
+/**
+ * Class SharesReminderJobTest
+ *
+ * @group DB
+ *
+ * @package OCA\Files_Sharing\Tests
+ */
+class SharesReminderJobTest extends \Test\TestCase {
+ private SharesReminderJob $job;
+ private IDBConnection $db;
+ private IManager $shareManager;
+ private IUserManager $userManager;
+ private IMailer|MockObject $mailer;
+ private string $user1;
+ private string $user2;
+
+ protected function setUp(): void {
+ parent::setUp();
+
+ $this->db = Server::get(IDBConnection::class);
+ $this->shareManager = Server::get(IManager::class);
+ $this->userManager = Server::get(IUserManager::class);
+ $this->mailer = $this->createMock(IMailer::class);
+
+ // Clear occasional leftover shares from other tests
+ $this->db->executeUpdate('DELETE FROM `*PREFIX*share`');
+
+ $this->user1 = $this->getUniqueID('user1_');
+ $this->user2 = $this->getUniqueID('user2_');
+
+ $user1 = $this->userManager->createUser($this->user1, 'longrandompassword');
+ $user2 = $this->userManager->createUser($this->user2, 'longrandompassword');
+ $user1->setSystemEMailAddress('user1@test.com');
+ $user2->setSystemEMailAddress('user2@test.com');
+
+ \OC::registerShareHooks(Server::get(SystemConfig::class));
+
+ $this->job = new SharesReminderJob(
+ Server::get(ITimeFactory::class),
+ $this->db,
+ Server::get(IManager::class),
+ $this->userManager,
+ Server::get(LoggerInterface::class),
+ Server::get(IURLGenerator::class),
+ Server::get(IFactory::class),
+ $this->mailer,
+ Server::get(Defaults::class),
+ Server::get(IMimeTypeLoader::class),
+ );
+ }
+
+ protected function tearDown(): void {
+ $this->db->executeUpdate('DELETE FROM `*PREFIX*share`');
+
+ $userManager = Server::get(IUserManager::class);
+ $user1 = $userManager->get($this->user1);
+ if ($user1) {
+ $user1->delete();
+ }
+ $user2 = $userManager->get($this->user2);
+ if ($user2) {
+ $user2->delete();
+ }
+
+ $this->logout();
+
+ parent::tearDown();
+ }
+
+ public static function dataSharesReminder() {
+ $someMail = 'test@test.com';
+ $noExpirationDate = null;
+ $today = new \DateTime();
+ // For expiration dates, the time is always automatically set to zero by ShareAPIController
+ $today->setTime(0, 0);
+ $nearFuture = new \DateTime();
+ $nearFuture->setTimestamp($today->getTimestamp() + 86400 * 1);
+ $farFuture = new \DateTime();
+ $farFuture->setTimestamp($today->getTimestamp() + 86400 * 2);
+ $permissionRead = Constants::PERMISSION_READ;
+ $permissionCreate = $permissionRead | Constants::PERMISSION_CREATE;
+ $permissionUpdate = $permissionRead | Constants::PERMISSION_UPDATE;
+ $permissionDelete = $permissionRead | Constants::PERMISSION_DELETE;
+ $permissionAll = Constants::PERMISSION_ALL;
+
+ return [
+ // No reminders for folders without expiration date
+ [$noExpirationDate, '', false, $permissionRead, false],
+ [$noExpirationDate, '', false, $permissionCreate, false],
+ [$noExpirationDate, '', true, $permissionDelete, false],
+ [$noExpirationDate, '', true, $permissionCreate, false],
+ [$noExpirationDate, $someMail, false, $permissionUpdate, false],
+ [$noExpirationDate, $someMail, false, $permissionCreate, false],
+ [$noExpirationDate, $someMail, true, $permissionRead, false],
+ [$noExpirationDate, $someMail, true, $permissionAll, false],
+ // No reminders for folders with expiration date in the far future
+ [$farFuture, '', false, $permissionRead, false],
+ [$farFuture, '', false, $permissionCreate, false],
+ [$farFuture, '', true, $permissionDelete, false],
+ [$farFuture, '', true, $permissionCreate, false],
+ [$farFuture, $someMail, false, $permissionUpdate, false],
+ [$farFuture, $someMail, false, $permissionCreate, false],
+ [$farFuture, $someMail, true, $permissionRead, false],
+ [$farFuture, $someMail, true, $permissionAll, false],
+ /* Should send reminders for folders with expiration date in the near future
+ if the folder is empty and the user has write permission */
+ [$nearFuture, '', false, $permissionRead, false],
+ [$nearFuture, '', false, $permissionCreate, false],
+ [$nearFuture, '', true, $permissionDelete, false],
+ [$nearFuture, '', true, $permissionCreate, true],
+ [$nearFuture, $someMail, false, $permissionUpdate, false],
+ [$nearFuture, $someMail, false, $permissionCreate, false],
+ [$nearFuture, $someMail, true, $permissionRead, false],
+ [$nearFuture, $someMail, true, $permissionAll, true],
+ ];
+ }
+
+ /**
+ *
+ * @param \DateTime|null $expirationDate Share expiration date
+ * @param string $email Share with this email. If empty, the share is of type TYPE_USER and the sharee is user2
+ * @param bool $isEmpty Is share folder empty?
+ * @param int $permissions
+ * @param bool $shouldBeReminded
+ */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSharesReminder')]
+ public function testSharesReminder(
+ ?\DateTime $expirationDate, string $email, bool $isEmpty, int $permissions, bool $shouldBeReminded,
+ ): void {
+ $this->loginAsUser($this->user1);
+
+ $user1Folder = Server::get(IRootFolder::class)->getUserFolder($this->user1);
+ $testFolder = $user1Folder->newFolder('test');
+
+ if (!$isEmpty) {
+ $testFolder->newFile('some_file.txt', 'content');
+ }
+
+ $share = $this->shareManager->newShare();
+
+ $share->setNode($testFolder)
+ ->setShareType(($email ? IShare::TYPE_EMAIL : IShare::TYPE_USER))
+ ->setPermissions($permissions)
+ ->setSharedBy($this->user1)
+ ->setSharedWith(($email ?: $this->user2))
+ ->setExpirationDate($expirationDate);
+ $share = $this->shareManager->createShare($share);
+
+ $this->logout();
+ $messageMock = $this->createMock(IMessage::class);
+ $this->mailer->method('createMessage')->willReturn($messageMock);
+ $this->mailer
+ ->expects(($shouldBeReminded ? $this->once() : $this->never()))
+ ->method('send')
+ ->with($messageMock);
+ $messageMock
+ ->expects(($shouldBeReminded ? $this->once() : $this->never()))
+ ->method('setTo')
+ ->with([$email ?: $this->userManager->get($this->user2)->getSystemEMailAddress()]);
+ $this->assertSame(false, $share->getReminderSent());
+ $this->job->run([]);
+ $share = $this->shareManager->getShareById($share->getFullId());
+ $this->assertEquals($shouldBeReminded, $share->getReminderSent());
+ }
+}
diff --git a/apps/files_sharing/tests/SizePropagationTest.php b/apps/files_sharing/tests/SizePropagationTest.php
index ddb77459073..e1b67abca90 100644
--- a/apps/files_sharing/tests/SizePropagationTest.php
+++ b/apps/files_sharing/tests/SizePropagationTest.php
@@ -1,31 +1,16 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
use OC\Files\View;
+use OCP\Constants;
+use OCP\ITempManager;
+use OCP\Server;
use OCP\Share\IShare;
use Test\Traits\UserTrait;
@@ -41,13 +26,13 @@ class SizePropagationTest extends TestCase {
protected function setupUser($name, $password = '') {
$this->createUser($name, $password);
- $tmpFolder = \OC::$server->getTempManager()->getTemporaryFolder();
+ $tmpFolder = Server::get(ITempManager::class)->getTemporaryFolder();
$this->registerMount($name, '\OC\Files\Storage\Local', '/' . $name, ['datadir' => $tmpFolder]);
$this->loginAsUser($name);
return new View('/' . $name . '/files');
}
- public function testSizePropagationWhenOwnerChangesFile() {
+ public function testSizePropagationWhenOwnerChangesFile(): void {
$recipientView = $this->setupUser(self::TEST_FILES_SHARING_API_USER1);
$ownerView = $this->setupUser(self::TEST_FILES_SHARING_API_USER2);
@@ -59,7 +44,7 @@ class SizePropagationTest extends TestCase {
'/sharedfolder',
self::TEST_FILES_SHARING_API_USER2,
self::TEST_FILES_SHARING_API_USER1,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
$ownerRootInfo = $ownerView->getFileInfo('', false);
@@ -82,7 +67,7 @@ class SizePropagationTest extends TestCase {
$this->assertEquals($ownerRootInfo->getSize() + 3, $newOwnerRootInfo->getSize());
}
- public function testSizePropagationWhenRecipientChangesFile() {
+ public function testSizePropagationWhenRecipientChangesFile(): void {
$recipientView = $this->setupUser(self::TEST_FILES_SHARING_API_USER1);
$ownerView = $this->setupUser(self::TEST_FILES_SHARING_API_USER2);
@@ -94,7 +79,7 @@ class SizePropagationTest extends TestCase {
'/sharedfolder',
self::TEST_FILES_SHARING_API_USER2,
self::TEST_FILES_SHARING_API_USER1,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
$ownerRootInfo = $ownerView->getFileInfo('', false);
diff --git a/apps/files_sharing/tests/TestCase.php b/apps/files_sharing/tests/TestCase.php
index 84e436b17cd..9a6935e46b6 100644
--- a/apps/files_sharing/tests/TestCase.php
+++ b/apps/files_sharing/tests/TestCase.php
@@ -1,43 +1,28 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Jörn Friedrich Dreyer <jfd@butonic.de>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Robin McCorkell <robin@mccorkell.me.uk>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
+use OC\Files\Cache\Storage;
use OC\Files\Filesystem;
+use OC\Files\View;
+use OC\Group\Database;
+use OC\SystemConfig;
use OC\User\DisplayNameCache;
use OCA\Files_Sharing\AppInfo\Application;
use OCA\Files_Sharing\External\MountProvider as ExternalMountProvider;
use OCA\Files_Sharing\MountProvider;
use OCP\Files\Config\IMountProviderCollection;
+use OCP\Files\IRootFolder;
+use OCP\IDBConnection;
+use OCP\IGroupManager;
+use OCP\IUserManager;
+use OCP\IUserSession;
+use OCP\Server;
use OCP\Share\IShare;
use Test\Traits\MountProviderTrait;
@@ -51,21 +36,21 @@ use Test\Traits\MountProviderTrait;
abstract class TestCase extends \Test\TestCase {
use MountProviderTrait;
- public const TEST_FILES_SHARING_API_USER1 = "test-share-user1";
- public const TEST_FILES_SHARING_API_USER2 = "test-share-user2";
- public const TEST_FILES_SHARING_API_USER3 = "test-share-user3";
- public const TEST_FILES_SHARING_API_USER4 = "test-share-user4";
+ public const TEST_FILES_SHARING_API_USER1 = 'test-share-user1';
+ public const TEST_FILES_SHARING_API_USER2 = 'test-share-user2';
+ public const TEST_FILES_SHARING_API_USER3 = 'test-share-user3';
+ public const TEST_FILES_SHARING_API_USER4 = 'test-share-user4';
- public const TEST_FILES_SHARING_API_GROUP1 = "test-share-group1";
+ public const TEST_FILES_SHARING_API_GROUP1 = 'test-share-group1';
public $filename;
public $data;
/**
- * @var \OC\Files\View
+ * @var View
*/
public $view;
/**
- * @var \OC\Files\View
+ * @var View
*/
public $view2;
public $folder;
@@ -73,7 +58,7 @@ abstract class TestCase extends \Test\TestCase {
/** @var \OCP\Share\IManager */
protected $shareManager;
- /** @var \OCP\Files\IRootFolder */
+ /** @var IRootFolder */
protected $rootFolder;
public static function setUpBeforeClass(): void {
@@ -81,22 +66,22 @@ abstract class TestCase extends \Test\TestCase {
$app = new Application();
$app->registerMountProviders(
- \OC::$server->get(IMountProviderCollection::class),
- \OC::$server->get(MountProvider::class),
- \OC::$server->get(ExternalMountProvider::class),
+ Server::get(IMountProviderCollection::class),
+ Server::get(MountProvider::class),
+ Server::get(ExternalMountProvider::class),
);
// reset backend
- \OC_User::clearBackends();
- \OC::$server->getGroupManager()->clearBackends();
+ Server::get(IUserManager::class)->clearBackends();
+ Server::get(IGroupManager::class)->clearBackends();
// clear share hooks
\OC_Hook::clear('OCP\\Share');
- \OC::registerShareHooks(\OC::$server->getSystemConfig());
+ \OC::registerShareHooks(Server::get(SystemConfig::class));
// create users
$backend = new \Test\Util\User\Dummy();
- \OC_User::useBackend($backend);
+ Server::get(IUserManager::class)->registerBackend($backend);
$backend->createUser(self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER1);
$backend->createUser(self::TEST_FILES_SHARING_API_USER2, self::TEST_FILES_SHARING_API_USER2);
$backend->createUser(self::TEST_FILES_SHARING_API_USER3, self::TEST_FILES_SHARING_API_USER3);
@@ -116,35 +101,35 @@ abstract class TestCase extends \Test\TestCase {
$groupBackend->addToGroup(self::TEST_FILES_SHARING_API_USER3, 'group2');
$groupBackend->addToGroup(self::TEST_FILES_SHARING_API_USER4, 'group3');
$groupBackend->addToGroup(self::TEST_FILES_SHARING_API_USER2, self::TEST_FILES_SHARING_API_GROUP1);
- \OC::$server->getGroupManager()->addBackend($groupBackend);
+ Server::get(IGroupManager::class)->addBackend($groupBackend);
}
protected function setUp(): void {
parent::setUp();
- \OC::$server->get(DisplayNameCache::class)->clear();
+ Server::get(DisplayNameCache::class)->clear();
//login as user1
- self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
+ $this->loginHelper(self::TEST_FILES_SHARING_API_USER1);
$this->data = 'foobar';
- $this->view = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER1 . '/files');
- $this->view2 = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
+ $this->view = new View('/' . self::TEST_FILES_SHARING_API_USER1 . '/files');
+ $this->view2 = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
- $this->shareManager = \OC::$server->getShareManager();
- $this->rootFolder = \OC::$server->getRootFolder();
+ $this->shareManager = Server::get(\OCP\Share\IManager::class);
+ $this->rootFolder = Server::get(IRootFolder::class);
}
protected function tearDown(): void {
- $qb = \OC::$server->getDatabaseConnection()->getQueryBuilder();
+ $qb = Server::get(IDBConnection::class)->getQueryBuilder();
$qb->delete('share');
$qb->execute();
- $qb = \OC::$server->getDatabaseConnection()->getQueryBuilder();
+ $qb = Server::get(IDBConnection::class)->getQueryBuilder();
$qb->delete('mounts');
$qb->execute();
- $qb = \OC::$server->getDatabaseConnection()->getQueryBuilder();
- $qb->delete('filecache');
+ $qb = Server::get(IDBConnection::class)->getQueryBuilder();
+ $qb->delete('filecache')->runAcrossAllShards();
$qb->execute();
parent::tearDown();
@@ -152,21 +137,21 @@ abstract class TestCase extends \Test\TestCase {
public static function tearDownAfterClass(): void {
// cleanup users
- $user = \OC::$server->getUserManager()->get(self::TEST_FILES_SHARING_API_USER1);
+ $user = Server::get(IUserManager::class)->get(self::TEST_FILES_SHARING_API_USER1);
if ($user !== null) {
$user->delete();
}
- $user = \OC::$server->getUserManager()->get(self::TEST_FILES_SHARING_API_USER2);
+ $user = Server::get(IUserManager::class)->get(self::TEST_FILES_SHARING_API_USER2);
if ($user !== null) {
$user->delete();
}
- $user = \OC::$server->getUserManager()->get(self::TEST_FILES_SHARING_API_USER3);
+ $user = Server::get(IUserManager::class)->get(self::TEST_FILES_SHARING_API_USER3);
if ($user !== null) {
$user->delete();
}
// delete group
- $group = \OC::$server->getGroupManager()->get(self::TEST_FILES_SHARING_API_GROUP1);
+ $group = Server::get(IGroupManager::class)->get(self::TEST_FILES_SHARING_API_GROUP1);
if ($group) {
$group->delete();
}
@@ -176,10 +161,10 @@ abstract class TestCase extends \Test\TestCase {
Filesystem::tearDown();
// reset backend
- \OC_User::clearBackends();
- \OC_User::useBackend('database');
- \OC::$server->getGroupManager()->clearBackends();
- \OC::$server->getGroupManager()->addBackend(new \OC\Group\Database());
+ Server::get(IUserManager::class)->clearBackends();
+ Server::get(IUserManager::class)->registerBackend(new \OC\User\Database());
+ Server::get(IGroupManager::class)->clearBackends();
+ Server::get(IGroupManager::class)->addBackend(new Database());
parent::tearDownAfterClass();
}
@@ -189,14 +174,14 @@ abstract class TestCase extends \Test\TestCase {
* @param bool $create
* @param bool $password
*/
- protected static function loginHelper($user, $create = false, $password = false) {
+ protected function loginHelper($user, $create = false, $password = false) {
if ($password === false) {
$password = $user;
}
if ($create) {
- $userManager = \OC::$server->getUserManager();
- $groupManager = \OC::$server->getGroupManager();
+ $userManager = Server::get(IUserManager::class);
+ $groupManager = Server::get(IGroupManager::class);
$userObject = $userManager->createUser($user, $password);
$group = $groupManager->createGroup('group');
@@ -207,10 +192,10 @@ abstract class TestCase extends \Test\TestCase {
}
\OC_Util::tearDownFS();
- \OC\Files\Cache\Storage::getGlobalCache()->clearCache();
- \OC::$server->getUserSession()->setUser(null);
- \OC\Files\Filesystem::tearDown();
- \OC::$server->getUserSession()->login($user, $password);
+ Storage::getGlobalCache()->clearCache();
+ Server::get(IUserSession::class)->setUser(null);
+ Filesystem::tearDown();
+ Server::get(IUserSession::class)->login($user, $password);
\OC::$server->getUserFolder($user);
\OC_Util::setupFS($user);
@@ -222,7 +207,7 @@ abstract class TestCase extends \Test\TestCase {
* @return array with: item_source, share_type, share_with, item_type, permissions
*/
protected function getShareFromId($shareID) {
- $qb = \OC::$server->getDatabaseConnection()->getQueryBuilder();
+ $qb = Server::get(IDBConnection::class)->getQueryBuilder();
$qb->select('item_source', '`share_type', 'share_with', 'item_type', 'permissions')
->from('share')
->where(
@@ -241,7 +226,7 @@ abstract class TestCase extends \Test\TestCase {
* @param string $initiator
* @param string $recipient
* @param int $permissions
- * @return \OCP\Share\IShare
+ * @return IShare
*/
protected function share($type, $path, $initiator, $recipient, $permissions) {
$userFolder = $this->rootFolder->getUserFolder($initiator);
diff --git a/apps/files_sharing/tests/UnshareChildrenTest.php b/apps/files_sharing/tests/UnshareChildrenTest.php
index db6f0912419..ac870212c99 100644
--- a/apps/files_sharing/tests/UnshareChildrenTest.php
+++ b/apps/files_sharing/tests/UnshareChildrenTest.php
@@ -1,32 +1,16 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
+use OC\Files\Filesystem;
+use OCP\Constants;
use OCP\Share\IShare;
+use OCP\Util;
/**
* Class UnshareChildrenTest
@@ -45,7 +29,7 @@ class UnshareChildrenTest extends TestCase {
protected function setUp(): void {
parent::setUp();
- \OCP\Util::connectHook('OC_Filesystem', 'post_delete', '\OCA\Files_Sharing\Hooks', 'unshareChildren');
+ Util::connectHook('OC_Filesystem', 'post_delete', '\OCA\Files_Sharing\Hooks', 'unshareChildren');
$this->folder = self::TEST_FOLDER_NAME;
$this->subfolder = '/subfolder_share_api_test';
@@ -74,15 +58,15 @@ class UnshareChildrenTest extends TestCase {
/**
* @medium
*/
- public function testUnshareChildren() {
- $fileInfo2 = \OC\Files\Filesystem::getFileInfo($this->folder);
+ public function testUnshareChildren(): void {
+ $fileInfo2 = Filesystem::getFileInfo($this->folder);
$this->share(
IShare::TYPE_USER,
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
@@ -92,11 +76,11 @@ class UnshareChildrenTest extends TestCase {
$this->assertCount(1, $shares);
// move shared folder to 'localDir'
- \OC\Files\Filesystem::mkdir('localDir');
- $result = \OC\Files\Filesystem::rename($this->folder, '/localDir/' . $this->folder);
+ Filesystem::mkdir('localDir');
+ $result = Filesystem::rename($this->folder, '/localDir/' . $this->folder);
$this->assertTrue($result);
- \OC\Files\Filesystem::unlink('localDir');
+ Filesystem::unlink('localDir');
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
@@ -107,6 +91,6 @@ class UnshareChildrenTest extends TestCase {
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
// the folder for the owner should still exists
- $this->assertTrue(\OC\Files\Filesystem::file_exists($this->folder));
+ $this->assertTrue(Filesystem::file_exists($this->folder));
}
}
diff --git a/apps/files_sharing/tests/UpdaterTest.php b/apps/files_sharing/tests/UpdaterTest.php
index 98e34a272e0..23044e0b2f3 100644
--- a/apps/files_sharing/tests/UpdaterTest.php
+++ b/apps/files_sharing/tests/UpdaterTest.php
@@ -1,37 +1,22 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Tobia De Koninck <tobia@ledfan.be>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
+use OC\Files\FileInfo;
+use OC\Files\Filesystem;
+use OC\Files\View;
+use OCA\Files_Sharing\Helper;
use OCA\Files_Trashbin\AppInfo\Application;
+use OCP\App\IAppManager;
use OCP\AppFramework\Bootstrap\IBootContext;
+use OCP\Constants;
+use OCP\IConfig;
+use OCP\Server;
use OCP\Share\IShare;
/**
@@ -44,7 +29,7 @@ class UpdaterTest extends TestCase {
public static function setUpBeforeClass(): void {
parent::setUpBeforeClass();
- \OCA\Files_Sharing\Helper::registerHooks();
+ Helper::registerHooks();
}
protected function setUp(): void {
@@ -74,27 +59,28 @@ class UpdaterTest extends TestCase {
* points should be unshared before the folder gets deleted so
* that the mount point doesn't end up at the trash bin
*/
- public function testDeleteParentFolder() {
- $status = \OC::$server->getAppManager()->isEnabledForUser('files_trashbin');
- (new \OC_App())->enable('files_trashbin');
+ public function testDeleteParentFolder(): void {
+ $appManager = Server::get(IAppManager::class);
+ $status = $appManager->isEnabledForUser('files_trashbin');
+ $appManager->enableApp('files_trashbin');
// register trashbin hooks
$trashbinApp = new Application();
$trashbinApp->boot($this->createMock(IBootContext::class));
- $fileinfo = \OC\Files\Filesystem::getFileInfo($this->folder);
- $this->assertTrue($fileinfo instanceof \OC\Files\FileInfo);
+ $fileinfo = Filesystem::getFileInfo($this->folder);
+ $this->assertTrue($fileinfo instanceof FileInfo);
$this->share(
IShare::TYPE_USER,
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
$this->loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $view = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
+ $view = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
// check if user2 can see the shared folder
$this->assertTrue($view->file_exists($this->folder));
@@ -109,7 +95,7 @@ class UpdaterTest extends TestCase {
// share mount point should now be moved to the subfolder
$this->assertFalse($view->file_exists($this->folder));
- $this->assertTrue($view->file_exists('localFolder/' .$this->folder));
+ $this->assertTrue($view->file_exists('localFolder/' . $this->folder));
$view->unlink('localFolder');
@@ -120,7 +106,7 @@ class UpdaterTest extends TestCase {
$this->assertCount(0, $foldersShared);
// trashbin should contain the local file but not the mount point
- $rootView = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2);
+ $rootView = new View('/' . self::TEST_FILES_SHARING_API_USER2);
$trashContent = \OCA\Files_Trashbin\Helper::getTrashFiles('/', self::TEST_FILES_SHARING_API_USER2);
$this->assertSame(1, count($trashContent));
$firstElement = reset($trashContent);
@@ -132,13 +118,13 @@ class UpdaterTest extends TestCase {
$rootView->deleteAll('files_trashin');
if ($status === false) {
- \OC::$server->getAppManager()->disableApp('files_trashbin');
+ $appManager->disableApp('files_trashbin');
}
- \OC\Files\Filesystem::getLoader()->removeStorageWrapper('oc_trashbin');
+ Filesystem::getLoader()->removeStorageWrapper('oc_trashbin');
}
- public function shareFolderProvider() {
+ public static function shareFolderProvider() {
return [
['/'],
['/my_shares'],
@@ -148,23 +134,23 @@ class UpdaterTest extends TestCase {
/**
* if a file gets shared the etag for the recipients root should change
*
- * @dataProvider shareFolderProvider
*
* @param string $shareFolder share folder to use
*/
- public function testShareFile($shareFolder) {
- $config = \OC::$server->getConfig();
+ #[\PHPUnit\Framework\Attributes\DataProvider('shareFolderProvider')]
+ public function testShareFile($shareFolder): void {
+ $config = Server::get(IConfig::class);
$oldShareFolder = $config->getSystemValue('share_folder');
$config->setSystemValue('share_folder', $shareFolder);
$this->loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $beforeShareRoot = \OC\Files\Filesystem::getFileInfo('');
+ $beforeShareRoot = Filesystem::getFileInfo('');
$etagBeforeShareRoot = $beforeShareRoot->getEtag();
- \OC\Files\Filesystem::mkdir($shareFolder);
+ Filesystem::mkdir($shareFolder);
- $beforeShareDir = \OC\Files\Filesystem::getFileInfo($shareFolder);
+ $beforeShareDir = Filesystem::getFileInfo($shareFolder);
$etagBeforeShareDir = $beforeShareDir->getEtag();
$this->loginHelper(self::TEST_FILES_SHARING_API_USER1);
@@ -174,15 +160,15 @@ class UpdaterTest extends TestCase {
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
$this->loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $afterShareRoot = \OC\Files\Filesystem::getFileInfo('');
+ $afterShareRoot = Filesystem::getFileInfo('');
$etagAfterShareRoot = $afterShareRoot->getEtag();
- $afterShareDir = \OC\Files\Filesystem::getFileInfo($shareFolder);
+ $afterShareDir = Filesystem::getFileInfo($shareFolder);
$etagAfterShareDir = $afterShareDir->getEtag();
$this->assertTrue(is_string($etagBeforeShareRoot));
@@ -202,37 +188,37 @@ class UpdaterTest extends TestCase {
/**
* if a folder gets renamed all children mount points should be renamed too
*/
- public function testRename() {
- $fileinfo = \OC\Files\Filesystem::getFileInfo($this->folder);
+ public function testRename(): void {
+ $fileinfo = Filesystem::getFileInfo($this->folder);
$share = $this->share(
IShare::TYPE_USER,
$this->folder,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
$this->loginHelper(self::TEST_FILES_SHARING_API_USER2);
// make sure that the shared folder exists
- $this->assertTrue(\OC\Files\Filesystem::file_exists($this->folder));
+ $this->assertTrue(Filesystem::file_exists($this->folder));
- \OC\Files\Filesystem::mkdir('oldTarget');
- \OC\Files\Filesystem::mkdir('oldTarget/subfolder');
- \OC\Files\Filesystem::mkdir('newTarget');
+ Filesystem::mkdir('oldTarget');
+ Filesystem::mkdir('oldTarget/subfolder');
+ Filesystem::mkdir('newTarget');
- \OC\Files\Filesystem::rename($this->folder, 'oldTarget/subfolder/' . $this->folder);
+ Filesystem::rename($this->folder, 'oldTarget/subfolder/' . $this->folder);
// re-login to make sure that the new mount points are initialized
$this->loginHelper(self::TEST_FILES_SHARING_API_USER2);
- \OC\Files\Filesystem::rename('/oldTarget', '/newTarget/oldTarget');
+ Filesystem::rename('/oldTarget', '/newTarget/oldTarget');
// re-login to make sure that the new mount points are initialized
$this->loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $this->assertTrue(\OC\Files\Filesystem::file_exists('/newTarget/oldTarget/subfolder/' . $this->folder));
+ $this->assertTrue(Filesystem::file_exists('/newTarget/oldTarget/subfolder/' . $this->folder));
// cleanup
$this->shareManager->deleteShare($share);
@@ -249,11 +235,11 @@ class UpdaterTest extends TestCase {
* |-subfolder2
* |-file2.txt --> shared with user3
*/
- public function testMovedIntoShareChangeOwner() {
+ public function testMovedIntoShareChangeOwner(): void {
$this->markTestSkipped('Skipped because this is failing with S3 as primary as file id are change when moved.');
// user1 creates folder1
- $viewUser1 = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER1 . '/files');
+ $viewUser1 = new View('/' . self::TEST_FILES_SHARING_API_USER1 . '/files');
$folder1 = 'folder1';
$viewUser1->mkdir($folder1);
@@ -263,11 +249,11 @@ class UpdaterTest extends TestCase {
$folder1,
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE
+ Constants::PERMISSION_READ | Constants::PERMISSION_SHARE
);
$this->loginHelper(self::TEST_FILES_SHARING_API_USER2);
- $viewUser2 = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
+ $viewUser2 = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
// Create user2 files
$folder2 = 'folder2';
$viewUser2->mkdir($folder2);
@@ -286,7 +272,7 @@ class UpdaterTest extends TestCase {
$folder2,
self::TEST_FILES_SHARING_API_USER2,
self::TEST_FILES_SHARING_API_USER3,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
// user2 shares folder2/file1 to user3
$file1Share = $this->share(
@@ -294,7 +280,7 @@ class UpdaterTest extends TestCase {
$file1,
self::TEST_FILES_SHARING_API_USER2,
self::TEST_FILES_SHARING_API_USER3,
- \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE
+ Constants::PERMISSION_READ | Constants::PERMISSION_SHARE
);
// user2 shares subfolder1 to user3
$subfolder1Share = $this->share(
@@ -302,7 +288,7 @@ class UpdaterTest extends TestCase {
$subfolder1,
self::TEST_FILES_SHARING_API_USER2,
self::TEST_FILES_SHARING_API_USER3,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
// user2 shares subfolder2/file2.txt to user3
$file2Share = $this->share(
@@ -310,11 +296,11 @@ class UpdaterTest extends TestCase {
$file2,
self::TEST_FILES_SHARING_API_USER2,
self::TEST_FILES_SHARING_API_USER3,
- \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE
+ Constants::PERMISSION_READ | Constants::PERMISSION_SHARE
);
// user2 moves folder2 into folder1
- $viewUser2->rename($folder2, $folder1.'/'.$folder2);
+ $viewUser2->rename($folder2, $folder1 . '/' . $folder2);
$folder2Share = $this->shareManager->getShareById($folder2Share->getFullId());
$file1Share = $this->shareManager->getShareById($file1Share->getFullId());
$subfolder1Share = $this->shareManager->getShareById($subfolder1Share->getFullId());
@@ -326,13 +312,13 @@ class UpdaterTest extends TestCase {
$this->assertEquals(self::TEST_FILES_SHARING_API_USER1, $subfolder1Share->getShareOwner());
$this->assertEquals(self::TEST_FILES_SHARING_API_USER1, $file2Share->getShareOwner());
// Expect permissions to be limited by the permissions of the destination share
- $this->assertEquals(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE, $folder2Share->getPermissions());
- $this->assertEquals(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE, $file1Share->getPermissions());
- $this->assertEquals(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE, $subfolder1Share->getPermissions());
- $this->assertEquals(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE, $file2Share->getPermissions());
+ $this->assertEquals(Constants::PERMISSION_READ | Constants::PERMISSION_SHARE, $folder2Share->getPermissions());
+ $this->assertEquals(Constants::PERMISSION_READ | Constants::PERMISSION_SHARE, $file1Share->getPermissions());
+ $this->assertEquals(Constants::PERMISSION_READ | Constants::PERMISSION_SHARE, $subfolder1Share->getPermissions());
+ $this->assertEquals(Constants::PERMISSION_READ | Constants::PERMISSION_SHARE, $file2Share->getPermissions());
// user2 moves folder2 out of folder1
- $viewUser2->rename($folder1.'/'.$folder2, $folder2);
+ $viewUser2->rename($folder1 . '/' . $folder2, $folder2);
$folder2Share = $this->shareManager->getShareById($folder2Share->getFullId());
$file1Share = $this->shareManager->getShareById($file1Share->getFullId());
$subfolder1Share = $this->shareManager->getShareById($subfolder1Share->getFullId());
@@ -344,10 +330,10 @@ class UpdaterTest extends TestCase {
$this->assertEquals(self::TEST_FILES_SHARING_API_USER2, $subfolder1Share->getShareOwner());
$this->assertEquals(self::TEST_FILES_SHARING_API_USER2, $file2Share->getShareOwner());
// Expect permissions to not change
- $this->assertEquals(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE, $folder2Share->getPermissions());
- $this->assertEquals(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE, $file1Share->getPermissions());
- $this->assertEquals(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE, $subfolder1Share->getPermissions());
- $this->assertEquals(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE, $file2Share->getPermissions());
+ $this->assertEquals(Constants::PERMISSION_READ | Constants::PERMISSION_SHARE, $folder2Share->getPermissions());
+ $this->assertEquals(Constants::PERMISSION_READ | Constants::PERMISSION_SHARE, $file1Share->getPermissions());
+ $this->assertEquals(Constants::PERMISSION_READ | Constants::PERMISSION_SHARE, $subfolder1Share->getPermissions());
+ $this->assertEquals(Constants::PERMISSION_READ | Constants::PERMISSION_SHARE, $file2Share->getPermissions());
// cleanup
$this->shareManager->deleteShare($folder1Share);
diff --git a/apps/files_sharing/tests/WatcherTest.php b/apps/files_sharing/tests/WatcherTest.php
index 49f91ca3027..15676836915 100644
--- a/apps/files_sharing/tests/WatcherTest.php
+++ b/apps/files_sharing/tests/WatcherTest.php
@@ -1,33 +1,16 @@
<?php
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Jörn Friedrich Dreyer <jfd@butonic.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\Files_Sharing\Tests;
+use OC\Files\Cache\Cache;
+use OC\Files\Storage\Storage;
+use OC\Files\View;
+use OCP\Constants;
use OCP\Share\IShare;
/**
@@ -37,19 +20,19 @@ use OCP\Share\IShare;
*/
class WatcherTest extends TestCase {
- /** @var \OC\Files\Storage\Storage */
+ /** @var Storage */
private $ownerStorage;
- /** @var \OC\Files\Cache\Cache */
+ /** @var Cache */
private $ownerCache;
- /** @var \OC\Files\Storage\Storage */
+ /** @var Storage */
private $sharedStorage;
- /** @var \OC\Files\Cache\Cache */
+ /** @var Cache */
private $sharedCache;
- /** @var \OCP\Share\IShare */
+ /** @var IShare */
private $_share;
protected function setUp(): void {
@@ -72,7 +55,7 @@ class WatcherTest extends TestCase {
'container/shareddir',
self::TEST_FILES_SHARING_API_USER1,
self::TEST_FILES_SHARING_API_USER2,
- \OCP\Constants::PERMISSION_ALL
+ Constants::PERMISSION_ALL
);
$this->_share->setStatus(IShare::STATUS_ACCEPTED);
@@ -82,7 +65,7 @@ class WatcherTest extends TestCase {
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
// retrieve the shared storage
- $secondView = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2);
+ $secondView = new View('/' . self::TEST_FILES_SHARING_API_USER2);
[$this->sharedStorage, $internalPath] = $secondView->resolvePath('files/shareddir');
$this->sharedCache = $this->sharedStorage->getCache();
}
@@ -109,7 +92,7 @@ class WatcherTest extends TestCase {
* Tests that writing a file using the shared storage will propagate the file
* size to the owner's parent folders.
*/
- public function testFolderSizePropagationToOwnerStorage() {
+ public function testFolderSizePropagationToOwnerStorage(): void {
$initialSizes = self::getOwnerDirSizes('files/container/shareddir');
$textData = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
@@ -139,7 +122,7 @@ class WatcherTest extends TestCase {
* Tests that writing a file using the shared storage will propagate the file
* size to the owner's parent folders.
*/
- public function testSubFolderSizePropagationToOwnerStorage() {
+ public function testSubFolderSizePropagationToOwnerStorage(): void {
$initialSizes = self::getOwnerDirSizes('files/container/shareddir/subdir');
$textData = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
diff --git a/apps/files_sharing/tests/js/fileDropSpec.js b/apps/files_sharing/tests/js/fileDropSpec.js
deleted file mode 100644
index 18eee661e7f..00000000000
--- a/apps/files_sharing/tests/js/fileDropSpec.js
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- * @copyright Copyright (c) 2017, Artur Neumann (info@individual-it.net)
- *
- * @author Artur Neumann <info@individual-it.net>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-describe("files Drop tests", function() {
- //some testing data
- var sharingToken = "fVCiSMhScgWfiuv";
- var testFiles = [
- { name: 'test.txt', expectedValidationResult: true },
- { name: 'testनेपाल.txt', expectedValidationResult: true },
- { name: 'test.part', expectedValidationResult: false },
- { name: 'test.filepart', expectedValidationResult: false },
- { name: '.', expectedValidationResult: false },
- { name: '..', expectedValidationResult: false },
- ];
-
- //this pre/post positions should not change the result of the file name validation
- var prePostPositions = [""," "," "," "];
-
- //use the testFiles and the pre/post positions to generate more testing data
- var replicatedTestFiles = [];
- prePostPositions.map(function (prePostPosition) {
- testFiles.map(function (testFile) {
- replicatedTestFiles.push(
- {
- name: testFile.name + prePostPosition,
- expectedValidationResult: testFile.expectedValidationResult
- }
- );
- replicatedTestFiles.push(
- {
- name: prePostPosition + testFile.name,
- expectedValidationResult: testFile.expectedValidationResult
- }
- );
- replicatedTestFiles.push(
- {
- name: prePostPosition + testFile.name + prePostPosition,
- expectedValidationResult: testFile.expectedValidationResult
- }
- );
- });
- });
-
- beforeEach (function () {
- //fake input for the sharing token
- $('#testArea').append(
- '<input name="sharingToken" value="" id="sharingToken" type="hidden">'
- );
- });
-
-
- replicatedTestFiles.map(function (testFile) {
- it("validates the filenames correctly", function() {
- data = {
- 'submit': function() {},
- 'files': [testFile]
- }
- expect(OCA.FilesSharingDrop.addFileToUpload('',data)).
- toBe(
- testFile.expectedValidationResult,
- 'wrongly validated file named "'+testFile.name+'"'
- );
- });
-
- if (testFile.expectedValidationResult === true) {
- it("should set correct PUT URL, Auth header and submit", function () {
- data = {
- 'submit': sinon.stub(),
- 'files': [testFile]
- }
- $('#sharingToken').val(sharingToken);
-
- OCA.FilesSharingDrop.addFileToUpload('',data);
- expect(data.submit.calledOnce).toEqual(true);
- expect(data.url).toContain("/public.php/dav/files/" + sharingToken + '/' + encodeURI(testFile.name));
- });
- }
- });
-});
diff --git a/apps/files_sharing/tests/js/publicAppSpec.js b/apps/files_sharing/tests/js/publicAppSpec.js
deleted file mode 100644
index 72a31088c6c..00000000000
--- a/apps/files_sharing/tests/js/publicAppSpec.js
+++ /dev/null
@@ -1,159 +0,0 @@
-/**
-* @copyright 2015 Vincent Petry <pvince81@owncloud.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Jan-Christoph Borchardt <hey@jancborchardt.net>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-describe('OCA.Sharing.PublicApp tests', function() {
- var App = OCA.Sharing.PublicApp;
- var hostStub, protocolStub;
- var originalWebroot;
- var $preview;
-
- beforeEach(function() {
- originalWebroot = window._oc_webroot;
- window._oc_webroot = '/owncloud';
- protocolStub = sinon.stub(OC, 'getProtocol').returns('https');
- hostStub = sinon.stub(OC, 'getHost').returns('example.com:9876');
-
- $preview = $('<div id="preview"></div>');
- $('#testArea').append($preview);
- $preview.append(
- '<div id="mimetype"></div>' +
- '<div id="mimetypeIcon"></div>' +
- '<input type="hidden" id="sharingToken" value="sh4tok"></input>'
- );
- });
-
- afterEach(function() {
- window._oc_webroot = originalWebroot;
- protocolStub.restore();
- hostStub.restore();
- });
-
- describe('File list', function() {
- var parseUrlQueryStub
- // TODO: this should be moved to a separate file once the PublicFileList is extracted from public.js
- beforeEach(function() {
- $preview.append(
- '<div id="app-content-files">' +
- // init horrible parameters
- '<input type="hidden" id="permissions" value="31"/>' +
- // dummy controls
- '<div class="files-controls">' +
- ' <div class="actions creatable"></div>' +
- ' <div class="notCreatable"></div>' +
- '</div>' +
- // uploader
- '<input type="file" id="file_upload_start" name="files[]" multiple="multiple">' +
- // dummy table
- // TODO: at some point this will be rendered by the fileList class itself!
- '<table class="files-filestable list-container view-grid">' +
- '<thead><tr>' +
- '<th class="hidden column-name">' +
- '<input type="checkbox" id="select_all_files" class="select-all">' +
- '<a class="name columntitle" data-sort="name"><span>Name</span><span class="sort-indicator"></span></a>' +
- '<span class="selectedActions hidden">' +
- '<a href class="download">Download</a>' +
- '</span>' +
- '</th>' +
- '<th class="hidden column-size"><a class="columntitle" data-sort="size"><span class="sort-indicator"></span></a></th>' +
- '<th class="hidden column-mtime"><a class="columntitle" data-sort="mtime"><span class="sort-indicator"></span></a></th>' +
- '</tr></thead>' +
- '<tbody class="files-fileList"></tbody>' +
- '<tfoot></tfoot>' +
- '</table>' +
- // TODO: move to handlebars template
- '<div class="emptyfilelist emptycontent"><h2>Empty content message</h2><p class="uploadmessage">Upload message</p></div>' +
- '<div class="nofilterresults hidden"></div>' +
- '</div>'
- );
-
- parseUrlQueryStub = sinon.stub(OC.Util.History, 'parseUrlQuery');
- parseUrlQueryStub.returns({path: '/subdir'});
- App.initialize($('#preview'));
- });
- afterEach(function() {
- App._initialized = false;
- parseUrlQueryStub.restore();
- });
-
- it('Uses public webdav endpoint', function() {
- App._initialized = false;
- fakeServer.restore();
- window.fakeServer = sinon.fakeServer.create();
-
- // uploader function messes up with fakeServer
- var uploaderDetectStub = sinon.stub(OC.Uploader.prototype, '_supportAjaxUploadWithProgress');
- App.initialize($('#preview'));
- expect(fakeServer.requests.length).toEqual(1);
- expect(fakeServer.requests[0].method).toEqual('PROPFIND');
- expect(fakeServer.requests[0].url).toEqual('https://example.com:9876/owncloud/public.php/dav/files/sh4tok/subdir');
- uploaderDetectStub.restore();
- });
-
- describe('Download Url', function() {
- var fileList;
-
- beforeEach(function() {
- fileList = App.fileList;
- });
-
- it('returns correct download URL for single files', function() {
- expect(fileList.getDownloadUrl('some file.txt'))
- .toEqual(OC.getRootPath() + '/index.php/s/sh4tok/download?path=%2Fsubdir&files=some%20file.txt');
- expect(fileList.getDownloadUrl('some file.txt', '/anotherpath/abc'))
- .toEqual(OC.getRootPath() + '/index.php/s/sh4tok/download?path=%2Fanotherpath%2Fabc&files=some%20file.txt');
- fileList.changeDirectory('/');
- expect(fileList.getDownloadUrl('some file.txt'))
- .toEqual(OC.getRootPath() + '/index.php/s/sh4tok/download?path=%2F&files=some%20file.txt');
- });
- it('returns correct download URL for multiple files', function() {
- expect(fileList.getDownloadUrl(['a b c.txt', 'd e f.txt']))
- .toEqual(OC.getRootPath() + '/index.php/s/sh4tok/download?path=%2Fsubdir&files=%5B%22a%20b%20c.txt%22%2C%22d%20e%20f.txt%22%5D');
- });
- it('returns the correct ajax URL', function() {
- expect(fileList.getAjaxUrl('test', {a:1, b:'x y'}))
- .toEqual(OC.getRootPath() + '/index.php/apps/files_sharing/ajax/test.php?a=1&b=x%20y&t=sh4tok');
- });
- it('returns correct download URL for downloading everything', function() {
- expect(fileList.getDownloadUrl())
- .toEqual(OC.getRootPath() + '/index.php/s/sh4tok/download?path=%2Fsubdir');
- });
- });
- describe('Upload Url', function() {
- var fileList;
-
- beforeEach(function() {
- fileList = App.fileList;
- });
- it('returns correct upload URL', function() {
- expect(fileList.getUploadUrl('some file.txt'))
- .toEqual('/owncloud/public.php/dav/files/sh4tok/subdir/some%20file.txt');
- });
- it('returns correct upload URL with specified dir', function() {
- expect(fileList.getUploadUrl('some file.txt', 'sub'))
- .toEqual('/owncloud/public.php/dav/files/sh4tok/sub/some%20file.txt');
- });
- });
- });
-});
diff --git a/apps/files_sharing/tests/js/shareSpec.js b/apps/files_sharing/tests/js/shareSpec.js
deleted file mode 100644
index 8a48ce54f19..00000000000
--- a/apps/files_sharing/tests/js/shareSpec.js
+++ /dev/null
@@ -1,343 +0,0 @@
-/**
- * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- * @author Daniel Calviño Sánchez <danxuliu@gmail.com>
- * @author Jan-Christoph Borchardt <hey@jancborchardt.net>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-describe('OCA.Sharing.Util tests', function() {
- var fileList;
- var testFiles;
-
- function getImageUrl($el) {
- // might be slightly different cross-browser
- var url = $el.css('background-image');
- var r = url.match(/url\(['"]?([^'")]*)['"]?\)/);
- if (!r) {
- return url;
- }
- return r[1];
- }
-
- beforeEach(function() {
- var $content = $('<div id="app-content"></div>');
- $('#testArea').append($content);
- // dummy file list
- var $div = $(
- '<div id="listContainer">' +
- '<table class="files-filestable list-container view-grid">' +
- '<thead></thead>' +
- '<tbody class="files-fileList"></tbody>' +
- '</table>' +
- '</div>');
- $('#app-content').append($div);
-
- var fileActions = new OCA.Files.FileActions();
- fileList = new OCA.Files.FileList(
- $div, {
- fileActions : fileActions
- }
- );
- OCA.Sharing.Util.attach(fileList);
-
- testFiles = [{
- id: 1,
- type: 'file',
- name: 'One.txt',
- path: '/subdir',
- mimetype: 'text/plain',
- size: 12,
- permissions: OC.PERMISSION_ALL,
- etag: 'abc',
- shareOwner: 'User One',
- isShareMountPoint: false,
- shareTypes: [OC.Share.SHARE_TYPE_USER]
- }];
- });
- afterEach(function() {
- delete OCA.Sharing.sharesLoaded;
- delete OC.Share.droppedDown;
- fileList.destroy();
- fileList = null;
- });
-
- describe('Sharing data in table row', function() {
- // TODO: test data-permissions, data-share-owner, etc
- });
- describe('Share action icon', function() {
- it('do not shows share text when not shared', function() {
- var $action, $tr;
- OC.Share.statuses = {};
- fileList.setFiles([{
- id: 1,
- type: 'dir',
- name: 'One',
- path: '/subdir',
- mimetype: 'httpd/unix-directory',
- size: 12,
- permissions: OC.PERMISSION_ALL,
- etag: 'abc',
- shareTypes: []
- }]);
- $tr = fileList.$el.find('tbody tr:first');
- $action = $tr.find('.action-share');
- expect($action.find('.icon').hasClass('icon-shared')).toEqual(true);
- expect($action.find('.icon').hasClass('icon-public')).toEqual(false);
- expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder.svg');
- });
- it('shows simple share text with share icon', function() {
- var $action, $tr;
- fileList.setFiles([{
- id: 1,
- type: 'dir',
- name: 'One',
- path: '/subdir',
- mimetype: 'text/plain',
- size: 12,
- permissions: OC.PERMISSION_ALL,
- etag: 'abc',
- shareTypes: [OC.Share.SHARE_TYPE_USER]
- }]);
- $tr = fileList.$el.find('tbody tr:first');
- $action = $tr.find('.action-share');
- expect($action.find('>span').text().trim()).toEqual('Shared');
- expect($action.find('.icon').hasClass('icon-shared')).toEqual(true);
- expect($action.find('.icon').hasClass('icon-public')).toEqual(false);
- expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder-shared.svg');
- });
- it('shows simple share text with share icon when shared to a room', function() {
- var $action, $tr;
- fileList.setFiles([{
- id: 1,
- type: 'dir',
- name: 'One',
- path: '/subdir',
- mimetype: 'text/plain',
- size: 12,
- permissions: OC.PERMISSION_ALL,
- etag: 'abc',
- shareTypes: [OC.Share.SHARE_TYPE_ROOM]
- }]);
- $tr = fileList.$el.find('tbody tr:first');
- $action = $tr.find('.action-share');
- expect($action.find('>span').text().trim()).toEqual('Shared');
- expect($action.find('.icon').hasClass('icon-shared')).toEqual(true);
- expect($action.find('.icon').hasClass('icon-public')).toEqual(false);
- expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder-shared.svg');
- });
- it('shows simple share text with public icon when shared with link', function() {
- var $action, $tr;
- OC.Share.statuses = {1: {link: true, path: '/subdir'}};
- fileList.setFiles([{
- id: 1,
- type: 'dir',
- name: 'One',
- path: '/subdir',
- mimetype: 'text/plain',
- size: 12,
- permissions: OC.PERMISSION_ALL,
- etag: 'abc',
- shareTypes: [OC.Share.SHARE_TYPE_LINK]
- }]);
- $tr = fileList.$el.find('tbody tr:first');
- $action = $tr.find('.action-share');
- expect($action.find('>span').text().trim()).toEqual('Shared');
- expect($action.find('.icon').hasClass('icon-shared')).toEqual(false);
- expect($action.find('.icon').hasClass('icon-public')).toEqual(true);
- expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder-public.svg');
- });
- it('shows owner name when owner is available but no icons', function() {
- var $action, $tr;
- fileList.setFiles([{
- id: 1,
- type: 'dir',
- name: 'One.txt',
- path: '/subdir',
- mimetype: 'text/plain',
- size: 12,
- permissions: OC.PERMISSION_ALL,
- shareOwner: 'User One',
- shareOwnerId: 'User One',
- etag: 'abc',
- shareTypes: []
- }]);
- $tr = fileList.$el.find('tbody tr:first');
- $action = $tr.find('.action-share');
- expect($action.find('>span').text().trim()).toEqual('Shared by User One');
- expect($action.find('.icon').hasClass('icon-shared')).toEqual(false);
- expect($action.find('.icon').hasClass('icon-public')).toEqual(false);
- expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder-shared.svg');
- });
- it('shows recipients when recipients are available', function() {
- var $action, $tr;
- fileList.setFiles([{
- id: 1,
- type: 'dir',
- name: 'One.txt',
- path: '/subdir',
- mimetype: 'text/plain',
- size: 12,
- permissions: OC.PERMISSION_ALL,
- recipientsDisplayName: 'User One, User Two',
- recipientData: {
- 0: {
- shareWith: 'User One',
- shareWithDisplayName: 'User One'
- },
- 1: {
- shareWith: 'User Two',
- shareWithDisplayName: 'User Two'
- }
- },
- etag: 'abc',
- shareTypes: [OC.Share.SHARE_TYPE_USER]
- }]);
- $tr = fileList.$el.find('tbody tr:first');
- $action = $tr.find('.action-share');
- expect($action.text().trim()).toEqual('Shared with User One Shared with User Two');
- expect($action.find('.icon').hasClass('icon-shared')).toEqual(true);
- expect($action.find('.icon').hasClass('icon-public')).toEqual(false);
- expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder-shared.svg');
- });
- it('shows share action when shared with user who has no share permission', function() {
- var $action, $tr;
- fileList.setFiles([{
- id: 1,
- type: 'dir',
- name: 'One',
- path: '/subdir',
- mimetype: 'text/plain',
- size: 12,
- permissions: OC.PERMISSION_CREATE,
- etag: 'abc',
- shareOwner: 'User One'
- }]);
- $tr = fileList.$el.find('tbody tr:first');
- expect($tr.find('.action-share').length).toEqual(1);
- });
- it('do not show share action when share exists but neither permission nor owner is available', function() {
- var $action, $tr;
- fileList.setFiles([{
- id: 1,
- type: 'dir',
- name: 'One',
- path: '/subdir',
- mimetype: 'text/plain',
- size: 12,
- permissions: OC.PERMISSION_CREATE,
- etag: 'abc'
- }]);
- $tr = fileList.$el.find('tbody tr:first');
- expect($tr.find('.action-share').length).toEqual(0);
- });
- });
- describe('Excluded lists', function() {
- function createListThenAttach(listId) {
- var fileActions = new OCA.Files.FileActions();
- fileList.destroy();
- fileList = new OCA.Files.FileList(
- $('#listContainer'), {
- id: listId,
- fileActions: fileActions
- }
- );
- OCA.Sharing.Util.attach(fileList);
- fileList.setFiles(testFiles);
- return fileList;
- }
-
- it('does not attach to trashbin or public file lists', function() {
- createListThenAttach('trashbin');
- expect($('.action-share').length).toEqual(0);
- expect($('[data-share-recipient]').length).toEqual(0);
- createListThenAttach('files.public');
- expect($('.action-share').length).toEqual(0);
- expect($('[data-share-recipient]').length).toEqual(0);
- });
- });
-
- describe('ShareTabView interaction', function() {
- var shareTabSpy;
- var fileInfoModel;
- var configModel;
- var shareModel;
-
- beforeEach(function() {
- shareTabSpy = sinon.spy(OCA.Sharing, 'ShareTabView');
-
- var attributes = {
- itemType: 'file',
- itemSource: 123,
- possiblePermissions: 31,
- permissions: 31
- };
- fileInfoModel = new OCA.Files.FileInfoModel(testFiles[0]);
- configModel = new OC.Share.ShareConfigModel({
- enforcePasswordForPublicLink: false,
- isResharingAllowed: true,
- isDefaultExpireDateEnabled: false,
- isDefaultExpireDateEnforced: false,
- defaultExpireDate: 7
- });
- shareModel = new OC.Share.ShareItemModel(attributes, {
- configModel: configModel,
- fileInfoModel: fileInfoModel
- });
-
- /* jshint camelcase: false */
- shareModel.set({
- reshare: {},
- shares: [{
- id: 100,
- item_source: 1,
- permissions: 31,
- share_type: OC.Share.SHARE_TYPE_USER,
- share_with: 'user1',
- share_with_displayname: 'User One'
- }, {
- id: 102,
- item_source: 1,
- permissions: 31,
- share_type: OC.Share.SHARE_TYPE_REMOTE,
- share_with: 'foo@bar.com/baz',
- share_with_displayname: 'foo@bar.com/baz'
-
- }]
- }, {parse: true});
-
- fileList.destroy();
- fileList = new OCA.Files.FileList(
- $('#listContainer'), {
- id: 'files',
- fileActions: new OCA.Files.FileActions()
- }
- );
- OCA.Sharing.Util.attach(fileList);
- fileList.setFiles(testFiles);
- });
- afterEach(function() {
- shareTabSpy.restore();
- });
- });
-});