Compare commits

..

388 Commits

Author SHA1 Message Date
Sylwia 6560e13b46 Merge branch 'master' into fix/update-version-sidebartab 2026-02-09 20:02:41 +01:00
Robin Appelman 9cd337bebe Merge pull request #57745 from nextcloud/share-transfered-event
Share mount validation fixes
2026-02-09 16:46:15 +01:00
Robin Appelman 83810aec99 Merge pull request #57926 from nextcloud/share-target-repair-no-providers
fix: don't rely on share providers being avaiable in CleanupShareTarget
2026-02-09 16:44:01 +01:00
Sebastian Krupinski c373b8e614 Merge pull request #58197 from nextcloud/fix/calendar-federation-additional-properties
fix: federated calendar additional properties
2026-02-09 10:19:57 -05:00
Andy Scherzinger 39ff32a33b Merge pull request #58134 from nextcloud/carl/lock-propagator-order
fix(propagator): Improve lock behavior of propagator
2026-02-09 16:04:38 +01:00
SebastianKrupinski 566e598a4e fix: federated calendar additional properties
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2026-02-09 09:26:33 -05:00
silver 04d8e83760 feat(files_versions): Auto-reload versions tab on file
Listen for files:node:updated events and automatically refresh the
versions list when the current file is saved, eliminating the need to
manually close and reopen the sidebar to see new versions.

Signed-off-by: silver <s.szmajduch@posteo.de>
2026-02-09 15:07:42 +01:00
Kate 431a37e71e Merge pull request #58194 from nextcloud/feat/rector/safe-declare-strict-types
feat(rector): Enable SafeDeclareStrictTypesRector
2026-02-09 12:38:21 +01:00
Carl Schwan 95b3bd98d9 fix(propagator): Lock rows also in propagateChange
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-02-09 12:11:21 +01:00
Carl Schwan f3778bc9c7 fix(propagator): Improve lock behavior of propagator
Fix possible dead locks when running the propagator caused by two
requests updating the same amount rows in transactions.

- Lock rows always in the same deterministic order by sorting the
  path_hash first

- On all database outside of sqlite, also do first a SELECT FOR UPDATE
  to lock all the rows used in batch UPDATE calls, afterward to decrease
  the risk of two requests trying to lock the same rows

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-02-09 12:10:56 +01:00
provokateurin f12cecb684 feat(rector): Enable SafeDeclareStrictTypesRector
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-02-09 10:59:31 +01:00
Nextcloud bot 53a67966c0 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-02-09 00:21:30 +00:00
Robin Appelman 7efdfd161b Merge pull request #58121 from nextcloud/move-share-out-share-reshare
fix: don't trigger moveShareInOrOutOfShare for reshares
2026-02-08 19:37:59 +01:00
Nextcloud bot eb08dddcf5 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-02-08 00:20:46 +00:00
github-actions[bot] 823d0dcb7c Merge pull request #58161 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/nextcloud/vue-8.36.0
chore(deps): Bump @nextcloud/vue from 8.35.3 to 8.36.0 in /build/frontend-legacy
2026-02-07 18:14:53 +00:00
nextcloud-command 36f4423887 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-02-07 15:27:03 +00:00
dependabot[bot] f70f7be416 chore(deps): Bump @nextcloud/vue in /build/frontend-legacy
Bumps [@nextcloud/vue](https://github.com/nextcloud-libraries/nextcloud-vue) from 8.35.3 to 8.36.0.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-vue/blob/v8.36.0/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-vue/compare/v8.35.3...v8.36.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/vue"
  dependency-version: 8.36.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-07 16:15:53 +01:00
github-actions[bot] e586ca0071 Merge pull request #58163 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/libphonenumber-js-1.12.36
chore(deps): Bump libphonenumber-js from 1.12.35 to 1.12.36 in /build/frontend-legacy
2026-02-07 15:14:07 +00:00
nextcloud-command b4c7dcbf58 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-02-07 14:58:52 +00:00
dependabot[bot] 35e315bd91 chore(deps): Bump libphonenumber-js in /build/frontend-legacy
Bumps [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) from 1.12.35 to 1.12.36.
- [Changelog](https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/CHANGELOG.md)
- [Commits](https://gitlab.com/catamphetamine/libphonenumber-js/compare/v1.12.35...v1.12.36)

---
updated-dependencies:
- dependency-name: libphonenumber-js
  dependency-version: 1.12.36
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-07 14:56:40 +00:00
github-actions[bot] 21fff5160a Merge pull request #58158 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/webdav-5.9.0
chore(deps): Bump webdav from 5.8.0 to 5.9.0 in /build/frontend-legacy
2026-02-07 14:43:40 +00:00
nextcloud-command 5fd4b9fe52 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-02-07 14:26:57 +00:00
dependabot[bot] 6a2e9814af chore(deps): Bump webdav from 5.8.0 to 5.9.0 in /build/frontend-legacy
Bumps [webdav](https://github.com/perry-mitchell/webdav-client) from 5.8.0 to 5.9.0.
- [Changelog](https://github.com/perry-mitchell/webdav-client/blob/master/CHANGELOG.md)
- [Commits](https://github.com/perry-mitchell/webdav-client/compare/v5.8.0...v5.9.0)

---
updated-dependencies:
- dependency-name: webdav
  dependency-version: 5.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-07 15:19:33 +01:00
github-actions[bot] 79600b0c9f Merge pull request #58151 from nextcloud/dependabot/npm_and_yarn/jsdom-28.0.0
chore(deps-dev): Bump jsdom from 27.4.0 to 28.0.0
2026-02-07 14:17:41 +00:00
dependabot[bot] 38f1063be7 chore(deps-dev): Bump jsdom from 27.4.0 to 28.0.0
Bumps [jsdom](https://github.com/jsdom/jsdom) from 27.4.0 to 28.0.0.
- [Release notes](https://github.com/jsdom/jsdom/releases)
- [Changelog](https://github.com/jsdom/jsdom/blob/main/Changelog.md)
- [Commits](https://github.com/jsdom/jsdom/compare/27.4.0...28.0.0)

---
updated-dependencies:
- dependency-name: jsdom
  dependency-version: 28.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-07 14:02:13 +00:00
github-actions[bot] 878cb525a3 Merge pull request #58147 from nextcloud/dependabot/composer/vendor-bin/rector/rector/rector-2.3.6
chore(deps-dev): Bump rector/rector from 2.3.4 to 2.3.6 in /vendor-bin/rector
2026-02-07 14:58:19 +01:00
github-actions[bot] 0b36e05965 Merge pull request #58157 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/babel/node-7.29.0
chore(deps-dev): Bump @babel/node from 7.28.6 to 7.29.0 in /build/frontend-legacy
2026-02-07 13:36:27 +00:00
github-actions[bot] 1081e32e55 Merge pull request #58154 from nextcloud/dependabot/npm_and_yarn/webdav-5.9.0
chore(deps): Bump webdav from 5.8.0 to 5.9.0
2026-02-07 13:24:07 +00:00
github-actions[bot] 9770eeae66 Merge pull request #58149 from nextcloud/dependabot/npm_and_yarn/cypress-split-1.24.28
chore(deps-dev): Bump cypress-split from 1.24.25 to 1.24.28
2026-02-07 13:10:26 +00:00
nextcloud-command caf1c669f1 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-02-07 13:07:05 +00:00
dependabot[bot] ec60d74b70 chore(deps): Bump webdav from 5.8.0 to 5.9.0
Bumps [webdav](https://github.com/perry-mitchell/webdav-client) from 5.8.0 to 5.9.0.
- [Changelog](https://github.com/perry-mitchell/webdav-client/blob/master/CHANGELOG.md)
- [Commits](https://github.com/perry-mitchell/webdav-client/compare/v5.8.0...v5.9.0)

---
updated-dependencies:
- dependency-name: webdav
  dependency-version: 5.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-07 13:58:57 +01:00
github-actions[bot] 06fed8d96b Merge pull request #58153 from nextcloud/dependabot/npm_and_yarn/cypress-15.10.0
chore(deps-dev): Bump cypress from 15.9.0 to 15.10.0
2026-02-07 12:54:42 +00:00
github-actions[bot] 481bf459b8 Merge pull request #58152 from nextcloud/dependabot/npm_and_yarn/msw-2.12.9
chore(deps-dev): Bump msw from 2.12.7 to 2.12.9
2026-02-07 12:54:21 +00:00
github-actions[bot] db9f03c1bb Merge pull request #58146 from nextcloud/dependabot/composer/bamarni/composer-bin-plugin-1.9.1
chore(deps-dev): Bump bamarni/composer-bin-plugin from 1.8.3 to 1.9.1
2026-02-07 12:52:26 +00:00
github-actions[bot] 2f57e9f520 Merge pull request #58162 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/webpack-5.105.0
chore(deps-dev): Bump webpack from 5.104.1 to 5.105.0 in /build/frontend-legacy
2026-02-07 12:52:12 +00:00
github-actions[bot] 559c04662e Merge pull request #58159 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/msw-2.12.9
chore(deps-dev): Bump msw from 2.12.7 to 2.12.9 in /build/frontend-legacy
2026-02-07 13:50:33 +01:00
github-actions[bot] 639f8ec974 Merge pull request #58155 from nextcloud/dependabot/npm_and_yarn/zip.js/zip.js-2.8.17
chore(deps-dev): Bump @zip.js/zip.js from 2.8.16 to 2.8.17
2026-02-07 12:47:19 +00:00
github-actions[bot] 4d6d4bd579 Merge pull request #58156 from nextcloud/dependabot/npm_and_yarn/nextcloud/stylelint-config-3.2.1
chore(deps-dev): Bump @nextcloud/stylelint-config from 3.2.0 to 3.2.1
2026-02-07 12:46:31 +00:00
github-actions[bot] 50e85a1622 Merge pull request #58150 from nextcloud/dependabot/npm_and_yarn/stylelint-17.1.1
chore(deps-dev): Bump stylelint from 17.1.0 to 17.1.1
2026-02-07 13:35:30 +01:00
nextcloud-command 85ab6a683a chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-02-07 12:32:02 +00:00
dependabot[bot] 4bf784459d chore(deps-dev): Bump webpack in /build/frontend-legacy
Bumps [webpack](https://github.com/webpack/webpack) from 5.104.1 to 5.105.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Changelog](https://github.com/webpack/webpack/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack/compare/v5.104.1...v5.105.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-version: 5.105.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-07 13:24:04 +01:00
github-actions[bot] 1c299fef9c Merge pull request #58164 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/p-limit-7.3.0
chore(deps): Bump p-limit from 7.2.0 to 7.3.0 in /build/frontend-legacy
2026-02-07 08:06:52 +00:00
nextcloud-command 6b36b15c2f chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-02-07 07:51:27 +00:00
dependabot[bot] fa26f4f6ab chore(deps): Bump p-limit from 7.2.0 to 7.3.0 in /build/frontend-legacy
Bumps [p-limit](https://github.com/sindresorhus/p-limit) from 7.2.0 to 7.3.0.
- [Release notes](https://github.com/sindresorhus/p-limit/releases)
- [Commits](https://github.com/sindresorhus/p-limit/compare/v7.2.0...v7.3.0)

---
updated-dependencies:
- dependency-name: p-limit
  dependency-version: 7.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-07 02:15:16 +00:00
dependabot[bot] c353e0bc3a chore(deps-dev): Bump msw in /build/frontend-legacy
Bumps [msw](https://github.com/mswjs/msw) from 2.12.7 to 2.12.9.
- [Release notes](https://github.com/mswjs/msw/releases)
- [Changelog](https://github.com/mswjs/msw/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mswjs/msw/compare/v2.12.7...v2.12.9)

---
updated-dependencies:
- dependency-name: msw
  dependency-version: 2.12.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-07 02:13:14 +00:00
dependabot[bot] 6a56f766cf chore(deps-dev): Bump @babel/node in /build/frontend-legacy
Bumps [@babel/node](https://github.com/babel/babel/tree/HEAD/packages/babel-node) from 7.28.6 to 7.29.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.29.0/packages/babel-node)

---
updated-dependencies:
- dependency-name: "@babel/node"
  dependency-version: 7.29.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-07 02:12:35 +00:00
dependabot[bot] 1292b552a3 chore(deps-dev): Bump @nextcloud/stylelint-config from 3.2.0 to 3.2.1
Bumps [@nextcloud/stylelint-config](https://github.com/nextcloud-libraries/stylelint-config) from 3.2.0 to 3.2.1.
- [Release notes](https://github.com/nextcloud-libraries/stylelint-config/releases)
- [Changelog](https://github.com/nextcloud-libraries/stylelint-config/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/stylelint-config/compare/v3.2.0...v3.2.1)

---
updated-dependencies:
- dependency-name: "@nextcloud/stylelint-config"
  dependency-version: 3.2.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-07 02:12:00 +00:00
dependabot[bot] ddfd854d76 chore(deps-dev): Bump @zip.js/zip.js from 2.8.16 to 2.8.17
Bumps [@zip.js/zip.js](https://github.com/gildas-lormeau/zip.js) from 2.8.16 to 2.8.17.
- [Release notes](https://github.com/gildas-lormeau/zip.js/releases)
- [Commits](https://github.com/gildas-lormeau/zip.js/compare/v2.8.16...v2.8.17)

---
updated-dependencies:
- dependency-name: "@zip.js/zip.js"
  dependency-version: 2.8.17
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-07 02:11:45 +00:00
dependabot[bot] c1f2108c4b chore(deps-dev): Bump cypress from 15.9.0 to 15.10.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 15.9.0 to 15.10.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v15.9.0...v15.10.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-version: 15.10.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-07 02:11:13 +00:00
dependabot[bot] 2909f66d47 chore(deps-dev): Bump msw from 2.12.7 to 2.12.9
Bumps [msw](https://github.com/mswjs/msw) from 2.12.7 to 2.12.9.
- [Release notes](https://github.com/mswjs/msw/releases)
- [Changelog](https://github.com/mswjs/msw/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mswjs/msw/compare/v2.12.7...v2.12.9)

---
updated-dependencies:
- dependency-name: msw
  dependency-version: 2.12.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-07 02:10:52 +00:00
dependabot[bot] daf1ee91c1 chore(deps-dev): Bump stylelint from 17.1.0 to 17.1.1
Bumps [stylelint](https://github.com/stylelint/stylelint) from 17.1.0 to 17.1.1.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/17.1.0...17.1.1)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-version: 17.1.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-07 02:10:14 +00:00
dependabot[bot] 34558b1f9a chore(deps-dev): Bump cypress-split from 1.24.25 to 1.24.28
Bumps [cypress-split](https://github.com/bahmutov/cypress-split) from 1.24.25 to 1.24.28.
- [Release notes](https://github.com/bahmutov/cypress-split/releases)
- [Commits](https://github.com/bahmutov/cypress-split/compare/v1.24.25...v1.24.28)

---
updated-dependencies:
- dependency-name: cypress-split
  dependency-version: 1.24.28
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-07 02:09:53 +00:00
dependabot[bot] 8b17197245 chore(deps-dev): Bump rector/rector in /vendor-bin/rector
Bumps [rector/rector](https://github.com/rectorphp/rector) from 2.3.4 to 2.3.6.
- [Release notes](https://github.com/rectorphp/rector/releases)
- [Commits](https://github.com/rectorphp/rector/compare/2.3.4...2.3.6)

---
updated-dependencies:
- dependency-name: rector/rector
  dependency-version: 2.3.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-07 02:08:22 +00:00
dependabot[bot] 4f23d5e49d chore(deps-dev): Bump bamarni/composer-bin-plugin from 1.8.3 to 1.9.1
Bumps [bamarni/composer-bin-plugin](https://github.com/bamarni/composer-bin-plugin) from 1.8.3 to 1.9.1.
- [Release notes](https://github.com/bamarni/composer-bin-plugin/releases)
- [Commits](https://github.com/bamarni/composer-bin-plugin/compare/1.8.3...1.9.1)

---
updated-dependencies:
- dependency-name: bamarni/composer-bin-plugin
  dependency-version: 1.9.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-07 02:08:05 +00:00
Nextcloud bot cc45cf6138 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-02-07 00:20:59 +00:00
Ferdinand Thiessen c10f35333e Merge pull request #57797 from nextcloud/fix/proper-handling-404
fix(FileDisplayResponse): return 404 if not found
2026-02-06 20:07:23 +01:00
Andy Scherzinger b0c02b91b4 Merge pull request #58059 from nextcloud/fix/add-missing-user-id-header
fix: add X-User-Id header to logout response
2026-02-06 18:17:39 +01:00
Ferdinand Thiessen 762ae4520a fix(InMemoryFile): allow to stream read the contents
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-06 17:29:26 +01:00
Ferdinand Thiessen 6eddda147b fix(FileDisplayResponse): return 404 if not found
If the linked file is not found (anymore) return proper 404
status code.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-06 17:29:26 +01:00
Robin Appelman 6c9418880f Merge pull request #57757 from nextcloud/getowner-no-mountpoints
fix: don't include the mountpoints when getting fileinfo for getOwner
2026-02-06 17:22:51 +01:00
Robin Appelman 9c10593021 fix: prevent recursion in SharesUpdatedListener
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-06 16:55:14 +01:00
Robin Appelman 3b70d0fcf8 fix: remove validate-user-shares-once optimization
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-06 16:55:14 +01:00
Robin Appelman c49665f5cd feat: add event for tranfered shares
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-06 16:55:12 +01:00
F. E Noel Nfebe 3e25c28d68 Merge pull request #58087 from nextcloud/fix/54700/file-list-scroll-jump
fix(files): Prevent file list from jumping when selecting visible files
2026-02-06 16:15:21 +01:00
Carl Schwan 1dbaf178c3 Merge pull request #56496 from nextcloud/carl/rector
Run rector on lib/private
2026-02-06 16:09:55 +01:00
Robin Appelman 3c7124d670 fix: don't trigger moveShareInOrOutOfShare for reshares
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-06 15:41:49 +01:00
Robin Appelman c801d63e5a fix: don't include the mountpoints when getting fileinfo for getOwner
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-06 15:19:30 +01:00
Robin Appelman da6bf8b116 fix: target-repair: handle cases where the parent folder doesn't exist
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-06 14:41:29 +01:00
Robin Appelman cfe19dbb5a fix: don't stop the entire share target repair on an error
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-06 14:39:06 +01:00
Robin Appelman 70607a0d11 fix: don't rely on share providers being avaiable in CleanupShareTarget
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-06 14:39:06 +01:00
Carl Schwan 9a26169323 fix(WatcherTest): Properly mock getCache and getScanner in IStorage
Otherwise we end up with trying to assign null to a property which has
strict types.

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-02-06 14:21:41 +01:00
Carl Schwan e56e42e7e7 refactor(navigation-manager): Cleanup implementation and add type hinting
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:55:40 +01:00
Carl Schwan c96ece0bcb refactor: Add more typing
- repairs job
- database
- redis

And remove Helpertest which was unused outside of some tests.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:55:39 +01:00
Carl Schwan fb3f9fe2de refactor: Update repairs jobs
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:54:24 +01:00
Carl Schwan 3979c493f9 refactor: Apply second batch of comments
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:52:51 +01:00
Carl Schwan acda4ff072 fix(ShareAPIControllerTest): Fix return types of DateTimeZone
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:50:47 +01:00
Carl Schwan fa75c1b659 fix(ExpressionBuilderTest): Fix test and improve typing
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:50:47 +01:00
Carl Schwan 65e769a861 refactor: Apply comments
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:50:46 +01:00
Carl Schwan 6e48f9fedb fix(IAppContainer): Expose more correct type
OC\ServerContainer is not inherinting from IServerContainer so expose
the most near type.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:50:23 +01:00
Carl Schwan 7b6078875b refactor: Run rector on lib/private
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:50:18 +01:00
Carl Schwan 5d0d0c17e5 chore(rector): Run rector on apps, core and tests directory
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:23:23 +01:00
nextcloud-command 80a10068d0 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-02-06 12:12:48 +00:00
nfebe b0bf531c19 test(files): Update scrolling tests for new visible buffer behavior
Adjust test assertions to match the new behavior where scrolling is
skipped for files already in the visible buffer. Tests now verify file
existence rather than full visibility for files within the buffer.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2026-02-06 13:04:42 +01:00
nfebe f296e5e652 fix(files): Prevent file list from jumping when selecting visible files
Skip scrolling when a file is clicked if it's already within the
visible viewport, avoiding the confusing list jump behavior.

Fixes #54700

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2026-02-06 12:47:17 +01:00
Ferdinand Thiessen 9def7a8ba7 Merge pull request #58108 from nextcloud/chore/update-files
chore(deps): update `@nextcloud/files` to v4.0.0-rc.1
2026-02-06 12:42:24 +01:00
Ferdinand Thiessen e3068bfe6b chore: compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-06 11:46:47 +01:00
Ferdinand Thiessen aac91a8df9 refactor(files): adjust for files library interfaces
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-06 11:46:46 +01:00
Ferdinand Thiessen a023b5b2d5 refactor(files_external): adjust for files library interfaces
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-06 10:28:57 +01:00
Ferdinand Thiessen 47c4e3bbe2 refactor(comments): adjust for files library interfaces
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-06 10:28:57 +01:00
Ferdinand Thiessen f01d974b5c refactor(files_reminders): adjust for files library interfaces and remove sideeffects
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-06 10:28:57 +01:00
Ferdinand Thiessen 7a60e43dd5 refactor(files_sharing): adjust for files library interfaces and remove sideeffects
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-06 10:28:57 +01:00
Ferdinand Thiessen 752ff74170 refactor(systemtags): adjust for files library interfaces
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-06 10:28:57 +01:00
Ferdinand Thiessen 009aad6eb7 refactor(files_trashbin): adjust for files library interfaces
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-06 10:28:57 +01:00
Ferdinand Thiessen a042fbfa60 chore(deps): update @nextcloud/files to v4.0.0-rc.1
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-06 10:28:57 +01:00
Nextcloud bot 209c5c3f1d fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-02-06 00:41:14 +00:00
Ferdinand Thiessen f26d3294b9 Merge pull request #57993 from nextcloud/fix/copy-move
fix(files): improve handling of copy-move action
2026-02-06 01:16:48 +01:00
Kate 256e89b6f6 Merge pull request #58095 from nextcloud/fix/exhaustive-list-for-serialized-classes
fix(dav): Use an exhaustive list for allowed serialized classes
2026-02-05 23:51:25 +01:00
Ferdinand Thiessen 6d35886f88 chore: compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-05 23:26:55 +01:00
Ferdinand Thiessen 904b946611 fix(files): improve handling of copy-move action
1. only show 1 loading toast instead of N for N files in batch
   operation.
2. Reuse more code to reduce duplicated logic.
3. Show the conflict picker once for all files instead of opening a new
   conflict picker for every file to copy / move.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-05 23:26:50 +01:00
Cristian Scheid 9cfaf9b3b3 Merge pull request #57782 from nextcloud/feat/2303/contacts-allow-federated-team-member-search
feat(contacts): support federated users/groups search when adding team members
2026-02-05 14:57:23 -03:00
Andy Scherzinger 29e1ac3c02 Merge pull request #58041 from nextcloud/fix/renaming
feat(files): warn when file would be hidden
2026-02-05 18:27:26 +01:00
Maksim Sukharev 170d17a067 Merge pull request #58096 from nextcloud/fix/noid/app-update-showcurrent
feat(occ): show current version with occ app:update command
2026-02-05 18:14:44 +01:00
Joas Schilling 15906306c3 Merge pull request #57854 from nextcloud/feat/add-twofactor-warning
feat: Add SetupCheck to warn about missing second factor provider
2026-02-05 16:25:18 +01:00
Julius Knorr 625d79d1ab Merge pull request #58100 from nextcloud/enh/svg-handling-link-previews
chore: Improve SVG handling in link previews
2026-02-05 15:58:33 +01:00
Andy Scherzinger 428e7b4adb Merge pull request #58015 from nextcloud/fix/text-to-image-scheduling
fix(TextToImage): Refactor scheduling mechanism
2026-02-05 15:53:37 +01:00
Andy Scherzinger c7588d7e06 Merge pull request #58011 from nextcloud/fix/taskprocessing-text2image-fallback-refactor
fix(TaskProcessing): Refactor TextToImage fallback
2026-02-05 15:52:57 +01:00
Carl Schwan 4709829271 Merge pull request #58094 from nextcloud/carl/getbyid
perf: Replace getById call with getFirstNodeById
2026-02-05 14:42:42 +01:00
Côme Chilliet 669ff56fa1 fix(dav): Use an exhaustive list for allowed serialized classes
This is simpler and clearer than trying to guess namespace.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-02-05 14:03:13 +01:00
Benjamin Frueh 160f4e11ad chore: Improve SVG handling in link previews
Signed-off-by: Benjamin Frueh <benjamin.frueh@gmail.com>
2026-02-05 13:43:32 +01:00
Carl Schwan c091ae4098 perf: Replace getById call with getFirstNodeById
Avoid looking at all the mounts

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-02-05 12:55:18 +01:00
Cristian Scheid 265abc3b91 test(files_sharing): update ShareesAPIController mock to include FederatedShareProvider dependency
Signed-off-by: Cristian Scheid <cristianscheid@gmail.com>
2026-02-05 08:22:13 -03:00
Maksim Sukharev 43bf6bc26b feat(occ): show current version with occ app:update command
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
2026-02-05 12:20:22 +01:00
Ferdinand Thiessen f950c97ec0 chore: compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-05 12:18:31 +01:00
Ferdinand Thiessen 536503d0a4 feat(files): add dialog to confirm when about to hide a file
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-05 12:15:42 +01:00
Ferdinand Thiessen c215bbf495 fix(files): ensure that new names are checked even for hidden files
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-05 12:15:42 +01:00
Kate 18d5dedb29 Merge pull request #58002 from nextcloud/fix/let-user-backend-lock-fields
feat: Allow user backends to manage property permissions
2026-02-05 12:11:07 +01:00
Andy Scherzinger 08e1d9b83e Merge pull request #58025 from nextcloud/carl/refactor-share-mountprovider
refactor(mount-provider): Refactor share mount provider
2026-02-05 11:50:40 +01:00
Julius Knorr b933156a3a Merge pull request #57914 from nextcloud/feat/extendable-propfind
feat(dav): allow extending propfind properties via event
2026-02-05 10:49:59 +01:00
Côme Chilliet 51ccc8a838 fix: Fix integration tests
Birthdate was missing in editable fields while being editable, and the
 order was checked while having no importance.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-02-05 10:40:23 +01:00
Andy Scherzinger 9c842faf35 Merge pull request #57741 from nextcloud/feat/configurable-share-permission-in-bundled
feat(sharing): Make share permission in bundled edit configurable
2026-02-05 10:09:53 +01:00
Benjamin Gaussorgues c5253d9fc3 Merge pull request #58052 from nextcloud/chore/export_only_real_files_count
chore(openmetrics): export only "real" files count
2026-02-05 09:55:28 +01:00
nfebe b7dceb0b17 feat(sharing): Make share permission in bundled edit configurable
Add config option shareapi_bundle_reshare_with_edit to include reshare
permission in "Allow editing" bundle. Default is true to maintain
backward compatibility.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
Signed-off-by: Carl Schwan <carlschwan@kde.org>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-02-05 07:36:04 +01:00
Nextcloud bot dc63c92faa fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-02-05 00:20:49 +00:00
Robin Appelman 2a690fd154 Merge pull request #57910 from nextcloud/setup-root-path-children
fix: still setup for user when setting up root path with children
2026-02-04 19:40:40 +01:00
Andy Scherzinger 5f54a06994 Merge pull request #57930 from nextcloud/artonge/fix/share_resolution
fix(files_sharing): stop ignoring shares without a usergroup entry when filtering by path
2026-02-04 19:15:26 +01:00
Robin Appelman 134fa6779b chore: update psalm baseline
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-04 18:23:35 +01:00
Robin Appelman bea82ac656 test: adjust tests to updated getById
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-04 18:23:35 +01:00
Robin Appelman 72150d6deb fix: getById: don't setup for all users with access by default
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-04 18:23:34 +01:00
Robin Appelman be2c26a75b test: adjust tests to new getById
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-04 18:23:33 +01:00
Robin Appelman b51d332719 fix: make sure all mounts are setup in getById
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-04 18:23:33 +01:00
Robin Appelman 82d33b7727 fix: still setup for user when setting up root path with children
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-04 18:23:32 +01:00
Robin Appelman aa47e85c25 Merge pull request #58023 from nextcloud/ext-partial-mount-provider-slash
fix: fix partial external storage provider not finding root mount
2026-02-04 18:23:00 +01:00
Salvatore Martire 7d95a88958 fix: add X-User-Id header to logout response before clearing the user session
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2026-02-04 18:18:39 +01:00
Louis Chmn 79c07d38aa fix(files_sharing): Move path filtering to group share resolution
Previously, this was preventing users without a specific USERGROUP entry to see GROUP shares.

Signed-off-by: Louis Chmn <louis@chmn.me>
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2026-02-04 16:53:10 +01:00
Marcel Klehr dd4dfe6af2 fix(TextToImage): Refactor scheduling mechanism 2026-02-04 13:48:32 +01:00
Marcel Klehr c13d95809a Fix: Run cs:fix 2026-02-04 13:26:29 +01:00
Marcel Klehr c48a09f27d fix(TaskProcessing): Refactor TextToImage fallback
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2026-02-04 13:26:29 +01:00
Carl Schwan 8f81b91733 refactor(mount-provider): Refactor share mount provider
- Add more precise types
- Remove dead code

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-02-04 12:46:14 +01:00
Cristian Scheid 1136ce09cb refactor(teams): adjust expected itemType and remove remote group type from member search controller
Signed-off-by: Cristian Scheid <cristianscheid@gmail.com>
2026-02-04 08:23:43 -03:00
Cristian Scheid bc24c28529 feat(contacts): support federated users/groups search when adding team members
Signed-off-by: Cristian Scheid <cristianscheid@gmail.com>
2026-02-04 08:23:42 -03:00
Benjamin Gaussorgues 4112b9f7ba chore(openmetrics): export only "real" files count
Other files like files in trashbin or file versions should be exported
by related app

Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-02-04 11:12:44 +01:00
Benjamin Gaussorgues 687261fc8c Merge pull request #57921 from nextcloud/fix/snowflake_lock_dir
fix(snowflakes): create file lock files into lock directory
2026-02-04 11:12:23 +01:00
Joas Schilling 2d0a24f042 Merge pull request #58050 from nextcloud/test/noid/greener-ci
test(settings): Fix CI after parallel merges
2026-02-04 11:04:09 +01:00
Joas Schilling 6112526fbc Merge pull request #58043 from nextcloud/bugfix/noid/limit-comments-report
fix(comments): Put a limit to the limit
2026-02-04 10:01:27 +01:00
Joas Schilling ba88bf4727 test(settings): Fix CI after parallel merges
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-02-04 09:50:24 +01:00
Joas Schilling 0478825fac test(Updater): Harden flaky test
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-02-04 09:44:56 +01:00
Joas Schilling af33953078 fix(comments): Put a limit to the limit
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-02-04 08:44:18 +01:00
Nextcloud bot 7a0093c163 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-02-04 00:20:54 +00:00
Andy Scherzinger d09b8c99de Merge pull request #57934 from nextcloud/dependabot/npm_and_yarn/stylelint-17.1.0
build(deps-dev): bump stylelint from 17.0.0 to 17.1.0
2026-02-03 21:29:26 +01:00
Andy Scherzinger 65b985efde Merge pull request #57932 from nextcloud/dependabot/npm_and_yarn/zip.js/zip.js-2.8.16
build(deps-dev): bump @zip.js/zip.js from 2.8.15 to 2.8.16
2026-02-03 21:28:32 +01:00
Andy Scherzinger 5ada35c153 Merge pull request #57933 from nextcloud/dependabot/npm_and_yarn/nextcloud/eslint-config-9.0.0-rc.8
build(deps-dev): bump @nextcloud/eslint-config from 9.0.0-rc.7 to 9.0.0-rc.8
2026-02-03 21:27:03 +01:00
Andy Scherzinger 227371c0de Merge pull request #57909 from nextcloud/dependabot/composer/vendor-bin/behat/phpunit/phpunit-11.5.50
build(deps-dev): bump phpunit/phpunit from 11.5.44 to 11.5.50 in /vendor-bin/behat
2026-02-03 21:21:20 +01:00
Julius Knorr 8372533cff Merge pull request #57555 from nextcloud/feat/office-switcher
feat: Add office switcher with feature comparison
2026-02-03 20:40:01 +01:00
Joas Schilling 45750b3f29 Merge pull request #57974 from nextcloud/dependabot/github_actions/github-actions-276f5d5cec
build(deps): bump the github-actions group with 5 updates
2026-02-03 20:22:18 +01:00
nextcloud-command 9561ce24f5 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-02-03 19:12:22 +01:00
Julius Knorr edeba296b3 feat: Add office switcher with feature comparison
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2026-02-03 19:12:22 +01:00
Andy Scherzinger 3310ec30c4 Merge pull request #58020 from nextcloud/artonge/fix/getById
fix: Migrate `getById` to `getFirstNodeById`
2026-02-03 18:04:45 +01:00
Benjamin Gaussorgues e15b429aea chore(snowflakes): don't remove file lock directory during tests
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-02-03 17:01:28 +01:00
Benjamin Gaussorgues 65c9e346da fix(snowflakes): create file lock files into lock directory
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-02-03 17:01:28 +01:00
Robin Appelman 720e588727 test: add tests for getMountsForUserAndPath
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-03 16:50:58 +01:00
Robin Appelman 522663b9f0 fix: partial external storage config matching non-child mounts
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-03 16:50:57 +01:00
Robin Appelman b79af98a31 fix: fix partial external storage provider not finding root mount
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-03 16:16:22 +01:00
Andy Scherzinger 1bdc27202a Merge pull request #57924 from nextcloud/carl/fix-external-partialmountprovider
fix(external-storage): Rtrim trailing slash at the end
2026-02-03 15:57:27 +01:00
Côme Chilliet 26cec2d117 feat: Add info level result if 2FA is not enforced
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-02-03 15:50:50 +01:00
Andy Scherzinger f46eea1eac Merge pull request #57978 from karaolidis/declarative-salt-secret
feat: declarative password salt, secret config
2026-02-03 15:44:24 +01:00
Louis Chmn 315241fb44 fix: Migrate getById to getFirstNodeById
Signed-off-by: Louis Chmn <louis@chmn.me>
2026-02-03 15:28:37 +01:00
Côme Chilliet 173a338f76 chore: Adapt provisioning_api tests to code changes
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-02-03 15:01:50 +01:00
Nikolaos Karaolidis d73d5a25cb feat: declarative password salt, secret config
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2026-02-03 13:21:38 +01:00
Côme Chilliet af760d174f feat: Implement new interface in LDAP user backend to reflect permissions
This will prevent users from editing profile fields if those are
 configured to be sync from LDAP.
I did not include the avatar in this because it has a special handling.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-02-03 10:22:26 +01:00
Côme Chilliet 82ec3df396 chore: Update psalm baseline
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-02-03 10:22:26 +01:00
Côme Chilliet de011ee668 feat: Allow user backends to manage property permissions
Not yet reflected in the UI apart from displayname/email/avatar

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-02-03 10:22:26 +01:00
Joas Schilling 34c2125217 Merge pull request #58009 from nextcloud/bugfix/noid/dont-validate-empty-strings
fix(federation): Don't ask the database for an empty url
2026-02-03 09:08:12 +01:00
Joas Schilling 70fd0e3348 Merge pull request #58010 from nextcloud/test/noid/add-tests-with-input-0
test(dispatcher): Add some tests with input 0
2026-02-03 09:07:05 +01:00
Joas Schilling 9caa4e20e5 test(dispatcher): Add some tests with input 0
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-02-03 08:32:43 +01:00
Joas Schilling ce19caa37e fix(federation): Don't ask the database for an empty url
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-02-03 07:46:28 +01:00
Nextcloud bot 128d708ac3 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-02-03 00:20:53 +00:00
Elizabeth Danzberger b5092e598f Merge pull request #57533 from nextcloud/fix/limit-app-to-group-initial-state
fix(app-settings): limit app to group initial state
2026-02-02 13:22:23 -05:00
Côme Chilliet 550b15a19a Merge pull request #57737 from nextcloud/feat/add-twofactor-to-presets
feat: Add twofactor applications to most of the presets
2026-02-02 15:12:08 +01:00
Andy Scherzinger 55fe320359 Merge pull request #57990 from nextcloud/fix/properly-forward
fix(files): keep current folder on drag-n-drop
2026-02-02 15:04:57 +01:00
Benjamin Gaussorgues 370d9f4d47 Merge pull request #57915 from nextcloud/feat/user-mount-cache-perf-sharding 2026-02-02 14:49:39 +01:00
Stephan Orbaugh e10805fb35 Merge pull request #57793 from pac0san/patch-1
fix(files_external): Respect explicit port configuration
2026-02-02 13:57:44 +01:00
nextcloud-command c3ddf91572 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-02-02 12:34:04 +00:00
Côme Chilliet 8475bed525 fix(settings): Only consider primary providers for 2FA setup check
In practice this filters out backup codes. Also fixed the english
 formulation and the copyright year.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-02-02 11:55:17 +01:00
Côme Chilliet 1f5e6cbbb4 feat: Add SetupCheck to warn about missing second factor provider
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-02-02 11:55:16 +01:00
Benjamin Frueh 9d4b11587e feat(dav): allow extending propfind properties via event
Signed-off-by: Benjamin Frueh <benjamin.frueh@gmail.com>

Update lib/public/Files/Events/BeforePropfindEvent.php

Co-authored-by: Julius Knorr <jus@bitgrid.net>
Signed-off-by: Benjamin Früh <134610227+benjaminfrueh@users.noreply.github.com>

Update lib/public/Files/Events/BeforePropfindEvent.php

Co-authored-by: Julius Knorr <jus@bitgrid.net>
Signed-off-by: Benjamin Früh <134610227+benjaminfrueh@users.noreply.github.com>

refactor: rename BeforePropfindEvent to BeforeRemotePropfindEvent

Signed-off-by: Benjamin Frueh <benjamin.frueh@gmail.com>

chore: update composer autoloader for new event class

Signed-off-by: Benjamin Frueh <benjamin.frueh@gmail.com>

Update lib/public/Files/Events/BeforeRemotePropfindEvent.php

Co-authored-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
Signed-off-by: Benjamin Früh <134610227+benjaminfrueh@users.noreply.github.com>
2026-02-02 11:45:10 +01:00
pac0san e48f871bd0 fix(files_external): Respect explicit port configuration
It allows the use of the alternative SFTP port defined in the GUI (external storage), instead of the default port (22).

Signed-off-by: pac0san <7056343+pac0san@users.noreply.github.com>
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-02-02 11:27:42 +01:00
Ferdinand Thiessen 1f6fe21527 fix(files): keep current folder on drag-n-drop
When drag and drop a file we only want to scroll to the uploaded file
not changing the current view.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-02 10:36:43 +01:00
Nextcloud bot 4775ce4266 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-02-02 00:20:40 +00:00
dependabot[bot] b1fbfc693d build(deps-dev): bump @nextcloud/eslint-config
Bumps [@nextcloud/eslint-config](https://github.com/nextcloud-libraries/eslint-config) from 9.0.0-rc.7 to 9.0.0-rc.8.
- [Release notes](https://github.com/nextcloud-libraries/eslint-config/releases)
- [Changelog](https://github.com/nextcloud-libraries/eslint-config/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/eslint-config/compare/v9.0.0-rc.7...v9.0.0-rc.8)

---
updated-dependencies:
- dependency-name: "@nextcloud/eslint-config"
  dependency-version: 9.0.0-rc.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-01 13:35:57 +01:00
dependabot[bot] 418f9598c3 build(deps-dev): bump @zip.js/zip.js from 2.8.15 to 2.8.16
Bumps [@zip.js/zip.js](https://github.com/gildas-lormeau/zip.js) from 2.8.15 to 2.8.16.
- [Release notes](https://github.com/gildas-lormeau/zip.js/releases)
- [Commits](https://github.com/gildas-lormeau/zip.js/compare/v2.8.15...v2.8.16)

---
updated-dependencies:
- dependency-name: "@zip.js/zip.js"
  dependency-version: 2.8.16
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-01 10:00:49 +01:00
Nextcloud bot ba99550d06 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-02-01 00:20:40 +00:00
dependabot[bot] e76cc5a7d0 build(deps): bump the github-actions group with 5 updates
Bumps the github-actions group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `5.0.0` | `6.0.2` |
| [shivammathur/setup-php](https://github.com/shivammathur/setup-php) | `2.35.4` | `2.36.0` |
| [github/codeql-action](https://github.com/github/codeql-action) | `4.31.10` | `4.32.0` |
| [cypress-io/github-action](https://github.com/cypress-io/github-action) | `7.0.0` | `7.1.1` |
| [LizardByte/actions](https://github.com/lizardbyte/actions) | `2026.116.208` | `2026.129.194351` |


Updates `actions/checkout` from 5.0.0 to 6.0.2
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...de0fac2e4500dabe0009e67214ff5f5447ce83dd)

Updates `shivammathur/setup-php` from 2.35.4 to 2.36.0
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/2.35.4...44454db4f0199b8b9685a5d763dc37cbf79108e1)

Updates `github/codeql-action` from 4.31.10 to 4.32.0
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/cdefb33c0f6224e58673d9004f47f7cb3e328b89...b20883b0cd1f46c72ae0ba6d1090936928f9fa30)

Updates `cypress-io/github-action` from 7.0.0 to 7.1.1
- [Release notes](https://github.com/cypress-io/github-action/releases)
- [Changelog](https://github.com/cypress-io/github-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/github-action/compare/dca986193e4336cb32820819b07e9ecacacaaaf6...0f330ebf0d60f87608ed72f1d6232e5644aa3171)

Updates `LizardByte/actions` from 2026.116.208 to 2026.129.194351
- [Release notes](https://github.com/lizardbyte/actions/releases)
- [Commits](https://github.com/lizardbyte/actions/compare/e6bc045033a5614035b66daafc38ff86faecb23a...09a6e10dc8175f2933c20bdf35fde0a193a9c00e)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: shivammathur/setup-php
  dependency-version: 2.36.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: github/codeql-action
  dependency-version: 4.32.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: cypress-io/github-action
  dependency-version: 7.1.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: LizardByte/actions
  dependency-version: 2026.129.194351
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-31 23:15:54 +00:00
dependabot[bot] 2386328401 build(deps-dev): bump phpunit/phpunit in /vendor-bin/behat
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 11.5.44 to 11.5.50.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/11.5.50/ChangeLog-11.5.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/11.5.44...11.5.50)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-version: 11.5.50
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-31 13:22:07 +01:00
Joas Schilling 4a4c30af55 Merge pull request #57952 from nextcloud/automated/noid/master-update-code-signing-crl
[master] fix(security): Update code signing revocation list
2026-01-31 11:17:45 +01:00
nextcloud-command 264cfed5f4 fix(security): Update code signing revocation list
Signed-off-by: GitHub <noreply@github.com>
2026-01-31 03:37:17 +00:00
dependabot[bot] 11d0f8b6d7 build(deps-dev): bump stylelint from 17.0.0 to 17.1.0
Bumps [stylelint](https://github.com/stylelint/stylelint) from 17.0.0 to 17.1.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/17.0.0...17.1.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-version: 17.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-31 02:08:48 +00:00
Nextcloud bot 5e238a68f6 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-01-31 00:20:43 +00:00
Carl Schwan 761a6979a7 fix(external-storage): Rtrim trailing slash at the end
Otherwise we don't have any matches when $forChildren is false

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-30 15:50:19 +01:00
Robin Appelman 51a4bc519b fix: make getMountsForFileId work with sharding again
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-30 09:52:18 +01:00
Nextcloud bot f61ef6d7e6 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-01-30 00:20:39 +00:00
Andy Scherzinger a08aec2dbd Merge pull request #57881 from nextcloud/share-target-repair
Add repair step for share targets with excess (2)
2026-01-29 19:33:13 +01:00
Robin Appelman 5d0acf80dd test: add test for share target repair
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-29 18:19:18 +01:00
Robin Appelman aedae2c601 fix: add repair step for cleanup shares with excess (2)
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-29 18:19:16 +01:00
Benjamin Gaussorgues 4a077c3454 Merge pull request #57815 from nextcloud/feat/user-mount-cache-perf 2026-01-29 16:35:54 +01:00
Joas Schilling 2066eb4275 Merge pull request #57908 from nextcloud/fix/2fa/allow-null-redirect-url-challenge
fix(2fa): allow null redirect URL on 2FA challenge page
2026-01-29 15:30:41 +01:00
Kate 400fe317e9 Merge pull request #57893 from nextcloud/carl/cachemountinfo-refactor 2026-01-29 15:10:22 +01:00
Christoph Wurst a228601ed0 fix(2fa): allow null redirect URL on 2FA challenge page
Signed-off-by: Christoph Wurst <1374172+ChristophWurst@users.noreply.github.com>
2026-01-29 14:41:27 +01:00
Andy Scherzinger 8160f0af8a Merge pull request #57892 from nextcloud/carl/binary-search-findIn
perf(MountManager): use binary search to find mount in path
2026-01-29 13:53:47 +01:00
Andy Scherzinger b1a114ded5 Merge pull request #54876 from nextcloud/carl/cleanup-commands-trash
refactor: Commands and background jobs for the trashbin
2026-01-29 13:44:17 +01:00
Andy Scherzinger f2373f1102 Merge pull request #57497 from nextcloud/carl/external-storage-ipartialmountpoint
feat(external-storage): Implement IPartialMountPoint
2026-01-29 13:14:12 +01:00
Carl Schwan 04ddeeec4a perf(MountManager): use binary search to find mount in path
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-29 11:41:58 +01:00
Benjamin Gaussorgues 37dbe1324e Merge pull request #57890 from nextcloud/carl/perf-invert-condition 2026-01-29 10:55:08 +01:00
Benjamin Gaussorgues 7f71b46942 Merge pull request #57882 from nextcloud/useStrictComparisonOperator 2026-01-29 09:20:18 +01:00
Simon L. e140081811 Merge pull request #57590 from nextcloud/enh/52997/refactor-logging
fix: log memory usage for requests based on configured memory limit
2026-01-29 09:15:55 +01:00
Simon L. b08fca0abe fix: fall-back to hardcoded values if debug mode is enabled
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-29 08:52:04 +01:00
Simon L. cdc951ea45 fix: log memory usage for requests based on configured memory limit
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-29 08:52:04 +01:00
Carl Schwan 33d6f1e984 refactor(CacheMountInfo): Use constructor paramater promotion
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-29 01:45:48 +01:00
Nextcloud bot 6e40f6e8a6 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-01-29 00:20:43 +00:00
Carl Schwan 668ad4faac perf(UserMountCache): Invert condition so that we avoid some SQL queries
getStorageId creates some SQL queries, while the other queries don't, so
compare that last.

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-28 23:09:08 +01:00
Kate cf1fc78175 Merge pull request #57878 from nextcloud/fix/view/put-fileinfo-cacheentry 2026-01-28 23:07:47 +01:00
Kate 21ab477b35 Merge pull request #55474 from nextcloud/carl/missing-attributes 2026-01-28 22:55:35 +01:00
Carl Schwan c6c11d474b Merge pull request #55649 from nextcloud/carl/on-demand-preview-migration
feat(preview): On demand preview migration
2026-01-28 22:33:48 +01:00
Carl Schwan 8bb13df6cf refactor(AppFramework): Change version to 34
This didn't manage to get into NC 33

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-28 21:48:17 +01:00
Carl Schwan f81475445d refactor: Move hasAnnotationOrAttribute to MiddlewareUtils
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-28 21:48:16 +01:00
Carl Schwan 6408ed0b51 feat(AppFramework): Add missing NoSameSiteCookieRequired attribute
Allow to replace the old annotation.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-01-28 21:48:16 +01:00
Carl Schwan b040fb1c73 feat(AppFramework): Add missing NoTwoFactorRequired attribute
It's in our documentation but was never implemented.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-01-28 21:48:16 +01:00
Carl Schwan 0390c067ab Merge pull request #57879 from nextcloud/carl/fix-type-entity
doc(Entity): Add type for getUpdatedField in doc
2026-01-28 21:46:00 +01:00
Carl Schwan a8d69ffed1 refactor: Commands and background jobs for the trashbin
- Use modern node and SetupManager API
- Avoid passing the user by id and instead use IUser

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-28 21:44:30 +01:00
Carl Schwan ef226e9ec6 Merge pull request #57826 from nextcloud/carl/setupmanager
feat(OCP): Expose setup manager to OCP
2026-01-28 21:39:15 +01:00
Git'Fellow 080335009b refactor: use strict comparison operator
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2026-01-28 21:11:47 +01:00
Andy Scherzinger 8d671640d9 Merge pull request #57864 from nextcloud/edit-browserlist
fix: Add support for AscDesktopEditor browser user agent
2026-01-28 20:37:59 +01:00
Andy Scherzinger ac2257a202 Merge pull request #57876 from nextcloud/fix/faulty-version
fix(core): adjust faulty migration version number
2026-01-28 18:56:06 +01:00
nextcloud-command 53be1f245d chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-01-28 17:41:44 +00:00
Carl Schwan ff2b182df4 Merge pull request #54277 from nextcloud/combine-query-cache-entry-deleted
feat(filecache): Scale DB query created when deleting file from filecache
2026-01-28 18:40:54 +01:00
Enjeck C. cad90ac28a fix: Add support for AscDesktopEditor browser user agent
Signed-off-by: Enjeck C. <patrathewhiz@gmail.com>
2026-01-28 18:28:01 +01:00
Carl Schwan 7100c71166 perf(metadata): Add optimized sharding for metadata deletion
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-28 17:18:33 +01:00
Carl Schwan 916ce3f8ec feat(external-storage): Implement IPartialMountPoint
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-28 17:09:22 +01:00
Carl Schwan fd3878448b feat(filecache): Scale DB query created when deleting file from filecache
Instead of creating a CacheEntryRemovedEvent for each deleted files,
create a single CacheEntriesRemovedEvent which wrap multiple
CacheEntryRemovedEvent.

This allow listener to optimize the query they do when multiple files
are deleted at the same time (e.g. when deleting a folder).

Signed-off-by: Carl Schwan <carl.schwan@nextclound.com>
2026-01-28 16:07:57 +01:00
Kate ebfdbf86b9 Merge pull request #57860 from nextcloud/fix/files-batch-action-displayname 2026-01-28 15:55:33 +01:00
Carl Schwan c04c320e61 fix(Entity): Add type for getUpdatedField in doc
The method is very confusing as the updated fields are the keys of the
returned array.

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-28 15:46:02 +01:00
provokateurin d7fa94b90b fix(View): Handle ICacheEntry returned by FileInfo->getData()
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-01-28 15:33:46 +01:00
nextcloud-command bcbb64443b chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-01-28 13:51:40 +00:00
Ferdinand Thiessen 45a924cafd fix(core): adjust faulty migration version number
Its Nextcloud 33 not 34.
Better fix before the release.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-28 14:42:22 +01:00
nfebe 730b30381f fix(files): use correct API for action displayName in batch actions
The displayName call was still using the old positional arguments
(nodes, view) instead of the new object parameter format (actionContext)
after the @nextcloud/files 4.0.0 update.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2026-01-28 14:16:36 +01:00
Daniel dde7b7cf87 Merge pull request #57859 from nextcloud/docs/valid-render-as-for-template-response
docs: annotate valid renderAs values
2026-01-28 12:58:22 +01:00
Benjamin Gaussorgues 8d08553f0c Merge pull request #57844 from nextcloud/fix/fix-crash-on-long-LDAP-dns 2026-01-28 11:50:38 +01:00
Ferdinand Thiessen 79155a956f Merge pull request #57861 from nextcloud/test/postscript
test(preview): properly test postscript preview provider
2026-01-28 11:24:24 +01:00
Kate 442efad6b4 Merge pull request #57522 from nextcloud/feature/add_postinstall_event 2026-01-28 10:48:56 +01:00
Misha M.-Kupriyanov abe86a9bc2 feat(install): dispatch InstallationCompletedEvent in Setup
Integrate event dispatching into Setup class:
- Inject IEventDispatcher dependency
- Dispatch InstallationCompletedEvent after successful installation
- Add Setup tests for event integration
- Update composer autoload for new class

Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
2026-01-28 09:24:24 +01:00
Misha M.-Kupriyanov 9775923137 feat(install): add InstallationCompletedEvent for post-installation hooks
Add InstallationCompletedEvent class in public API (OCP namespace) that
provides installation details: data directory, admin username, and admin
email. Event will be dispatched after successful installation.

Include comprehensive unit tests covering all event scenarios.

Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
2026-01-28 09:24:24 +01:00
Nextcloud bot 61a9fe6655 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-01-28 00:20:51 +00:00
Ferdinand Thiessen 4b015568fc test(preview): properly test postscript preview provider
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-28 01:09:27 +01:00
github-actions[bot] 11b36dfd22 Merge pull request #57862 from nextcloud/dependabot/composer/vendor-bin/phpunit/phpunit/phpunit-11.5.50
build(deps): bump phpunit/phpunit from 11.5.42 to 11.5.50 in /vendor-bin/phpunit
2026-01-27 23:49:07 +00:00
dependabot[bot] 69bac42bba build(deps): bump phpunit/phpunit in /vendor-bin/phpunit
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 11.5.42 to 11.5.50.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/11.5.50/ChangeLog-11.5.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/11.5.42...11.5.50)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-version: 11.5.50
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-27 23:23:47 +00:00
Andy Scherzinger fa1f6e2efb Merge pull request #57855 from nextcloud/refactor/systemtags-vue
refactor(systemtags): migrate to Vue 3 and `script setup`
2026-01-28 00:22:07 +01:00
Ferdinand Thiessen b4b5986be9 chore: compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-27 23:52:40 +01:00
Ferdinand Thiessen 16fbf5ac9b fix(systemtags): remove duplicated event listener
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-27 23:52:40 +01:00
Ferdinand Thiessen 50c849ebf9 refactor(systemtags): migrate to Vue 3
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-27 23:52:40 +01:00
Daniel Kesselberg bf5c11a8fa fix(workflowengine): use constant to render template
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2026-01-27 22:57:24 +01:00
Daniel Kesselberg 46f87f6e46 docs: annotate valid renderAs values
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2026-01-27 22:51:17 +01:00
Kate 7da87dcbfd Merge pull request #57767 from nextcloud/setup-provider-all-authoritative 2026-01-27 21:59:57 +01:00
Benjamin Gaussorgues f71f19c0c7 feat: optimize user mount cache
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-01-27 16:31:32 +01:00
Côme Chilliet 027bb149a4 chore: Remove broken PresetManager tests
Those are not Unit tests but integration tests with bad side effects on
 other tests. I failed to clean them up so removing them.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-01-27 16:31:22 +01:00
Robin Appelman 8443e166af fix: don't do full setup in setupForProvider if all requested providers are authoritative
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-27 15:52:31 +01:00
Joas Schilling 1e8374d509 Merge pull request #57848 from nextcloud/ci/noid/zizmor-actions
ci(actions): Satisfy zizmor
2026-01-27 15:50:17 +01:00
Ferdinand Thiessen de4f41bc78 Merge pull request #57842 from nextcloud/fix/files-sidebar
fix(files): do not reset active tab when re-opening
2026-01-27 15:35:57 +01:00
Côme Chilliet b2e332fa69 fix: Add missing @throws annotations in UserConfig
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-01-27 15:21:23 +01:00
Carl Schwan ae73f7aaf5 refactor(setup-manager): Use ISetupManager instead of SetupManager
Keep using the OC API in the mount manager and OC_Utils, but the rest is
now using the public API.

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-27 15:19:19 +01:00
Joas Schilling dbee8cf5d8 ci(rector): Update actions and add versions
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-01-27 15:02:51 +01:00
nextcloud-command 5c85757f4f chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-01-27 13:57:36 +00:00
Joas Schilling 2fbcbc0eaf ci(action): Assign permission as low as possible
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-01-27 14:56:50 +01:00
Joas Schilling c378e95ad6 ci(actions): Satisfy zizmor and show that we trust ourselves
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-01-27 14:53:58 +01:00
Ferdinand Thiessen b41bf5c7ef fix(files): do not reset active tab when re-opening
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-27 14:43:51 +01:00
Benjamin Gaussorgues 149c8b31e1 Merge pull request #57811 from nextcloud/fix/openmetrics_exporters 2026-01-27 14:36:45 +01:00
Côme Chilliet f2a5a8d70e fix(user_ldap): Fix crash in some code path when a DN is longer that 64
UserConfig throws in this case.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-01-27 14:05:53 +01:00
Kate a17f4d4eb1 Merge pull request #57575 from nextcloud/carl/typing-share 2026-01-27 13:36:01 +01:00
Carl Schwan c8989d853c refactor(IShare): Add typing for node
This might also improve a bit the performance.

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-27 11:19:33 +01:00
Kate 85ba4e0fa1 Merge pull request #56522 from nextcloud/feat/strict-php-checks 2026-01-27 11:11:09 +01:00
Benjamin Gaussorgues 128f56c8c8 Merge pull request #57820 from nextcloud/carl/fix-return-type-systemtagobjectmapper 2026-01-27 10:45:00 +01:00
Andy Scherzinger 93c254f451 Merge pull request #57731 from hmt/patch-1
Calendar: Fix typos in import/export
2026-01-27 10:35:26 +01:00
Côme Chilliet 5bc3ae7a75 Merge pull request #57785 from nextcloud/reactorShareByMail
refactor(shareByMail): Strict types and code simplification
2026-01-27 10:20:43 +01:00
Benjamin Gaussorgues e81f01e5a0 chore(openmetrics): add more complete test for controller
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-01-27 10:13:07 +01:00
Benjamin Gaussorgues 34fe033ace fix(openmetrics): ensure unit is a suffix of metric name
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-01-27 10:12:25 +01:00
Benjamin Gaussorgues 873ae96c6b fix(openmetrics): remove superfluous empty lines
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-01-27 10:11:49 +01:00
provokateurin 8713730419 feat(rector): Add strict config for new code
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-01-27 09:04:02 +01:00
provokateurin 3d09e8d912 feat(psalm): Add strict config for new code
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-01-27 09:02:21 +01:00
Kate 3950ef8b16 Merge pull request #57829 from nextcloud/setup-path-root 2026-01-27 08:55:46 +01:00
Kate d56b24112e Merge pull request #57810 from nextcloud/fix/composer/serve-overwrite-cli-url 2026-01-27 07:23:16 +01:00
Ferdinand Thiessen 50cc3439af Merge pull request #57791 from nextcloud/refactor/settings-navigation-vue
refactor(settings): use `NcAppNavigation` for the settings navigation
2026-01-27 03:48:39 +01:00
Ferdinand Thiessen e4522ca961 chore: compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-27 03:22:47 +01:00
Ferdinand Thiessen 105eaeae74 test: adjust cypress tests
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-27 02:43:35 +01:00
Ferdinand Thiessen 2e4ede0320 refactor(settings): use NcAppNavigation for the settings navigation
Migrate away from jQuery and Snap.js for the navigation.
This is required to finally drop both dependencies.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-27 02:29:41 +01:00
Nextcloud bot 87022e1ae1 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-01-27 00:20:44 +00:00
Carl Schwan 2d648e36b9 fix(systemtags): Correct the return type of system tag object mapper
Currently, it is documented in some places as returning a string but
returns a int or a string depending on the database used.

This then breaks then using strict comparaison in https://github.com/nextcloud/approval/pull/362

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-26 21:52:01 +01:00
Robin Appelman a6bcb1075f fix: don't try to setup for a user when setting up /
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-26 21:10:15 +01:00
Sebastian Krupinski 929e165466 Merge pull request #55132 from nextcloud/fix/favourite-icon-without-imagick-svg-support
fix: generate favourite icon without imagick svg support
2026-01-26 14:33:10 -05:00
SebastianKrupinski e2c4db1541 fix: generate favourite icon without imagick svg support
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2026-01-26 13:57:22 -05:00
Elizabeth Danzberger b7c6240327 fix(test): remove group limitation when done
Signed-off-by: Elizabeth Danzberger <elizabeth@elzody.dev>
2026-01-26 13:46:59 -05:00
Andy Scherzinger 92d9ca66cd Merge pull request #57130 from nextcloud/chore/update-badges
chore(img): Update mobile app store badges
2026-01-26 19:01:12 +01:00
Elizabeth Danzberger 90deae46c5 test: limit app to group
Signed-off-by: Elizabeth Danzberger <elizabeth@elzody.dev>
2026-01-26 12:46:35 -05:00
Elizabeth Danzberger fc94930b16 fix(app-settings): provide groups by initial state
Signed-off-by: Elizabeth Danzberger <elizabeth@elzody.dev>
2026-01-26 12:46:24 -05:00
Carl Schwan 0fe01de26c feat(OCP): Expose setup manager to OCP
It's used by a lot of apps so expose just the two methods that are most
of the time used, to prevent the apps to relly on private APIs.

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-26 17:12:02 +01:00
Git'Fellow 61a5371ec6 Merge pull request #57761 from nextcloud/searchTagsAllElementsIncluded
fix(search): All elements are included regardless of their keys
2026-01-26 16:39:33 +01:00
Benjamin Gaussorgues 2437046e25 Merge pull request #57756 from nextcloud/carl/function-builder 2026-01-26 14:14:51 +01:00
Ferdinand Thiessen a93ada7112 Merge pull request #57798 from nextcloud/fix/remove-x
chore: remove X from social links
2026-01-26 14:02:53 +01:00
Ferdinand Thiessen 60b6e834cc chore: remove X from social links
Nextcloud does not use X anymore.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-26 13:22:51 +01:00
Andy Scherzinger 0ba517b1b0 Merge pull request #57802 from nextcloud/bugfix/noid/upstream-appstore-changes
fix(apps): Update info.xsd with changes in appstore repository
2026-01-26 12:28:51 +01:00
Stephan Orbaugh 9b547f5c8d Merge pull request #57733 from nextcloud/carl/propagator-rollback
fix(Propagator): rollback transaction if it fails
2026-01-26 11:27:21 +01:00
provokateurin 30fa7e5390 fix(composer): Set overwrite.cli.url in serve script
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-01-26 10:43:11 +01:00
Côme Chilliet fae36e04ea feat: Add twofactor applications to most of the presets
All presets which are unlikely to have SSO in place should enable
 twofactor applications.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-01-26 10:18:09 +01:00
Kate ed6bb52821 Merge pull request #57800 from nextcloud/feat/flake/reuse-cli 2026-01-26 09:59:36 +01:00
Andy Scherzinger 588f7cdf96 Merge pull request #57480 from iasdeoupxe/mimetypes
feat(mimetypes): Add mimetype aliases/mapping/names for .toml and .ovpn
2026-01-26 08:22:50 +01:00
Joas Schilling bfed45ffe3 fix(apps): Update info.xsd with changes in appstore repository
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-01-26 07:47:38 +01:00
iasdeoupxe afde920978 feat: Add mimetype aliases/mapping/names for .toml and .ovpn
Signed-off-by: iasdeoupxe <39667843+iasdeoupxe@users.noreply.github.com>
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-01-26 07:20:37 +01:00
provokateurin c258ea9338 chore(deps): Update flake.lock
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-01-26 07:12:10 +01:00
Kate afe1c1ebde Merge pull request #57781 from nextcloud/bugfix/57766/allow-openmetrics-infoxml 2026-01-26 07:11:00 +01:00
provokateurin 0d6a469321 feat(flake): Add reuse cli
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-01-26 07:08:14 +01:00
Nextcloud bot 955478a853 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-01-26 00:20:49 +00:00
github-actions[bot] 7321ec7f23 Merge pull request #57695 from nextcloud/dependabot/npm_and_yarn/nextcloud/eslint-config-9.0.0-rc.7
build(deps-dev): bump @nextcloud/eslint-config from 9.0.0-rc.6 to 9.0.0-rc.7
2026-01-25 23:37:40 +00:00
Andy Scherzinger 0747954803 Merge pull request #57672 from nextcloud/fix/ocm/manage-4xx-status
fix(ocm): manage 4xx on ocm requests
2026-01-26 00:29:14 +01:00
nextcloud-command 80c0945b47 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-01-25 23:17:47 +00:00
Andy Scherzinger ebf9cbf4a1 Merge pull request #57570 from nextcloud/carl/perf/normalized-path
perf(normalization): Optimize path normalization
2026-01-26 00:16:03 +01:00
Ferdinand Thiessen e25f864e28 chore(legacy): fix @stylistic/exp-list-style ESLint rule
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-26 00:05:29 +01:00
Ferdinand Thiessen efdf1ccf36 chore(legacy): fix vue/component-options-name-casing ESLint rule
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-26 00:05:29 +01:00
Ferdinand Thiessen 790a1bfca8 chore: fix jsdoc ESLint rules
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-25 23:47:39 +01:00
Ferdinand Thiessen 59b68e1248 chore: fix vue/attribute-hyphenation ESLint rule
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-25 23:47:39 +01:00
Ferdinand Thiessen 12f1b91ee1 chore: fix vue/v-on-event-hyphenation ESLint rule
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-25 23:47:39 +01:00
Ferdinand Thiessen a0871deec4 chore: fix vue/custom-event-name-casing ESLint rule
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-25 23:47:39 +01:00
dependabot[bot] 772e0349fc build(deps-dev): bump @nextcloud/eslint-config
Bumps [@nextcloud/eslint-config](https://github.com/nextcloud-libraries/eslint-config) from 9.0.0-rc.6 to 9.0.0-rc.7.
- [Release notes](https://github.com/nextcloud-libraries/eslint-config/releases)
- [Changelog](https://github.com/nextcloud-libraries/eslint-config/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/eslint-config/compare/v9.0.0-rc.6...v9.0.0-rc.7)

---
updated-dependencies:
- dependency-name: "@nextcloud/eslint-config"
  dependency-version: 9.0.0-rc.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-25 23:47:39 +01:00
Benjamin Gaussorgues 8af5e06b62 Merge pull request #57764 from nextcloud/fix/openmetrics_labels 2026-01-25 22:51:25 +01:00
Kate 1f64141928 Merge pull request #57759 from nextcloud/feat/openmetrics_loglevel 2026-01-25 17:11:37 +01:00
github-actions[bot] 60eb0c4e27 Merge pull request #57706 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/sass-1.97.3
build(deps-dev): bump sass from 1.97.2 to 1.97.3 in /build/frontend-legacy
2026-01-25 12:35:27 +00:00
dependabot[bot] 652b06c1ce build(deps-dev): bump sass in /build/frontend-legacy
Bumps [sass](https://github.com/sass/dart-sass) from 1.97.2 to 1.97.3.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.97.2...1.97.3)

---
updated-dependencies:
- dependency-name: sass
  dependency-version: 1.97.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-25 13:18:11 +01:00
github-actions[bot] 0756782610 Merge pull request #57698 from nextcloud/dependabot/npm_and_yarn/sass-1.97.3
build(deps-dev): bump sass from 1.97.2 to 1.97.3
2026-01-25 12:11:40 +00:00
dependabot[bot] ec30829842 build(deps-dev): bump sass from 1.97.2 to 1.97.3
Bumps [sass](https://github.com/sass/dart-sass) from 1.97.2 to 1.97.3.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.97.2...1.97.3)

---
updated-dependencies:
- dependency-name: sass
  dependency-version: 1.97.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-25 12:26:27 +01:00
github-actions[bot] 8b0ff5c401 Merge pull request #57700 from nextcloud/dependabot/npm_and_yarn/vue-3.5.27
build(deps): bump vue from 3.5.26 to 3.5.27
2026-01-25 11:10:31 +00:00
nextcloud-command 00ce0d86b1 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-01-25 09:46:15 +00:00
dependabot[bot] 623196ad97 build(deps): bump vue from 3.5.26 to 3.5.27
Bumps [vue](https://github.com/vuejs/core) from 3.5.26 to 3.5.27.
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/compare/v3.5.26...v3.5.27)

---
updated-dependencies:
- dependency-name: vue
  dependency-version: 3.5.27
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-25 10:38:37 +01:00
github-actions[bot] e632cc0b73 Merge pull request #57773 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/focus-trap-7.8.0
build(deps): bump focus-trap from 7.6.6 to 7.8.0 in /build/frontend-legacy
2026-01-25 10:15:03 +01:00
Nextcloud bot b5dc337623 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-01-25 00:20:48 +00:00
nextcloud-command 9cc50debfe chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-01-24 23:17:41 +00:00
dependabot[bot] 9784edc7c9 build(deps): bump focus-trap in /build/frontend-legacy
Bumps [focus-trap](https://github.com/focus-trap/focus-trap) from 7.6.6 to 7.8.0.
- [Release notes](https://github.com/focus-trap/focus-trap/releases)
- [Changelog](https://github.com/focus-trap/focus-trap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/focus-trap/focus-trap/compare/v7.6.6...v7.8.0)

---
updated-dependencies:
- dependency-name: focus-trap
  dependency-version: 7.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-24 23:05:37 +00:00
github-actions[bot] 8047f7211c Merge pull request #57689 from nextcloud/dependabot/composer/vendor-bin/behat/behat/behat-3.29.0
build(deps-dev): bump behat/behat from 3.27.0 to 3.29.0 in /vendor-bin/behat
2026-01-24 22:53:48 +00:00
github-actions[bot] 03198238ad Merge pull request #57690 from nextcloud/dependabot/composer/vendor-bin/rector/rector/rector-2.3.4
build(deps-dev): bump rector/rector from 2.3.1 to 2.3.4 in /vendor-bin/rector
2026-01-24 22:52:56 +00:00
github-actions[bot] 1342adffc0 Merge pull request #57703 from nextcloud/dependabot/npm_and_yarn/types/dockerode-4.0.1
build(deps-dev): bump @types/dockerode from 4.0.0 to 4.0.1
2026-01-24 22:44:40 +00:00
github-actions[bot] 2894734384 Merge pull request #57683 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/lodash-4.17.23
build(deps): bump lodash from 4.17.21 to 4.17.23 in /build/frontend-legacy
2026-01-24 23:36:26 +01:00
nextcloud-command d66f2e082f chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-01-24 18:45:17 +00:00
Git'Fellow ce9119a708 refactor(shareByMail): Strict types and code simplification
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2026-01-24 19:02:32 +01:00
Git'Fellow 7352aaff03 fix(search): All elements are included regardless of their keys
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2026-01-24 18:03:29 +01:00
dependabot[bot] a7a82991ce build(deps): bump lodash in /build/frontend-legacy
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.17.23
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-24 16:33:36 +00:00
dependabot[bot] d4966cf913 build(deps-dev): bump @types/dockerode from 4.0.0 to 4.0.1
Bumps [@types/dockerode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/dockerode) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/dockerode)

---
updated-dependencies:
- dependency-name: "@types/dockerode"
  dependency-version: 4.0.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-24 16:32:41 +00:00
github-actions[bot] e2cea7b286 Merge pull request #57774 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/core-js-3.48.0
build(deps): bump core-js from 3.47.0 to 3.48.0 in /build/frontend-legacy
2026-01-24 16:21:41 +00:00
nextcloud-command 0555d5754a chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-01-24 16:05:20 +00:00
dependabot[bot] 966dd1ba68 build(deps): bump core-js in /build/frontend-legacy
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.47.0 to 3.48.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.48.0/packages/core-js)

---
updated-dependencies:
- dependency-name: core-js
  dependency-version: 3.48.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-24 16:57:52 +01:00
github-actions[bot] 810986b2a0 Merge pull request #57775 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/libphonenumber-js-1.12.35
build(deps): bump libphonenumber-js from 1.12.34 to 1.12.35 in /build/frontend-legacy
2026-01-24 15:57:22 +00:00
github-actions[bot] fa778b7d03 Merge pull request #57723 from nextcloud/dependabot/github_actions/github-actions-56188969f1
build(deps): bump the github-actions group with 4 updates
2026-01-24 16:57:08 +01:00
nextcloud-command a5afae38ad chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-01-24 15:40:45 +00:00
dependabot[bot] a02710ea57 build(deps): bump libphonenumber-js in /build/frontend-legacy
Bumps [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) from 1.12.34 to 1.12.35.
- [Changelog](https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/CHANGELOG.md)
- [Commits](https://gitlab.com/catamphetamine/libphonenumber-js/compare/v1.12.34...v1.12.35)

---
updated-dependencies:
- dependency-name: libphonenumber-js
  dependency-version: 1.12.35
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-24 16:33:21 +01:00
github-actions[bot] 963dcba6cc Merge pull request #57772 from nextcloud/dependabot/npm_and_yarn/vitest-007c43aa68
build(deps-dev): bump the vitest group across 2 directories with 3 updates
2026-01-24 15:25:25 +00:00
dependabot[bot] 33eee07176 build(deps-dev): bump the vitest group across 2 directories with 3 updates
Bumps the vitest group with 1 update in the / directory: [@vitest/coverage-istanbul](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-istanbul).
Bumps the vitest group with 2 updates in the /build/frontend-legacy directory: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8).


Updates `@vitest/coverage-istanbul` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/coverage-istanbul)

Updates `vitest` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/vitest)

Updates `vitest` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/vitest)

Updates `@vitest/coverage-v8` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/coverage-v8)

---
updated-dependencies:
- dependency-name: "@vitest/coverage-istanbul"
  dependency-version: 4.0.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: vitest
  dependency-version: 4.0.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: vitest
  dependency-version: 4.0.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 4.0.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-24 15:11:19 +00:00
Andy Scherzinger e186d494f0 Merge pull request #57682 from nextcloud/dependabot/npm_and_yarn/lodash-4.17.23
build(deps): bump lodash from 4.17.21 to 4.17.23
2026-01-24 15:58:43 +01:00
github-actions[bot] 65d7c0342f Merge pull request #57777 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/nextcloud/vue-8.35.3
build(deps): bump @nextcloud/vue from 8.35.2 to 8.35.3 in /build/frontend-legacy
2026-01-24 15:56:50 +01:00
Benjamin Gaussorgues 481fe1574a fix(openmetrics): fix label names and add test for them
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-01-24 15:54:35 +01:00
nextcloud-command e2dc31de77 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-01-24 14:26:14 +00:00
dependabot[bot] 831cfba8dd build(deps): bump @nextcloud/vue in /build/frontend-legacy
Bumps [@nextcloud/vue](https://github.com/nextcloud-libraries/nextcloud-vue) from 8.35.2 to 8.35.3.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-vue/blob/v8.35.3/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-vue/compare/v8.35.2...v8.35.3)

---
updated-dependencies:
- dependency-name: "@nextcloud/vue"
  dependency-version: 8.35.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-24 15:18:37 +01:00
Joas Schilling cc6f49b762 fix(openmetrics): Make openmetrics always an array like all other infoxml fields
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-01-24 14:17:35 +01:00
Ferdinand Thiessen 58b404a31c Merge pull request #57676 from nextcloud/feat/allow-filter-contacts-by-team
feat: allow to filter contacts by team
2026-01-24 13:40:03 +01:00
Joas Schilling 45bae0ea48 fix(openmetrics): Allow openmetrics in info.xml
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-01-24 13:11:18 +01:00
Nextcloud bot 7c83a5bb99 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-01-24 00:20:53 +00:00
Git'Fellow 0c83a9da35 Merge pull request #57758 from nextcloud/fixNoBaseComponentFound
fix(caldav): Enhance UID check for base component
2026-01-23 19:24:52 +01:00
Kate 739b018312 Merge pull request #57765 from nextcloud/fix/noid/openmetrics-multiple-app-exporters 2026-01-23 19:21:31 +01:00
Marcel Müller 9cc4daed56 fix(openmetrics): Multiple exporters per app
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2026-01-23 17:35:38 +01:00
Git'Fellow 59bb049de0 fix(caldav): Enhance UID check for base component
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2026-01-23 17:24:42 +01:00
Carl Schwan b4dfdf6492 refactor: Prefer using IFunctionBuilder than createFunction
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-23 16:58:38 +01:00
Benjamin Gaussorgues 4da7137278 feat(openmetrics): add log level
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-01-23 16:02:04 +01:00
Ferdinand Thiessen 644d07d835 chore: compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-23 14:56:31 +01:00
Ferdinand Thiessen 503acb0ed6 feat: allow to filter contacts by team
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-23 14:54:41 +01:00
Carl Schwan 3900c45ea4 fix(Propagator): rollback transaction if it fails 2026-01-22 17:08:57 +01:00
hmt 2ad593cc3a Calendar: Fix typos in import/export 2026-01-22 16:22:29 +01:00
dependabot[bot] 5457d38581 build(deps): bump the github-actions group with 4 updates
Bumps the github-actions group with 4 updates: [shivammathur/setup-php](https://github.com/shivammathur/setup-php), [webiny/action-conventional-commits](https://github.com/webiny/action-conventional-commits), [cypress-io/github-action](https://github.com/cypress-io/github-action) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request).


Updates `shivammathur/setup-php` from 2.35.5 to 2.36.0
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/2.35.5...44454db4f0199b8b9685a5d763dc37cbf79108e1)

Updates `webiny/action-conventional-commits` from 1.3.0 to 1.3.1
- [Release notes](https://github.com/webiny/action-conventional-commits/releases)
- [Commits](https://github.com/webiny/action-conventional-commits/compare/8bc41ff4e7d423d56fa4905f6ff79209a78776c7...faccb24fc2550dd15c0390d944379d2d8ed9690e)

Updates `cypress-io/github-action` from 6.10.8 to 7.0.0
- [Release notes](https://github.com/cypress-io/github-action/releases)
- [Changelog](https://github.com/cypress-io/github-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/github-action/compare/2ad32e649e4db26c07674ebae31a297601dbcbaf...dca986193e4336cb32820819b07e9ecacacaaaf6)

Updates `peter-evans/create-pull-request` from 8.0.0 to 8.1.0
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/98357b18bf14b5342f975ff684046ec3b2a07725...c0f553fe549906ede9cf27b5156039d195d2ece0)

---
updated-dependencies:
- dependency-name: shivammathur/setup-php
  dependency-version: 2.36.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: webiny/action-conventional-commits
  dependency-version: 1.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: cypress-io/github-action
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: peter-evans/create-pull-request
  dependency-version: 8.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-22 09:33:11 +00:00
dependabot[bot] 7c5ed698bd build(deps-dev): bump rector/rector in /vendor-bin/rector
Bumps [rector/rector](https://github.com/rectorphp/rector) from 2.3.1 to 2.3.4.
- [Release notes](https://github.com/rectorphp/rector/releases)
- [Commits](https://github.com/rectorphp/rector/compare/2.3.1...2.3.4)

---
updated-dependencies:
- dependency-name: rector/rector
  dependency-version: 2.3.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-22 09:18:11 +00:00
dependabot[bot] daf3617931 build(deps-dev): bump behat/behat in /vendor-bin/behat
Bumps [behat/behat](https://github.com/Behat/Behat) from 3.27.0 to 3.29.0.
- [Release notes](https://github.com/Behat/Behat/releases)
- [Changelog](https://github.com/Behat/Behat/blob/3.x/CHANGELOG.md)
- [Commits](https://github.com/Behat/Behat/compare/v3.27.0...v3.29.0)

---
updated-dependencies:
- dependency-name: behat/behat
  dependency-version: 3.29.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-22 09:17:52 +00:00
dependabot[bot] a374c3a37b build(deps): bump lodash from 4.17.21 to 4.17.23
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.17.23
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-21 23:24:26 +00:00
Carl Schwan 09a1ca3981 perf(normalization): Optimize path normalization
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-21 14:58:05 +01:00
Maxence Lange 4dba1455a6 fix(ocm): manage 4xx on ocm requests
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2026-01-21 10:09:21 -01:00
kramo b378a21733 chore(img): Update mobile app store badges
Signed-off-by: kramo <git@kramo.page>
2026-01-18 23:59:42 +01:00
Carl Schwan 7a025ffb0b feat(preview): Make it possible to disable on preview migration
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-14 14:09:07 +01:00
Carl Schwan 6149168129 feat(preview): On demand preview migration
When requesting previews, which we don't find in oc_previews, search in
IAppData first before creating them.

Move the logic from MovepreviewJob to PreviewMigrationService and reuse
that in the Preview Generator.

At the same time rename MovePreviewJob to PreviewMigrationJob as it is a
better name.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-01-12 14:20:09 +01:00
2450 changed files with 27841 additions and 17650 deletions
+2 -2
View File
@@ -52,7 +52,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
@@ -82,7 +82,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
@@ -31,7 +31,7 @@ jobs:
- 'version.php'
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
@@ -27,10 +27,10 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- uses: webiny/action-conventional-commits@8bc41ff4e7d423d56fa4905f6ff79209a78776c7 # v1.3.0
- uses: webiny/action-conventional-commits@faccb24fc2550dd15c0390d944379d2d8ed9690e # v1.3.1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+3 -3
View File
@@ -32,18 +32,18 @@ jobs:
build-mode: none
steps:
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Initialize CodeQL
uses: github/codeql-action/init@cdefb33c0f6224e58673d9004f47f7cb3e328b89 # v4.31.10
uses: github/codeql-action/init@b20883b0cd1f46c72ae0ba6d1090936928f9fa30 # v4.32.0
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
config-file: ./.github/codeql-config.yml
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@cdefb33c0f6224e58673d9004f47f7cb3e328b89 # v4.31.10
uses: github/codeql-action/analyze@b20883b0cd1f46c72ae0ba6d1090936928f9fa30 # v4.32.0
with:
category: "/language:${{matrix.language}}"
+1 -1
View File
@@ -103,7 +103,7 @@ jobs:
key: git-repo
- name: Checkout ${{ needs.init.outputs.head_ref }}
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
# Needed to allow force push later
persist-credentials: true
+1 -1
View File
@@ -38,7 +38,7 @@ jobs:
id: comment-branch
- name: Checkout ${{ steps.comment-branch.outputs.head_ref }}
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
fetch-depth: 0
+6 -6
View File
@@ -48,7 +48,7 @@ jobs:
exit 1
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
# We need to checkout submodules for 3rdparty
@@ -107,7 +107,7 @@ jobs:
services:
mysql:
# Only start mysql if we are running the setup tests
image: ${{matrix.containers == 'setup' && 'ghcr.io/nextcloud/continuous-integration-mysql-8.4:latest' || ''}}
image: ${{matrix.containers == 'setup' && 'ghcr.io/nextcloud/continuous-integration-mysql-8.4:latest' || ''}} # zizmor: ignore[unpinned-images]
ports:
- '3306/tcp'
env:
@@ -119,7 +119,7 @@ jobs:
mariadb:
# Only start mariadb if we are running the setup tests
image: ${{matrix.containers == 'setup' && 'mariadb:11.4' || ''}}
image: ${{matrix.containers == 'setup' && 'mariadb:11.4' || ''}} # zizmor: ignore[unpinned-images]
ports:
- '3306/tcp'
env:
@@ -131,7 +131,7 @@ jobs:
postgres:
# Only start postgres if we are running the setup tests
image: ${{matrix.containers == 'setup' && 'ghcr.io/nextcloud/continuous-integration-postgres-17:latest' || ''}}
image: ${{matrix.containers == 'setup' && 'ghcr.io/nextcloud/continuous-integration-postgres-17:latest' || ''}} # zizmor: ignore[unpinned-images]
ports:
- '5432/tcp'
env:
@@ -142,7 +142,7 @@ jobs:
oracle:
# Only start oracle if we are running the setup tests
image: ${{matrix.containers == 'setup' && 'ghcr.io/gvenzl/oracle-free:23' || ''}}
image: ${{matrix.containers == 'setup' && 'ghcr.io/gvenzl/oracle-free:23' || ''}} # zizmor: ignore[unpinned-images]
ports:
- '1521'
env:
@@ -171,7 +171,7 @@ jobs:
run: ./node_modules/cypress/bin/cypress install
- name: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} cypress tests
uses: cypress-io/github-action@2ad32e649e4db26c07674ebae31a297601dbcbaf # v6.10.8
uses: cypress-io/github-action@0f330ebf0d60f87608ed72f1d6232e5644aa3171 # v7.1.1
with:
# We already installed the dependencies in the init job
install: false
+1 -1
View File
@@ -65,7 +65,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
+2 -2
View File
@@ -74,7 +74,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
@@ -163,7 +163,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
+1 -1
View File
@@ -65,7 +65,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
@@ -56,13 +56,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Checkout user_saml
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
repository: nextcloud/user_saml
+1 -1
View File
@@ -75,7 +75,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
+1 -1
View File
@@ -70,7 +70,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
+1 -1
View File
@@ -64,7 +64,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
@@ -24,14 +24,14 @@ jobs:
require: write
- name: Checkout github_helper
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
repository: nextcloud/github_helper
path: github_helper
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
path: server
@@ -73,7 +73,7 @@ jobs:
fi
- name: Set up php 8.2
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: 8.2
+2 -2
View File
@@ -53,7 +53,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
@@ -71,7 +71,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Python
uses: LizardByte/actions/actions/setup_python@e6bc045033a5614035b66daafc38ff86faecb23a # v2026.116.208
uses: LizardByte/actions/actions/setup_python@09a6e10dc8175f2933c20bdf35fde0a193a9c00e # v2026.129.194351
with:
python-version: '2.7'
+1 -1
View File
@@ -52,7 +52,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
+1 -1
View File
@@ -76,7 +76,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
+3 -3
View File
@@ -97,14 +97,14 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Checkout Talk app
if: ${{ matrix.test-suite == 'videoverification_features' }}
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
repository: nextcloud/spreed
@@ -113,7 +113,7 @@ jobs:
- name: Checkout Activity app
if: ${{ matrix.test-suite == 'sharing_features' }}
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
repository: nextcloud/activity
+1 -1
View File
@@ -56,7 +56,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
+2 -2
View File
@@ -48,12 +48,12 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up php
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: 8.2
+2 -2
View File
@@ -53,12 +53,12 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
+1 -1
View File
@@ -25,7 +25,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
+1 -1
View File
@@ -59,7 +59,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
+1 -1
View File
@@ -58,7 +58,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
+1 -1
View File
@@ -56,7 +56,7 @@ jobs:
name: NPM build
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
+2 -2
View File
@@ -35,7 +35,7 @@ jobs:
steps:
- name: Checkout
id: checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
ref: ${{ matrix.branches }}
@@ -70,7 +70,7 @@ jobs:
- name: Create Pull Request
if: steps.checkout.outcome == 'success'
uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 # v8.0.0
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'fix(deps): Fix npm audit'
+1 -1
View File
@@ -79,7 +79,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
+1 -1
View File
@@ -80,7 +80,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
+1 -1
View File
@@ -77,7 +77,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
+2 -2
View File
@@ -26,12 +26,12 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up php
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: '8.2'
+2 -2
View File
@@ -35,14 +35,14 @@ jobs:
exit 1
- name: Checkout server before PR
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
ref: ${{ github.event.pull_request.base.ref }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
+1 -1
View File
@@ -33,7 +33,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
+2 -2
View File
@@ -92,13 +92,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
+1 -1
View File
@@ -72,7 +72,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
+1 -1
View File
@@ -121,7 +121,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
+2 -2
View File
@@ -92,13 +92,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
+1 -1
View File
@@ -75,7 +75,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
@@ -72,7 +72,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
+2 -2
View File
@@ -99,13 +99,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
+2 -2
View File
@@ -92,13 +92,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
+10 -5
View File
@@ -75,25 +75,28 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, imagick, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
run: |
sudo apt-get update
sudo apt-get install -y ghostscript
composer i
- name: Set up Nextcloud
run: |
@@ -107,7 +110,7 @@ jobs:
run: ./occ app:list && echo "======= System config =======" && ./occ config:list system
- name: PHPUnit database tests
run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }}
run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }} tests/lib/Preview/PostscriptTest.php
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
@@ -125,6 +128,8 @@ jobs:
- name: Print logs
if: always()
run: |
gs --version
cat /etc/ImageMagick-6/policy.xml
cat data/nextcloud.log
summary:
+45
View File
@@ -0,0 +1,45 @@
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
name: Rector
on:
pull_request:
permissions:
contents: read
concurrency:
group: rector-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
strict:
runs-on: ubuntu-latest
if: ${{ github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }}
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
with:
php-version: '8.2'
extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,imagick,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Composer install
run: composer i
- name: Rector
run: composer run rector:strict
- name: Show changes
if: always()
run: git diff --exit-code -- . ':!lib/composer'
+1 -1
View File
@@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest-low
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
+35 -6
View File
@@ -15,7 +15,6 @@ on:
permissions:
contents: read
security-events: write
concurrency:
group: static-code-analysis-${{ github.head_ref || github.run_id }}
@@ -29,7 +28,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
persist-credentials: false
submodules: true
@@ -59,9 +58,12 @@ jobs:
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
permissions:
security-events: write
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
persist-credentials: false
submodules: true
@@ -86,7 +88,7 @@ jobs:
- name: Upload Security Analysis results to GitHub
if: always()
uses: github/codeql-action/upload-sarif@cdefb33c0f6224e58673d9004f47f7cb3e328b89 # v3
uses: github/codeql-action/upload-sarif@b20883b0cd1f46c72ae0ba6d1090936928f9fa30 # v3
with:
sarif_file: results.sarif
@@ -97,7 +99,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
persist-credentials: false
submodules: true
@@ -129,7 +131,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
persist-credentials: false
submodules: true
@@ -149,3 +151,30 @@ jobs:
- name: Psalm
run: composer run psalm:ncu -- --threads=1 --monochrome --no-progress --output-format=github
static-code-analysis-strict:
runs-on: ubuntu-latest
if: ${{ github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }}
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
with:
php-version: '8.2'
extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Composer install
run: composer i
- name: Psalm
run: composer run psalm:strict -- --threads=1 --monochrome --no-progress --output-format=github
+2 -2
View File
@@ -22,7 +22,7 @@ jobs:
name: update-ca-certificate-bundle-${{ matrix.branches }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
ref: ${{ matrix.branches }}
@@ -32,7 +32,7 @@ jobs:
run: curl --etag-compare build/ca-bundle-etag.txt --etag-save build/ca-bundle-etag.txt --output resources/config/ca-bundle.crt https://curl.se/ca/cacert.pem
- name: Create Pull Request
uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'fix(security): Update CA certificate bundle'
@@ -22,7 +22,7 @@ jobs:
name: update-code-signing-crl-${{ matrix.branches }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
ref: ${{ matrix.branches }}
@@ -35,7 +35,7 @@ jobs:
run: openssl crl -verify -in resources/codesigning/root.crl -CAfile resources/codesigning/root.crt -noout
- name: Create Pull Request
uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'fix(security): Update code signing revocation list'
@@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest-low
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
@@ -107,7 +107,7 @@ jobs:
fi
- name: Create Pull Request
uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0
if: steps.update-files.outputs.CHANGES_MADE == 'true'
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
+1 -1
View File
@@ -35,8 +35,8 @@ Enterprise? Public Sector or Education user? You may want to have a look into [*
## Get in touch 💬
* [📋 Forum](https://help.nextcloud.com)
* [🦋 Bluesky](https://bsky.app/profile/nextcloud.bsky.social)
* [👥 Facebook](https://www.facebook.com/nextclouders)
* [🐣 Twitter](https://twitter.com/Nextclouders)
* [🐘 Mastodon](https://mastodon.xyz/@nextcloud)
You can also [get support for Nextcloud](https://nextcloud.com/support)!
+2
View File
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
+2
View File
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+9 -1
View File
@@ -10,11 +10,18 @@ OC.L10N.register(
"{author} commented on {file}" : "{author} je komentirao {file}",
"<strong>Comments</strong> for files" : "<strong>Komentari</strong> za datoteke",
"Files" : "Datoteke",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Spomenuti ste u komentaru na „{file}” od računa koji je u međuvremenu izbrisan.",
"{user} mentioned you in a comment on \"{file}\"" : "{user} vas je spomenuo u komentaru na „{file}”",
"Files app plugin to add comments to files" : "Dodatak za aplikaciju Datoteke za dodavanje komentara na datoteke",
"Edit comment" : "Uredi komentar",
"Delete comment" : "Izbriši komentar",
"Cancel edit" : "Otkaži uređivanje",
"New comment" : "Novi komentar",
"Write a comment …" : "Napiši komentar …",
"Post comment" : "Objavi komentar",
"@ for mentions, : for emoji, / for smart picker" : "@ za spominjanje, : za emoji, / za pametni odabir",
"Could not reload comments" : "Nije moguće ponovno učitati komentare",
"Failed to mark comments as read" : "Nije uspjelo označavanje komentara kao pročitani",
"Unable to load the comments list" : "Nije moguće učitati popis komentara",
"No comments yet, start the conversation!" : "Još nema komentara, započnite razgovor!",
"No more messages" : "Nema više poruka",
@@ -24,6 +31,7 @@ OC.L10N.register(
"An error occurred while trying to edit the comment" : "Došlo je do pogreške prilikom uređivanja komentara",
"Comment deleted" : "Komentar izbrisan",
"An error occurred while trying to delete the comment" : "Došlo je do pogreške prilikom brisanja komentara",
"An error occurred while trying to create the comment" : "Došlo je do pogreške prilikom stvaranja komentara"
"An error occurred while trying to create the comment" : "Došlo je do pogreške prilikom stvaranja komentara",
"Write a comment …" : "Napiši komentar …"
},
"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;");
+9 -1
View File
@@ -8,11 +8,18 @@
"{author} commented on {file}" : "{author} je komentirao {file}",
"<strong>Comments</strong> for files" : "<strong>Komentari</strong> za datoteke",
"Files" : "Datoteke",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Spomenuti ste u komentaru na „{file}” od računa koji je u međuvremenu izbrisan.",
"{user} mentioned you in a comment on \"{file}\"" : "{user} vas je spomenuo u komentaru na „{file}”",
"Files app plugin to add comments to files" : "Dodatak za aplikaciju Datoteke za dodavanje komentara na datoteke",
"Edit comment" : "Uredi komentar",
"Delete comment" : "Izbriši komentar",
"Cancel edit" : "Otkaži uređivanje",
"New comment" : "Novi komentar",
"Write a comment …" : "Napiši komentar …",
"Post comment" : "Objavi komentar",
"@ for mentions, : for emoji, / for smart picker" : "@ za spominjanje, : za emoji, / za pametni odabir",
"Could not reload comments" : "Nije moguće ponovno učitati komentare",
"Failed to mark comments as read" : "Nije uspjelo označavanje komentara kao pročitani",
"Unable to load the comments list" : "Nije moguće učitati popis komentara",
"No comments yet, start the conversation!" : "Još nema komentara, započnite razgovor!",
"No more messages" : "Nema više poruka",
@@ -22,6 +29,7 @@
"An error occurred while trying to edit the comment" : "Došlo je do pogreške prilikom uređivanja komentara",
"Comment deleted" : "Komentar izbrisan",
"An error occurred while trying to delete the comment" : "Došlo je do pogreške prilikom brisanja komentara",
"An error occurred while trying to create the comment" : "Došlo je do pogreške prilikom stvaranja komentara"
"An error occurred while trying to create the comment" : "Došlo je do pogreške prilikom stvaranja komentara",
"Write a comment …" : "Napiši komentar …"
},"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;"
}
+2
View File
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
+2 -5
View File
@@ -12,7 +12,6 @@ use OCP\App\IAppManager;
use OCP\Comments\CommentsEvent;
use OCP\Files\Config\IMountProviderCollection;
use OCP\Files\IRootFolder;
use OCP\Files\Node;
use OCP\IUser;
use OCP\IUserSession;
use OCP\Share\IShareHelper;
@@ -47,10 +46,8 @@ class Listener {
foreach ($mounts as $mount) {
$owner = $mount->getUser()->getUID();
$ownerFolder = $this->rootFolder->getUserFolder($owner);
$nodes = $ownerFolder->getById((int)$event->getComment()->getObjectId());
if (!empty($nodes)) {
/** @var Node $node */
$node = array_shift($nodes);
$node = $ownerFolder->getFirstNodeById((int)$event->getComment()->getObjectId());
if ($node !== null) {
$al = $this->shareHelper->getPathsForAccessList($node);
$users += $al['users'];
}
+2
View File
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -70,11 +70,11 @@ class NotificationsController extends Controller {
return new NotFoundResponse();
}
$userFolder = $this->rootFolder->getUserFolder($currentUser->getUID());
$files = $userFolder->getById((int)$comment->getObjectId());
$file = $userFolder->getFirstNodeById((int)$comment->getObjectId());
$this->markProcessed($comment, $currentUser);
if (empty($files)) {
if ($file === null) {
return new NotFoundResponse();
}
@@ -32,8 +32,8 @@ class CommentsEntityEventListener implements IEventListener {
}
$event->addEntityCollection('files', function ($name): bool {
$nodes = $this->rootFolder->getUserFolder($this->userId)->getById((int)$name);
return !empty($nodes);
$node = $this->rootFolder->getUserFolder($this->userId)->getFirstNodeById((int)$name);
return $node !== null;
});
}
}
+2 -3
View File
@@ -84,11 +84,10 @@ class Notifier implements INotifier {
throw new UnknownNotificationException('Unsupported comment object');
}
$userFolder = $this->rootFolder->getUserFolder($notification->getUser());
$nodes = $userFolder->getById((int)$parameters[1]);
if (empty($nodes)) {
$node = $userFolder->getFirstNodeById((int)$parameters[1]);
if ($node === null) {
throw new AlreadyProcessedException();
}
$node = $nodes[0];
$path = rtrim($node->getPath(), '/');
if (str_starts_with($path, '/' . $notification->getUser() . '/files/')) {
@@ -116,11 +116,11 @@ class CommentsSearchProvider implements IProvider {
* @throws NotFoundException
*/
protected function getFileForComment(Folder $userFolder, IComment $comment): Node {
$nodes = $userFolder->getById((int)$comment->getObjectId());
if (empty($nodes)) {
$node = $userFolder->getFirstNodeById((int)$comment->getObjectId());
if ($node === null) {
throw new NotFoundException('File not found');
}
return array_shift($nodes);
return $node;
}
}
@@ -1,11 +1,11 @@
/**
/*!
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import type { Folder, View } from '@nextcloud/files'
import type { IFolder, IView } from '@nextcloud/files'
import { File, FileAction, Permission } from '@nextcloud/files'
import { File, Permission } from '@nextcloud/files'
import { describe, expect, test, vi } from 'vitest'
import logger from '../logger.js'
import { action } from './inlineUnreadCommentsAction.ts'
@@ -13,7 +13,7 @@ import { action } from './inlineUnreadCommentsAction.ts'
const view = {
id: 'files',
name: 'Files',
} as View
} as IView
describe('Inline unread comments action display name tests', () => {
test('Default values', () => {
@@ -29,36 +29,35 @@ describe('Inline unread comments action display name tests', () => {
root: '/files/admin',
})
expect(action).toBeInstanceOf(FileAction)
expect(action.id).toBe('comments-unread')
expect(action.displayName({
nodes: [file],
view,
folder: {} as Folder,
folder: {} as IFolder,
contents: [],
})).toBe('')
expect(action.title!({
nodes: [file],
view,
folder: {} as Folder,
folder: {} as IFolder,
contents: [],
})).toBe('1 new comment')
expect(action.iconSvgInline({
nodes: [file],
view,
folder: {} as Folder,
folder: {} as IFolder,
contents: [],
})).toMatch(/<svg.+<\/svg>/)
expect(action.enabled!({
nodes: [file],
view,
folder: {} as Folder,
folder: {} as IFolder,
contents: [],
})).toBe(true)
expect(action.inline!({
nodes: [file],
view,
folder: {} as Folder,
folder: {} as IFolder,
contents: [],
})).toBe(true)
expect(action.default).toBeUndefined()
@@ -81,13 +80,13 @@ describe('Inline unread comments action display name tests', () => {
expect(action.displayName({
nodes: [file],
view,
folder: {} as Folder,
folder: {} as IFolder,
contents: [],
})).toBe('')
expect(action.title!({
nodes: [file],
view,
folder: {} as Folder,
folder: {} as IFolder,
contents: [],
})).toBe('2 new comments')
})
@@ -108,7 +107,7 @@ describe('Inline unread comments action enabled tests', () => {
expect(action.enabled!({
nodes: [file],
view,
folder: {} as Folder,
folder: {} as IFolder,
contents: [],
})).toBe(false)
})
@@ -129,7 +128,7 @@ describe('Inline unread comments action enabled tests', () => {
expect(action.enabled!({
nodes: [file],
view,
folder: {} as Folder,
folder: {} as IFolder,
contents: [],
})).toBe(false)
})
@@ -150,7 +149,7 @@ describe('Inline unread comments action enabled tests', () => {
expect(action.enabled!({
nodes: [file],
view,
folder: {} as Folder,
folder: {} as IFolder,
contents: [],
})).toBe(true)
})
@@ -171,7 +170,7 @@ describe('Inline unread comments action enabled tests', () => {
expect(action.enabled!({
nodes: [file],
view,
folder: {} as Folder,
folder: {} as IFolder,
contents: [],
})).toBe(true)
})
@@ -204,7 +203,7 @@ describe('Inline unread comments action execute tests', () => {
const result = await action.exec!({
nodes: [file],
view,
folder: {} as Folder,
folder: {} as IFolder,
contents: [],
})
@@ -241,7 +240,7 @@ describe('Inline unread comments action execute tests', () => {
const result = await action.exec!({
nodes: [file],
view,
folder: {} as Folder,
folder: {} as IFolder,
contents: [],
})
@@ -3,12 +3,14 @@
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import type { IFileAction } from '@nextcloud/files'
import CommentProcessingSvg from '@mdi/svg/svg/comment-processing.svg?raw'
import { FileAction, getSidebar } from '@nextcloud/files'
import { getSidebar } from '@nextcloud/files'
import { n, t } from '@nextcloud/l10n'
import logger from '../logger.js'
export const action = new FileAction({
export const action: IFileAction = {
id: 'comments-unread',
title({ nodes }) {
@@ -47,4 +49,4 @@ export const action = new FileAction({
inline: () => true,
order: -140,
})
}
@@ -92,12 +92,11 @@ class ListenerTest extends TestCase {
->willReturn($userMountCache);
$node = $this->createMock(Node::class);
$nodes = [ $node ];
$ownerFolder = $this->createMock(Folder::class);
$ownerFolder->expects($this->any())
->method('getById')
->willReturn($nodes);
->method('getFirstNodeById')
->willReturn($node);
$this->rootFolder->expects($this->any())
->method('getUserFolder')
@@ -107,8 +107,8 @@ class NotificationsTest extends TestCase {
->willReturn($folder);
$folder->expects($this->once())
->method('getById')
->willReturn([$file]);
->method('getFirstNodeById')
->willReturn($file);
$this->session->expects($this->once())
->method('getUser')
@@ -183,8 +183,8 @@ class NotificationsTest extends TestCase {
->willReturn($folder);
$folder->expects($this->once())
->method('getById')
->willReturn([]);
->method('getFirstNodeById')
->willReturn(null);
$user = $this->createMock(IUser::class);
@@ -86,9 +86,9 @@ class NotifierTest extends TestCase {
->with('you')
->willReturn($userFolder);
$userFolder->expects($this->once())
->method('getById')
->method('getFirstNodeById')
->with('678')
->willReturn([$node]);
->willReturn($node);
$this->notification->expects($this->exactly(2))
->method('getUser')
@@ -202,9 +202,9 @@ class NotifierTest extends TestCase {
->with('you')
->willReturn($userFolder);
$userFolder->expects($this->once())
->method('getById')
->method('getFirstNodeById')
->with('678')
->willReturn([$node]);
->willReturn($node);
$this->notification->expects($this->exactly(2))
->method('getUser')
@@ -301,7 +301,7 @@ class NotifierTest extends TestCase {
$this->folder
->expects($this->never())
->method('getById');
->method('getFirstNodeById');
$this->notification
->expects($this->once())
@@ -338,7 +338,7 @@ class NotifierTest extends TestCase {
$this->folder
->expects($this->never())
->method('getById');
->method('getFirstNodeById');
$this->notification
->expects($this->once())
@@ -378,7 +378,7 @@ class NotifierTest extends TestCase {
$this->folder
->expects($this->never())
->method('getById');
->method('getFirstNodeById');
$this->notification
->expects($this->once())
@@ -435,7 +435,7 @@ class NotifierTest extends TestCase {
$this->folder
->expects($this->never())
->method('getById');
->method('getFirstNodeById');
$this->notification
->expects($this->once())
@@ -497,9 +497,9 @@ class NotifierTest extends TestCase {
->with('you')
->willReturn($userFolder);
$userFolder->expects($this->once())
->method('getById')
->method('getFirstNodeById')
->with('678')
->willReturn([]);
->willReturn(null);
$this->notification->expects($this->once())
->method('getUser')
+3 -1
View File
@@ -2,6 +2,8 @@ OC.L10N.register(
"contactsinteraction",
{
"Recently contacted" : "Nedavno kontaktiran",
"Contacts Interaction" : "Interakcija kontakata"
"Contacts Interaction" : "Interakcija kontakata",
"Manages interaction between accounts and contacts" : "Upravlja interakcijom između računa i kontakata",
"Collect data about accounts and contacts interactions and provide an address book for the data" : "Prikuplja podatke o interakcijama između računa i kontakata te pruža adresar za te podatke"
},
"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;");
+3 -1
View File
@@ -1,5 +1,7 @@
{ "translations": {
"Recently contacted" : "Nedavno kontaktiran",
"Contacts Interaction" : "Interakcija kontakata"
"Contacts Interaction" : "Interakcija kontakata",
"Manages interaction between accounts and contacts" : "Upravlja interakcijom između računa i kontakata",
"Collect data about accounts and contacts interactions and provide an address book for the data" : "Prikuplja podatke o interakcijama između računa i kontakata te pruža adresar za te podatke"
},"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;"
}
+4
View File
@@ -3,6 +3,7 @@ OC.L10N.register(
{
"Dashboard" : "Nadzorna ploča",
"Dashboard app" : "Nadzorna ploča aplikacije",
"Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an overview of your upcoming appointments, urgent emails, chat messages, incoming tickets, latest tweets and much more! People can add the widgets they like and change the background to their liking." : "Započnite dan informirani\n\nNextcloud nadzorna ploča vaša je početna točka dana i pruža vam pregled nadolazećih termina, hitnih e-poruka, poruka u chatu, dolaznih tiketa, najnovijih tweetova i još mnogo toga! Korisnici mogu dodavati widgete koji im odgovaraju i prilagoditi pozadinu prema vlastitim željama.",
"Weather" : "Vrijeme",
"Status" : "Status",
"Good morning" : "Dobro jutro",
@@ -13,10 +14,13 @@ OC.L10N.register(
"Good evening, {name}" : "Dobar dan, {name}",
"Hello" : "Pozdrav",
"Hello, {name}" : "Pozdrav, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Sretan rođendan 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Sretan rođendan, {name} 🥳🤩🎂🎉",
"Customize" : "Uredi",
"Edit widgets" : "Uredi widgete",
"Get more widgets from the App Store" : "Nabavite više widgeta iz trgovine aplikacijama",
"Weather service" : "Davatelj vremenske prognoze",
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Radi vaše privatnosti, podatke o vremenu u vaše ime dohvaća vaš {productName} poslužitelj, tako da vremenska usluga ne prima nikakve osobne podatke.",
"Weather data from Met.no" : "Podaci o vremenskoj prognozi iz Met.no",
"geocoding with Nominatim" : "geokodiranje uz Nominatim",
"elevation data from OpenTopoData" : "podaci o nadmorskoj visini iz OpenTopoData",
+4
View File
@@ -1,6 +1,7 @@
{ "translations": {
"Dashboard" : "Nadzorna ploča",
"Dashboard app" : "Nadzorna ploča aplikacije",
"Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an overview of your upcoming appointments, urgent emails, chat messages, incoming tickets, latest tweets and much more! People can add the widgets they like and change the background to their liking." : "Započnite dan informirani\n\nNextcloud nadzorna ploča vaša je početna točka dana i pruža vam pregled nadolazećih termina, hitnih e-poruka, poruka u chatu, dolaznih tiketa, najnovijih tweetova i još mnogo toga! Korisnici mogu dodavati widgete koji im odgovaraju i prilagoditi pozadinu prema vlastitim željama.",
"Weather" : "Vrijeme",
"Status" : "Status",
"Good morning" : "Dobro jutro",
@@ -11,10 +12,13 @@
"Good evening, {name}" : "Dobar dan, {name}",
"Hello" : "Pozdrav",
"Hello, {name}" : "Pozdrav, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Sretan rođendan 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Sretan rođendan, {name} 🥳🤩🎂🎉",
"Customize" : "Uredi",
"Edit widgets" : "Uredi widgete",
"Get more widgets from the App Store" : "Nabavite više widgeta iz trgovine aplikacijama",
"Weather service" : "Davatelj vremenske prognoze",
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Radi vaše privatnosti, podatke o vremenu u vaše ime dohvaća vaš {productName} poslužitelj, tako da vremenska usluga ne prima nikakve osobne podatke.",
"Weather data from Met.no" : "Podaci o vremenskoj prognozi iz Met.no",
"geocoding with Nominatim" : "geokodiranje uz Nominatim",
"elevation data from OpenTopoData" : "podaci o nadmorskoj visini iz OpenTopoData",
+2
View File
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
+2
View File
@@ -234,6 +234,8 @@ OC.L10N.register(
"Could not rename part file to final file, canceled by hook" : "Nedaří se zapsat přejmenovat částečný soubor na ten končený zrušeno háčkem (hook)",
"Could not rename part file to final file" : "Nedaří se přejmenovat částečný soubor na ten konečný",
"Failed to check file size: %1$s" : "Nepodařilo se zkontrolovat velikost souboru: %1$s",
"Could not open file: %1$s (%2$d), file does seem to exist" : "Nebylo možné otevřít soubor: %1$s (%2$d) zdá se, že soubor existuje",
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Nebylo možné otevřít soubor: %1$s (%2$d) zdá se, že soubor neexistuje",
"Encryption not ready: %1$s" : "Šifrování není připraveno: %1$s",
"Failed to open file: %1$s" : "Nepodařilo se otevřít soubor: %1$s",
"Failed to unlink: %1$s" : "Nepodařilo se zrušit propojení: %1$s",
+2
View File
@@ -232,6 +232,8 @@
"Could not rename part file to final file, canceled by hook" : "Nedaří se zapsat přejmenovat částečný soubor na ten končený zrušeno háčkem (hook)",
"Could not rename part file to final file" : "Nedaří se přejmenovat částečný soubor na ten konečný",
"Failed to check file size: %1$s" : "Nepodařilo se zkontrolovat velikost souboru: %1$s",
"Could not open file: %1$s (%2$d), file does seem to exist" : "Nebylo možné otevřít soubor: %1$s (%2$d) zdá se, že soubor existuje",
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Nebylo možné otevřít soubor: %1$s (%2$d) zdá se, že soubor neexistuje",
"Encryption not ready: %1$s" : "Šifrování není připraveno: %1$s",
"Failed to open file: %1$s" : "Nepodařilo se otevřít soubor: %1$s",
"Failed to unlink: %1$s" : "Nepodařilo se zrušit propojení: %1$s",
+38
View File
@@ -73,7 +73,19 @@ OC.L10N.register(
"Where: %s" : "Où : %s",
"%1$s via %2$s" : "%1$s via %2$s",
"In the past on %1$s for the entire day" : "Dans le passé toute la journée du %1$s ",
"_In %n minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Dans une minute le %1$s pour la journée entière","Dans %n minutes le %1$s pour la journée entière","Dans %n minutes le %1$s pour la journée entière"],
"_In %n hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Dans une heure le %1$s pour la journée entière","Dans %n heures le %1$s pour la journée entière","Dans %n heures le %1$s pour la journée entière"],
"_In %n day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Dans un jour le %1$s pour la journée entière","Dans %n jours le %1$s pour la journée entière","Dans %n jours le %1$s pour la journée entière"],
"_In %n week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Dans une semaine le %1$s pour la journée entière","Dans %n semaines le %1$s pour la journée entière","Dans %n semaines le %1$s pour la journée entière"],
"_In %n month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["Dans un mois toute la journée du %1$s","Dans %n mois toute la journée du %1$s","Dans %n mois toute la journée du %1$s"],
"_In %n year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["Dans un an toute la journée du %1$s","Dans %n années toute la journée du %1$s","Dans %n années toute la journée du %1$s"],
"In the past on %1$s between %2$s - %3$s" : "Dans le passé le %1$s entre %2$s et %3$s",
"_In %n minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["Dans une minute le %1$s entre %2$s - %3$s","Dans %n minutes le %1$s entre %2$s - %3$s","Dans %n minutes le %1$s entre %2$s et %3$s"],
"_In %n hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["Dans une heure le %1$s entre %2$s et %3$s","Dans %n heures le %1$s entre %2$s et %3$s","Dans %n heures le %1$s entre %2$s et %3$s"],
"_In %n day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["Demain le %1$s entre %2$s et %3$s","Dans %n jours le %1$s entre %2$s et %3$s","Dans %n jours le %1$s entre %2$s et %3$s"],
"_In %n week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["La semaine prochaine le %1$s entre %2$s et %3$s","Dans %n semaines le %1$s entre %2$s et %3$s","Dans %n semaines le %1$s entre %2$s et %3$s"],
"_In %n month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["Dans un mois le %1$s entre %2$s et %3$s","Dans %n mois le %1$s entre %2$s et %3$s","Dans %n mois le %1$s entre %2$s et %3$s"],
"_In %n year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["L'an prochain le %1$s entre %2$s et %3$s","Dans %n ans le %1$s entre %2$s et %3$s","Dans %n ans le %1$s entre %2$s et %3$s"],
"Could not generate when statement" : "Impossible de déterminer quand",
"Every Day for the entire day" : "Chaque jour pour toute la journée",
"Every Day for the entire day until %1$s" : "Chaque jour pour la journée entière jusqu'au %1$s",
@@ -111,8 +123,26 @@ OC.L10N.register(
"On specific dates for the entire day until %1$s" : "À une date spécifique pour la journée entière jusqu'au %1$s",
"On specific dates between %1$s - %2$s until %3$s" : "À des dates spécifiques entre %1$s et %2$s jusqu'au %3$s",
"In the past on %1$s" : "Dans le passé en %1$s",
"_In %n minute on %1$s_::_In %n minutes on %1$s_" : ["Dans une minute en %1$s","Dans %n minutes en %1$s","Dans %n minutes en %1$s"],
"_In %n hour on %1$s_::_In %n hours on %1$s_" : ["Dans %n heure le %1$s","Dans %n heures le %1$s","Dans %n le %1$s"],
"_In %n day on %1$s_::_In %n days on %1$s_" : ["Demain le %1$s","Dans %n jours le %1$s","Dans %n jours le %1$s"],
"_In %n week on %1$s_::_In %n weeks on %1$s_" : ["La semaine prochaine le %1$s","Dans %n semaines le %1$s","Dans %n semaines le %1$s"],
"_In %n month on %1$s_::_In %n months on %1$s_" : ["Le mois prochain le %1$s","Dans %n mois le %1$s","Dans %n mois le %1$s"],
"_In %n year on %1$s_::_In %n years on %1$s_" : ["L'an prochain le %1$s","Dans %n ans le %1$s","Dans %n ans le %1$s"],
"In the past on %1$s then on %2$s" : "Dans le passé le %1$s puis le %2$s",
"_In %n minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Dans une minute le %1$s puis le %2$s","Dans %n minutes le %1$s puis le %2$s","Dans %n minutes le %1$s puis le %2$s"],
"_In %n hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Dans une heure le %1$s puis le %2$s","Dans %n heures le %1$s puis le %2$s","Dans %n heures le %1$s puis le %2$s"],
"_In %n day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Demain le %1$s puis le %2$s","Dans %n jours le %1$s puis le %2$s","Dans %n jours le %1$s puis le %2$s"],
"_In %n week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["La semaine prochaine le %1$s puis le %2$s","Dans %n semaines le %1$s puis le %2$s","Dans %n semaines le %1$s puis le %2$s"],
"_In %n month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Le mois prochain le %1$s puis le %2$s","Dans %n mois le %1$s puis le %2$s","Dans %n mois le %1$s puis le %2$s"],
"_In %n year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["L'an prochain le %1$s puis le %2$s","Dans %n ans le %1$s puis le %2$s","Dans %n ans le %1$s puis le %2$s"],
"In the past on %1$s then on %2$s and %3$s" : "Dans le passé le %1$s puis le %2$s et %3$s",
"_In %n minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Dans une minute le %1$s puis le %2$s et le %3$s","Dans %n minutes le %1$s puis le %2$s et le %3$s","Dans %n minutes le %1$s puis le %2$s et le %3$s"],
"_In %n hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Dans une heure le %1$s puis le %2$s et le %3$s","Dans %n heures le %1$s puis le %2$s et le %3$s","Dans %n heures le %1$s puis le %2$s et le %3$s"],
"_In %n day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Demain le %1$s puis le %2$s et le %3$s","Dans %n jours le %1$s puis le %2$s et le %3$s","Dans %n jours le %1$s puis le %2$s et le %3$s"],
"_In %n week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["La semaine prochaine le %1$s puis le %2$s et le %3$s","Dans %n semaines le %1$s puis le %2$s et le %3$s","Dans %n semaines le %1$s puis le %2$s et le%3$s"],
"_In %n month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Dans un mois le %1$s puis le %2$s et le %3$s","Dans %n mois le %1$s puis le %2$s et le %3$s","Dans %n mois le %1$s puis le %2$s et le %3$s"],
"_In %n year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Dans un an sur %1$spuis le %2$s et le %3$s","Dans %n années sur %1$s puis le %2$s et le %3$s","Dans %n années sur %1$s puis le %2$s et le %3$s"],
"Could not generate next recurrence statement" : "Impossible de déterminer la prochaine récurrence",
"Cancelled: %1$s" : "Annulé : %1$s",
"\"%1$s\" has been canceled" : "\"%1$s\" a été annulé(e)",
@@ -190,6 +220,8 @@ OC.L10N.register(
"{actor} updated contact {card} in address book {addressbook}" : "{actor} a mis à jour le contact {card} dans le carnet d'adresses {addressbook}",
"You updated contact {card} in address book {addressbook}" : "Vous avez mis à jour le contact {card} dans le carnet d'adresses {addressbook}",
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "Un <strong>contact</strong> ou <strong>carnet d'adresses</strong> a été modifié",
"System address book disabled" : "Le carnet d'adresses du système est désactivé",
"The system contacts address book has been automatically disabled during upgrade. This means that the address book will no longer be available to users in the contacts app or other clients. The system contacts address book was disabled because the amount of contacts in the address book exceeded the maximum recommended number of contacts. This limit is set to prevent performance issues. You can re-enable the system address book with the following command {command}" : "Le carnet d'adresses système a été automatiquement désactivé lors de la mise à jour. Cela signifie que le carnet d'adresses ne sera plus disponible pour les utilisateurs dans l'application Contacts ou d'autres clients. Le carnet d'adresses du système a été désactivé car le nombre de contacts dans le carnet dépassait le nombre maximum recommandé de contacts. Cette limite est fixée afin d'éviter des problèmes de performance. Vous pouvez réactiver le carnet d'adresses système avec la commande suivante : {command}",
"Accounts" : "Comptes",
"System address book which holds all accounts" : "Carnet d'adresses système qui regroupe tous les comptes",
"File is not updatable: %1$s" : "Ce fichier ne peut pas être mis à jour : %1$s",
@@ -202,6 +234,8 @@ OC.L10N.register(
"Could not rename part file to final file, canceled by hook" : "Impossible de renommer le fichier partiel en fichier final, annulé par le hook",
"Could not rename part file to final file" : "Impossible de renommer le fichier partiel en fichier définitif",
"Failed to check file size: %1$s" : "Impossible de vérifier la taille du fichier : %1$s",
"Could not open file: %1$s (%2$d), file does seem to exist" : "Impossible d'ouvrir le fichier : %1$s (%2$d), le fichier semble exister",
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Impossible d'ouvrir le fichier : %1$s (%2$d), le fichier ne semble pas exister",
"Encryption not ready: %1$s" : "Chiffrement pas prêt : %1$s",
"Failed to open file: %1$s" : "Impossible d'ouvrir le fichier : %1$s",
"Failed to unlink: %1$s" : "Impossible de supprimer le lien :%1$s",
@@ -226,6 +260,10 @@ OC.L10N.register(
"DAV system address book" : "Carnet d'adresses système DAV",
"No outstanding DAV system address book sync." : "Pas de synchronisation DAV en cours du carnet d'adresses système.",
"The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "La synchronisation du carnet d'adresses système DAV n'a pas encore été effectuée car votre instance a plus de 1 000 utilisateurs ou parce qu'une erreur est survenue. Merci de l'exécuter manuellement en tapant la commande \"occ dav:sync-system-addressbook\".",
"DAV system address book size" : "Taille du carnet d'adresses système",
"The system address book is disabled" : "Le carnet d'adresses système est désactivé",
"The system address book is enabled, but contains more than the configured limit of %d contacts" : "Le carnet d'adresses système est activé, mais il contient plus de contacts que la limite fixée à %d ",
"The system address book is enabled and contains less than the configured limit of %d contacts" : "Le carnet d'adresses système est activé est contient moins de contacts que la limite fixée à %d ",
"WebDAV endpoint" : "Point de terminaison WebDAV",
"Could not check that your web server is properly set up to allow file synchronization over WebDAV. Please check manually." : "Impossible de vérifier si votre serveur web est correctement configuré pour permettre la synchronisation de fichiers via WebDAV. Veuillez vérifier manuellement.",
"Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Votre serveur web nest pas encore correctement configuré pour la synchronisation de fichiers parce que linterface WebDAV semble ne pas fonctionner.",
+38
View File
@@ -71,7 +71,19 @@
"Where: %s" : "Où : %s",
"%1$s via %2$s" : "%1$s via %2$s",
"In the past on %1$s for the entire day" : "Dans le passé toute la journée du %1$s ",
"_In %n minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Dans une minute le %1$s pour la journée entière","Dans %n minutes le %1$s pour la journée entière","Dans %n minutes le %1$s pour la journée entière"],
"_In %n hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Dans une heure le %1$s pour la journée entière","Dans %n heures le %1$s pour la journée entière","Dans %n heures le %1$s pour la journée entière"],
"_In %n day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Dans un jour le %1$s pour la journée entière","Dans %n jours le %1$s pour la journée entière","Dans %n jours le %1$s pour la journée entière"],
"_In %n week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Dans une semaine le %1$s pour la journée entière","Dans %n semaines le %1$s pour la journée entière","Dans %n semaines le %1$s pour la journée entière"],
"_In %n month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["Dans un mois toute la journée du %1$s","Dans %n mois toute la journée du %1$s","Dans %n mois toute la journée du %1$s"],
"_In %n year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["Dans un an toute la journée du %1$s","Dans %n années toute la journée du %1$s","Dans %n années toute la journée du %1$s"],
"In the past on %1$s between %2$s - %3$s" : "Dans le passé le %1$s entre %2$s et %3$s",
"_In %n minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["Dans une minute le %1$s entre %2$s - %3$s","Dans %n minutes le %1$s entre %2$s - %3$s","Dans %n minutes le %1$s entre %2$s et %3$s"],
"_In %n hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["Dans une heure le %1$s entre %2$s et %3$s","Dans %n heures le %1$s entre %2$s et %3$s","Dans %n heures le %1$s entre %2$s et %3$s"],
"_In %n day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["Demain le %1$s entre %2$s et %3$s","Dans %n jours le %1$s entre %2$s et %3$s","Dans %n jours le %1$s entre %2$s et %3$s"],
"_In %n week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["La semaine prochaine le %1$s entre %2$s et %3$s","Dans %n semaines le %1$s entre %2$s et %3$s","Dans %n semaines le %1$s entre %2$s et %3$s"],
"_In %n month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["Dans un mois le %1$s entre %2$s et %3$s","Dans %n mois le %1$s entre %2$s et %3$s","Dans %n mois le %1$s entre %2$s et %3$s"],
"_In %n year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["L'an prochain le %1$s entre %2$s et %3$s","Dans %n ans le %1$s entre %2$s et %3$s","Dans %n ans le %1$s entre %2$s et %3$s"],
"Could not generate when statement" : "Impossible de déterminer quand",
"Every Day for the entire day" : "Chaque jour pour toute la journée",
"Every Day for the entire day until %1$s" : "Chaque jour pour la journée entière jusqu'au %1$s",
@@ -109,8 +121,26 @@
"On specific dates for the entire day until %1$s" : "À une date spécifique pour la journée entière jusqu'au %1$s",
"On specific dates between %1$s - %2$s until %3$s" : "À des dates spécifiques entre %1$s et %2$s jusqu'au %3$s",
"In the past on %1$s" : "Dans le passé en %1$s",
"_In %n minute on %1$s_::_In %n minutes on %1$s_" : ["Dans une minute en %1$s","Dans %n minutes en %1$s","Dans %n minutes en %1$s"],
"_In %n hour on %1$s_::_In %n hours on %1$s_" : ["Dans %n heure le %1$s","Dans %n heures le %1$s","Dans %n le %1$s"],
"_In %n day on %1$s_::_In %n days on %1$s_" : ["Demain le %1$s","Dans %n jours le %1$s","Dans %n jours le %1$s"],
"_In %n week on %1$s_::_In %n weeks on %1$s_" : ["La semaine prochaine le %1$s","Dans %n semaines le %1$s","Dans %n semaines le %1$s"],
"_In %n month on %1$s_::_In %n months on %1$s_" : ["Le mois prochain le %1$s","Dans %n mois le %1$s","Dans %n mois le %1$s"],
"_In %n year on %1$s_::_In %n years on %1$s_" : ["L'an prochain le %1$s","Dans %n ans le %1$s","Dans %n ans le %1$s"],
"In the past on %1$s then on %2$s" : "Dans le passé le %1$s puis le %2$s",
"_In %n minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Dans une minute le %1$s puis le %2$s","Dans %n minutes le %1$s puis le %2$s","Dans %n minutes le %1$s puis le %2$s"],
"_In %n hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Dans une heure le %1$s puis le %2$s","Dans %n heures le %1$s puis le %2$s","Dans %n heures le %1$s puis le %2$s"],
"_In %n day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Demain le %1$s puis le %2$s","Dans %n jours le %1$s puis le %2$s","Dans %n jours le %1$s puis le %2$s"],
"_In %n week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["La semaine prochaine le %1$s puis le %2$s","Dans %n semaines le %1$s puis le %2$s","Dans %n semaines le %1$s puis le %2$s"],
"_In %n month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Le mois prochain le %1$s puis le %2$s","Dans %n mois le %1$s puis le %2$s","Dans %n mois le %1$s puis le %2$s"],
"_In %n year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["L'an prochain le %1$s puis le %2$s","Dans %n ans le %1$s puis le %2$s","Dans %n ans le %1$s puis le %2$s"],
"In the past on %1$s then on %2$s and %3$s" : "Dans le passé le %1$s puis le %2$s et %3$s",
"_In %n minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Dans une minute le %1$s puis le %2$s et le %3$s","Dans %n minutes le %1$s puis le %2$s et le %3$s","Dans %n minutes le %1$s puis le %2$s et le %3$s"],
"_In %n hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Dans une heure le %1$s puis le %2$s et le %3$s","Dans %n heures le %1$s puis le %2$s et le %3$s","Dans %n heures le %1$s puis le %2$s et le %3$s"],
"_In %n day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Demain le %1$s puis le %2$s et le %3$s","Dans %n jours le %1$s puis le %2$s et le %3$s","Dans %n jours le %1$s puis le %2$s et le %3$s"],
"_In %n week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["La semaine prochaine le %1$s puis le %2$s et le %3$s","Dans %n semaines le %1$s puis le %2$s et le %3$s","Dans %n semaines le %1$s puis le %2$s et le%3$s"],
"_In %n month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Dans un mois le %1$s puis le %2$s et le %3$s","Dans %n mois le %1$s puis le %2$s et le %3$s","Dans %n mois le %1$s puis le %2$s et le %3$s"],
"_In %n year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Dans un an sur %1$spuis le %2$s et le %3$s","Dans %n années sur %1$s puis le %2$s et le %3$s","Dans %n années sur %1$s puis le %2$s et le %3$s"],
"Could not generate next recurrence statement" : "Impossible de déterminer la prochaine récurrence",
"Cancelled: %1$s" : "Annulé : %1$s",
"\"%1$s\" has been canceled" : "\"%1$s\" a été annulé(e)",
@@ -188,6 +218,8 @@
"{actor} updated contact {card} in address book {addressbook}" : "{actor} a mis à jour le contact {card} dans le carnet d'adresses {addressbook}",
"You updated contact {card} in address book {addressbook}" : "Vous avez mis à jour le contact {card} dans le carnet d'adresses {addressbook}",
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "Un <strong>contact</strong> ou <strong>carnet d'adresses</strong> a été modifié",
"System address book disabled" : "Le carnet d'adresses du système est désactivé",
"The system contacts address book has been automatically disabled during upgrade. This means that the address book will no longer be available to users in the contacts app or other clients. The system contacts address book was disabled because the amount of contacts in the address book exceeded the maximum recommended number of contacts. This limit is set to prevent performance issues. You can re-enable the system address book with the following command {command}" : "Le carnet d'adresses système a été automatiquement désactivé lors de la mise à jour. Cela signifie que le carnet d'adresses ne sera plus disponible pour les utilisateurs dans l'application Contacts ou d'autres clients. Le carnet d'adresses du système a été désactivé car le nombre de contacts dans le carnet dépassait le nombre maximum recommandé de contacts. Cette limite est fixée afin d'éviter des problèmes de performance. Vous pouvez réactiver le carnet d'adresses système avec la commande suivante : {command}",
"Accounts" : "Comptes",
"System address book which holds all accounts" : "Carnet d'adresses système qui regroupe tous les comptes",
"File is not updatable: %1$s" : "Ce fichier ne peut pas être mis à jour : %1$s",
@@ -200,6 +232,8 @@
"Could not rename part file to final file, canceled by hook" : "Impossible de renommer le fichier partiel en fichier final, annulé par le hook",
"Could not rename part file to final file" : "Impossible de renommer le fichier partiel en fichier définitif",
"Failed to check file size: %1$s" : "Impossible de vérifier la taille du fichier : %1$s",
"Could not open file: %1$s (%2$d), file does seem to exist" : "Impossible d'ouvrir le fichier : %1$s (%2$d), le fichier semble exister",
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Impossible d'ouvrir le fichier : %1$s (%2$d), le fichier ne semble pas exister",
"Encryption not ready: %1$s" : "Chiffrement pas prêt : %1$s",
"Failed to open file: %1$s" : "Impossible d'ouvrir le fichier : %1$s",
"Failed to unlink: %1$s" : "Impossible de supprimer le lien :%1$s",
@@ -224,6 +258,10 @@
"DAV system address book" : "Carnet d'adresses système DAV",
"No outstanding DAV system address book sync." : "Pas de synchronisation DAV en cours du carnet d'adresses système.",
"The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "La synchronisation du carnet d'adresses système DAV n'a pas encore été effectuée car votre instance a plus de 1 000 utilisateurs ou parce qu'une erreur est survenue. Merci de l'exécuter manuellement en tapant la commande \"occ dav:sync-system-addressbook\".",
"DAV system address book size" : "Taille du carnet d'adresses système",
"The system address book is disabled" : "Le carnet d'adresses système est désactivé",
"The system address book is enabled, but contains more than the configured limit of %d contacts" : "Le carnet d'adresses système est activé, mais il contient plus de contacts que la limite fixée à %d ",
"The system address book is enabled and contains less than the configured limit of %d contacts" : "Le carnet d'adresses système est activé est contient moins de contacts que la limite fixée à %d ",
"WebDAV endpoint" : "Point de terminaison WebDAV",
"Could not check that your web server is properly set up to allow file synchronization over WebDAV. Please check manually." : "Impossible de vérifier si votre serveur web est correctement configuré pour permettre la synchronisation de fichiers via WebDAV. Veuillez vérifier manuellement.",
"Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Votre serveur web nest pas encore correctement configuré pour la synchronisation de fichiers parce que linterface WebDAV semble ne pas fonctionner.",
+376
View File
@@ -0,0 +1,376 @@
OC.L10N.register(
"dav",
{
"Calendar" : "Kalendar",
"Tasks" : "Zadaci",
"Personal" : "Osobno",
"{actor} created calendar {calendar}" : "{actor} je stvorio kalendar {calendar}",
"You created calendar {calendar}" : "Stvorili ste kalendar {calendar}",
"{actor} deleted calendar {calendar}" : "{actor} je izbrisao kalendar {calendar}",
"You deleted calendar {calendar}" : "Izbrisali ste kalendar {calendar}",
"{actor} updated calendar {calendar}" : "{actor} je ažurirao kalendar {calendar}",
"You updated calendar {calendar}" : "Ažurirali ste kalendar {calendar}",
"{actor} restored calendar {calendar}" : "{actor} je vratio kalendar {calendar}",
"You restored calendar {calendar}" : "Vratili ste kalendar {calendar}",
"You shared calendar {calendar} as public link" : "Podijelili ste kalendar {calendar} putem javne poveznice",
"You removed public link for calendar {calendar}" : "Uklonili ste javnu poveznicu na kalendar {calendar}",
"{actor} shared calendar {calendar} with you" : "{actor} dijeli kalendar {calendar} s vama",
"You shared calendar {calendar} with {user}" : "Podijelili ste kalendar {calendar} s {user}",
"{actor} shared calendar {calendar} with {user}" : "{actor} dijeli kalendar {calendar} s {user}",
"{actor} unshared calendar {calendar} from you" : "{actor} više ne dijeli kalendar {calendar} s vama",
"You unshared calendar {calendar} from {user}" : "Više ne dijelite kalendar {calendar} s {user}",
"{actor} unshared calendar {calendar} from {user}" : "{actor} više ne dijeli kalendar {calendar} s {user}",
"{actor} unshared calendar {calendar} from themselves" : "{actor} više ne dijeli kalendar {calendar} sam sa sobom",
"You shared calendar {calendar} with group {group}" : "Podijelili ste kalendar {calendar} s grupom {group}",
"{actor} shared calendar {calendar} with group {group}" : "{actor} dijeli kalendar {calendar} s grupom {group}",
"You unshared calendar {calendar} from group {group}" : "Više ne dijelite kalendar {calendar} s grupom {group}",
"{actor} unshared calendar {calendar} from group {group}" : "{actor} više ne dijeli kalendar {calendar} s grupom {group}",
"Untitled event" : "Događaj bez naslova",
"{actor} created event {event} in calendar {calendar}" : "{actor} je stvorio događaj {event} u kalendaru {calendar}",
"You created event {event} in calendar {calendar}" : "Stvorili ste događaj {event} u kalendaru {calendar}",
"{actor} deleted event {event} from calendar {calendar}" : "{actor} je izbrisao događaj {event} iz kalendara {calendar}",
"You deleted event {event} from calendar {calendar}" : "Izbrisali ste događaj {event} iz kalendara {calendar}",
"{actor} updated event {event} in calendar {calendar}" : "{actor} je ažurirao događaj {event} u kalendaru {calendar}",
"You updated event {event} in calendar {calendar}" : "Ažurirali ste događaj {event} u kalendaru {calendar}",
"{actor} moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "{actor} je premjestio događaj {event} iz kalendara {sourceCalendar} u kalendar {targetCalendar}",
"You moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "Premjestili ste događaj {event} iz kalendara {sourceCalendar} u kalendar {targetCalendar}",
"{actor} restored event {event} of calendar {calendar}" : "{actor} je vratio događaj {event} kalendara {calendar}",
"You restored event {event} of calendar {calendar}" : "Vratili ste događaj {event} kalendara {calendar}",
"Busy" : "Zauzeto",
"{actor} created to-do {todo} in list {calendar}" : "{actor} je stvorio zadatak {todo} u popisu {calendar}",
"You created to-do {todo} in list {calendar}" : "Stvorili ste zadatak {todo} u popisu {calendar}",
"{actor} deleted to-do {todo} from list {calendar}" : "{actor} je izbrisao zadatak {todo} iz popisa {calendar}",
"You deleted to-do {todo} from list {calendar}" : "Izbrisali ste zadatak {todo} iz popisa {calendar}",
"{actor} updated to-do {todo} in list {calendar}" : "{actor} je ažurirao zadatak {todo} u popisu {calendar}",
"You updated to-do {todo} in list {calendar}" : "Ažurirali ste zadatak {todo} u popisu {calendar}",
"{actor} solved to-do {todo} in list {calendar}" : "{actor} je riješio zadatak {todo} u popisu {calendar}",
"You solved to-do {todo} in list {calendar}" : "Riješili ste zadatak {todo} u popisu {calendar}",
"{actor} reopened to-do {todo} in list {calendar}" : "{actor} je ponovno otvorio zadatak {todo} u popisu {calendar}",
"You reopened to-do {todo} in list {calendar}" : "Ponovno ste otvorili zadatak {todo} u popisu {calendar}",
"{actor} moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}" : "{actor} je premjestio zadatak {todo} iz popisa {sourceCalendar} u popis {targetCalendar}",
"You moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}" : "Premjestili ste zadatak {todo} iz popisa {sourceCalendar} u popis {targetCalendar}",
"Calendar, contacts and tasks" : "Kalendar, kontakti i zadaci",
"A <strong>calendar</strong> was modified" : "Izmijenjen je <strong>kalendar</strong>",
"A calendar <strong>event</strong> was modified" : "Izmijenjen je <strong>događaj</strong> u kalendaru",
"A calendar <strong>to-do</strong> was modified" : "Izmijenjen je <strong>zadatak</strong> u kalendaru",
"Contact birthdays" : "Rođendani kontakata",
"Death of %s" : "Smrt %s",
"Untitled calendar" : "Kalendar bez naslova",
"Calendar:" : "Kalendar:",
"Date:" : "Datum:",
"Where:" : "Gdje:",
"Description:" : "Opis:",
"_%n year_::_%n years_" : ["%n godina","%n godina","%n godina"],
"_%n month_::_%n months_" : ["%n mjesec","%n mjeseci","%n mjeseci"],
"_%n day_::_%n days_" : ["%n dan","%n dana","%n dana"],
"_%n hour_::_%n hours_" : ["%n sat","%n sati","%n sati"],
"_%n minute_::_%n minutes_" : ["%n minute/minuta","%n minuta","%n minuta"],
"%s (in %s)" : "%s (u %s)",
"%s (%s ago)" : "%s (prije %s)",
"Calendar: %s" : "Kalendar: %s",
"Date: %s" : "Datum: %s",
"Description: %s" : "Opis: %s",
"Where: %s" : "Gdje: %s",
"%1$s via %2$s" : "%1$s putem %2$s",
"In the past on %1$s for the entire day" : "U prošlosti, dana %1$s, tijekom cijelog dana",
"_In %n minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Za %n minutu, dana %1$s, tijekom cijelog dana","Za %n minute, dana %1$s, tijekom cijelog dana","Za %n minuta, dana %1$s, tijekom cijelog dana"],
"_In %n hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Za %n sat, dana %1$s, tijekom cijelog dana","Za %n sata, dana %1$s, tijekom cijelog dana","Za %n sati, dana %1$s, tijekom cijelog dana"],
"_In %n day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Za %n dan, dana %1$s, tijekom cijelog dana","Za %n dana, dana %1$s, tijekom cijelog dana","Za %n dana, dana %1$s, tijekom cijelog dana"],
"_In %n week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Za %n tjedan, dana %1$s, tijekom cijelog dana","Za %n tjedna, dana %1$s, tijekom cijelog dana","Za %n tjedana, dana %1$s, tijekom cijelog dana"],
"_In %n month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["Za %n mjesec, dana %1$s, tijekom cijelog dana","Za %n mjeseca, dana %1$s, tijekom cijelog dana","Za %n mjeseci, dana %1$s, tijekom cijelog dana"],
"_In %n year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["Za %n godinu, dana %1$s, tijekom cijelog dana","Za %n godine, dana %1$s, tijekom cijelog dana","Za %n godina, dana %1$s, tijekom cijelog dana"],
"In the past on %1$s between %2$s - %3$s" : "U prošlosti, dana %1$s između %2$s %3$s",
"_In %n minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["Za %n minutu, dana %1$s između %2$s %3$s","Za %n minute, dana %1$s između %2$s %3$s","Za %n minuta, dana %1$s između %2$s %3$s"],
"_In %n hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["Za %n sat, dana %1$s između %2$s %3$s","Za %n sata, dana %1$s između %2$s %3$s","Za %n sati, dana %1$s između %2$s %3$s"],
"_In %n day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["Za %n dan, dana %1$s između %2$s %3$s","Za %n dana, dana %1$s između %2$s %3$s","Za %n dana, dana %1$s između %2$s %3$s"],
"_In %n week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["Za %n tjedan, dana %1$s između %2$s %3$s","Za %n tjedna, dana %1$s između %2$s %3$s","Za %n tjedana, dana %1$s između %2$s %3$s"],
"_In %n month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["Za %n mjesec, dana %1$s između %2$s %3$s","Za %n mjeseca, dana %1$s između %2$s %3$s","Za %n mjeseci, dana %1$s između %2$s %3$s"],
"_In %n year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["Za %n godinu, dana %1$s između %2$s %3$s","Za %n godine, dana %1$s između %2$s %3$s","Za %n godina, dana %1$s između %2$s %3$s"],
"Could not generate when statement" : "Nije moguće generirati vremensku odrednicu",
"Every Day for the entire day" : "Svaki dan tijekom cijelog dana",
"Every Day for the entire day until %1$s" : "Svaki dan tijekom cijelog dana do %1$s",
"Every Day between %1$s - %2$s" : "Svaki dan između %1$s - %2$s",
"Every Day between %1$s - %2$s until %3$s" : "Svaki dan između %1$s - %2$s do %3$s",
"Every %1$d Days for the entire day" : "Svakih %1$d dana tijekom cijelog dana",
"Every %1$d Days for the entire day until %2$s" : "Svakih %1$d dana tijekom cijelog dana do %2$s",
"Every %1$d Days between %2$s - %3$s" : "Svakih%1$d dana između%2$s - %3$s",
"Every %1$d Days between %2$s - %3$s until %4$s" : "Svakih %1$d dana između %2$s - %3$s do %4$s",
"Could not generate event recurrence statement" : "Nije moguće generirati izraz za ponavljanje događaja",
"Every Week on %1$s for the entire day" : "Svaki tjedan u %1$s tijekom cijelog dana",
"Every Week on %1$s for the entire day until %2$s" : "Svaki tjedan u %1$s tokom cijelog dana do %2$s",
"Every Week on %1$s between %2$s - %3$s" : "Svaki tjedan u %1$s između %2$s - %3$s",
"Every Week on %1$s between %2$s - %3$s until %4$s" : "Svaki tjedan u %1$s između %2$s - %3$s do %4$s",
"Every %1$d Weeks on %2$s for the entire day" : "Svakih %1$d tjedana od %2$s tijekom cijelog dana",
"Every %1$d Weeks on %2$s for the entire day until %3$s" : "Svakih %1$d tjedana od %2$s tijekom cijelog dana do %3$s",
"Every %1$d Weeks on %2$s between %3$s - %4$s" : "Svakih %1$d tjedana od %2$s između %3$s - %4$s",
"Every %1$d Weeks on %2$s between %3$s - %4$s until %5$s" : "Svakih %1$d tjedana od %2$s između %3$s - %4$s do %5$s",
"Every Month on the %1$s for the entire day" : "%1$s svakog mjeseca tokom cijelog dana",
"Every Month on the %1$s for the entire day until %2$s" : "%1$s svakog mjeseca tokom cijelog dana do%2$s",
"Every Month on the %1$s between %2$s - %3$s" : "%1$s svakog mjeseca između %2$s - %3$s",
"Every Month on the %1$s between %2$s - %3$s until %4$s" : "%1$s svakog mjeseca između %2$s - %3$s do %4$s",
"Every %1$d Months on the %2$s for the entire day" : "Svakih %1$d mjeseci, %2$s tokom cijelog dana",
"Every %1$d Months on the %2$s for the entire day until %3$s" : "Svakih %1$d mjeseci, %2$s tokom cijelog dana do %3$s",
"Every %1$d Months on the %2$s between %3$s - %4$s" : "Svakih %1$d mjeseci, %2$s između %3$s - %4$s",
"Every %1$d Months on the %2$s between %3$s - %4$s until %5$s" : "Svakih %1$d mjeseci, %2$s između %3$s - %4$s do %5$s",
"Every Year in %1$s on the %2$s for the entire day" : "Svake godine, %1$s, %2$s tokom cijelog dana",
"Every Year in %1$s on the %2$s for the entire day until %3$s" : "Svake godine, %1$s, %2$s tokom cijelog dana do %3$s",
"Every Year in %1$s on the %2$s between %3$s - %4$s" : "Svake godine, %1$s, %2$s između %3$s - %4$s",
"Every Year in %1$s on the %2$s between %3$s - %4$s until %5$s" : "Svake godine, %1$s, %2$s, između %3$s - %4$s do %5$s",
"Every %1$d Years in %2$s on the %3$s for the entire day" : "Svakih %1$d godina, %2$s, na %3$s tokom cijelog dana",
"Every %1$d Years in %2$s on the %3$s for the entire day until %4$s" : "Svakih %1$d godina, %2$s, na %3$s tokom cijelog dana do %4$s",
"Every %1$d Years in %2$s on the %3$s between %4$s - %5$s" : "Svakih %1$d godina, %2$s, na %3$s između %4$s - %5$s",
"Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "Svakih %1$d godina, %2$s, na %3$s između %4$s - %5$s do %6$s",
"On specific dates for the entire day until %1$s" : "Na određene datume, tijekom cijelog dana do %1$s",
"On specific dates between %1$s - %2$s until %3$s" : "Na određene datume između %1$s - %2$s do %3$s",
"In the past on %1$s" : "U prošlosti, dana %1$s",
"_In %n minute on %1$s_::_In %n minutes on %1$s_" : ["U %n minutu, %1$s","U %n minute, %1$s","U %n minuta, %1$s"],
"_In %n hour on %1$s_::_In %n hours on %1$s_" : ["U %n sat, %1$s","U %n sata, %1$s","U %n sati, %1$s"],
"_In %n day on %1$s_::_In %n days on %1$s_" : ["U %n dan, %1$s","U %n dana, %1$s","U %n dana, %1$s"],
"_In %n week on %1$s_::_In %n weeks on %1$s_" : ["U %n tjedan, %1$s","U %n tjedna, %1$s","U %n tjedana, %1$s"],
"_In %n month on %1$s_::_In %n months on %1$s_" : ["U %n mjesec, %1$s","U %n mjeseca, %1$s","U %n mjeseci, %1$s"],
"_In %n year on %1$s_::_In %n years on %1$s_" : ["U %n godinu, %1$s","U %n godine, %1$s","U %n godina, %1$s"],
"In the past on %1$s then on %2$s" : "U prošlosti, dana %1$s, zatim dana %2$s",
"_In %n minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["U %n minutu u %1$s, onda u %2$s","U %n minute u %1$s, onda u %2$s","U %n minuta u %1$s, onda u %2$s"],
"_In %n hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["U %n sat u %1$s, onda u %2$s","U %n sata u %1$s, onda u %2$s","U %n sati u %1$s, onda u %2$s"],
"_In %n day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["U %n dan u %1$s, onda u %2$s","U %n dana u %1$s, onda u %2$s","U %n dana u %1$s, onda u %2$s"],
"_In %n week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["U %n tjedan u %1$s, onda u %2$s","U %n tjedna u %1$s, onda u %2$s","U %n tjedana u %1$s, onda u %2$s"],
"_In %n month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["U %n mjesec u %1$s, onda u %2$s","U %n mjeseca u %1$s, onda u %2$s","U %n mjeseci u %1$s, onda u %2$s"],
"_In %n year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["U %n godinu u %1$s, onda u %2$s","U %n godine u %1$s, onda u %2$s","U %n godina u %1$s, onda u %2$s"],
"In the past on %1$s then on %2$s and %3$s" : "U prošlosti, dana %1$s, zatim dana %2$s i %3$s",
"_In %n minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["u %n minutu dana %1$s onda dana %2$s i %3$s","u %n minute dana %1$s onda dana %2$s i %3$s","u %n minuta dana %1$s onda dana %2$s i %3$s"],
"_In %n hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["u %n sat dana %1$s onda dana %2$s i %3$s","u %n sata dana %1$s onda dana %2$s i %3$s","u %n sati dana %1$s onda dana %2$s i %3$s"],
"_In %n day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["u %n dan, dana %1$s onda dana %2$s i %3$s","u %n dana, dana %1$s onda dana %2$s i %3$s","u %n dana, dana %1$s onda dana %2$s i %3$s"],
"_In %n week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["u %n tjedan, dana %1$s onda dana %2$s i %3$s","u %n tjedna, dana %1$s onda dana %2$s i %3$s","u %n tjedana, dana %1$s onda dana %2$s i %3$s"],
"_In %n month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["u %n mjesec, dana %1$s onda dana %2$s i %3$s","u %n mjeseca, dana %1$s onda dana %2$s i %3$s","u %n mjeseci, dana %1$s onda dana %2$s i %3$s"],
"_In %n year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["u %n godinu, dana %1$s onda dana %2$s i %3$s","u %n godine, dana %1$s onda dana %2$s i %3$s","u %n godina, dana %1$s onda dana %2$s i %3$s"],
"Could not generate next recurrence statement" : "Nije moguće generirati sljedeći izraz ponavljanja",
"Cancelled: %1$s" : "Otkazano: %1$s",
"\"%1$s\" has been canceled" : "„%1$s” je otkazan",
"Re: %1$s" : "Odgovor: %1 $ s",
"%1$s has accepted your invitation" : "%1$s je prihvatio/la vašu pozivnicu",
"%1$s has tentatively accepted your invitation" : "%1$s je privremeno prihvatio/la vašu pozivnicu",
"%1$s has declined your invitation" : "%1$s je odbio/la vašu pozivnicu",
"%1$s has responded to your invitation" : "%1$s je odgovorio/la na vašu pozivnicu",
"Invitation updated: %1$s" : "Pozivnica ažurirana: %1$s",
"%1$s updated the event \"%2$s\"" : "%1$s je ažurirao/la događaj \"%2$s\"",
"Invitation: %1$s" : "Pozivnica: %1$s",
"%1$s would like to invite you to \"%2$s\"" : "%1$s vas želi pozvati na „%2$s”",
"Organizer:" : "Organizator:",
"Attendees:" : "Polaznici:",
"Title:" : "Naslov:",
"When:" : "Kada:",
"Location:" : "Lokacija:",
"Link:" : "Poveznica:",
"Occurring:" : "Događa se:",
"Accept" : "Prihvati",
"Decline" : "Odbij",
"More options …" : "Više mogućnosti…",
"More options at %s" : "Više mogućnosti na %s",
"Monday" : "Ponedjeljak",
"Tuesday" : "Utorak",
"Wednesday" : "Srijeda",
"Thursday" : "Četvrtak",
"Friday" : "Petak",
"Saturday" : "Subota",
"Sunday" : "Nedjelja",
"January" : "Siječanj",
"February" : "Veljača",
"March" : "Ožujak",
"April" : "Travanj",
"May" : "Svibanj",
"June" : "Lipanj",
"July" : "Srpanj",
"August" : "Kolovoz",
"September" : "Rujan",
"October" : "Listopad",
"November" : "Studeni",
"December" : "Prosinac",
"First" : "Prvi",
"Second" : "Drugi",
"Third" : "Treći",
"Fourth" : "Četvrti",
"Fifth" : "Peti",
"Last" : "Zadnji",
"Second Last" : "Drugi od kraja",
"Third Last" : "Treći od kraja",
"Fourth Last" : "Četvrti od kraja",
"Fifth Last" : "Peti od kraja",
"Contacts" : "Kontakti",
"{actor} created address book {addressbook}" : "{actor} je stvorio adresar {addressbook}",
"You created address book {addressbook}" : "Stvorili ste adresar {addressbook}",
"{actor} deleted address book {addressbook}" : "{actor} je izbrisao adresar {addressbook}",
"You deleted address book {addressbook}" : "Izbrisali ste adresar {addressbook}",
"{actor} updated address book {addressbook}" : "{actor} je ažurirao adresar {addressbook}",
"You updated address book {addressbook}" : "Ažurirali ste adresar {addressbook}",
"{actor} shared address book {addressbook} with you" : "{actor} dijeli adresar {addressbook} s vama",
"You shared address book {addressbook} with {user}" : "Dijelite adresar {addressbook} s {user}",
"{actor} shared address book {addressbook} with {user}" : "{actor} dijeli adresar {addressbook} s {user}",
"{actor} unshared address book {addressbook} from you" : "{actor} je prestao dijeliti adresar {addressbook} s vama",
"You unshared address book {addressbook} from {user}" : "Prestali ste dijeliti adresar {addressbook} s {user}",
"{actor} unshared address book {addressbook} from {user}" : "{actor} je prestao dijeliti adresar {addressbook} s {user}",
"{actor} unshared address book {addressbook} from themselves" : "{actor} je prestao dijeliti adresar {addressbook} sa sobom",
"You shared address book {addressbook} with group {group}" : "Dijelite adresar {addressbook} s grupom {group}",
"{actor} shared address book {addressbook} with group {group}" : "{actor} dijeli adresar {addressbook} s grupom {group}",
"You unshared address book {addressbook} from group {group}" : "Prestali ste dijeliti adresar {addressbook} s grupom {group}",
"{actor} unshared address book {addressbook} from group {group}" : "{actor} je prestao dijeliti adresar {addressbook} s grupom {group}",
"{actor} created contact {card} in address book {addressbook}" : "{actor} je stvorio kontakt {card} u adresaru {addressbook}",
"You created contact {card} in address book {addressbook}" : "Stvorili ste kontakt {card} u adresaru {addressbook}",
"{actor} deleted contact {card} from address book {addressbook}" : "{actor} je izbrisao kontakt {card} iz adresara {addressbook}",
"You deleted contact {card} from address book {addressbook}" : "Izbrisali ste kontakt {card} iz adresara {addressbook}",
"{actor} updated contact {card} in address book {addressbook}" : "{actor} je ažurirao kontakt {card} u adresaru {addressbook}",
"You updated contact {card} in address book {addressbook}" : "Ažurirali ste kontakt {card} u adresaru {addressbook}",
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "Izmijenjen je <strong>kontakt</strong> ili <strong>adresar</strong>",
"System address book disabled" : "Adresar sustava je onemogućen",
"The system contacts address book has been automatically disabled during upgrade. This means that the address book will no longer be available to users in the contacts app or other clients. The system contacts address book was disabled because the amount of contacts in the address book exceeded the maximum recommended number of contacts. This limit is set to prevent performance issues. You can re-enable the system address book with the following command {command}" : "Adresar sistemskih kontakata automatski je onemogućen tijekom nadogradnje. To znači da adresar više neće biti dostupan korisnicima u aplikaciji Kontakti niti u drugim klijentima. Adresar sistemskih kontakata onemogućen je jer je broj kontakata u adresaru premašio maksimalno preporučeni broj. Ovo ograničenje postavljeno je radi sprječavanja problema s performansama. Adresar sustava možete ponovno omogućiti sljedećom naredbom {command}.",
"Accounts" : "Korisnički računi",
"System address book which holds all accounts" : "Adresar sustava koji sadrži sve račune",
"File is not updatable: %1$s" : "Datoteku nije moguće ažurirati: %1$s",
"Failed to get storage for file" : "Neuspjelo dohvaćanje pohrane za datoteku",
"Could not write to final file, canceled by hook" : "Nije moguće zapisati u završnu datoteku, otkazano putem kuke",
"Could not write file contents" : "Nije moguće zapisati sadržaj datoteke",
"_%n byte_::_%n bytes_" : ["%n bajt","%n bajta","%n bajtova"],
"Error while copying file to target location (copied: %1$s, expected filesize: %2$s)" : "Pogreška pri kopiranju datoteke na odredišnu lokaciju (kopirano: %1$s, očekivana veličina datoteke: %2$s)",
"Expected filesize of %1$s but read (from Nextcloud client) and wrote (to Nextcloud storage) %2$s. Could either be a network problem on the sending side or a problem writing to the storage on the server side." : "Očekivana veličina datoteke je %1$s ali je pročitano (s Nextcloud klijenta) i zapisano (u Nextcloud pohranu) %2$s. To može biti problem s mrežom na strani slanja ili problem pri zapisivanju u pohranu na strani poslužitelja.",
"Could not rename part file to final file, canceled by hook" : "Nije moguće preimenovati djelomičnu datoteku u završnu datoteku, otkazano putem kuke",
"Could not rename part file to final file" : "Nije moguće preimenovati djelomičnu datoteku u završnu datoteku",
"Failed to check file size: %1$s" : "Neuspjela provjera veličine datoteke: %1$s",
"Could not open file: %1$s (%2$d), file does seem to exist" : "Nije moguće otvoriti datoteku: %1$s (%2$d), čini se da datoteka postoji",
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Nije moguće otvoriti datoteku: %1$s (%2$d), čini se da datoteka ne postoji",
"Encryption not ready: %1$s" : "Šifriranje nije spremno: %1$s",
"Failed to open file: %1$s" : "Neuspjelo otvaranje datoteke: %1$s",
"Failed to unlink: %1$s" : "Neuspjelo uklanjanje veze: %1$s",
"Failed to write file contents: %1$s" : "Neuspjelo zapisivanje sadržaja datoteke: %1$s",
"File not found: %1$s" : "Datoteka nije pronađena: %1$s",
"Invalid target path" : "Nevažeća odredišna putanja",
"System is in maintenance mode." : "Sustav je u načinu održavanja.",
"Upgrade needed" : "Potrebno nadograditi",
"Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "Vaš %s treba konfigurirati za korištenje HTTPS-a kako bi se mogli upotrebljavati CalDAV i CardDAV s operacijskim sustavom iOS/macOS.",
"Configures a CalDAV account" : "Konfigurira CalDAV račun",
"Configures a CardDAV account" : "Konfigurira CardDAV račun",
"Events" : "Događaji",
"Untitled task" : "Zadatak bez naslova",
"Completed on %s" : "Završeno na %s",
"Due on %s by %s" : "%s treba završiti do %s",
"Due on %s" : "Treba završiti do %s",
"Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Dobrodošli u Nextcloud Kalendar!\n\nOvo je primjer događaja istražite fleksibilnost planiranja s Nextcloud Kalendarom tako da napravite bilo kakve izmjene koje želite!\n\nUz Nextcloud Kalendar možete:\n- Jednostavno stvarati, uređivati i upravljati događajima..\n- Stvarati više kalendara i dijeliti ih s kolegama, prijateljima ili obitelji.\n- Provjeravati dostupnost i drugima prikazivati svoja zauzeta razdoblja.\n- Neprimjetno se integrirati s aplikacijama i uređajima putem CalDAV-a.\n- Prilagoditi svoje iskustvo: zakazivati ponavljajuće događaje, prilagođavati obavijesti i druge postavke.",
"Example event - open me!" : "Primjer događaja otvori me!",
"System Address Book" : "Adresar sustava",
"The system address book contains contact information for all users in your instance." : "Adresar sustava sadrži kontaktne podatke za sve korisnike u vašoj instanci.",
"Enable System Address Book" : "Omogući adresar sustava",
"DAV system address book" : "DAV adresar sustava",
"No outstanding DAV system address book sync." : "Nema neriješene sinkronizacije DAV adresara sustava.",
"The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "Sinkronizacija DAV adresara sustava još nije pokrenuta jer vaša instanca ima više od 1000 korisnika ili je došlo do pogreške. Pokrenite je ručno pozivanjem naredbe „occ dav:sync-system-addressbook”.",
"DAV system address book size" : "Veličina DAV adresara sustava",
"The system address book is disabled" : "Adresar sustava je onemogućen",
"The system address book is enabled, but contains more than the configured limit of %d contacts" : "Adresar sustava je omogućen, ali sadrži više od konfiguriranog ograničenja od %d kontakata",
"The system address book is enabled and contains less than the configured limit of %d contacts" : "Adresar sustava je omogućen i sadrži manje od konfiguriranog ograničenja od %d kontakata",
"WebDAV endpoint" : "WebDAV krajnja točka",
"Could not check that your web server is properly set up to allow file synchronization over WebDAV. Please check manually." : "Nije moguće provjeriti je li vaš mrežni poslužitelj ispravno postavljen za omogućavanje sinkronizacije datoteka putem WebDAV-a. Molimo provjerite ručno.",
"Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Vaš mrežni poslužitelj nije pravilno podešen za sinkronizaciju podataka jer je sučelje protokola WebDAV neispravno.",
"Your web server is properly set up to allow file synchronization over WebDAV." : "Vaš mrežni poslužitelj je ispravno postavljen za omogućavanje sinkronizacije datoteka putem WebDAV-a.",
"Migrated calendar (%1$s)" : "Migriran kalendar (%1$s)",
"Calendars including events, details and attendees" : "Kalendari uključujući događaje, detalje i sudionike",
"Contacts and groups" : "Kontakti i grupe",
"WebDAV" : "WebDAV",
"Absence saved" : "Odsutnost je spremljena",
"Failed to save your absence settings" : "Neuspjelo spremanje postavki odsutnosti",
"Absence cleared" : "Odsutnost je uklonjena",
"Failed to clear your absence settings" : "Neuspjelo uklanjanje postavki odsutnosti",
"First day" : "Prvi dan",
"Last day (inclusive)" : "Zadnji dan (uključivo)",
"Out of office replacement (optional)" : "Zamjena za odsutnost iz ureda (neobavezno)",
"Name of the replacement" : "Ime zamjene",
"Short absence status" : "Kratki status odsutnosti",
"Long absence Message" : "Duga poruka o odsutnosti",
"Save" : "Spremi",
"Disable absence" : "Onemogući odsutnost",
"Failed to load availability" : "Neuspjelo učitavanje dostupnosti",
"Saved availability" : "Dostupnost je spremljena",
"Failed to save availability" : "Neuspjelo spremanje dostupnosti",
"to" : "do",
"Delete slot" : "Izbriši mjesto",
"No working hours set" : "Radno vrijeme nije postavljeno",
"Add slot" : "Dodaj mjesto",
"Weekdays" : "Dani u tjednu",
"Pick a start time for {dayName}" : "Odaberite početno vrijeme za {dayName}",
"Pick a end time for {dayName}" : "Odaberite završno vrijeme za {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Automatski postavi korisnički status na „Ne ometaj” izvan vremena dostupnosti kako bi se utišale sve obavijesti.",
"Cancel" : "Odustani",
"Import" : "Uvezi",
"Error while saving settings" : "Greška pri spremanju postavki",
"Contact reset successfully" : "Kontakt je uspješno resetiran",
"Error while resetting contact" : "Greška pri resetiranju kontakta",
"Contact imported successfully" : "Kontakt je uspješno uvezen",
"Error while importing contact" : "Greška pri uvozu kontakta",
"Import contact" : "Uvezi kontakt",
"Reset to default" : "Vrati na zadanu postavku",
"Import contacts" : "Uvezi kontakte",
"Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Uvoz nove .vcf datoteke izbrisat će postojeći zadani kontakt i zamijeniti ga novim. Želite li nastaviti?",
"Failed to save example event creation setting" : "Neuspjelo spremanje postavke stvaranja primjer-događaja",
"Failed to upload the example event" : "Neuspjelo učitavanje primjer-događaja",
"Custom example event was saved successfully" : "Prilagođeni primjer događaja uspješno je spremljen",
"Failed to delete the custom example event" : "Neuspjelo brisanje prilagođenog primjer-događaja",
"Custom example event was deleted successfully" : "Prilagođeni primjer događaja uspješno je izbrisan",
"Import calendar event" : "Uvezi događaj u kalendar",
"Uploading a new event will overwrite the existing one." : "Učitavanje novog događaja prebrisat će postojeći.",
"Upload event" : "Učitaj događaj",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Također instalirajte {calendarappstoreopen}aplikaciju Kalendar{linkclose} ili {calendardocopen}povežite računalo i mobilni uređaj radi sinkroniziranja ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Provjerite jeste li ispravno postavili {emailopen}poslužitelj e-pošte{linkclose}.",
"Calendar server" : "Poslužitelj kalendara",
"Send invitations to attendees" : "Pošaljite pozive sudionicima",
"Automatically generate a birthday calendar" : "Automatski generiraj kalendar rođendana",
"Birthday calendars will be generated by a background job." : "Kalendari rođendana generirat će se u pozadini.",
"Hence they will not be available immediately after enabling but will show up after some time." : "Stoga neće biti dostupni odmah nakon omogućivanja, ali će se pojaviti nakon nekog vremena.",
"Send notifications for events" : "Šalji obavijesti o događajima",
"Notifications are sent via background jobs, so these must occur often enough." : "Obavijesti se šalju putem pozadinskih zadataka koji se moraju dovoljno često izvoditi.",
"Send reminder notifications to calendar sharees as well" : "Šalji podsjetnike i osobama s kojima je kalendar podijeljen",
"Reminders are always sent to organizers and attendees." : "Podsjetnici se uvijek šalju organizatorima i sudionicima.",
"Enable notifications for events via push" : "Omogući slanje obavijesti o događajima putem push obavijesti",
"Example content" : "Primjer sadržaja",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Primjer sadržaja služi za predstavljanje mogućnosti Nextclouda. Zadani sadržaj dolazi uz Nextcloud i može se zamijeniti prilagođenim sadržajem.",
"Availability" : "Raspoloživost",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Ako konfigurirate svoje radno vrijeme, drugi će vidjeti kada ste izvan ureda prilikom zakazivanja sastanka.",
"Absence" : "Odsutnost",
"Configure your next absence period." : "Konfigurirajte svoje sljedeće razdoblje odsutnosti.",
"There was an error updating your attendance status." : "Došlo je do pogreške prilikom ažuriranja statusa prisutnosti.",
"Please contact the organizer directly." : "Izravno se obratite organizatoru.",
"Are you accepting the invitation?" : "Prihvaćate li poziv?",
"Tentative" : "Uvjetno",
"Your attendance was updated successfully." : "Vaša je prisutnost uspješno ažurirana.",
"_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["U %n minutu, dana %1$s tokom cijelog dana","U %n minute, dana %1$s tokom cijelog dana","U %n minuta, dana %1$s tokom cijelog dana"],
"_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["U %n sat, dana %1$s tokom cijelog dana","U %n sata, dana %1$s tokom cijelog dana","U %n sati, dana %1$s tokom cijelog dana"],
"_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["U %n dan, dana %1$s tokom cijelog dana","U %n dana, dana %1$s tokom cijelog dana","U %n dana, dana %1$s tokom cijelog dana"],
"_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["U %n tjedana, dana %1$s tokom cijelog dana","U %n tjedna, dana %1$s tokom cijelog dana","U %n tjedana, dana %1$s tokom cijelog dana"],
"_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["U %n mjesec, dana %1$s tokom cijelog dana","U %n mjeseca, dana %1$s tokom cijelog dana","U %n mjeseci, dana %1$s tokom cijelog dana"],
"_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["U %n godini, dana %1$s tokom cijelog dana","U %n godine, dana %1$s tokom cijelog dana","U %n godina, dana %1$s tokom cijelog dana"],
"_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["U %n minutu, dana %1$s između %2$s - %3$s","U %n minute, dana %1$s između %2$s - %3$s","U %n minuta, dana %1$s između %2$s - %3$s"],
"_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["U %n sat, dana %1$s između %2$s - %3$s","U %n sata, dana %1$s između %2$s - %3$s","U %n sati, dana %1$s između %2$s - %3$s"],
"_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["U %n dan, dana %1$s između %2$s - %3$s","U %n dana, dana %1$s između %2$s - %3$s","U %n dana, dana %1$s između %2$s - %3$s"],
"_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["U %n tjedan, dana %1$s između %2$s - %3$s","U %n tjedna, dana %1$s između %2$s - %3$s","U %n tjedana, dana %1$s između %2$s - %3$s"],
"_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["U %n mjesec, dana %1$s između %2$s - %3$s","U %n mjeseca, dana %1$s između %2$s - %3$s","U %n mjeseci, dana %1$s između %2$s - %3$s"],
"_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["U %n godini, dana %1$s između %2$s - %3$s","U %n godine, dana %1$s između %2$s - %3$s","U %n godina, dana %1$s između %2$s - %3$s"],
"_In a minute on %1$s_::_In %n minutes on %1$s_" : ["U %n minuti, dana %1$s","U %n minute, dana %1$s","U %n minuta, dana %1$s"],
"_In a hour on %1$s_::_In %n hours on %1$s_" : ["U %n sat, dana %1$s","U %n sata, dana %1$s","U %n sati, dana %1$s"],
"_In a day on %1$s_::_In %n days on %1$s_" : ["U %n dan, dana %1$s","U %n dana, dana %1$s","U %n dana, dana %1$s"],
"_In a week on %1$s_::_In %n weeks on %1$s_" : ["U %n tjedan, dana %1$s","U %n tjedna, dana %1$s","U %n tjedana, dana %1$s"],
"_In a month on %1$s_::_In %n months on %1$s_" : ["U %n mjesec, dana %1$s","U %n mjeseca, dana %1$s","U %n mjeseci, dana %1$s"],
"_In a year on %1$s_::_In %n years on %1$s_" : ["U %n godini, dana %1$s","U %n godine, dana %1$s","U %n godina, dana %1$s"],
"_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["U %n minutu, dana %1$s onda dana %2$s","U %n minute, dana %1$s onda dana %2$s","U %n minuta, dana %1$s onda dana %2$s"],
"_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["U %n sat, dana %1$s onda dana %2$s","U %n sata, dana %1$s onda dana %2$s","U %n sati, dana %1$s onda dana %2$s"],
"_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["U %n dan, dana %1$s onda dana %2$s","U %n dana, dana %1$s onda dana %2$s","U %n dana, dana %1$s onda dana %2$s"],
"_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["U %n tjedan, dana %1$s onda dana %2$s","U %n tjedna, dana %1$s onda dana %2$s","U %n tjedana, dana %1$s onda dana %2$s"],
"_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["U %n mjesec, dana %1$s onda dana %2$s","U %n mjeseca, dana %1$s onda dana %2$s","U %n mjeseci, dana %1$s onda dana %2$s"],
"_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["U %n godini, dana %1$s onda dana %2$s","U %n godine, dana %1$s onda dana %2$s","U %n godina, dana %1$s onda dana %2$s"],
"_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["U %n minutu, dana %1$s onda dana %2$s i %3$s","U %n minute, dana %1$s onda dana %2$s i %3$s","U %n minuta, dana %1$s onda dana %2$s i %3$s"],
"_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["U %n sat, dana %1$s onda dana %2$s i %3$s","U %n sata, dana %1$s onda dana %2$s i %3$s","U %n sati, dana %1$s onda dana %2$s i %3$s"],
"_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["U %n dan, dana %1$s onda dana %2$s i %3$s","U %n dana, dana %1$s onda dana %2$s i %3$s","U %n dana, dana %1$s onda dana %2$s i %3$s"],
"_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["U %n tjedan, dana %1$s onda dana %2$s i %3$s","U %n tjedna, dana %1$s onda dana %2$s i %3$s","U %n tjedana, dana %1$s onda dana %2$s i %3$s"],
"_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["U %n mjesec, dana %1$s onda dana %2$s i %3$s","U %n mjeseca, dana %1$s onda dana %2$s i %3$s","U %n mjeseci, dana %1$s onda dana %2$s i %3$s"],
"_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["U %n godini, dana %1$s onda dana %2$s i %3$s","U %n godine, dana %1$s onda dana %2$s i %3$s","U %n godina, dana %1$s onda dana %2$s i %3$s"],
"Could not open file: %1$s, file does seem to exist" : "Nije moguće otvoriti datoteku: %1$s, čini se da datoteka postoji",
"Could not open file: %1$s, file doesn't seem to exist" : "Nije moguće otvoriti datoteku: %1$s, čini se da datoteka ne postoji",
"No results." : "Nema rezultata.",
"Start typing." : "Započnite s pisanjem.",
"Time zone:" : "Vremenska zona:"
},
"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;");
+374
View File
@@ -0,0 +1,374 @@
{ "translations": {
"Calendar" : "Kalendar",
"Tasks" : "Zadaci",
"Personal" : "Osobno",
"{actor} created calendar {calendar}" : "{actor} je stvorio kalendar {calendar}",
"You created calendar {calendar}" : "Stvorili ste kalendar {calendar}",
"{actor} deleted calendar {calendar}" : "{actor} je izbrisao kalendar {calendar}",
"You deleted calendar {calendar}" : "Izbrisali ste kalendar {calendar}",
"{actor} updated calendar {calendar}" : "{actor} je ažurirao kalendar {calendar}",
"You updated calendar {calendar}" : "Ažurirali ste kalendar {calendar}",
"{actor} restored calendar {calendar}" : "{actor} je vratio kalendar {calendar}",
"You restored calendar {calendar}" : "Vratili ste kalendar {calendar}",
"You shared calendar {calendar} as public link" : "Podijelili ste kalendar {calendar} putem javne poveznice",
"You removed public link for calendar {calendar}" : "Uklonili ste javnu poveznicu na kalendar {calendar}",
"{actor} shared calendar {calendar} with you" : "{actor} dijeli kalendar {calendar} s vama",
"You shared calendar {calendar} with {user}" : "Podijelili ste kalendar {calendar} s {user}",
"{actor} shared calendar {calendar} with {user}" : "{actor} dijeli kalendar {calendar} s {user}",
"{actor} unshared calendar {calendar} from you" : "{actor} više ne dijeli kalendar {calendar} s vama",
"You unshared calendar {calendar} from {user}" : "Više ne dijelite kalendar {calendar} s {user}",
"{actor} unshared calendar {calendar} from {user}" : "{actor} više ne dijeli kalendar {calendar} s {user}",
"{actor} unshared calendar {calendar} from themselves" : "{actor} više ne dijeli kalendar {calendar} sam sa sobom",
"You shared calendar {calendar} with group {group}" : "Podijelili ste kalendar {calendar} s grupom {group}",
"{actor} shared calendar {calendar} with group {group}" : "{actor} dijeli kalendar {calendar} s grupom {group}",
"You unshared calendar {calendar} from group {group}" : "Više ne dijelite kalendar {calendar} s grupom {group}",
"{actor} unshared calendar {calendar} from group {group}" : "{actor} više ne dijeli kalendar {calendar} s grupom {group}",
"Untitled event" : "Događaj bez naslova",
"{actor} created event {event} in calendar {calendar}" : "{actor} je stvorio događaj {event} u kalendaru {calendar}",
"You created event {event} in calendar {calendar}" : "Stvorili ste događaj {event} u kalendaru {calendar}",
"{actor} deleted event {event} from calendar {calendar}" : "{actor} je izbrisao događaj {event} iz kalendara {calendar}",
"You deleted event {event} from calendar {calendar}" : "Izbrisali ste događaj {event} iz kalendara {calendar}",
"{actor} updated event {event} in calendar {calendar}" : "{actor} je ažurirao događaj {event} u kalendaru {calendar}",
"You updated event {event} in calendar {calendar}" : "Ažurirali ste događaj {event} u kalendaru {calendar}",
"{actor} moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "{actor} je premjestio događaj {event} iz kalendara {sourceCalendar} u kalendar {targetCalendar}",
"You moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "Premjestili ste događaj {event} iz kalendara {sourceCalendar} u kalendar {targetCalendar}",
"{actor} restored event {event} of calendar {calendar}" : "{actor} je vratio događaj {event} kalendara {calendar}",
"You restored event {event} of calendar {calendar}" : "Vratili ste događaj {event} kalendara {calendar}",
"Busy" : "Zauzeto",
"{actor} created to-do {todo} in list {calendar}" : "{actor} je stvorio zadatak {todo} u popisu {calendar}",
"You created to-do {todo} in list {calendar}" : "Stvorili ste zadatak {todo} u popisu {calendar}",
"{actor} deleted to-do {todo} from list {calendar}" : "{actor} je izbrisao zadatak {todo} iz popisa {calendar}",
"You deleted to-do {todo} from list {calendar}" : "Izbrisali ste zadatak {todo} iz popisa {calendar}",
"{actor} updated to-do {todo} in list {calendar}" : "{actor} je ažurirao zadatak {todo} u popisu {calendar}",
"You updated to-do {todo} in list {calendar}" : "Ažurirali ste zadatak {todo} u popisu {calendar}",
"{actor} solved to-do {todo} in list {calendar}" : "{actor} je riješio zadatak {todo} u popisu {calendar}",
"You solved to-do {todo} in list {calendar}" : "Riješili ste zadatak {todo} u popisu {calendar}",
"{actor} reopened to-do {todo} in list {calendar}" : "{actor} je ponovno otvorio zadatak {todo} u popisu {calendar}",
"You reopened to-do {todo} in list {calendar}" : "Ponovno ste otvorili zadatak {todo} u popisu {calendar}",
"{actor} moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}" : "{actor} je premjestio zadatak {todo} iz popisa {sourceCalendar} u popis {targetCalendar}",
"You moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}" : "Premjestili ste zadatak {todo} iz popisa {sourceCalendar} u popis {targetCalendar}",
"Calendar, contacts and tasks" : "Kalendar, kontakti i zadaci",
"A <strong>calendar</strong> was modified" : "Izmijenjen je <strong>kalendar</strong>",
"A calendar <strong>event</strong> was modified" : "Izmijenjen je <strong>događaj</strong> u kalendaru",
"A calendar <strong>to-do</strong> was modified" : "Izmijenjen je <strong>zadatak</strong> u kalendaru",
"Contact birthdays" : "Rođendani kontakata",
"Death of %s" : "Smrt %s",
"Untitled calendar" : "Kalendar bez naslova",
"Calendar:" : "Kalendar:",
"Date:" : "Datum:",
"Where:" : "Gdje:",
"Description:" : "Opis:",
"_%n year_::_%n years_" : ["%n godina","%n godina","%n godina"],
"_%n month_::_%n months_" : ["%n mjesec","%n mjeseci","%n mjeseci"],
"_%n day_::_%n days_" : ["%n dan","%n dana","%n dana"],
"_%n hour_::_%n hours_" : ["%n sat","%n sati","%n sati"],
"_%n minute_::_%n minutes_" : ["%n minute/minuta","%n minuta","%n minuta"],
"%s (in %s)" : "%s (u %s)",
"%s (%s ago)" : "%s (prije %s)",
"Calendar: %s" : "Kalendar: %s",
"Date: %s" : "Datum: %s",
"Description: %s" : "Opis: %s",
"Where: %s" : "Gdje: %s",
"%1$s via %2$s" : "%1$s putem %2$s",
"In the past on %1$s for the entire day" : "U prošlosti, dana %1$s, tijekom cijelog dana",
"_In %n minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Za %n minutu, dana %1$s, tijekom cijelog dana","Za %n minute, dana %1$s, tijekom cijelog dana","Za %n minuta, dana %1$s, tijekom cijelog dana"],
"_In %n hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Za %n sat, dana %1$s, tijekom cijelog dana","Za %n sata, dana %1$s, tijekom cijelog dana","Za %n sati, dana %1$s, tijekom cijelog dana"],
"_In %n day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Za %n dan, dana %1$s, tijekom cijelog dana","Za %n dana, dana %1$s, tijekom cijelog dana","Za %n dana, dana %1$s, tijekom cijelog dana"],
"_In %n week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Za %n tjedan, dana %1$s, tijekom cijelog dana","Za %n tjedna, dana %1$s, tijekom cijelog dana","Za %n tjedana, dana %1$s, tijekom cijelog dana"],
"_In %n month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["Za %n mjesec, dana %1$s, tijekom cijelog dana","Za %n mjeseca, dana %1$s, tijekom cijelog dana","Za %n mjeseci, dana %1$s, tijekom cijelog dana"],
"_In %n year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["Za %n godinu, dana %1$s, tijekom cijelog dana","Za %n godine, dana %1$s, tijekom cijelog dana","Za %n godina, dana %1$s, tijekom cijelog dana"],
"In the past on %1$s between %2$s - %3$s" : "U prošlosti, dana %1$s između %2$s %3$s",
"_In %n minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["Za %n minutu, dana %1$s između %2$s %3$s","Za %n minute, dana %1$s između %2$s %3$s","Za %n minuta, dana %1$s između %2$s %3$s"],
"_In %n hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["Za %n sat, dana %1$s između %2$s %3$s","Za %n sata, dana %1$s između %2$s %3$s","Za %n sati, dana %1$s između %2$s %3$s"],
"_In %n day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["Za %n dan, dana %1$s između %2$s %3$s","Za %n dana, dana %1$s između %2$s %3$s","Za %n dana, dana %1$s između %2$s %3$s"],
"_In %n week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["Za %n tjedan, dana %1$s između %2$s %3$s","Za %n tjedna, dana %1$s između %2$s %3$s","Za %n tjedana, dana %1$s između %2$s %3$s"],
"_In %n month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["Za %n mjesec, dana %1$s između %2$s %3$s","Za %n mjeseca, dana %1$s između %2$s %3$s","Za %n mjeseci, dana %1$s između %2$s %3$s"],
"_In %n year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["Za %n godinu, dana %1$s između %2$s %3$s","Za %n godine, dana %1$s između %2$s %3$s","Za %n godina, dana %1$s između %2$s %3$s"],
"Could not generate when statement" : "Nije moguće generirati vremensku odrednicu",
"Every Day for the entire day" : "Svaki dan tijekom cijelog dana",
"Every Day for the entire day until %1$s" : "Svaki dan tijekom cijelog dana do %1$s",
"Every Day between %1$s - %2$s" : "Svaki dan između %1$s - %2$s",
"Every Day between %1$s - %2$s until %3$s" : "Svaki dan između %1$s - %2$s do %3$s",
"Every %1$d Days for the entire day" : "Svakih %1$d dana tijekom cijelog dana",
"Every %1$d Days for the entire day until %2$s" : "Svakih %1$d dana tijekom cijelog dana do %2$s",
"Every %1$d Days between %2$s - %3$s" : "Svakih%1$d dana između%2$s - %3$s",
"Every %1$d Days between %2$s - %3$s until %4$s" : "Svakih %1$d dana između %2$s - %3$s do %4$s",
"Could not generate event recurrence statement" : "Nije moguće generirati izraz za ponavljanje događaja",
"Every Week on %1$s for the entire day" : "Svaki tjedan u %1$s tijekom cijelog dana",
"Every Week on %1$s for the entire day until %2$s" : "Svaki tjedan u %1$s tokom cijelog dana do %2$s",
"Every Week on %1$s between %2$s - %3$s" : "Svaki tjedan u %1$s između %2$s - %3$s",
"Every Week on %1$s between %2$s - %3$s until %4$s" : "Svaki tjedan u %1$s između %2$s - %3$s do %4$s",
"Every %1$d Weeks on %2$s for the entire day" : "Svakih %1$d tjedana od %2$s tijekom cijelog dana",
"Every %1$d Weeks on %2$s for the entire day until %3$s" : "Svakih %1$d tjedana od %2$s tijekom cijelog dana do %3$s",
"Every %1$d Weeks on %2$s between %3$s - %4$s" : "Svakih %1$d tjedana od %2$s između %3$s - %4$s",
"Every %1$d Weeks on %2$s between %3$s - %4$s until %5$s" : "Svakih %1$d tjedana od %2$s između %3$s - %4$s do %5$s",
"Every Month on the %1$s for the entire day" : "%1$s svakog mjeseca tokom cijelog dana",
"Every Month on the %1$s for the entire day until %2$s" : "%1$s svakog mjeseca tokom cijelog dana do%2$s",
"Every Month on the %1$s between %2$s - %3$s" : "%1$s svakog mjeseca između %2$s - %3$s",
"Every Month on the %1$s between %2$s - %3$s until %4$s" : "%1$s svakog mjeseca između %2$s - %3$s do %4$s",
"Every %1$d Months on the %2$s for the entire day" : "Svakih %1$d mjeseci, %2$s tokom cijelog dana",
"Every %1$d Months on the %2$s for the entire day until %3$s" : "Svakih %1$d mjeseci, %2$s tokom cijelog dana do %3$s",
"Every %1$d Months on the %2$s between %3$s - %4$s" : "Svakih %1$d mjeseci, %2$s između %3$s - %4$s",
"Every %1$d Months on the %2$s between %3$s - %4$s until %5$s" : "Svakih %1$d mjeseci, %2$s između %3$s - %4$s do %5$s",
"Every Year in %1$s on the %2$s for the entire day" : "Svake godine, %1$s, %2$s tokom cijelog dana",
"Every Year in %1$s on the %2$s for the entire day until %3$s" : "Svake godine, %1$s, %2$s tokom cijelog dana do %3$s",
"Every Year in %1$s on the %2$s between %3$s - %4$s" : "Svake godine, %1$s, %2$s između %3$s - %4$s",
"Every Year in %1$s on the %2$s between %3$s - %4$s until %5$s" : "Svake godine, %1$s, %2$s, između %3$s - %4$s do %5$s",
"Every %1$d Years in %2$s on the %3$s for the entire day" : "Svakih %1$d godina, %2$s, na %3$s tokom cijelog dana",
"Every %1$d Years in %2$s on the %3$s for the entire day until %4$s" : "Svakih %1$d godina, %2$s, na %3$s tokom cijelog dana do %4$s",
"Every %1$d Years in %2$s on the %3$s between %4$s - %5$s" : "Svakih %1$d godina, %2$s, na %3$s između %4$s - %5$s",
"Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "Svakih %1$d godina, %2$s, na %3$s između %4$s - %5$s do %6$s",
"On specific dates for the entire day until %1$s" : "Na određene datume, tijekom cijelog dana do %1$s",
"On specific dates between %1$s - %2$s until %3$s" : "Na određene datume između %1$s - %2$s do %3$s",
"In the past on %1$s" : "U prošlosti, dana %1$s",
"_In %n minute on %1$s_::_In %n minutes on %1$s_" : ["U %n minutu, %1$s","U %n minute, %1$s","U %n minuta, %1$s"],
"_In %n hour on %1$s_::_In %n hours on %1$s_" : ["U %n sat, %1$s","U %n sata, %1$s","U %n sati, %1$s"],
"_In %n day on %1$s_::_In %n days on %1$s_" : ["U %n dan, %1$s","U %n dana, %1$s","U %n dana, %1$s"],
"_In %n week on %1$s_::_In %n weeks on %1$s_" : ["U %n tjedan, %1$s","U %n tjedna, %1$s","U %n tjedana, %1$s"],
"_In %n month on %1$s_::_In %n months on %1$s_" : ["U %n mjesec, %1$s","U %n mjeseca, %1$s","U %n mjeseci, %1$s"],
"_In %n year on %1$s_::_In %n years on %1$s_" : ["U %n godinu, %1$s","U %n godine, %1$s","U %n godina, %1$s"],
"In the past on %1$s then on %2$s" : "U prošlosti, dana %1$s, zatim dana %2$s",
"_In %n minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["U %n minutu u %1$s, onda u %2$s","U %n minute u %1$s, onda u %2$s","U %n minuta u %1$s, onda u %2$s"],
"_In %n hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["U %n sat u %1$s, onda u %2$s","U %n sata u %1$s, onda u %2$s","U %n sati u %1$s, onda u %2$s"],
"_In %n day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["U %n dan u %1$s, onda u %2$s","U %n dana u %1$s, onda u %2$s","U %n dana u %1$s, onda u %2$s"],
"_In %n week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["U %n tjedan u %1$s, onda u %2$s","U %n tjedna u %1$s, onda u %2$s","U %n tjedana u %1$s, onda u %2$s"],
"_In %n month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["U %n mjesec u %1$s, onda u %2$s","U %n mjeseca u %1$s, onda u %2$s","U %n mjeseci u %1$s, onda u %2$s"],
"_In %n year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["U %n godinu u %1$s, onda u %2$s","U %n godine u %1$s, onda u %2$s","U %n godina u %1$s, onda u %2$s"],
"In the past on %1$s then on %2$s and %3$s" : "U prošlosti, dana %1$s, zatim dana %2$s i %3$s",
"_In %n minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["u %n minutu dana %1$s onda dana %2$s i %3$s","u %n minute dana %1$s onda dana %2$s i %3$s","u %n minuta dana %1$s onda dana %2$s i %3$s"],
"_In %n hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["u %n sat dana %1$s onda dana %2$s i %3$s","u %n sata dana %1$s onda dana %2$s i %3$s","u %n sati dana %1$s onda dana %2$s i %3$s"],
"_In %n day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["u %n dan, dana %1$s onda dana %2$s i %3$s","u %n dana, dana %1$s onda dana %2$s i %3$s","u %n dana, dana %1$s onda dana %2$s i %3$s"],
"_In %n week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["u %n tjedan, dana %1$s onda dana %2$s i %3$s","u %n tjedna, dana %1$s onda dana %2$s i %3$s","u %n tjedana, dana %1$s onda dana %2$s i %3$s"],
"_In %n month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["u %n mjesec, dana %1$s onda dana %2$s i %3$s","u %n mjeseca, dana %1$s onda dana %2$s i %3$s","u %n mjeseci, dana %1$s onda dana %2$s i %3$s"],
"_In %n year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["u %n godinu, dana %1$s onda dana %2$s i %3$s","u %n godine, dana %1$s onda dana %2$s i %3$s","u %n godina, dana %1$s onda dana %2$s i %3$s"],
"Could not generate next recurrence statement" : "Nije moguće generirati sljedeći izraz ponavljanja",
"Cancelled: %1$s" : "Otkazano: %1$s",
"\"%1$s\" has been canceled" : "„%1$s” je otkazan",
"Re: %1$s" : "Odgovor: %1 $ s",
"%1$s has accepted your invitation" : "%1$s je prihvatio/la vašu pozivnicu",
"%1$s has tentatively accepted your invitation" : "%1$s je privremeno prihvatio/la vašu pozivnicu",
"%1$s has declined your invitation" : "%1$s je odbio/la vašu pozivnicu",
"%1$s has responded to your invitation" : "%1$s je odgovorio/la na vašu pozivnicu",
"Invitation updated: %1$s" : "Pozivnica ažurirana: %1$s",
"%1$s updated the event \"%2$s\"" : "%1$s je ažurirao/la događaj \"%2$s\"",
"Invitation: %1$s" : "Pozivnica: %1$s",
"%1$s would like to invite you to \"%2$s\"" : "%1$s vas želi pozvati na „%2$s”",
"Organizer:" : "Organizator:",
"Attendees:" : "Polaznici:",
"Title:" : "Naslov:",
"When:" : "Kada:",
"Location:" : "Lokacija:",
"Link:" : "Poveznica:",
"Occurring:" : "Događa se:",
"Accept" : "Prihvati",
"Decline" : "Odbij",
"More options …" : "Više mogućnosti…",
"More options at %s" : "Više mogućnosti na %s",
"Monday" : "Ponedjeljak",
"Tuesday" : "Utorak",
"Wednesday" : "Srijeda",
"Thursday" : "Četvrtak",
"Friday" : "Petak",
"Saturday" : "Subota",
"Sunday" : "Nedjelja",
"January" : "Siječanj",
"February" : "Veljača",
"March" : "Ožujak",
"April" : "Travanj",
"May" : "Svibanj",
"June" : "Lipanj",
"July" : "Srpanj",
"August" : "Kolovoz",
"September" : "Rujan",
"October" : "Listopad",
"November" : "Studeni",
"December" : "Prosinac",
"First" : "Prvi",
"Second" : "Drugi",
"Third" : "Treći",
"Fourth" : "Četvrti",
"Fifth" : "Peti",
"Last" : "Zadnji",
"Second Last" : "Drugi od kraja",
"Third Last" : "Treći od kraja",
"Fourth Last" : "Četvrti od kraja",
"Fifth Last" : "Peti od kraja",
"Contacts" : "Kontakti",
"{actor} created address book {addressbook}" : "{actor} je stvorio adresar {addressbook}",
"You created address book {addressbook}" : "Stvorili ste adresar {addressbook}",
"{actor} deleted address book {addressbook}" : "{actor} je izbrisao adresar {addressbook}",
"You deleted address book {addressbook}" : "Izbrisali ste adresar {addressbook}",
"{actor} updated address book {addressbook}" : "{actor} je ažurirao adresar {addressbook}",
"You updated address book {addressbook}" : "Ažurirali ste adresar {addressbook}",
"{actor} shared address book {addressbook} with you" : "{actor} dijeli adresar {addressbook} s vama",
"You shared address book {addressbook} with {user}" : "Dijelite adresar {addressbook} s {user}",
"{actor} shared address book {addressbook} with {user}" : "{actor} dijeli adresar {addressbook} s {user}",
"{actor} unshared address book {addressbook} from you" : "{actor} je prestao dijeliti adresar {addressbook} s vama",
"You unshared address book {addressbook} from {user}" : "Prestali ste dijeliti adresar {addressbook} s {user}",
"{actor} unshared address book {addressbook} from {user}" : "{actor} je prestao dijeliti adresar {addressbook} s {user}",
"{actor} unshared address book {addressbook} from themselves" : "{actor} je prestao dijeliti adresar {addressbook} sa sobom",
"You shared address book {addressbook} with group {group}" : "Dijelite adresar {addressbook} s grupom {group}",
"{actor} shared address book {addressbook} with group {group}" : "{actor} dijeli adresar {addressbook} s grupom {group}",
"You unshared address book {addressbook} from group {group}" : "Prestali ste dijeliti adresar {addressbook} s grupom {group}",
"{actor} unshared address book {addressbook} from group {group}" : "{actor} je prestao dijeliti adresar {addressbook} s grupom {group}",
"{actor} created contact {card} in address book {addressbook}" : "{actor} je stvorio kontakt {card} u adresaru {addressbook}",
"You created contact {card} in address book {addressbook}" : "Stvorili ste kontakt {card} u adresaru {addressbook}",
"{actor} deleted contact {card} from address book {addressbook}" : "{actor} je izbrisao kontakt {card} iz adresara {addressbook}",
"You deleted contact {card} from address book {addressbook}" : "Izbrisali ste kontakt {card} iz adresara {addressbook}",
"{actor} updated contact {card} in address book {addressbook}" : "{actor} je ažurirao kontakt {card} u adresaru {addressbook}",
"You updated contact {card} in address book {addressbook}" : "Ažurirali ste kontakt {card} u adresaru {addressbook}",
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "Izmijenjen je <strong>kontakt</strong> ili <strong>adresar</strong>",
"System address book disabled" : "Adresar sustava je onemogućen",
"The system contacts address book has been automatically disabled during upgrade. This means that the address book will no longer be available to users in the contacts app or other clients. The system contacts address book was disabled because the amount of contacts in the address book exceeded the maximum recommended number of contacts. This limit is set to prevent performance issues. You can re-enable the system address book with the following command {command}" : "Adresar sistemskih kontakata automatski je onemogućen tijekom nadogradnje. To znači da adresar više neće biti dostupan korisnicima u aplikaciji Kontakti niti u drugim klijentima. Adresar sistemskih kontakata onemogućen je jer je broj kontakata u adresaru premašio maksimalno preporučeni broj. Ovo ograničenje postavljeno je radi sprječavanja problema s performansama. Adresar sustava možete ponovno omogućiti sljedećom naredbom {command}.",
"Accounts" : "Korisnički računi",
"System address book which holds all accounts" : "Adresar sustava koji sadrži sve račune",
"File is not updatable: %1$s" : "Datoteku nije moguće ažurirati: %1$s",
"Failed to get storage for file" : "Neuspjelo dohvaćanje pohrane za datoteku",
"Could not write to final file, canceled by hook" : "Nije moguće zapisati u završnu datoteku, otkazano putem kuke",
"Could not write file contents" : "Nije moguće zapisati sadržaj datoteke",
"_%n byte_::_%n bytes_" : ["%n bajt","%n bajta","%n bajtova"],
"Error while copying file to target location (copied: %1$s, expected filesize: %2$s)" : "Pogreška pri kopiranju datoteke na odredišnu lokaciju (kopirano: %1$s, očekivana veličina datoteke: %2$s)",
"Expected filesize of %1$s but read (from Nextcloud client) and wrote (to Nextcloud storage) %2$s. Could either be a network problem on the sending side or a problem writing to the storage on the server side." : "Očekivana veličina datoteke je %1$s ali je pročitano (s Nextcloud klijenta) i zapisano (u Nextcloud pohranu) %2$s. To može biti problem s mrežom na strani slanja ili problem pri zapisivanju u pohranu na strani poslužitelja.",
"Could not rename part file to final file, canceled by hook" : "Nije moguće preimenovati djelomičnu datoteku u završnu datoteku, otkazano putem kuke",
"Could not rename part file to final file" : "Nije moguće preimenovati djelomičnu datoteku u završnu datoteku",
"Failed to check file size: %1$s" : "Neuspjela provjera veličine datoteke: %1$s",
"Could not open file: %1$s (%2$d), file does seem to exist" : "Nije moguće otvoriti datoteku: %1$s (%2$d), čini se da datoteka postoji",
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Nije moguće otvoriti datoteku: %1$s (%2$d), čini se da datoteka ne postoji",
"Encryption not ready: %1$s" : "Šifriranje nije spremno: %1$s",
"Failed to open file: %1$s" : "Neuspjelo otvaranje datoteke: %1$s",
"Failed to unlink: %1$s" : "Neuspjelo uklanjanje veze: %1$s",
"Failed to write file contents: %1$s" : "Neuspjelo zapisivanje sadržaja datoteke: %1$s",
"File not found: %1$s" : "Datoteka nije pronađena: %1$s",
"Invalid target path" : "Nevažeća odredišna putanja",
"System is in maintenance mode." : "Sustav je u načinu održavanja.",
"Upgrade needed" : "Potrebno nadograditi",
"Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "Vaš %s treba konfigurirati za korištenje HTTPS-a kako bi se mogli upotrebljavati CalDAV i CardDAV s operacijskim sustavom iOS/macOS.",
"Configures a CalDAV account" : "Konfigurira CalDAV račun",
"Configures a CardDAV account" : "Konfigurira CardDAV račun",
"Events" : "Događaji",
"Untitled task" : "Zadatak bez naslova",
"Completed on %s" : "Završeno na %s",
"Due on %s by %s" : "%s treba završiti do %s",
"Due on %s" : "Treba završiti do %s",
"Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Dobrodošli u Nextcloud Kalendar!\n\nOvo je primjer događaja istražite fleksibilnost planiranja s Nextcloud Kalendarom tako da napravite bilo kakve izmjene koje želite!\n\nUz Nextcloud Kalendar možete:\n- Jednostavno stvarati, uređivati i upravljati događajima..\n- Stvarati više kalendara i dijeliti ih s kolegama, prijateljima ili obitelji.\n- Provjeravati dostupnost i drugima prikazivati svoja zauzeta razdoblja.\n- Neprimjetno se integrirati s aplikacijama i uređajima putem CalDAV-a.\n- Prilagoditi svoje iskustvo: zakazivati ponavljajuće događaje, prilagođavati obavijesti i druge postavke.",
"Example event - open me!" : "Primjer događaja otvori me!",
"System Address Book" : "Adresar sustava",
"The system address book contains contact information for all users in your instance." : "Adresar sustava sadrži kontaktne podatke za sve korisnike u vašoj instanci.",
"Enable System Address Book" : "Omogući adresar sustava",
"DAV system address book" : "DAV adresar sustava",
"No outstanding DAV system address book sync." : "Nema neriješene sinkronizacije DAV adresara sustava.",
"The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "Sinkronizacija DAV adresara sustava još nije pokrenuta jer vaša instanca ima više od 1000 korisnika ili je došlo do pogreške. Pokrenite je ručno pozivanjem naredbe „occ dav:sync-system-addressbook”.",
"DAV system address book size" : "Veličina DAV adresara sustava",
"The system address book is disabled" : "Adresar sustava je onemogućen",
"The system address book is enabled, but contains more than the configured limit of %d contacts" : "Adresar sustava je omogućen, ali sadrži više od konfiguriranog ograničenja od %d kontakata",
"The system address book is enabled and contains less than the configured limit of %d contacts" : "Adresar sustava je omogućen i sadrži manje od konfiguriranog ograničenja od %d kontakata",
"WebDAV endpoint" : "WebDAV krajnja točka",
"Could not check that your web server is properly set up to allow file synchronization over WebDAV. Please check manually." : "Nije moguće provjeriti je li vaš mrežni poslužitelj ispravno postavljen za omogućavanje sinkronizacije datoteka putem WebDAV-a. Molimo provjerite ručno.",
"Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Vaš mrežni poslužitelj nije pravilno podešen za sinkronizaciju podataka jer je sučelje protokola WebDAV neispravno.",
"Your web server is properly set up to allow file synchronization over WebDAV." : "Vaš mrežni poslužitelj je ispravno postavljen za omogućavanje sinkronizacije datoteka putem WebDAV-a.",
"Migrated calendar (%1$s)" : "Migriran kalendar (%1$s)",
"Calendars including events, details and attendees" : "Kalendari uključujući događaje, detalje i sudionike",
"Contacts and groups" : "Kontakti i grupe",
"WebDAV" : "WebDAV",
"Absence saved" : "Odsutnost je spremljena",
"Failed to save your absence settings" : "Neuspjelo spremanje postavki odsutnosti",
"Absence cleared" : "Odsutnost je uklonjena",
"Failed to clear your absence settings" : "Neuspjelo uklanjanje postavki odsutnosti",
"First day" : "Prvi dan",
"Last day (inclusive)" : "Zadnji dan (uključivo)",
"Out of office replacement (optional)" : "Zamjena za odsutnost iz ureda (neobavezno)",
"Name of the replacement" : "Ime zamjene",
"Short absence status" : "Kratki status odsutnosti",
"Long absence Message" : "Duga poruka o odsutnosti",
"Save" : "Spremi",
"Disable absence" : "Onemogući odsutnost",
"Failed to load availability" : "Neuspjelo učitavanje dostupnosti",
"Saved availability" : "Dostupnost je spremljena",
"Failed to save availability" : "Neuspjelo spremanje dostupnosti",
"to" : "do",
"Delete slot" : "Izbriši mjesto",
"No working hours set" : "Radno vrijeme nije postavljeno",
"Add slot" : "Dodaj mjesto",
"Weekdays" : "Dani u tjednu",
"Pick a start time for {dayName}" : "Odaberite početno vrijeme za {dayName}",
"Pick a end time for {dayName}" : "Odaberite završno vrijeme za {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Automatski postavi korisnički status na „Ne ometaj” izvan vremena dostupnosti kako bi se utišale sve obavijesti.",
"Cancel" : "Odustani",
"Import" : "Uvezi",
"Error while saving settings" : "Greška pri spremanju postavki",
"Contact reset successfully" : "Kontakt je uspješno resetiran",
"Error while resetting contact" : "Greška pri resetiranju kontakta",
"Contact imported successfully" : "Kontakt je uspješno uvezen",
"Error while importing contact" : "Greška pri uvozu kontakta",
"Import contact" : "Uvezi kontakt",
"Reset to default" : "Vrati na zadanu postavku",
"Import contacts" : "Uvezi kontakte",
"Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Uvoz nove .vcf datoteke izbrisat će postojeći zadani kontakt i zamijeniti ga novim. Želite li nastaviti?",
"Failed to save example event creation setting" : "Neuspjelo spremanje postavke stvaranja primjer-događaja",
"Failed to upload the example event" : "Neuspjelo učitavanje primjer-događaja",
"Custom example event was saved successfully" : "Prilagođeni primjer događaja uspješno je spremljen",
"Failed to delete the custom example event" : "Neuspjelo brisanje prilagođenog primjer-događaja",
"Custom example event was deleted successfully" : "Prilagođeni primjer događaja uspješno je izbrisan",
"Import calendar event" : "Uvezi događaj u kalendar",
"Uploading a new event will overwrite the existing one." : "Učitavanje novog događaja prebrisat će postojeći.",
"Upload event" : "Učitaj događaj",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Također instalirajte {calendarappstoreopen}aplikaciju Kalendar{linkclose} ili {calendardocopen}povežite računalo i mobilni uređaj radi sinkroniziranja ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Provjerite jeste li ispravno postavili {emailopen}poslužitelj e-pošte{linkclose}.",
"Calendar server" : "Poslužitelj kalendara",
"Send invitations to attendees" : "Pošaljite pozive sudionicima",
"Automatically generate a birthday calendar" : "Automatski generiraj kalendar rođendana",
"Birthday calendars will be generated by a background job." : "Kalendari rođendana generirat će se u pozadini.",
"Hence they will not be available immediately after enabling but will show up after some time." : "Stoga neće biti dostupni odmah nakon omogućivanja, ali će se pojaviti nakon nekog vremena.",
"Send notifications for events" : "Šalji obavijesti o događajima",
"Notifications are sent via background jobs, so these must occur often enough." : "Obavijesti se šalju putem pozadinskih zadataka koji se moraju dovoljno često izvoditi.",
"Send reminder notifications to calendar sharees as well" : "Šalji podsjetnike i osobama s kojima je kalendar podijeljen",
"Reminders are always sent to organizers and attendees." : "Podsjetnici se uvijek šalju organizatorima i sudionicima.",
"Enable notifications for events via push" : "Omogući slanje obavijesti o događajima putem push obavijesti",
"Example content" : "Primjer sadržaja",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Primjer sadržaja služi za predstavljanje mogućnosti Nextclouda. Zadani sadržaj dolazi uz Nextcloud i može se zamijeniti prilagođenim sadržajem.",
"Availability" : "Raspoloživost",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Ako konfigurirate svoje radno vrijeme, drugi će vidjeti kada ste izvan ureda prilikom zakazivanja sastanka.",
"Absence" : "Odsutnost",
"Configure your next absence period." : "Konfigurirajte svoje sljedeće razdoblje odsutnosti.",
"There was an error updating your attendance status." : "Došlo je do pogreške prilikom ažuriranja statusa prisutnosti.",
"Please contact the organizer directly." : "Izravno se obratite organizatoru.",
"Are you accepting the invitation?" : "Prihvaćate li poziv?",
"Tentative" : "Uvjetno",
"Your attendance was updated successfully." : "Vaša je prisutnost uspješno ažurirana.",
"_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["U %n minutu, dana %1$s tokom cijelog dana","U %n minute, dana %1$s tokom cijelog dana","U %n minuta, dana %1$s tokom cijelog dana"],
"_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["U %n sat, dana %1$s tokom cijelog dana","U %n sata, dana %1$s tokom cijelog dana","U %n sati, dana %1$s tokom cijelog dana"],
"_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["U %n dan, dana %1$s tokom cijelog dana","U %n dana, dana %1$s tokom cijelog dana","U %n dana, dana %1$s tokom cijelog dana"],
"_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["U %n tjedana, dana %1$s tokom cijelog dana","U %n tjedna, dana %1$s tokom cijelog dana","U %n tjedana, dana %1$s tokom cijelog dana"],
"_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["U %n mjesec, dana %1$s tokom cijelog dana","U %n mjeseca, dana %1$s tokom cijelog dana","U %n mjeseci, dana %1$s tokom cijelog dana"],
"_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["U %n godini, dana %1$s tokom cijelog dana","U %n godine, dana %1$s tokom cijelog dana","U %n godina, dana %1$s tokom cijelog dana"],
"_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["U %n minutu, dana %1$s između %2$s - %3$s","U %n minute, dana %1$s između %2$s - %3$s","U %n minuta, dana %1$s između %2$s - %3$s"],
"_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["U %n sat, dana %1$s između %2$s - %3$s","U %n sata, dana %1$s između %2$s - %3$s","U %n sati, dana %1$s između %2$s - %3$s"],
"_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["U %n dan, dana %1$s između %2$s - %3$s","U %n dana, dana %1$s između %2$s - %3$s","U %n dana, dana %1$s između %2$s - %3$s"],
"_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["U %n tjedan, dana %1$s između %2$s - %3$s","U %n tjedna, dana %1$s između %2$s - %3$s","U %n tjedana, dana %1$s između %2$s - %3$s"],
"_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["U %n mjesec, dana %1$s između %2$s - %3$s","U %n mjeseca, dana %1$s između %2$s - %3$s","U %n mjeseci, dana %1$s između %2$s - %3$s"],
"_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["U %n godini, dana %1$s između %2$s - %3$s","U %n godine, dana %1$s između %2$s - %3$s","U %n godina, dana %1$s između %2$s - %3$s"],
"_In a minute on %1$s_::_In %n minutes on %1$s_" : ["U %n minuti, dana %1$s","U %n minute, dana %1$s","U %n minuta, dana %1$s"],
"_In a hour on %1$s_::_In %n hours on %1$s_" : ["U %n sat, dana %1$s","U %n sata, dana %1$s","U %n sati, dana %1$s"],
"_In a day on %1$s_::_In %n days on %1$s_" : ["U %n dan, dana %1$s","U %n dana, dana %1$s","U %n dana, dana %1$s"],
"_In a week on %1$s_::_In %n weeks on %1$s_" : ["U %n tjedan, dana %1$s","U %n tjedna, dana %1$s","U %n tjedana, dana %1$s"],
"_In a month on %1$s_::_In %n months on %1$s_" : ["U %n mjesec, dana %1$s","U %n mjeseca, dana %1$s","U %n mjeseci, dana %1$s"],
"_In a year on %1$s_::_In %n years on %1$s_" : ["U %n godini, dana %1$s","U %n godine, dana %1$s","U %n godina, dana %1$s"],
"_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["U %n minutu, dana %1$s onda dana %2$s","U %n minute, dana %1$s onda dana %2$s","U %n minuta, dana %1$s onda dana %2$s"],
"_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["U %n sat, dana %1$s onda dana %2$s","U %n sata, dana %1$s onda dana %2$s","U %n sati, dana %1$s onda dana %2$s"],
"_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["U %n dan, dana %1$s onda dana %2$s","U %n dana, dana %1$s onda dana %2$s","U %n dana, dana %1$s onda dana %2$s"],
"_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["U %n tjedan, dana %1$s onda dana %2$s","U %n tjedna, dana %1$s onda dana %2$s","U %n tjedana, dana %1$s onda dana %2$s"],
"_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["U %n mjesec, dana %1$s onda dana %2$s","U %n mjeseca, dana %1$s onda dana %2$s","U %n mjeseci, dana %1$s onda dana %2$s"],
"_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["U %n godini, dana %1$s onda dana %2$s","U %n godine, dana %1$s onda dana %2$s","U %n godina, dana %1$s onda dana %2$s"],
"_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["U %n minutu, dana %1$s onda dana %2$s i %3$s","U %n minute, dana %1$s onda dana %2$s i %3$s","U %n minuta, dana %1$s onda dana %2$s i %3$s"],
"_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["U %n sat, dana %1$s onda dana %2$s i %3$s","U %n sata, dana %1$s onda dana %2$s i %3$s","U %n sati, dana %1$s onda dana %2$s i %3$s"],
"_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["U %n dan, dana %1$s onda dana %2$s i %3$s","U %n dana, dana %1$s onda dana %2$s i %3$s","U %n dana, dana %1$s onda dana %2$s i %3$s"],
"_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["U %n tjedan, dana %1$s onda dana %2$s i %3$s","U %n tjedna, dana %1$s onda dana %2$s i %3$s","U %n tjedana, dana %1$s onda dana %2$s i %3$s"],
"_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["U %n mjesec, dana %1$s onda dana %2$s i %3$s","U %n mjeseca, dana %1$s onda dana %2$s i %3$s","U %n mjeseci, dana %1$s onda dana %2$s i %3$s"],
"_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["U %n godini, dana %1$s onda dana %2$s i %3$s","U %n godine, dana %1$s onda dana %2$s i %3$s","U %n godina, dana %1$s onda dana %2$s i %3$s"],
"Could not open file: %1$s, file does seem to exist" : "Nije moguće otvoriti datoteku: %1$s, čini se da datoteka postoji",
"Could not open file: %1$s, file doesn't seem to exist" : "Nije moguće otvoriti datoteku: %1$s, čini se da datoteka ne postoji",
"No results." : "Nema rezultata.",
"Start typing." : "Započnite s pisanjem.",
"Time zone:" : "Vremenska zona:"
},"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;"
}
+1 -1
View File
@@ -221,7 +221,7 @@ OC.L10N.register(
"You updated contact {card} in address book {addressbook}" : "Hai aggiornato il contatto {card} nella rubrica {addressbook}",
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "Un <strong>contatto</strong> o <strong>rubrica</strong> sono stati modificati ",
"System address book disabled" : "Rubrica di sistema disabilitata",
"The system contacts address book has been automatically disabled during upgrade. This means that the address book will no longer be available to users in the contacts app or other clients. The system contacts address book was disabled because the amount of contacts in the address book exceeded the maximum recommended number of contacts. This limit is set to prevent performance issues. You can re-enable the system address book with the following command {command}" : "La rubrica dei contatti di sistema è stata disabilitata automaticamente durante l'aggiornamento. Ciò significa che la rubrica non sarà più disponibile per gli utenti nell'app Contatti o in altri client. La rubrica dei contatti di sistema è stata disabilitata perché il numero di contatti nella rubrica ha superato il numero massimo consigliato. Questo limite è stato impostato per evitare problemi di prestazioni. È possibile riabilitare la rubrica di sistema con il seguente comando {command}",
"The system contacts address book has been automatically disabled during upgrade. This means that the address book will no longer be available to users in the contacts app or other clients. The system contacts address book was disabled because the amount of contacts in the address book exceeded the maximum recommended number of contacts. This limit is set to prevent performance issues. You can re-enable the system address book with the following command {command}" : "La rubrica dei contatti di sistema è stata disabilitata automaticamente durante l'aggiornamento. Ciò significa che la rubrica non sarà più disponibile per gli utenti nell'applicazione Contatti o in altri client. La rubrica dei contatti di sistema è stata disabilitata perché il numero di contatti nella rubrica ha superato il numero massimo consigliato. Questo limite è stato impostato per evitare problemi di prestazioni. È possibile riabilitare la rubrica di sistema con il seguente comando {command}",
"Accounts" : "Account",
"System address book which holds all accounts" : "Rubrica di sistema che contiene tutti gli account",
"File is not updatable: %1$s" : "Il file non è aggiornabile: %1$s",
+1 -1
View File
@@ -219,7 +219,7 @@
"You updated contact {card} in address book {addressbook}" : "Hai aggiornato il contatto {card} nella rubrica {addressbook}",
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "Un <strong>contatto</strong> o <strong>rubrica</strong> sono stati modificati ",
"System address book disabled" : "Rubrica di sistema disabilitata",
"The system contacts address book has been automatically disabled during upgrade. This means that the address book will no longer be available to users in the contacts app or other clients. The system contacts address book was disabled because the amount of contacts in the address book exceeded the maximum recommended number of contacts. This limit is set to prevent performance issues. You can re-enable the system address book with the following command {command}" : "La rubrica dei contatti di sistema è stata disabilitata automaticamente durante l'aggiornamento. Ciò significa che la rubrica non sarà più disponibile per gli utenti nell'app Contatti o in altri client. La rubrica dei contatti di sistema è stata disabilitata perché il numero di contatti nella rubrica ha superato il numero massimo consigliato. Questo limite è stato impostato per evitare problemi di prestazioni. È possibile riabilitare la rubrica di sistema con il seguente comando {command}",
"The system contacts address book has been automatically disabled during upgrade. This means that the address book will no longer be available to users in the contacts app or other clients. The system contacts address book was disabled because the amount of contacts in the address book exceeded the maximum recommended number of contacts. This limit is set to prevent performance issues. You can re-enable the system address book with the following command {command}" : "La rubrica dei contatti di sistema è stata disabilitata automaticamente durante l'aggiornamento. Ciò significa che la rubrica non sarà più disponibile per gli utenti nell'applicazione Contatti o in altri client. La rubrica dei contatti di sistema è stata disabilitata perché il numero di contatti nella rubrica ha superato il numero massimo consigliato. Questo limite è stato impostato per evitare problemi di prestazioni. È possibile riabilitare la rubrica di sistema con il seguente comando {command}",
"Accounts" : "Account",
"System address book which holds all accounts" : "Rubrica di sistema che contiene tutti gli account",
"File is not updatable: %1$s" : "Il file non è aggiornabile: %1$s",
+32
View File
@@ -73,7 +73,19 @@ OC.L10N.register(
"Where: %s" : "場所:%s",
"%1$s via %2$s" : "%1$s に %2$s から",
"In the past on %1$s for the entire day" : "過去に%1$sで終日",
"_In %n minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["終日%1$sの%n分"],
"_In %n hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["終日%1$sの%n時間"],
"_In %n day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["終日%1$sの%n日"],
"_In %n week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["終日%1$sの%n週間"],
"_In %n month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["終日%1$sの%nヶ月"],
"_In %n year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["終日%1$sの%n年間"],
"In the past on %1$s between %2$s - %3$s" : "過去%1$s、%2$s%3$sの間",
"_In %n minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["%2$s%3$sの間の%1$sの%n分"],
"_In %n hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["%2$s%3$sの間の%1$sの%n時間"],
"_In %n day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["%2$s%3$sの間の%1$sの%n日間"],
"_In %n week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["%2$s%3$sの間の%1$sの%n週間"],
"_In %n month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["%2$s%3$sの間の%1$sの%nヶ月"],
"_In %n year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["%2$s%3$sの間の%1$sの%n年間"],
"Could not generate when statement" : "when文を生成できませんでした",
"Every Day for the entire day" : "毎日、終日",
"Every Day for the entire day until %1$s" : "%1$sまでの終日、毎日",
@@ -111,8 +123,26 @@ OC.L10N.register(
"On specific dates for the entire day until %1$s" : "%1$sまでの特定の日付の終日",
"On specific dates between %1$s - %2$s until %3$s" : "%1$s%2$sの間、%3$sまでの特定の日付",
"In the past on %1$s" : "過去%1$s",
"_In %n minute on %1$s_::_In %n minutes on %1$s_" : ["%1$sの%n分間"],
"_In %n hour on %1$s_::_In %n hours on %1$s_" : ["%1$sの%n時間"],
"_In %n day on %1$s_::_In %n days on %1$s_" : ["%1$sの%n日間"],
"_In %n week on %1$s_::_In %n weeks on %1$s_" : ["%1$sの%n週間"],
"_In %n month on %1$s_::_In %n months on %1$s_" : ["%1$sの%nヶ月"],
"_In %n year on %1$s_::_In %n years on %1$s_" : ["%1$sの%n年間"],
"In the past on %1$s then on %2$s" : "過去%1$s、その後%2$s",
"_In %n minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["過去%1$sの%n分間、その後%2$s"],
"_In %n hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["過去%1$sの%n時間、その後%2$s"],
"_In %n day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["過去%1$sの%n日間、その後%2$s"],
"_In %n week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["過去%1$sの%n週間、その後%2$s"],
"_In %n month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["過去%1$sの%nヶ月、その後%2$s"],
"_In %n year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["過去%1$sの%n年間、その後%2$s"],
"In the past on %1$s then on %2$s and %3$s" : "過去%1$s、その後%2$sと%3$s",
"_In %n minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["%1$sの%n分間、その後%2$sと%3$s"],
"_In %n hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["%1$sの%n時間、その後%2$sと%3$s"],
"_In %n day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["%1$sの%n日間、その後%2$sと%3$s"],
"_In %n week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["%1$sの%n週間、その後%2$sと%3$s"],
"_In %n month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["%1$sの%nヶ月、その後%2$sと%3$s"],
"_In %n year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["%1$sの%n年間、その後%2$sと%3$s"],
"Could not generate next recurrence statement" : "次の再帰ステートメントを生成できませんでした",
"Cancelled: %1$s" : "キャンセル: %1$s",
"\"%1$s\" has been canceled" : "%1$sはキャンセルされました",
@@ -204,6 +234,8 @@ OC.L10N.register(
"Could not rename part file to final file, canceled by hook" : "最終ファイルの名前の変更が出来なかったため、フックによりキャンセルされました",
"Could not rename part file to final file" : "最終ファイルの名前の変更が出来ませんでした",
"Failed to check file size: %1$s" : "ファイルサイズの確認に失敗: %1$s",
"Could not open file: %1$s (%2$d), file does seem to exist" : "ファイルを開けませんでした: %1$s (%2$d)、ファイルは存在するようです",
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "ファイルを開けませんでした: %1$s (%2$d)、ファイルが存在しないようです",
"Encryption not ready: %1$s" : "暗号化の準備が出来ていません: %1$s",
"Failed to open file: %1$s" : "ファイルを開くのに失敗: %1$s",
"Failed to unlink: %1$s" : "リンクの解除に失敗: %1$s",
+32
View File
@@ -71,7 +71,19 @@
"Where: %s" : "場所:%s",
"%1$s via %2$s" : "%1$s に %2$s から",
"In the past on %1$s for the entire day" : "過去に%1$sで終日",
"_In %n minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["終日%1$sの%n分"],
"_In %n hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["終日%1$sの%n時間"],
"_In %n day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["終日%1$sの%n日"],
"_In %n week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["終日%1$sの%n週間"],
"_In %n month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["終日%1$sの%nヶ月"],
"_In %n year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["終日%1$sの%n年間"],
"In the past on %1$s between %2$s - %3$s" : "過去%1$s、%2$s%3$sの間",
"_In %n minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["%2$s%3$sの間の%1$sの%n分"],
"_In %n hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["%2$s%3$sの間の%1$sの%n時間"],
"_In %n day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["%2$s%3$sの間の%1$sの%n日間"],
"_In %n week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["%2$s%3$sの間の%1$sの%n週間"],
"_In %n month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["%2$s%3$sの間の%1$sの%nヶ月"],
"_In %n year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["%2$s%3$sの間の%1$sの%n年間"],
"Could not generate when statement" : "when文を生成できませんでした",
"Every Day for the entire day" : "毎日、終日",
"Every Day for the entire day until %1$s" : "%1$sまでの終日、毎日",
@@ -109,8 +121,26 @@
"On specific dates for the entire day until %1$s" : "%1$sまでの特定の日付の終日",
"On specific dates between %1$s - %2$s until %3$s" : "%1$s%2$sの間、%3$sまでの特定の日付",
"In the past on %1$s" : "過去%1$s",
"_In %n minute on %1$s_::_In %n minutes on %1$s_" : ["%1$sの%n分間"],
"_In %n hour on %1$s_::_In %n hours on %1$s_" : ["%1$sの%n時間"],
"_In %n day on %1$s_::_In %n days on %1$s_" : ["%1$sの%n日間"],
"_In %n week on %1$s_::_In %n weeks on %1$s_" : ["%1$sの%n週間"],
"_In %n month on %1$s_::_In %n months on %1$s_" : ["%1$sの%nヶ月"],
"_In %n year on %1$s_::_In %n years on %1$s_" : ["%1$sの%n年間"],
"In the past on %1$s then on %2$s" : "過去%1$s、その後%2$s",
"_In %n minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["過去%1$sの%n分間、その後%2$s"],
"_In %n hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["過去%1$sの%n時間、その後%2$s"],
"_In %n day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["過去%1$sの%n日間、その後%2$s"],
"_In %n week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["過去%1$sの%n週間、その後%2$s"],
"_In %n month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["過去%1$sの%nヶ月、その後%2$s"],
"_In %n year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["過去%1$sの%n年間、その後%2$s"],
"In the past on %1$s then on %2$s and %3$s" : "過去%1$s、その後%2$sと%3$s",
"_In %n minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["%1$sの%n分間、その後%2$sと%3$s"],
"_In %n hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["%1$sの%n時間、その後%2$sと%3$s"],
"_In %n day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["%1$sの%n日間、その後%2$sと%3$s"],
"_In %n week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["%1$sの%n週間、その後%2$sと%3$s"],
"_In %n month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["%1$sの%nヶ月、その後%2$sと%3$s"],
"_In %n year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["%1$sの%n年間、その後%2$sと%3$s"],
"Could not generate next recurrence statement" : "次の再帰ステートメントを生成できませんでした",
"Cancelled: %1$s" : "キャンセル: %1$s",
"\"%1$s\" has been canceled" : "%1$sはキャンセルされました",
@@ -202,6 +232,8 @@
"Could not rename part file to final file, canceled by hook" : "最終ファイルの名前の変更が出来なかったため、フックによりキャンセルされました",
"Could not rename part file to final file" : "最終ファイルの名前の変更が出来ませんでした",
"Failed to check file size: %1$s" : "ファイルサイズの確認に失敗: %1$s",
"Could not open file: %1$s (%2$d), file does seem to exist" : "ファイルを開けませんでした: %1$s (%2$d)、ファイルは存在するようです",
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "ファイルを開けませんでした: %1$s (%2$d)、ファイルが存在しないようです",
"Encryption not ready: %1$s" : "暗号化の準備が出来ていません: %1$s",
"Failed to open file: %1$s" : "ファイルを開くのに失敗: %1$s",
"Failed to unlink: %1$s" : "リンクの解除に失敗: %1$s",
+2
View File
@@ -73,6 +73,8 @@ OC.L10N.register(
"Where: %s" : "Gdzie: %s",
"%1$s via %2$s" : "%1$s przez %2$s",
"In the past on %1$s for the entire day" : "W przeszłości w %1$s na cały dzień",
"_In %n minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Za minutę o %1$s przez cały dzień","Za %n minut o %1$s przez cały dzień","Za %n minut o %1$s przez cały dzień","Za %n minut o %1$s przez cały dzień"],
"_In %n hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Za %n godzinę o %1$s przez cały dzień","Za %n godzin o %1$s przez cały dzień","Za %n godzin o %1$s przez cały dzień","Za %n godziny o %1$s przez cały dzień"],
"In the past on %1$s between %2$s - %3$s" : "W przeszłości dnia %1$s między %2$s - %3$s",
"Could not generate when statement" : "Nie można wygenerować instrukcji when",
"Every Day for the entire day" : "Codziennie przez cały dzień",
+2
View File
@@ -71,6 +71,8 @@
"Where: %s" : "Gdzie: %s",
"%1$s via %2$s" : "%1$s przez %2$s",
"In the past on %1$s for the entire day" : "W przeszłości w %1$s na cały dzień",
"_In %n minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Za minutę o %1$s przez cały dzień","Za %n minut o %1$s przez cały dzień","Za %n minut o %1$s przez cały dzień","Za %n minut o %1$s przez cały dzień"],
"_In %n hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Za %n godzinę o %1$s przez cały dzień","Za %n godzin o %1$s przez cały dzień","Za %n godzin o %1$s przez cały dzień","Za %n godziny o %1$s przez cały dzień"],
"In the past on %1$s between %2$s - %3$s" : "W przeszłości dnia %1$s między %2$s - %3$s",
"Could not generate when statement" : "Nie można wygenerować instrukcji when",
"Every Day for the entire day" : "Codziennie przez cały dzień",
+21 -1
View File
@@ -111,9 +111,27 @@ OC.L10N.register(
"On specific dates for the entire day until %1$s" : "В определённые даты, весь день до %1$s",
"On specific dates between %1$s - %2$s until %3$s" : "В определённые даты с %1$s по %2$s до %3$s",
"In the past on %1$s" : "В прошлом, %1$s",
"_In %n minute on %1$s_::_In %n minutes on %1$s_" : ["Через минуту, %1$s","Через %n минуты, %1$s","Через %n минут, %1$s","Через %n минут, %1$s"],
"_In %n hour on %1$s_::_In %n hours on %1$s_" : ["Через час, %1$s","Через %n часа, %1$s","Через %n часов, %1$s","Через %n часов, %1$s"],
"_In %n day on %1$s_::_In %n days on %1$s_" : ["Через день, %1$s","Через %n дня, %1$s","Через %n дней, %1$s","Через %n дней, %1$s"],
"_In %n week on %1$s_::_In %n weeks on %1$s_" : ["Через неделю, %1$s","Через %n недели,%1$s","Через %n недель, %1$s","Через %n недель, %1$s"],
"_In %n month on %1$s_::_In %n months on %1$s_" : ["Через месяц, %1$s","Через %n месяца, %1$s","Через %n месяцев, %1$s","Через %n месяцев, %1$s"],
"_In %n year on %1$s_::_In %n years on %1$s_" : ["Через год, %1$s","Через %n года, %1$s","Через %n лет, %1$s","Через %n лет, %1$s"],
"In the past on %1$s then on %2$s" : "В прошлом, %1$s, затем %2$s",
"_In %n minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Через минуту, %1$s, затем %2$s","Через %n минуты, %1$s, затем %2$s","Через %n минут, %1$s, затем %2$s","Через %n минут, %1$s, затем %2$s"],
"_In %n hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Через час, %1$s, затем %2$s","Через %n часа, %1$s, затем %2$s","Через %n часов, %1$s, затем %2$s","Через %n часов, %1$s, затем %2$s"],
"_In %n day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Через день, %1$s, затем %2$s","Через %n дня, %1$s, затем %2$s","Через %n дней, %1$s, затем %2$s","Через %n дней, %1$s, затем %2$s"],
"_In %n week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["Через неделю, %1$s, затем %2$s","Через %n недели, %1$s, затем %2$s","Через %n недель, %1$s, затем %2$s","Через %n недель, %1$s, затем %2$s"],
"_In %n month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Через месяц, %1$s, затем %2$s","Через %n месяца, %1$s, затем %2$s","Через %n месяцев, %1$s, затем %2$s","Через %n месяцев, %1$s, затем %2$s"],
"_In %n year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["Через год, %1$s, затем %2$s","Через %n года, %1$s, затем %2$s","Через %n лет, %1$s, затем %2$s","Через %n лет, %1$s, затем %2$s"],
"In the past on %1$s then on %2$s and %3$s" : "В прошлом, %1$s, затем %2$s и %3$s",
"Could not generate next recurrence statement" : "Не удалось сгенерировать следующий оператор повторения",
"_In %n minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Через минуту, %1$s, затем %2$s и %3$s","Через %n минуты, %1$s, затем %2$s и %3$s","Через %n минут, %1$s, затем %2$s и %3$s","Через %n минут, %1$s, затем %2$s и %3$s"],
"_In %n hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Через час, %1$s, затем %2$s и %3$s","Через %n часа, %1$s, затем %2$s и %3$s","Через %n часов, %1$s, затем %2$s и %3$s","Через %n часов, %1$s, затем %2$s и %3$s"],
"_In %n day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Через день, %1$s, затем %2$s и %3$s","Через %n дня, %1$s, затем %2$s и %3$s","Через %n дней, %1$s, затем %2$s и %3$s","Через %n дней, %1$s, затем %2$s и %3$s"],
"_In %n week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["Через неделю, %1$s, затем %2$s и %3$s","Через %n недели, %1$s, затем %2$s и %3$s","Через %n недель, %1$s, затем %2$s и %3$s","Через %n недель, %1$s, затем %2$s и %3$s"],
"_In %n month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Через месяц, %1$s, затем %2$s и %3$s","Через %n месяца, %1$s, затем %2$s и %3$s","Через %n месяцев, %1$s, затем %2$s и %3$s","Через %n месяцев, %1$s, затем %2$s и %3$s"],
"_In %n year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Через год, %1$s, затем %2$s и %3$s","Через %n года, %1$s, затем %2$s и %3$s","Через %n лет, %1$s, затем %2$s и %3$s","Через %n лет, %1$s, затем %2$s и %3$s"],
"Could not generate next recurrence statement" : "Не удалось создать правило следующего повторения",
"Cancelled: %1$s" : "Событие отменено: %1$s",
"\"%1$s\" has been canceled" : "Событие «%1$s» отменено",
"Re: %1$s" : "Re: %1$s",
@@ -204,6 +222,8 @@ OC.L10N.register(
"Could not rename part file to final file, canceled by hook" : "Не удалось переименовать временный файл в результирующий, операция отменена вызовом обработчика",
"Could not rename part file to final file" : "Не удалось переименовать временный файл в результирующий",
"Failed to check file size: %1$s" : "Не удалось проверить размер файла: %1$s",
"Could not open file: %1$s (%2$d), file does seem to exist" : "Не удалось открыть файл: %1$s (%2$d), файл, похоже, существует",
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Не удалось открыть файл: %1$s (%2$d), файл, похоже, не существует",
"Encryption not ready: %1$s" : "Подсистема шифрования не готова: %1$s",
"Failed to open file: %1$s" : "Не удалось открыть файл: %1$s",
"Failed to unlink: %1$s" : "Не удалось разорвать связь: %1$s",
+21 -1
View File
@@ -109,9 +109,27 @@
"On specific dates for the entire day until %1$s" : "В определённые даты, весь день до %1$s",
"On specific dates between %1$s - %2$s until %3$s" : "В определённые даты с %1$s по %2$s до %3$s",
"In the past on %1$s" : "В прошлом, %1$s",
"_In %n minute on %1$s_::_In %n minutes on %1$s_" : ["Через минуту, %1$s","Через %n минуты, %1$s","Через %n минут, %1$s","Через %n минут, %1$s"],
"_In %n hour on %1$s_::_In %n hours on %1$s_" : ["Через час, %1$s","Через %n часа, %1$s","Через %n часов, %1$s","Через %n часов, %1$s"],
"_In %n day on %1$s_::_In %n days on %1$s_" : ["Через день, %1$s","Через %n дня, %1$s","Через %n дней, %1$s","Через %n дней, %1$s"],
"_In %n week on %1$s_::_In %n weeks on %1$s_" : ["Через неделю, %1$s","Через %n недели,%1$s","Через %n недель, %1$s","Через %n недель, %1$s"],
"_In %n month on %1$s_::_In %n months on %1$s_" : ["Через месяц, %1$s","Через %n месяца, %1$s","Через %n месяцев, %1$s","Через %n месяцев, %1$s"],
"_In %n year on %1$s_::_In %n years on %1$s_" : ["Через год, %1$s","Через %n года, %1$s","Через %n лет, %1$s","Через %n лет, %1$s"],
"In the past on %1$s then on %2$s" : "В прошлом, %1$s, затем %2$s",
"_In %n minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Через минуту, %1$s, затем %2$s","Через %n минуты, %1$s, затем %2$s","Через %n минут, %1$s, затем %2$s","Через %n минут, %1$s, затем %2$s"],
"_In %n hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Через час, %1$s, затем %2$s","Через %n часа, %1$s, затем %2$s","Через %n часов, %1$s, затем %2$s","Через %n часов, %1$s, затем %2$s"],
"_In %n day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Через день, %1$s, затем %2$s","Через %n дня, %1$s, затем %2$s","Через %n дней, %1$s, затем %2$s","Через %n дней, %1$s, затем %2$s"],
"_In %n week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["Через неделю, %1$s, затем %2$s","Через %n недели, %1$s, затем %2$s","Через %n недель, %1$s, затем %2$s","Через %n недель, %1$s, затем %2$s"],
"_In %n month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Через месяц, %1$s, затем %2$s","Через %n месяца, %1$s, затем %2$s","Через %n месяцев, %1$s, затем %2$s","Через %n месяцев, %1$s, затем %2$s"],
"_In %n year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["Через год, %1$s, затем %2$s","Через %n года, %1$s, затем %2$s","Через %n лет, %1$s, затем %2$s","Через %n лет, %1$s, затем %2$s"],
"In the past on %1$s then on %2$s and %3$s" : "В прошлом, %1$s, затем %2$s и %3$s",
"Could not generate next recurrence statement" : "Не удалось сгенерировать следующий оператор повторения",
"_In %n minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Через минуту, %1$s, затем %2$s и %3$s","Через %n минуты, %1$s, затем %2$s и %3$s","Через %n минут, %1$s, затем %2$s и %3$s","Через %n минут, %1$s, затем %2$s и %3$s"],
"_In %n hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Через час, %1$s, затем %2$s и %3$s","Через %n часа, %1$s, затем %2$s и %3$s","Через %n часов, %1$s, затем %2$s и %3$s","Через %n часов, %1$s, затем %2$s и %3$s"],
"_In %n day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Через день, %1$s, затем %2$s и %3$s","Через %n дня, %1$s, затем %2$s и %3$s","Через %n дней, %1$s, затем %2$s и %3$s","Через %n дней, %1$s, затем %2$s и %3$s"],
"_In %n week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["Через неделю, %1$s, затем %2$s и %3$s","Через %n недели, %1$s, затем %2$s и %3$s","Через %n недель, %1$s, затем %2$s и %3$s","Через %n недель, %1$s, затем %2$s и %3$s"],
"_In %n month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Через месяц, %1$s, затем %2$s и %3$s","Через %n месяца, %1$s, затем %2$s и %3$s","Через %n месяцев, %1$s, затем %2$s и %3$s","Через %n месяцев, %1$s, затем %2$s и %3$s"],
"_In %n year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Через год, %1$s, затем %2$s и %3$s","Через %n года, %1$s, затем %2$s и %3$s","Через %n лет, %1$s, затем %2$s и %3$s","Через %n лет, %1$s, затем %2$s и %3$s"],
"Could not generate next recurrence statement" : "Не удалось создать правило следующего повторения",
"Cancelled: %1$s" : "Событие отменено: %1$s",
"\"%1$s\" has been canceled" : "Событие «%1$s» отменено",
"Re: %1$s" : "Re: %1$s",
@@ -202,6 +220,8 @@
"Could not rename part file to final file, canceled by hook" : "Не удалось переименовать временный файл в результирующий, операция отменена вызовом обработчика",
"Could not rename part file to final file" : "Не удалось переименовать временный файл в результирующий",
"Failed to check file size: %1$s" : "Не удалось проверить размер файла: %1$s",
"Could not open file: %1$s (%2$d), file does seem to exist" : "Не удалось открыть файл: %1$s (%2$d), файл, похоже, существует",
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Не удалось открыть файл: %1$s (%2$d), файл, похоже, не существует",
"Encryption not ready: %1$s" : "Подсистема шифрования не готова: %1$s",
"Failed to open file: %1$s" : "Не удалось открыть файл: %1$s",
"Failed to unlink: %1$s" : "Не удалось разорвать связь: %1$s",
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
+1 -1
View File
@@ -67,7 +67,7 @@ class CalendarProvider implements ICalendarProvider {
$user = str_replace('principals/users/', '', $calendarInfo['principaluri']);
$path = 'calendars/' . $user . '/' . $calendarInfo['uri'];
if (isset($additionalFederatedProps[$path])) {
$calendarInfo = array_merge($calendarInfo, $additionalProperties[$path]);
$calendarInfo = array_merge($calendarInfo, $additionalFederatedProps[$path]);
}
$iCalendars[] = new FederatedCalendarImpl($calendarInfo, $this->calDavBackend);
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
+2
View File
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
+2
View File
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later

Some files were not shown because too many files have changed in this diff Show More