Merge branch 'stable31' into backport/53001/stable31

pull/53103/head
Marcel Klehr 2025-05-26 14:14:56 +07:00 committed by GitHub
commit 82c4a88512
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
287 changed files with 1584 additions and 711 deletions

@ -27,13 +27,22 @@ jobs:
steps:
- name: Set server major version environment
run: |
# retrieve version number from branch reference
server_major=$(echo "${{ github.base_ref }}" | sed -En 's/stable//p')
echo "server_major=$server_major" >> $GITHUB_ENV
echo "current_month=$(date +%Y-%m)" >> $GITHUB_ENV
- name: Checking if ${{ env.server_major }} is EOL
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const regex = /^stable(\d+)$/
const baseRef = context.payload.pull_request.base.ref
const match = baseRef.match(regex)
if (match) {
console.log('Setting server_major to ' + match[1]);
core.exportVariable('server_major', match[1]);
console.log('Setting current_month to ' + (new Date()).toISOString().substr(0, 7));
core.exportVariable('current_month', (new Date()).toISOString().substr(0, 7));
}
- name: Checking if server ${{ env.server_major }} is EOL
if: ${{ env.server_major != '' }}
run: |
curl -s https://raw.githubusercontent.com/nextcloud-releases/updater_server/production/config/major_versions.json \
| jq '.["${{ env.server_major }}"]["eol"] // "9999-99" | . >= "${{ env.current_month }}"' \

@ -28,8 +28,30 @@ jobs:
runs-on: ubuntu-latest-low
steps:
- name: Download version.php from ${{ github.base_ref }}
run: curl 'https://raw.githubusercontent.com/nextcloud/server/${{ github.base_ref }}/version.php' --output version.php
- name: Register server reference to fallback to master branch
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const baseRef = context.payload.pull_request.base.ref
if (baseRef === 'main' || baseRef === 'master') {
core.exportVariable('server_ref', 'master');
console.log('Setting server_ref to master');
} else {
const regex = /^stable(\d+)$/
const match = baseRef.match(regex)
if (match) {
core.exportVariable('server_ref', match[0]);
console.log('Setting server_ref to ' + match[0]);
} else {
console.log('Not based on master/main/stable*, so skipping freeze check');
}
}
- name: Download version.php from ${{ env.server_ref }}
if: ${{ env.server_ref != '' }}
run: curl 'https://raw.githubusercontent.com/nextcloud/server/${{ env.server_ref }}/version.php' --output version.php
- name: Run check
if: ${{ env.server_ref != '' }}
run: cat version.php | grep 'OC_VersionString' | grep -i -v 'RC'

@ -32,22 +32,44 @@ jobs:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: 3rdparty commit hash on current branch
id: actual
run: |
echo "commit=$(git submodule status | grep ' 3rdparty' | egrep -o '[a-f0-9]{40}')" >> "$GITHUB_OUTPUT"
- name: Register server reference to fallback to master branch
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const baseRef = context.payload.pull_request.base.ref
if (baseRef === 'main' || baseRef === 'master') {
core.exportVariable('server_ref', 'master');
console.log('Setting server_ref to master');
} else {
const regex = /^stable(\d+)$/
const match = baseRef.match(regex)
if (match) {
core.exportVariable('server_ref', match[0]);
console.log('Setting server_ref to ' + match[0]);
} else {
console.log('Not based on master/main/stable*, so skipping freeze check');
}
}
- name: Last 3rdparty commit on target branch
id: target
run: |
echo "commit=$(git ls-remote https://github.com/nextcloud/3rdparty refs/heads/${{ github.base_ref }} | awk '{ print $1}')" >> "$GITHUB_OUTPUT"
echo "commit=$(git ls-remote https://github.com/nextcloud/3rdparty refs/heads/${{ env.server_ref }} | awk '{ print $1}')" >> "$GITHUB_OUTPUT"
- name: Compare if 3rdparty commits are different
run: |
echo '3rdparty/ seems to not point to the last commit of the dedicated branch:'
echo 'Branch has: ${{ steps.actual.outputs.commit }}'
echo '${{ github.base_ref }} has: ${{ steps.target.outputs.commit }}'
echo '${{ env.server_ref }} has: ${{ steps.target.outputs.commit }}'
- name: Fail if 3rdparty commits are different
if: ${{ steps.changes.outputs.src != 'false' && steps.actual.outputs.commit != steps.target.outputs.commit }}

@ -38,24 +38,56 @@ jobs:
id: comment-branch
- name: Checkout ${{ steps.comment-branch.outputs.head_ref }}
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
fetch-depth: 0
token: ${{ secrets.COMMAND_BOT_PAT }}
ref: ${{ steps.comment-branch.outputs.head_ref }}
- name: Register server reference to fallback to master branch
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const baseRef = context.payload.pull_request.base.ref
if (baseRef === 'main' || baseRef === 'master') {
core.exportVariable('server_ref', 'master');
console.log('Setting server_ref to master');
} else {
const regex = /^stable(\d+)$/
const match = baseRef.match(regex)
if (match) {
core.exportVariable('server_ref', match[0]);
console.log('Setting server_ref to ' + match[0]);
} else {
console.log('Not based on master/main/stable*, so skipping freeze check');
}
}
- name: Setup git
run: |
git config --local user.email 'nextcloud-command@users.noreply.github.com'
git config --local user.name 'nextcloud-command'
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v3.0.1
if: ${{ env.server_ref == '' }}
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '-1'
- name: Pull 3rdparty
run: git submodule foreach 'if [ "$sm_path" == "3rdparty" ]; then git pull origin '"'"'${{ github.event.issue.pull_request.base.ref }}'"'"'; fi'
if: ${{ env.server_ref != '' }}
run: git submodule foreach 'if [ "$sm_path" == "3rdparty" ]; then git pull origin '"'"'${{ env.server_ref }}'"'"'; fi'
- name: Commit and push changes
if: ${{ env.server_ref != '' }}
run: |
git add 3rdparty
git commit -s -m 'Update submodule 3rdparty to latest ${{ github.event.issue.pull_request.base.ref }}'
git commit -s -m 'Update submodule 3rdparty to latest ${{ env.server_ref }}'
git push
- name: Add reaction on failure

@ -150,7 +150,7 @@ jobs:
SPLIT: ${{ matrix.total-containers }}
SPLIT_INDEX: ${{ matrix.containers == 'component' && 0 || matrix.containers }}
- name: Upload snapshots
- name: Upload snapshots and videos
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
if: always()
with:

@ -6,6 +6,9 @@ on:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-ftp-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@ -53,8 +56,9 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up ftpd

@ -6,6 +6,9 @@ on:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-s3-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@ -50,7 +53,7 @@ jobs:
services:
minio:
image: bitnami/minio
image: bitnami/minio@sha256:50cec18ac4184af4671a78aedd5554942c8ae105d51a465fa82037949046da01 # v2025.4.22
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
@ -60,8 +63,9 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
@ -129,13 +133,13 @@ jobs:
env:
SERVICES: s3
DEBUG: 1
image: localstack/localstack
image: localstack/localstack@sha256:b52c16663c70b7234f217cb993a339b46686e30a1a5d9279cb5feeb2202f837c # v4.4.0
ports:
- "4566:4566"
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: true

@ -6,6 +6,9 @@ on:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-sftp-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@ -53,8 +56,9 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up sftpd

@ -6,6 +6,9 @@ on:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-smb-kerberos-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@ -43,13 +46,15 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Checkout user_saml
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
repository: nextcloud/user_saml
path: apps/user_saml

@ -6,6 +6,9 @@ on:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-smb-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@ -50,14 +53,15 @@ jobs:
services:
samba:
image: ghcr.io/nextcloud/continuous-integration-samba:latest
image: ghcr.io/nextcloud/continuous-integration-samba:latest # zizmor: ignore[unpinned-images]
ports:
- 445:445
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}

@ -6,6 +6,9 @@ on:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-webdav-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@ -50,14 +53,15 @@ jobs:
services:
apache:
image: ghcr.io/nextcloud/continuous-integration-webdav-apache:latest
image: ghcr.io/nextcloud/continuous-integration-webdav-apache:latest # zizmor: ignore[unpinned-images]
ports:
- 8081:80
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}

@ -6,6 +6,9 @@ on:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-generic-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@ -49,8 +52,9 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}

@ -4,6 +4,9 @@ name: DAV integration tests
on:
pull_request:
permissions:
contents: read
concurrency:
group: integration-caldav-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@ -51,8 +54,9 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
@ -67,7 +71,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Python
uses: LizardByte/setup-python-action@master
uses: LizardByte/setup-python-action@f4367d0377eceec7e5e26da8f3863dd365b95a94 # v2025.426.160528
with:
python-version: '2.7'

@ -4,6 +4,9 @@ name: Litmus integration tests
on:
pull_request:
permissions:
contents: read
concurrency:
group: integration-litmus-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@ -50,8 +53,9 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}

@ -4,6 +4,9 @@ name: S3 primary storage integration tests
on:
pull_request:
permissions:
contents: read
concurrency:
group: integration-s3-primary-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@ -50,12 +53,12 @@ jobs:
services:
redis:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
ports:
- 6379:6379/tcp
minio:
image: bitnami/minio
image: bitnami/minio@sha256:50cec18ac4184af4671a78aedd5554942c8ae105d51a465fa82037949046da01 # v2025.4.22
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
@ -65,12 +68,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation

@ -77,12 +77,12 @@ jobs:
services:
redis:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
ports:
- 6379:6379/tcp
openldap:
image: ghcr.io/nextcloud/continuous-integration-openldap:openldap-7
image: ghcr.io/nextcloud/continuous-integration-openldap:openldap-7 # zizmor: ignore[unpinned-images]
ports:
- 389:389
env:
@ -95,12 +95,14 @@ jobs:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Checkout Talk app
if: ${{ matrix.test-suite == 'videoverification_features' }}
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
repository: nextcloud/spreed
path: apps/spreed
ref: ${{ matrix.spreed-versions }}
@ -109,12 +111,13 @@ jobs:
if: ${{ matrix.test-suite == 'sharing_features' }}
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
repository: nextcloud/activity
path: apps/activity
ref: ${{ matrix.activity-versions }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation

@ -49,6 +49,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Set up php8.1
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a # v2.33.0

@ -86,6 +86,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
@ -120,6 +122,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
@ -148,6 +152,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0

@ -6,6 +6,9 @@ on:
schedule:
- cron: "15 2 * * *"
permissions:
contents: read
concurrency:
group: object-storage-azure-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@ -54,7 +57,7 @@ jobs:
services:
azurite:
image: mcr.microsoft.com/azure-storage/azurite
image: mcr.microsoft.com/azure-storage/azurite@sha256:0a47e12e3693483cef5c71f35468b91d751611f172d2f97414e9c69113b106d9 # v3.34.0
env:
AZURITE_ACCOUNTS: nextcloud:bmV4dGNsb3Vk
ports:
@ -62,19 +65,20 @@ jobs:
options: --health-cmd="nc 127.0.0.1 10000 -z" --health-interval=1s --health-retries=30
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation

@ -6,6 +6,9 @@ on:
schedule:
- cron: "15 2 * * *"
permissions:
contents: read
concurrency:
group: object-storage-s3-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@ -54,13 +57,13 @@ jobs:
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
minio:
image: bitnami/minio
image: bitnami/minio@sha256:50cec18ac4184af4671a78aedd5554942c8ae105d51a465fa82037949046da01 # v2025.4.22
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
@ -70,12 +73,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation

@ -6,6 +6,9 @@ on:
schedule:
- cron: "15 2 * * *"
permissions:
contents: read
concurrency:
group: object-storage-swift-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@ -54,25 +57,26 @@ jobs:
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
swift:
image: ghcr.io/cscfi/docker-keystone-swift
image: ghcr.io/cscfi/docker-keystone-swift@sha256:e8b1ec21120ab9adc6ac6a2b98785fd273676439a8633fe898e37f2aea7e0712
ports:
- 5000:5000
- 8080:8080
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation

@ -4,6 +4,9 @@ name: Performance testing
on:
pull_request:
permissions:
contents: read
concurrency:
group: performance-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@ -14,6 +17,9 @@ jobs:
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
permissions:
pull-requests: write
strategy:
fail-fast: false
matrix:
@ -29,13 +35,14 @@ jobs:
exit 1
- name: Checkout server before PR
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.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@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a # v2.33.0
with:
php-version: ${{ matrix.php-versions }}
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
@ -49,7 +56,7 @@ jobs:
php -S localhost:8080 &
- name: Apply blueprint
uses: icewind1991/blueprint@v0.1.2
uses: icewind1991/blueprint@00504403f76cb2a09efd0d16793575055e6f63cb # v0.1.2
with:
blueprint: tests/blueprints/basic.toml
ref: ${{ github.event.pull_request.head.ref }}
@ -66,7 +73,7 @@ jobs:
output: before.json
profiler-branch: stable31
- name: Apply PR
- name: Apply PR # zizmor: ignore[template-injection]
run: |
git remote add pr '${{ github.event.pull_request.head.repo.clone_url }}'
git fetch pr '${{ github.event.pull_request.head.ref }}'
@ -91,14 +98,14 @@ jobs:
- name: Upload profiles
if: always()
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
with:
name: profiles
path: |
before.json
after.json
- uses: actions/github-script@v7
- uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
if: failure() && steps.compare.outcome == 'failure'
with:
github-token: ${{secrets.GITHUB_TOKEN}}

@ -32,8 +32,9 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Install tools
@ -42,7 +43,7 @@ jobs:
sudo apt-get install -y ffmpeg imagemagick libmagickcore-6.q16-3-extra
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
extensions: ctype, curl, dom, fileinfo, gd, imagick, intl, json, mbstring, openssl, pdo_sqlite, posix, sqlite, xml, zip, apcu

@ -71,7 +71,7 @@ jobs:
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3

@ -64,19 +64,20 @@ jobs:
services:
memcached:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 11212:11212/tcp
- 11212:11212/udp
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation

@ -62,13 +62,13 @@ jobs:
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
mysql:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 4444:3306/tcp
env:
@ -78,7 +78,7 @@ jobs:
MYSQL_DATABASE: oc_autotest
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
shard1:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 5001:3306/tcp
env:
@ -88,7 +88,7 @@ jobs:
MYSQL_DATABASE: nextcloud
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
shard2:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 5002:3306/tcp
env:
@ -98,7 +98,7 @@ jobs:
MYSQL_DATABASE: nextcloud
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
shard3:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 5003:3306/tcp
env:
@ -108,7 +108,7 @@ jobs:
MYSQL_DATABASE: nextcloud
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
shard4:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 5004:3306/tcp
env:
@ -120,12 +120,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation

@ -71,13 +71,13 @@ jobs:
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
mysql:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 4444:3306/tcp
env:

@ -67,19 +67,20 @@ jobs:
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation

@ -6,6 +6,9 @@ on:
schedule:
- cron: "15 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-object-store-primary-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@ -54,13 +57,13 @@ jobs:
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
minio:
image: bitnami/minio
image: bitnami/minio@sha256:50cec18ac4184af4671a78aedd5554942c8ae105d51a465fa82037949046da01 # v2025.4.22
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
@ -70,12 +73,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
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

@ -76,7 +76,7 @@ jobs:
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3

@ -72,13 +72,13 @@ jobs:
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
postgres:
image: ghcr.io/nextcloud/continuous-integration-postgres-${{ matrix.postgres-versions }}:latest
image: ghcr.io/nextcloud/continuous-integration-postgres-${{ matrix.postgres-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 4444:5432/tcp
env:

@ -67,7 +67,7 @@ jobs:
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3

@ -7,6 +7,9 @@ on:
schedule:
- cron: "0 0 * * *"
permissions:
contents: read
jobs:
stale:
runs-on: ubuntu-latest
@ -17,7 +20,7 @@ jobs:
issues: write
steps:
- uses: actions/stale@v9
- uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9
with:
repo-token: ${{ secrets.COMMAND_BOT_PAT }}
stale-issue-message: >

@ -13,6 +13,9 @@ on:
- '.github/workflows/static-code-analysis.yml'
- '**.php'
permissions:
contents: read
concurrency:
group: static-code-analysis-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@ -27,10 +30,11 @@ jobs:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: '8.1'
extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,imagick,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
@ -57,10 +61,11 @@ jobs:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: '8.1'
extensions: ctype,curl,dom,fileinfo,ftp,gd,imagick,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
@ -78,7 +83,7 @@ jobs:
- name: Upload Security Analysis results to GitHub
if: always()
uses: github/codeql-action/upload-sarif@v3
uses: github/codeql-action/upload-sarif@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3
with:
sarif_file: results.sarif
@ -91,10 +96,11 @@ jobs:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: '8.1'
extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
@ -121,10 +127,11 @@ jobs:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: '8.1'
extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip

@ -7,6 +7,9 @@ on:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
jobs:
update-ca-certificate-bundle:
runs-on: ubuntu-latest
@ -19,8 +22,9 @@ jobs:
name: update-ca-certificate-bundle-${{ matrix.branches }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
ref: ${{ matrix.branches }}
submodules: true
@ -28,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@5e914681df9dc83aa4e4905692ca88beb2f9e91f
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'fix(security): Update CA certificate bundle'

@ -7,6 +7,9 @@ on:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
jobs:
update-code-signing-crl:
runs-on: ubuntu-latest
@ -19,8 +22,9 @@ jobs:
name: update-code-signing-crl-${{ matrix.branches }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
ref: ${{ matrix.branches }}
submodules: true
@ -31,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@5e914681df9dc83aa4e4905692ca88beb2f9e91f
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'fix(security): Update code signing revocation list'

@ -56,6 +56,7 @@
<commands>
<command>OCA\DAV\Command\ClearCalendarUnshares</command>
<command>OCA\DAV\Command\ClearContactsPhotoCache</command>
<command>OCA\DAV\Command\CreateAddressBook</command>
<command>OCA\DAV\Command\CreateCalendar</command>
<command>OCA\DAV\Command\CreateSubscription</command>

@ -155,6 +155,7 @@ return array(
'OCA\\DAV\\CardDAV\\Validation\\CardDavValidatePlugin' => $baseDir . '/../lib/CardDAV/Validation/CardDavValidatePlugin.php',
'OCA\\DAV\\CardDAV\\Xml\\Groups' => $baseDir . '/../lib/CardDAV/Xml/Groups.php',
'OCA\\DAV\\Command\\ClearCalendarUnshares' => $baseDir . '/../lib/Command/ClearCalendarUnshares.php',
'OCA\\DAV\\Command\\ClearContactsPhotoCache' => $baseDir . '/../lib/Command/ClearContactsPhotoCache.php',
'OCA\\DAV\\Command\\CreateAddressBook' => $baseDir . '/../lib/Command/CreateAddressBook.php',
'OCA\\DAV\\Command\\CreateCalendar' => $baseDir . '/../lib/Command/CreateCalendar.php',
'OCA\\DAV\\Command\\CreateSubscription' => $baseDir . '/../lib/Command/CreateSubscription.php',

@ -170,6 +170,7 @@ class ComposerStaticInitDAV
'OCA\\DAV\\CardDAV\\Validation\\CardDavValidatePlugin' => __DIR__ . '/..' . '/../lib/CardDAV/Validation/CardDavValidatePlugin.php',
'OCA\\DAV\\CardDAV\\Xml\\Groups' => __DIR__ . '/..' . '/../lib/CardDAV/Xml/Groups.php',
'OCA\\DAV\\Command\\ClearCalendarUnshares' => __DIR__ . '/..' . '/../lib/Command/ClearCalendarUnshares.php',
'OCA\\DAV\\Command\\ClearContactsPhotoCache' => __DIR__ . '/..' . '/../lib/Command/ClearContactsPhotoCache.php',
'OCA\\DAV\\Command\\CreateAddressBook' => __DIR__ . '/..' . '/../lib/Command/CreateAddressBook.php',
'OCA\\DAV\\Command\\CreateCalendar' => __DIR__ . '/..' . '/../lib/Command/CreateCalendar.php',
'OCA\\DAV\\Command\\CreateSubscription' => __DIR__ . '/..' . '/../lib/Command/CreateSubscription.php',

@ -156,9 +156,10 @@ class IMipPlugin extends SabreIMipPlugin {
$iTipMessage->scheduleStatus = '5.0; EMail delivery failed';
return;
}
// Don't send emails to things
if ($this->imipService->isRoomOrResource($attendee)) {
$this->logger->debug('No invitation sent as recipient is room or resource', [
// Don't send emails to rooms, resources and circles
if ($this->imipService->isRoomOrResource($attendee)
|| $this->imipService->isCircle($attendee)) {
$this->logger->debug('No invitation sent as recipient is room, resource or circle', [
'attendee' => $recipient,
]);
$iTipMessage->scheduleStatus = '1.0;We got the message, but it\'s not significant enough to warrant an email';

@ -1155,6 +1155,21 @@ class IMipService {
return false;
}
public function isCircle(Property $attendee): bool {
$cuType = $attendee->offsetGet('CUTYPE');
if (!$cuType instanceof Parameter) {
return false;
}
$uri = $attendee->getValue();
if (!$uri) {
return false;
}
$cuTypeValue = $cuType->getValue();
return $cuTypeValue === 'GROUP' && str_starts_with($uri, 'mailto:circle+');
}
public function minimizeInterval(\DateInterval $dateInterval): array {
// evaluate if time interval is in the past
if ($dateInterval->invert == 1) {

@ -0,0 +1,75 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\DAV\Command;
use OCP\Files\AppData\IAppDataFactory;
use OCP\Files\NotPermittedException;
use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Helper\ProgressBar;
use Symfony\Component\Console\Helper\QuestionHelper;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Question\ConfirmationQuestion;
#[AsCommand(
name: 'dav:clear-contacts-photo-cache',
description: 'Clear cached contact photos',
hidden: false,
)]
class ClearContactsPhotoCache extends Command {
public function __construct(
private IAppDataFactory $appDataFactory,
) {
parent::__construct();
}
protected function execute(InputInterface $input, OutputInterface $output): int {
$photoCacheAppData = $this->appDataFactory->get('dav-photocache');
$folders = $photoCacheAppData->getDirectoryListing();
$countFolders = count($folders);
if ($countFolders === 0) {
$output->writeln('No cached contact photos found.');
return self::SUCCESS;
}
$output->writeln('Found ' . count($folders) . ' cached contact photos.');
/** @var QuestionHelper $helper */
$helper = $this->getHelper('question');
$question = new ConfirmationQuestion('Please confirm to clear the contacts photo cache [y/n] ', true);
if ($helper->ask($input, $output, $question) === false) {
$output->writeln('Clearing the contacts photo cache aborted.');
return self::SUCCESS;
}
$progressBar = new ProgressBar($output, $countFolders);
$progressBar->start();
foreach ($folders as $folder) {
try {
$folder->delete();
} catch (NotPermittedException) {
}
$progressBar->advance();
}
$progressBar->finish();
$output->writeln('');
$output->writeln('Contacts photo cache cleared.');
return self::SUCCESS;
}
}

@ -50,8 +50,10 @@ class GroupPrincipalBackend implements BackendInterface {
$principals = [];
if ($prefixPath === self::PRINCIPAL_PREFIX) {
foreach ($this->groupManager->search('') as $user) {
$principals[] = $this->groupToPrincipal($user);
foreach ($this->groupManager->search('') as $group) {
if (!$group->hideFromCollaboration()) {
$principals[] = $this->groupToPrincipal($group);
}
}
}
@ -77,7 +79,7 @@ class GroupPrincipalBackend implements BackendInterface {
$name = urldecode($elements[2]);
$group = $this->groupManager->get($name);
if (!is_null($group)) {
if ($group !== null && !$group->hideFromCollaboration()) {
return $this->groupToPrincipal($group);
}

@ -218,6 +218,10 @@ class IMipPluginTest extends TestCase {
->method('isRoomOrResource')
->with($atnd)
->willReturn(false);
$this->service->expects(self::once())
->method('isCircle')
->with($atnd)
->willReturn(false);
$this->service->expects(self::once())
->method('buildBodyData')
->with($newVevent, $oldVEvent)
@ -321,6 +325,88 @@ class IMipPluginTest extends TestCase {
->method('isRoomOrResource')
->with($room)
->willReturn(true);
$this->service->expects(self::never())
->method('isCircle');
$this->service->expects(self::never())
->method('buildBodyData');
$this->user->expects(self::any())
->method('getUID')
->willReturn('user1');
$this->user->expects(self::any())
->method('getDisplayName')
->willReturn('Mr. Wizard');
$this->userSession->expects(self::any())
->method('getUser')
->willReturn($this->user);
$this->service->expects(self::never())
->method('getFrom');
$this->service->expects(self::never())
->method('addSubjectAndHeading');
$this->service->expects(self::never())
->method('addBulletList');
$this->service->expects(self::never())
->method('getAttendeeRsvpOrReqForParticipant');
$this->config->expects(self::never())
->method('getValueString');
$this->service->expects(self::never())
->method('createInvitationToken');
$this->service->expects(self::never())
->method('addResponseButtons');
$this->service->expects(self::never())
->method('addMoreOptionsButton');
$this->mailer->expects(self::never())
->method('send');
$this->plugin->schedule($message);
$this->assertEquals('1.0', $message->getScheduleStatus());
}
public function testAttendeeIsCircle(): void {
$message = new Message();
$message->method = 'REQUEST';
$newVCalendar = new VCalendar();
$newVevent = new VEvent($newVCalendar, 'one', array_merge([
'UID' => 'uid-1234',
'SEQUENCE' => 1,
'SUMMARY' => 'Fellowship meeting without (!) Boromir',
'DTSTART' => new \DateTime('2016-01-01 00:00:00')
], []));
$newVevent->add('ORGANIZER', 'mailto:gandalf@wiz.ard');
$newVevent->add('ATTENDEE', 'mailto:' . 'circle+82utEV1Fle8wvxndZLK5TVAPtxj8IIe@middle.earth', ['RSVP' => 'TRUE', 'CN' => 'The Fellowship', 'CUTYPE' => 'GROUP']);
$newVevent->add('ATTENDEE', 'mailto:' . 'boromir@tra.it.or', ['RSVP' => 'TRUE', 'MEMBER' => 'circle+82utEV1Fle8wvxndZLK5TVAPtxj8IIe@middle.earth']);
$message->message = $newVCalendar;
$message->sender = 'mailto:gandalf@wiz.ard';
$message->senderName = 'Mr. Wizard';
$message->recipient = 'mailto:' . 'circle+82utEV1Fle8wvxndZLK5TVAPtxj8IIe@middle.earth';
$attendees = $newVevent->select('ATTENDEE');
$circle = '';
foreach ($attendees as $attendee) {
if (strcasecmp($attendee->getValue(), $message->recipient) === 0) {
$circle = $attendee;
}
}
$this->assertNotEmpty($circle, 'Failed to find attendee belonging to the circle');
$this->service->expects(self::once())
->method('getLastOccurrence')
->willReturn(1496912700);
$this->mailer->expects(self::once())
->method('validateMailAddress')
->with('circle+82utEV1Fle8wvxndZLK5TVAPtxj8IIe@middle.earth')
->willReturn(true);
$this->eventComparisonService->expects(self::once())
->method('findModified')
->willReturn(['new' => [$newVevent], 'old' => null]);
$this->service->expects(self::once())
->method('getCurrentAttendee')
->with($message)
->willReturn($circle);
$this->service->expects(self::once())
->method('isRoomOrResource')
->with($circle)
->willReturn(false);
$this->service->expects(self::once())
->method('isCircle')
->with($circle)
->willReturn(true);
$this->service->expects(self::never())
->method('buildBodyData');
$this->user->expects(self::any())
@ -422,6 +508,10 @@ class IMipPluginTest extends TestCase {
->method('isRoomOrResource')
->with($atnd)
->willReturn(false);
$this->service->expects(self::once())
->method('isCircle')
->with($atnd)
->willReturn(false);
$this->service->expects(self::once())
->method('buildBodyData')
->with($newVevent, null)
@ -553,6 +643,10 @@ class IMipPluginTest extends TestCase {
->method('isRoomOrResource')
->with($atnd)
->willReturn(false);
$this->service->expects(self::once())
->method('isCircle')
->with($atnd)
->willReturn(false);
$this->service->expects(self::once())
->method('buildBodyData')
->with($newVevent, null)
@ -659,6 +753,10 @@ class IMipPluginTest extends TestCase {
->method('isRoomOrResource')
->with($attendee)
->willReturn(false);
$this->service->expects(self::once())
->method('isCircle')
->with($attendee)
->willReturn(false);
$this->service->expects(self::once())
->method('buildBodyData')
->with($event, null)
@ -766,6 +864,10 @@ class IMipPluginTest extends TestCase {
->method('isRoomOrResource')
->with($atnd)
->willReturn(false);
$this->service->expects(self::once())
->method('isCircle')
->with($atnd)
->willReturn(false);
$this->service->expects(self::once())
->method('buildBodyData')
->with($newVevent, $oldVEvent)
@ -861,6 +963,10 @@ class IMipPluginTest extends TestCase {
->method('isRoomOrResource')
->with($atnd)
->willReturn(false);
$this->service->expects(self::once())
->method('isCircle')
->with($atnd)
->willReturn(false);
$this->service->expects(self::once())
->method('buildBodyData')
->with($newVevent, null)
@ -954,6 +1060,10 @@ class IMipPluginTest extends TestCase {
->method('isRoomOrResource')
->with($atnd)
->willReturn(false);
$this->service->expects(self::once())
->method('isCircle')
->with($atnd)
->willReturn(false);
$this->service->expects(self::once())
->method('buildBodyData')
->with($newVevent, null)

@ -46,12 +46,14 @@
<command>OCA\Files\Command\Delete</command>
<command>OCA\Files\Command\Copy</command>
<command>OCA\Files\Command\Move</command>
<command>OCA\Files\Command\SanitizeFilenames</command>
<command>OCA\Files\Command\Object\Delete</command>
<command>OCA\Files\Command\Object\Get</command>
<command>OCA\Files\Command\Object\Put</command>
<command>OCA\Files\Command\Object\Info</command>
<command>OCA\Files\Command\Object\ListObject</command>
<command>OCA\Files\Command\Object\Orphans</command>
<command>OCA\Files\Command\WindowsCompatibleFilenames</command>
</commands>
<settings>

@ -41,9 +41,11 @@ return array(
'OCA\\Files\\Command\\Object\\Put' => $baseDir . '/../lib/Command/Object/Put.php',
'OCA\\Files\\Command\\Put' => $baseDir . '/../lib/Command/Put.php',
'OCA\\Files\\Command\\RepairTree' => $baseDir . '/../lib/Command/RepairTree.php',
'OCA\\Files\\Command\\SanitizeFilenames' => $baseDir . '/../lib/Command/SanitizeFilenames.php',
'OCA\\Files\\Command\\Scan' => $baseDir . '/../lib/Command/Scan.php',
'OCA\\Files\\Command\\ScanAppData' => $baseDir . '/../lib/Command/ScanAppData.php',
'OCA\\Files\\Command\\TransferOwnership' => $baseDir . '/../lib/Command/TransferOwnership.php',
'OCA\\Files\\Command\\WindowsCompatibleFilenames' => $baseDir . '/../lib/Command/WindowsCompatibleFilenames.php',
'OCA\\Files\\Controller\\ApiController' => $baseDir . '/../lib/Controller/ApiController.php',
'OCA\\Files\\Controller\\ConversionApiController' => $baseDir . '/../lib/Controller/ConversionApiController.php',
'OCA\\Files\\Controller\\DirectEditingController' => $baseDir . '/../lib/Controller/DirectEditingController.php',

@ -56,9 +56,11 @@ class ComposerStaticInitFiles
'OCA\\Files\\Command\\Object\\Put' => __DIR__ . '/..' . '/../lib/Command/Object/Put.php',
'OCA\\Files\\Command\\Put' => __DIR__ . '/..' . '/../lib/Command/Put.php',
'OCA\\Files\\Command\\RepairTree' => __DIR__ . '/..' . '/../lib/Command/RepairTree.php',
'OCA\\Files\\Command\\SanitizeFilenames' => __DIR__ . '/..' . '/../lib/Command/SanitizeFilenames.php',
'OCA\\Files\\Command\\Scan' => __DIR__ . '/..' . '/../lib/Command/Scan.php',
'OCA\\Files\\Command\\ScanAppData' => __DIR__ . '/..' . '/../lib/Command/ScanAppData.php',
'OCA\\Files\\Command\\TransferOwnership' => __DIR__ . '/..' . '/../lib/Command/TransferOwnership.php',
'OCA\\Files\\Command\\WindowsCompatibleFilenames' => __DIR__ . '/..' . '/../lib/Command/WindowsCompatibleFilenames.php',
'OCA\\Files\\Controller\\ApiController' => __DIR__ . '/..' . '/../lib/Controller/ApiController.php',
'OCA\\Files\\Controller\\ConversionApiController' => __DIR__ . '/..' . '/../lib/Controller/ConversionApiController.php',
'OCA\\Files\\Controller\\DirectEditingController' => __DIR__ . '/..' . '/../lib/Controller/DirectEditingController.php',

@ -0,0 +1,168 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files\Command;
use Exception;
use OC\Core\Command\Base;
use OC\Files\FilenameValidator;
use OCP\Files\Folder;
use OCP\Files\IRootFolder;
use OCP\Files\NotPermittedException;
use OCP\IUser;
use OCP\IUserManager;
use OCP\IUserSession;
use OCP\L10N\IFactory;
use OCP\Lock\LockedException;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
class SanitizeFilenames extends Base {
private OutputInterface $output;
private string $charReplacement;
private bool $dryRun;
public function __construct(
private IUserManager $userManager,
private IRootFolder $rootFolder,
private IUserSession $session,
private IFactory $l10nFactory,
private FilenameValidator $filenameValidator,
) {
parent::__construct();
}
protected function configure(): void {
parent::configure();
$forbiddenCharacter = $this->filenameValidator->getForbiddenCharacters();
$charReplacement = array_diff([' ', '_', '-'], $forbiddenCharacter);
$charReplacement = reset($charReplacement) ?: '';
$this
->setName('files:sanitize-filenames')
->setDescription('Renames files to match naming constraints')
->addArgument(
'user_id',
InputArgument::OPTIONAL | InputArgument::IS_ARRAY,
'will only rename files the given user(s) have access to'
)
->addOption(
'dry-run',
mode: InputOption::VALUE_NONE,
description: 'Do not actually rename any files but just check filenames.',
)
->addOption(
'char-replacement',
'c',
mode: InputOption::VALUE_REQUIRED,
description: 'Replacement for invalid character (by default space, underscore or dash is used)',
default: $charReplacement,
);
}
protected function execute(InputInterface $input, OutputInterface $output): int {
$this->charReplacement = $input->getOption('char-replacement');
if ($this->charReplacement === '' || mb_strlen($this->charReplacement) > 1) {
$output->writeln('<error>No character replacement given</error>');
return 1;
}
$this->dryRun = $input->getOption('dry-run');
if ($this->dryRun) {
$output->writeln('<info>Dry run is enabled, no actual renaming will be applied.</>');
}
$this->output = $output;
$users = $input->getArgument('user_id');
if (!empty($users)) {
foreach ($users as $userId) {
$user = $this->userManager->get($userId);
if ($user === null) {
$output->writeln("<error>User '$userId' does not exist - skipping</>");
continue;
}
$this->sanitizeUserFiles($user);
}
} else {
$this->userManager->callForSeenUsers($this->sanitizeUserFiles(...));
}
return self::SUCCESS;
}
private function sanitizeUserFiles(IUser $user): void {
// Set an active user so that event listeners can correctly work (e.g. files versions)
$this->session->setVolatileActiveUser($user);
$this->output->writeln('<info>Analyzing files of ' . $user->getUID() . '</>');
$folder = $this->rootFolder->getUserFolder($user->getUID());
$this->sanitizeFiles($folder);
}
private function sanitizeFiles(Folder $folder): void {
foreach ($folder->getDirectoryListing() as $node) {
$this->output->writeln('scanning: ' . $node->getPath(), OutputInterface::VERBOSITY_VERBOSE);
try {
$oldName = $node->getName();
if (!$this->filenameValidator->isFilenameValid($oldName)) {
$newName = $this->sanitizeName($oldName);
$newName = $folder->getNonExistingName($newName);
$path = rtrim(dirname($node->getPath()), '/');
if (!$this->dryRun) {
$node->move("$path/$newName");
} elseif (!$folder->isCreatable()) {
// simulate error for dry run
throw new NotPermittedException();
}
$this->output->writeln('renamed: "' . $oldName . '" to "' . $newName . '"');
}
} catch (LockedException) {
$this->output->writeln('<comment>skipping: ' . $node->getPath() . ' (file is locked)</>');
} catch (NotPermittedException) {
$this->output->writeln('<comment>skipping: ' . $node->getPath() . ' (no permissions)</>');
} catch (Exception) {
$this->output->writeln('<error>failed: ' . $node->getPath() . '</>');
}
if ($node instanceof Folder) {
$this->sanitizeFiles($node);
}
}
}
private function sanitizeName(string $name): string {
$l10n = $this->l10nFactory->get('files');
foreach ($this->filenameValidator->getForbiddenExtensions() as $extension) {
if (str_ends_with($name, $extension)) {
$name = substr($name, 0, strlen($name) - strlen($extension));
}
}
$basename = substr($name, 0, strpos($name, '.', 1) ?: null);
if (in_array($basename, $this->filenameValidator->getForbiddenBasenames())) {
$name = str_replace($basename, $l10n->t('%1$s (renamed)', [$basename]), $name);
}
if ($name === '') {
$name = $l10n->t('renamed file');
}
$forbiddenCharacter = $this->filenameValidator->getForbiddenCharacters();
$name = str_replace($forbiddenCharacter, $this->charReplacement, $name);
return $name;
}
}

@ -0,0 +1,52 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files\Command;
use OC\Core\Command\Base;
use OCA\Files\Service\SettingsService;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class WindowsCompatibleFilenames extends Base {
public function __construct(
private SettingsService $service,
) {
parent::__construct();
}
protected function configure(): void {
parent::configure();
$this
->setName('files:windows-compatible-filenames')
->setDescription('Enforce naming constraints for windows compatible filenames')
->addOption('enable', description: 'Enable windows naming constraints')
->addOption('disable', description: 'Disable windows naming constraints');
}
protected function execute(InputInterface $input, OutputInterface $output): int {
if ($input->getOption('enable')) {
if ($this->service->hasFilesWindowsSupport()) {
$output->writeln('<error>Windows compatible filenames already enforced.</error>', OutputInterface::VERBOSITY_VERBOSE);
}
$this->service->setFilesWindowsSupport(true);
$output->writeln('Windows compatible filenames enforced.');
} elseif ($input->getOption('disable')) {
if (!$this->service->hasFilesWindowsSupport()) {
$output->writeln('<error>Windows compatible filenames already disabled.</error>', OutputInterface::VERBOSITY_VERBOSE);
}
$this->service->setFilesWindowsSupport(false);
$output->writeln('Windows compatible filename constraints removed.');
} else {
$output->writeln('Windows compatible filenames are ' . ($this->service->hasFilesWindowsSupport() ? 'enforced' : 'disabled'));
}
return self::SUCCESS;
}
}

@ -9,6 +9,7 @@ namespace OCA\Files\Settings;
use OCA\Files\Service\SettingsService;
use OCP\IL10N;
use OCP\IURLGenerator;
use OCP\IUser;
use OCP\Settings\DeclarativeSettingsTypes;
use OCP\Settings\IDeclarativeSettingsFormWithHandlers;
@ -18,6 +19,7 @@ class DeclarativeAdminSettings implements IDeclarativeSettingsFormWithHandlers {
public function __construct(
private IL10N $l,
private SettingsService $service,
private IURLGenerator $urlGenerator,
) {
}
@ -44,7 +46,12 @@ class DeclarativeAdminSettings implements IDeclarativeSettingsFormWithHandlers {
'section_id' => 'server',
'storage_type' => DeclarativeSettingsTypes::STORAGE_TYPE_EXTERNAL,
'title' => $this->l->t('Files compatibility'),
'description' => $this->l->t('Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed.'),
'doc_url' => $this->urlGenerator->linkToDocs('admin-windows-compatible-filenames'),
'description' => (
$this->l->t('Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed.')
. "\n" . $this->l->t('After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner.')
. "\n" . $this->l->t('It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command.')
),
'fields' => [
[

@ -285,7 +285,6 @@ class Swift extends Common {
public function stat(string $path): array|false {
$path = $this->normalizePath($path);
if ($path === '.') {
$path = '';
} elseif ($this->is_dir($path)) {
@ -305,22 +304,23 @@ class Swift extends Common {
return false;
}
$dateTime = $object->lastModified ? \DateTime::createFromFormat(\DateTime::RFC1123, $object->lastModified) : false;
$mtime = $dateTime ? $dateTime->getTimestamp() : null;
$objectMetadata = $object->getMetadata();
if (isset($objectMetadata['timestamp'])) {
$mtime = $objectMetadata['timestamp'];
$mtime = null;
if (!empty($object->lastModified)) {
$dateTime = \DateTime::createFromFormat(\DateTime::RFC1123, $object->lastModified);
if ($dateTime !== false) {
$mtime = $dateTime->getTimestamp();
}
}
if (!empty($mtime)) {
$mtime = floor($mtime);
if (is_numeric($object->getMetadata()['timestamp'] ?? null)) {
$mtime = (float)$object->getMetadata()['timestamp'];
}
$stat = [];
$stat['size'] = (int)$object->contentLength;
$stat['mtime'] = $mtime;
$stat['atime'] = time();
return $stat;
return [
'size' => (int)$object->contentLength,
'mtime' => isset($mtime) ? (int)floor($mtime) : null,
'atime' => time(),
];
}
public function filetype(string $path) {

@ -583,12 +583,9 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "من المهم دائماً إنشاء نسخ احتياطية بشكل معتاد لبياناتك. في حال كنت مُفعِّلا لخاصية التشفير تأكد دائما من حصولك على رمز التشفير بالإضافة الى البيانات.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "إرجِع إلى توثيق المُشرِف حول كيفية تشفير الملفات الموجودة يدويّاً أيضاً.",
"This is the final warning: Do you really want to enable encryption?" : "هذا هو التحذير الاخير: هل تريد حقا تفعيل خاصية التشفير؟",
"Failed to remove group \"{group}\"" : "تعذّر حذف المجموعة \"{group}\"",
"Please confirm the group removal" : "رجاءً، قم بتأكيد حذف المجموعة",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "أنت على وشك إزالة المجموعة \"{group}\". لن يتم حذف الحسابات.",
"Submit" : "إرسال ",
"Rename group" : "تغيير تسمية مجموعة",
"Remove group" : "حذف مجموعة",
"Current password" : "كلمة المرور الحالية",
"New password" : "كلمة المرور الجديدة",
"Change password" : "تغيير كلمة المرور",

@ -581,12 +581,9 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "من المهم دائماً إنشاء نسخ احتياطية بشكل معتاد لبياناتك. في حال كنت مُفعِّلا لخاصية التشفير تأكد دائما من حصولك على رمز التشفير بالإضافة الى البيانات.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "إرجِع إلى توثيق المُشرِف حول كيفية تشفير الملفات الموجودة يدويّاً أيضاً.",
"This is the final warning: Do you really want to enable encryption?" : "هذا هو التحذير الاخير: هل تريد حقا تفعيل خاصية التشفير؟",
"Failed to remove group \"{group}\"" : "تعذّر حذف المجموعة \"{group}\"",
"Please confirm the group removal" : "رجاءً، قم بتأكيد حذف المجموعة",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "أنت على وشك إزالة المجموعة \"{group}\". لن يتم حذف الحسابات.",
"Submit" : "إرسال ",
"Rename group" : "تغيير تسمية مجموعة",
"Remove group" : "حذف مجموعة",
"Current password" : "كلمة المرور الحالية",
"New password" : "كلمة المرور الجديدة",
"Change password" : "تغيير كلمة المرور",

@ -324,11 +324,9 @@ OC.L10N.register(
"No encryption module loaded, please enable an encryption module in the app menu." : "Nun se cargó nengún módulu de cifráu, activa unu nel menú d'aplicaciones.",
"Enable encryption" : "Activar el cifráu",
"Please read carefully before activating server-side encryption:" : "Llei con procuru enantes d'activar el cifráu nel sirvidor:",
"Failed to remove group \"{group}\"" : "Nun se pue quitar el grupu «{group}»",
"Please confirm the group removal" : "Confirma'l desaniciu del grupu",
"Submit" : "Unviar",
"Rename group" : "Renomar el grupu",
"Remove group" : "Quitar el grupu",
"Current password" : "Contraseña actual",
"New password" : "Contraseña nueva",
"Change password" : "Camudar la contraseña",

@ -322,11 +322,9 @@
"No encryption module loaded, please enable an encryption module in the app menu." : "Nun se cargó nengún módulu de cifráu, activa unu nel menú d'aplicaciones.",
"Enable encryption" : "Activar el cifráu",
"Please read carefully before activating server-side encryption:" : "Llei con procuru enantes d'activar el cifráu nel sirvidor:",
"Failed to remove group \"{group}\"" : "Nun se pue quitar el grupu «{group}»",
"Please confirm the group removal" : "Confirma'l desaniciu del grupu",
"Submit" : "Unviar",
"Rename group" : "Renomar el grupu",
"Remove group" : "Quitar el grupu",
"Current password" : "Contraseña actual",
"New password" : "Contraseña nueva",
"Change password" : "Camudar la contraseña",

@ -256,7 +256,6 @@ OC.L10N.register(
"This is the final warning: Do you really want to enable encryption?" : "Това е последно предупреждение: Наистина ли искате да активирате криптирането?",
"Submit" : "Изпращане",
"Rename group" : "Преименуване на група",
"Remove group" : "Премахване на групата",
"Current password" : "Текуща парола",
"New password" : "Нова парола",
"Change password" : "Промени паролата",

@ -254,7 +254,6 @@
"This is the final warning: Do you really want to enable encryption?" : "Това е последно предупреждение: Наистина ли искате да активирате криптирането?",
"Submit" : "Изпращане",
"Rename group" : "Преименуване на група",
"Remove group" : "Премахване на групата",
"Current password" : "Текуща парола",
"New password" : "Нова парола",
"Change password" : "Промени паролата",

@ -197,7 +197,6 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Mat eo kaout ur vackup reoliek eus o roadennoù, ha e bezit sur ober ur vackup eus an alrv'hwez sifrañ gant o roadennoù sifret.",
"This is the final warning: Do you really want to enable encryption?" : "Kemenadenn diwall divezhañ : Sur oc'h aotreañ ar sifrañ ?",
"Submit" : "Kinnig",
"Remove group" : "Lemel strollad",
"Current password" : "Ger-tremen hiziv",
"New password" : "Ger-tremen nevez",
"Change password" : "Cheñch ger-tremen",

@ -195,7 +195,6 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Mat eo kaout ur vackup reoliek eus o roadennoù, ha e bezit sur ober ur vackup eus an alrv'hwez sifrañ gant o roadennoù sifret.",
"This is the final warning: Do you really want to enable encryption?" : "Kemenadenn diwall divezhañ : Sur oc'h aotreañ ar sifrañ ?",
"Submit" : "Kinnig",
"Remove group" : "Lemel strollad",
"Current password" : "Ger-tremen hiziv",
"New password" : "Ger-tremen nevez",
"Change password" : "Cheñch ger-tremen",

@ -578,12 +578,9 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Sempre és bó crear còpies de seguretat de les vostres dades amb regularitat, en el cas de xifratge assegureu-vos de desar les claus de xifratge juntament amb les vostres dades a la còpia de seguretat.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Consulteu la documentació d'administració sobre com xifrar també manualment els fitxers existents.",
"This is the final warning: Do you really want to enable encryption?" : "Avís final: Realment voleu activar xifratge?",
"Failed to remove group \"{group}\"" : "No s'ha pogut suprimir el grup \"{group}\"",
"Please confirm the group removal" : "Confirmeu l'eliminació del grup",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Esteu a punt d'eliminar el grup \"{group}\". Els comptes NO es suprimiràn.",
"Submit" : "Envia",
"Rename group" : "Canvia el nom del grup",
"Remove group" : "Suprimir el grup",
"Current password" : "Contrasenya actual",
"New password" : "Contrasenya nova",
"Change password" : "Canvia la contrasenya",

@ -576,12 +576,9 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Sempre és bó crear còpies de seguretat de les vostres dades amb regularitat, en el cas de xifratge assegureu-vos de desar les claus de xifratge juntament amb les vostres dades a la còpia de seguretat.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Consulteu la documentació d'administració sobre com xifrar també manualment els fitxers existents.",
"This is the final warning: Do you really want to enable encryption?" : "Avís final: Realment voleu activar xifratge?",
"Failed to remove group \"{group}\"" : "No s'ha pogut suprimir el grup \"{group}\"",
"Please confirm the group removal" : "Confirmeu l'eliminació del grup",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Esteu a punt d'eliminar el grup \"{group}\". Els comptes NO es suprimiràn.",
"Submit" : "Envia",
"Rename group" : "Canvia el nom del grup",
"Remove group" : "Suprimir el grup",
"Current password" : "Contrasenya actual",
"New password" : "Contrasenya nova",
"Change password" : "Canvia la contrasenya",

@ -584,12 +584,9 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Je vždy dobré vytvářet pravidelné zálohy svých dat. V případě zapnutého šifrování také společně s daty zajistěte zálohu šifrovacích klíčů k nim.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Ohledně toho, jak ručně zašifrovat také existující soubory, nahlédněte do dokumentace pro správce.",
"This is the final warning: Do you really want to enable encryption?" : "Toto je poslední varování: Opravdu chcete zapnout šifrování?",
"Failed to remove group \"{group}\"" : "Nepodařilo se odebrat skupinu „{group}“",
"Please confirm the group removal" : "Potvrďte odstranění skupiny",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Chystáte se smazat skupinu „{group}“. Účty NEbudou smazány.",
"Submit" : "Odeslat",
"Rename group" : "Přejmenovat skupinu",
"Remove group" : "Odebrat skupinu",
"Current password" : "Stávající heslo",
"New password" : "Nové heslo",
"Change password" : "Změnit heslo",

@ -582,12 +582,9 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Je vždy dobré vytvářet pravidelné zálohy svých dat. V případě zapnutého šifrování také společně s daty zajistěte zálohu šifrovacích klíčů k nim.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Ohledně toho, jak ručně zašifrovat také existující soubory, nahlédněte do dokumentace pro správce.",
"This is the final warning: Do you really want to enable encryption?" : "Toto je poslední varování: Opravdu chcete zapnout šifrování?",
"Failed to remove group \"{group}\"" : "Nepodařilo se odebrat skupinu „{group}“",
"Please confirm the group removal" : "Potvrďte odstranění skupiny",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Chystáte se smazat skupinu „{group}“. Účty NEbudou smazány.",
"Submit" : "Odeslat",
"Rename group" : "Přejmenovat skupinu",
"Remove group" : "Odebrat skupinu",
"Current password" : "Stávající heslo",
"New password" : "Nové heslo",
"Change password" : "Změnit heslo",

@ -583,12 +583,9 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Det er altid godt at lave regelmæssige sikkerhedskopier af dine data, i tilfælde af kryptering skal du sørge for at tage backup af krypteringsnøglerne sammen med dine data.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Se administratordokumentationen om, hvordan man manuelt også krypterer eksisterende filer.",
"This is the final warning: Do you really want to enable encryption?" : "Dette er den sidste advarsel: Sikker på at du vil slå kryptering til?",
"Failed to remove group \"{group}\"" : "Kunne ikke slette gruppen \"{group}\"",
"Please confirm the group removal" : "Bekræft venligst sletning af gruppen",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Du er ved at fjerne gruppen \"{group}\". Konti indeholdt i gruppen vil IKKE blive slettet.",
"Submit" : "Tilføj",
"Rename group" : "Omdøb gruppe",
"Remove group" : "Fjern gruppe",
"Current password" : "Nuværende adgangskode",
"New password" : "Ny adgangskode",
"Change password" : "Skift kodeord",

@ -581,12 +581,9 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Det er altid godt at lave regelmæssige sikkerhedskopier af dine data, i tilfælde af kryptering skal du sørge for at tage backup af krypteringsnøglerne sammen med dine data.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Se administratordokumentationen om, hvordan man manuelt også krypterer eksisterende filer.",
"This is the final warning: Do you really want to enable encryption?" : "Dette er den sidste advarsel: Sikker på at du vil slå kryptering til?",
"Failed to remove group \"{group}\"" : "Kunne ikke slette gruppen \"{group}\"",
"Please confirm the group removal" : "Bekræft venligst sletning af gruppen",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Du er ved at fjerne gruppen \"{group}\". Konti indeholdt i gruppen vil IKKE blive slettet.",
"Submit" : "Tilføj",
"Rename group" : "Omdøb gruppe",
"Remove group" : "Fjern gruppe",
"Current password" : "Nuværende adgangskode",
"New password" : "Ny adgangskode",
"Change password" : "Skift kodeord",

@ -316,6 +316,8 @@ OC.L10N.register(
"64-bit" : "64-bit",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Anscheinend wird eine 32-Bit-PHP-Version verwendet. Nextcloud benötigt 64-Bit, um gut zu laufen. Bitte Betriebssystem und PHP auf 64-Bit aktualisieren!",
"Task Processing pickup speed" : "Abholgeschwindigkeit für Aufgabenverarbeitung",
"_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Die Geschwindigkeit der Aufgabenübernahme war in der letzten %n Stunde in Ordnung.","Die Geschwindigkeit der Aufgabenübernahme war in den letzten %n Stunden in Ordnung."],
"_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Die Aufgabenabholgeschwindigkeit war in der letzten %n Stunde langsam. Viele Aufgaben benötigten länger als 4 Minuten, um abgeholt zu werden. Erwäge die Einrichtung eines Workers, der Aufgaben im Hintergrund verarbeitet.","Die Aufgabenabholgeschwindigkeit war in den letzten %n Stunden langsam. Viele Aufgaben benötigten länger als 4 Minuten, um abgeholt zu werden. Erwägen Sie die Einrichtung eines Workers, der Aufgaben im Hintergrund verarbeitet."],
"Temporary space available" : "Temporärer Platz verfügbar",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Fehler beim Überprüfen des temporären PHP-Pfads - er wurde nicht ordnungsgemäß auf ein Verzeichnis festgelegt. Zurückgegebener Wert: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "Die PHP-Funktion \"disk_free_space\" ist deaktiviert, was die Überprüfung auf ausreichend Speicherplatz in den temporären Verzeichnissen verhindert.",
@ -584,12 +586,12 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Es ist immer gut, regelmäßig Datensicherungen zu erstellen. Sofern die Verschlüsselung genutzt wird, sollte auch eine Sicherung der Verschlüsselungsschlüssel zusammen mit den Daten durchgeführt werden.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Informationen zum manuellen Verschlüsseln vorhandener Dateien finden sich in der Administrationsdokumentation.",
"This is the final warning: Do you really want to enable encryption?" : "Dies ist die letzte Warnung: Soll die Verschlüsselung wirklich aktiviert werden?",
"Failed to remove group \"{group}\"" : "Die Gruppe \"{group}\" konnte nicht entfernt werden.",
"Failed to delete group \"{group}\"" : "Die Gruppe \"{group}\" konnte nicht gelöscht werden",
"Please confirm the group removal" : "Bitte die Löschung der Gruppe bestätigen",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Du bist im Begriff, die Gruppe \"{group}\" zu entfernen. Die Konten werden NICHT gelöscht.",
"You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Du bist im Begriff, die Gruppe \"{group}\" zu löschen. Die Konten werden NICHT gelöscht.",
"Submit" : "Übermitteln",
"Rename group" : "Gruppe umbenennen",
"Remove group" : "Gruppe entfernen",
"Delete group" : "Gruppe löschen",
"Current password" : "Aktuelles Passwort",
"New password" : "Neues Passwort",
"Change password" : "Passwort ändern",

@ -314,6 +314,8 @@
"64-bit" : "64-bit",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Anscheinend wird eine 32-Bit-PHP-Version verwendet. Nextcloud benötigt 64-Bit, um gut zu laufen. Bitte Betriebssystem und PHP auf 64-Bit aktualisieren!",
"Task Processing pickup speed" : "Abholgeschwindigkeit für Aufgabenverarbeitung",
"_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Die Geschwindigkeit der Aufgabenübernahme war in der letzten %n Stunde in Ordnung.","Die Geschwindigkeit der Aufgabenübernahme war in den letzten %n Stunden in Ordnung."],
"_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Die Aufgabenabholgeschwindigkeit war in der letzten %n Stunde langsam. Viele Aufgaben benötigten länger als 4 Minuten, um abgeholt zu werden. Erwäge die Einrichtung eines Workers, der Aufgaben im Hintergrund verarbeitet.","Die Aufgabenabholgeschwindigkeit war in den letzten %n Stunden langsam. Viele Aufgaben benötigten länger als 4 Minuten, um abgeholt zu werden. Erwägen Sie die Einrichtung eines Workers, der Aufgaben im Hintergrund verarbeitet."],
"Temporary space available" : "Temporärer Platz verfügbar",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Fehler beim Überprüfen des temporären PHP-Pfads - er wurde nicht ordnungsgemäß auf ein Verzeichnis festgelegt. Zurückgegebener Wert: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "Die PHP-Funktion \"disk_free_space\" ist deaktiviert, was die Überprüfung auf ausreichend Speicherplatz in den temporären Verzeichnissen verhindert.",
@ -582,12 +584,12 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Es ist immer gut, regelmäßig Datensicherungen zu erstellen. Sofern die Verschlüsselung genutzt wird, sollte auch eine Sicherung der Verschlüsselungsschlüssel zusammen mit den Daten durchgeführt werden.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Informationen zum manuellen Verschlüsseln vorhandener Dateien finden sich in der Administrationsdokumentation.",
"This is the final warning: Do you really want to enable encryption?" : "Dies ist die letzte Warnung: Soll die Verschlüsselung wirklich aktiviert werden?",
"Failed to remove group \"{group}\"" : "Die Gruppe \"{group}\" konnte nicht entfernt werden.",
"Failed to delete group \"{group}\"" : "Die Gruppe \"{group}\" konnte nicht gelöscht werden",
"Please confirm the group removal" : "Bitte die Löschung der Gruppe bestätigen",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Du bist im Begriff, die Gruppe \"{group}\" zu entfernen. Die Konten werden NICHT gelöscht.",
"You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Du bist im Begriff, die Gruppe \"{group}\" zu löschen. Die Konten werden NICHT gelöscht.",
"Submit" : "Übermitteln",
"Rename group" : "Gruppe umbenennen",
"Remove group" : "Gruppe entfernen",
"Delete group" : "Gruppe löschen",
"Current password" : "Aktuelles Passwort",
"New password" : "Neues Passwort",
"Change password" : "Passwort ändern",

@ -316,6 +316,8 @@ OC.L10N.register(
"64-bit" : "64-bit",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Anscheinend verwenden Sie eine 32-Bit-PHP-Version. Nextcloud benötigt 64-Bit, um gut zu laufen. Bitte aktualisieren Sie Ihr Betriebssystem und PHP auf 64-Bit!",
"Task Processing pickup speed" : "Abholgeschwindigkeit für Aufgabenverarbeitung",
"_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Die Geschwindigkeit der Aufgabenübernahme war in der letzten %n Stunde in Ordnung.","Die Geschwindigkeit der Aufgabenübernahme war in den letzten %n Stunden in Ordnung."],
"_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Die Aufgabenabholgeschwindigkeit war in der letzten %n Stunde langsam. Viele Aufgaben benötigten länger als 4 Minuten, um abgeholt zu werden. Erwägen Sie die Einrichtung eines Workers, der Aufgaben im Hintergrund verarbeitet.","Die Aufgabenabholgeschwindigkeit war in den letzten %n Stunden langsam. Viele Aufgaben benötigten länger als 4 Minuten, um abgeholt zu werden. Erwägen Sie die Einrichtung eines Workers, der Aufgaben im Hintergrund verarbeitet."],
"Temporary space available" : "Temporärer Platz verfügbar",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Fehler beim Überprüfen des temporären PHP-Pfads - er wurde nicht ordnungsgemäß auf ein Verzeichnis festgelegt. Zurückgegebener Wert: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "Die PHP-Funktion \"disk_free_space\" ist deaktiviert, was die Überprüfung auf ausreichend Speicherplatz in den temporären Verzeichnissen verhindert.",
@ -584,12 +586,12 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Es ist immer gut, regelmäßig Sicherungskopien von ihren Daten zu machen. Falls Sie die Verschlüsselung nutzen, sollten Sie auch eine Sicherung der Verschlüsselungsschlüssel zusammen mit Ihren Daten machen.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Informationen zum manuellen Verschlüsseln vorhandener Dateien finden Sie in der Administrationsdokumentation.",
"This is the final warning: Do you really want to enable encryption?" : "Dies ist die letzte Warnung: Möchten Sie die Verschlüsselung wirklich aktivieren?",
"Failed to remove group \"{group}\"" : "Die Gruppe \"{group}\" konnte nicht entfernt werden.",
"Failed to delete group \"{group}\"" : "Die Gruppe \"{group}\" konnte nicht gelöscht werden",
"Please confirm the group removal" : "Bitte die Löschung der Gruppe bestätigen",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Sie sind im Begriff, die Gruppe \"{group}\" zu entfernen. Die Konten werden NICHT gelöscht.",
"You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Sie sind im Begriff, die Gruppe \"{group}\" zu löschen. Die Konten werden NICHT gelöscht.",
"Submit" : "Übermitteln",
"Rename group" : "Gruppe umbenennen",
"Remove group" : "Gruppe entfernen",
"Delete group" : "Gruppe löschen",
"Current password" : "Aktuelles Passwort",
"New password" : "Neues Passwort",
"Change password" : "Passwort ändern",

@ -314,6 +314,8 @@
"64-bit" : "64-bit",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Anscheinend verwenden Sie eine 32-Bit-PHP-Version. Nextcloud benötigt 64-Bit, um gut zu laufen. Bitte aktualisieren Sie Ihr Betriebssystem und PHP auf 64-Bit!",
"Task Processing pickup speed" : "Abholgeschwindigkeit für Aufgabenverarbeitung",
"_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Die Geschwindigkeit der Aufgabenübernahme war in der letzten %n Stunde in Ordnung.","Die Geschwindigkeit der Aufgabenübernahme war in den letzten %n Stunden in Ordnung."],
"_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Die Aufgabenabholgeschwindigkeit war in der letzten %n Stunde langsam. Viele Aufgaben benötigten länger als 4 Minuten, um abgeholt zu werden. Erwägen Sie die Einrichtung eines Workers, der Aufgaben im Hintergrund verarbeitet.","Die Aufgabenabholgeschwindigkeit war in den letzten %n Stunden langsam. Viele Aufgaben benötigten länger als 4 Minuten, um abgeholt zu werden. Erwägen Sie die Einrichtung eines Workers, der Aufgaben im Hintergrund verarbeitet."],
"Temporary space available" : "Temporärer Platz verfügbar",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Fehler beim Überprüfen des temporären PHP-Pfads - er wurde nicht ordnungsgemäß auf ein Verzeichnis festgelegt. Zurückgegebener Wert: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "Die PHP-Funktion \"disk_free_space\" ist deaktiviert, was die Überprüfung auf ausreichend Speicherplatz in den temporären Verzeichnissen verhindert.",
@ -582,12 +584,12 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Es ist immer gut, regelmäßig Sicherungskopien von ihren Daten zu machen. Falls Sie die Verschlüsselung nutzen, sollten Sie auch eine Sicherung der Verschlüsselungsschlüssel zusammen mit Ihren Daten machen.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Informationen zum manuellen Verschlüsseln vorhandener Dateien finden Sie in der Administrationsdokumentation.",
"This is the final warning: Do you really want to enable encryption?" : "Dies ist die letzte Warnung: Möchten Sie die Verschlüsselung wirklich aktivieren?",
"Failed to remove group \"{group}\"" : "Die Gruppe \"{group}\" konnte nicht entfernt werden.",
"Failed to delete group \"{group}\"" : "Die Gruppe \"{group}\" konnte nicht gelöscht werden",
"Please confirm the group removal" : "Bitte die Löschung der Gruppe bestätigen",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Sie sind im Begriff, die Gruppe \"{group}\" zu entfernen. Die Konten werden NICHT gelöscht.",
"You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Sie sind im Begriff, die Gruppe \"{group}\" zu löschen. Die Konten werden NICHT gelöscht.",
"Submit" : "Übermitteln",
"Rename group" : "Gruppe umbenennen",
"Remove group" : "Gruppe entfernen",
"Delete group" : "Gruppe löschen",
"Current password" : "Aktuelles Passwort",
"New password" : "Neues Passwort",
"Change password" : "Passwort ändern",

@ -577,12 +577,9 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Είναι πάντοτε καλό να δημιουργείτε τακτικά αντίγραφα ασφαλείας των δεδομένων σας, στην περίπτωση της κρυπτογράφησης βεβαιωθείτε ότι έχετε λάβει αντίγραφο ασφαλείας των κλειδιών κρυπτογράφησης παράλληλα με τα δεδομένα σας.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Ανατρέξτε στην τεκμηρίωση του διαχειριστή για το πώς να κρυπτογραφήσετε χειροκίνητα τα υπάρχοντα αρχεία.",
"This is the final warning: Do you really want to enable encryption?" : "Αυτή είναι η τελευταία προειδοποίηση: Θέλετε πραγματικά να ενεργοποιήσετε την κρυπτογράφηση;",
"Failed to remove group \"{group}\"" : "Αποτυχία κατά την αφαίρεση της ομάδας \"{group}\"",
"Please confirm the group removal" : "Παρακαλώ επιβεβαιώστε την αφαίρεση της ομάδας",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Πρόκειται να αφαιρέσετε την ομάδα \"{group}\". Οι λογαριασμοί ΔΕΝ θα διαγραφούν.",
"Submit" : "Υποβολή",
"Rename group" : "Μετονομασία ομάδας",
"Remove group" : "Αφαίρεση ομάδας",
"Current password" : "Τρέχον συνθηματικό",
"New password" : "Νέο συνθηματικό",
"Change password" : "Αλλαγή συνθηματικού",

@ -575,12 +575,9 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Είναι πάντοτε καλό να δημιουργείτε τακτικά αντίγραφα ασφαλείας των δεδομένων σας, στην περίπτωση της κρυπτογράφησης βεβαιωθείτε ότι έχετε λάβει αντίγραφο ασφαλείας των κλειδιών κρυπτογράφησης παράλληλα με τα δεδομένα σας.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Ανατρέξτε στην τεκμηρίωση του διαχειριστή για το πώς να κρυπτογραφήσετε χειροκίνητα τα υπάρχοντα αρχεία.",
"This is the final warning: Do you really want to enable encryption?" : "Αυτή είναι η τελευταία προειδοποίηση: Θέλετε πραγματικά να ενεργοποιήσετε την κρυπτογράφηση;",
"Failed to remove group \"{group}\"" : "Αποτυχία κατά την αφαίρεση της ομάδας \"{group}\"",
"Please confirm the group removal" : "Παρακαλώ επιβεβαιώστε την αφαίρεση της ομάδας",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Πρόκειται να αφαιρέσετε την ομάδα \"{group}\". Οι λογαριασμοί ΔΕΝ θα διαγραφούν.",
"Submit" : "Υποβολή",
"Rename group" : "Μετονομασία ομάδας",
"Remove group" : "Αφαίρεση ομάδας",
"Current password" : "Τρέχον συνθηματικό",
"New password" : "Νέο συνθηματικό",
"Change password" : "Αλλαγή συνθηματικού",

@ -316,6 +316,8 @@ OC.L10N.register(
"64-bit" : "64-bit",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!",
"Task Processing pickup speed" : "Task Processing pickup speed",
"_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["The task pickup speed has been ok in the last %n hour.","The task pickup speed has been ok in the last %n hours."],
"_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background.","The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background."],
"Temporary space available" : "Temporary space available",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "The PHP function \"disk_free_space\" is disabled, preventing the system from checking for sufficient space in the temporary directories.",
@ -584,12 +586,12 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Refer to the admin documentation on how to manually also encrypt existing files.",
"This is the final warning: Do you really want to enable encryption?" : "This is the final warning: Do you really want to enable encryption?",
"Failed to remove group \"{group}\"" : "Failed to remove group \"{group}\"",
"Failed to delete group \"{group}\"" : "Failed to delete group \"{group}\"",
"Please confirm the group removal" : "Please confirm the group removal",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "You are about to remove the group \"{group}\". The accounts will NOT be deleted.",
"You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "You are about to delete the group \"{group}\". The accounts will NOT be deleted.",
"Submit" : "Submit",
"Rename group" : "Rename group",
"Remove group" : "Remove group",
"Delete group" : "Delete group",
"Current password" : "Current password",
"New password" : "New password",
"Change password" : "Change password",

@ -314,6 +314,8 @@
"64-bit" : "64-bit",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!",
"Task Processing pickup speed" : "Task Processing pickup speed",
"_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["The task pickup speed has been ok in the last %n hour.","The task pickup speed has been ok in the last %n hours."],
"_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background.","The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background."],
"Temporary space available" : "Temporary space available",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "The PHP function \"disk_free_space\" is disabled, preventing the system from checking for sufficient space in the temporary directories.",
@ -582,12 +584,12 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Refer to the admin documentation on how to manually also encrypt existing files.",
"This is the final warning: Do you really want to enable encryption?" : "This is the final warning: Do you really want to enable encryption?",
"Failed to remove group \"{group}\"" : "Failed to remove group \"{group}\"",
"Failed to delete group \"{group}\"" : "Failed to delete group \"{group}\"",
"Please confirm the group removal" : "Please confirm the group removal",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "You are about to remove the group \"{group}\". The accounts will NOT be deleted.",
"You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "You are about to delete the group \"{group}\". The accounts will NOT be deleted.",
"Submit" : "Submit",
"Rename group" : "Rename group",
"Remove group" : "Remove group",
"Delete group" : "Delete group",
"Current password" : "Current password",
"New password" : "New password",
"Change password" : "Change password",

@ -196,7 +196,6 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Ĉiam estas bone krei savkopiojn de viaj datumoj. Se tiuj ĉi lastaj estas ĉifritaj, certigu, ke vi savkopias ankaŭ la ĉifroŝlosilon kune kun la datumoj.",
"This is the final warning: Do you really want to enable encryption?" : "Jen la fina averto: ĉu vi certe volas ŝalti ĉifradon?",
"Submit" : "Sendi",
"Remove group" : "Forigi grupon",
"Current password" : "Nuna pasvorto",
"New password" : "Nova pasvorto",
"Change password" : "Ŝanĝi la pasvorton",

@ -194,7 +194,6 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Ĉiam estas bone krei savkopiojn de viaj datumoj. Se tiuj ĉi lastaj estas ĉifritaj, certigu, ke vi savkopias ankaŭ la ĉifroŝlosilon kune kun la datumoj.",
"This is the final warning: Do you really want to enable encryption?" : "Jen la fina averto: ĉu vi certe volas ŝalti ĉifradon?",
"Submit" : "Sendi",
"Remove group" : "Forigi grupon",
"Current password" : "Nuna pasvorto",
"New password" : "Nova pasvorto",
"Change password" : "Ŝanĝi la pasvorton",

@ -583,12 +583,9 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es bueno crear copias de seguridad de sus datos, en el caso del cifrado, asegúrese de tener una copia de seguridad de las claves de cifrado junto con sus datos.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Consulta la documentación del administrador para saber cómo cifrar manualmente también los archivos existentes.",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final. ¿Realmente quiere activar el cifrado?",
"Failed to remove group \"{group}\"" : "Fallo al eliminar el grupo \"{group}\"",
"Please confirm the group removal" : "Por favor, confirme la eliminación del grupo",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Está a punto de eliminar el grupo \"{group}\". Las cuentas NO serán eliminadas.",
"Submit" : "Enviar",
"Rename group" : "Renombrar grupo",
"Remove group" : "Eliminar grupo",
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Change password" : "Cambiar contraseña",

@ -581,12 +581,9 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es bueno crear copias de seguridad de sus datos, en el caso del cifrado, asegúrese de tener una copia de seguridad de las claves de cifrado junto con sus datos.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Consulta la documentación del administrador para saber cómo cifrar manualmente también los archivos existentes.",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final. ¿Realmente quiere activar el cifrado?",
"Failed to remove group \"{group}\"" : "Fallo al eliminar el grupo \"{group}\"",
"Please confirm the group removal" : "Por favor, confirme la eliminación del grupo",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Está a punto de eliminar el grupo \"{group}\". Las cuentas NO serán eliminadas.",
"Submit" : "Enviar",
"Rename group" : "Renombrar grupo",
"Remove group" : "Eliminar grupo",
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Change password" : "Cambiar contraseña",

@ -343,12 +343,9 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea crear copias de seguridad de tus datos, en el caso del cifrado asegurate de tener una copia de seguridad de las claves de cifrado junto con tus datos.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Consultá la documentación del administrador para saber cómo cifrar manualmente también los archivos existentes.",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final. ¿Realmente querés activar el cifrado?",
"Failed to remove group \"{group}\"" : "No se pudo eliminar el grupo \"{group}\"",
"Please confirm the group removal" : "Por favor confirmá la eliminación del grupo",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Vas a eliminar el grupo {group}. Los usuarios NO serán eliminados.",
"Submit" : "Enviar",
"Rename group" : "Cambiar nombre del grupo",
"Remove group" : "Eliminar grupo",
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Change password" : "Cambiar contraseña",

@ -341,12 +341,9 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea crear copias de seguridad de tus datos, en el caso del cifrado asegurate de tener una copia de seguridad de las claves de cifrado junto con tus datos.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Consultá la documentación del administrador para saber cómo cifrar manualmente también los archivos existentes.",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final. ¿Realmente querés activar el cifrado?",
"Failed to remove group \"{group}\"" : "No se pudo eliminar el grupo \"{group}\"",
"Please confirm the group removal" : "Por favor confirmá la eliminación del grupo",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Vas a eliminar el grupo {group}. Los usuarios NO serán eliminados.",
"Submit" : "Enviar",
"Rename group" : "Cambiar nombre del grupo",
"Remove group" : "Eliminar grupo",
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Change password" : "Cambiar contraseña",

@ -258,7 +258,6 @@ OC.L10N.register(
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
"Submit" : "Enviar",
"Rename group" : "Renombrar grupo",
"Remove group" : "Eliminar grupo",
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Change password" : "Cambiar contraseña",

@ -256,7 +256,6 @@
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
"Submit" : "Enviar",
"Rename group" : "Renombrar grupo",
"Remove group" : "Eliminar grupo",
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Change password" : "Cambiar contraseña",

@ -468,12 +468,9 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
"Failed to remove group \"{group}\"" : "No se pudo eliminar el grupo \"{group}\"",
"Please confirm the group removal" : "Por favor, confirme la eliminación del grupo",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Está a punto de eliminar el grupo \"{group}\". Los usuarios NO serán eliminados.",
"Submit" : "Enviar",
"Rename group" : "Renombrar grupo",
"Remove group" : "Eliminar grupo",
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Change password" : "Cambiar contraseña",

@ -466,12 +466,9 @@
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
"Failed to remove group \"{group}\"" : "No se pudo eliminar el grupo \"{group}\"",
"Please confirm the group removal" : "Por favor, confirme la eliminación del grupo",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Está a punto de eliminar el grupo \"{group}\". Los usuarios NO serán eliminados.",
"Submit" : "Enviar",
"Rename group" : "Renombrar grupo",
"Remove group" : "Eliminar grupo",
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Change password" : "Cambiar contraseña",

@ -186,6 +186,8 @@ OC.L10N.register(
"64-bit" : "64-bitine",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Tundub, et kasutad PHP 32-bitist versiooni. Tõhusaks toimimiseks eeldab Nextcloud 64-bitist keskkonda. Palun uuenda oma serveri operatsioonisüsteem ja PHP 64-bitiseks versiooniks!",
"Task Processing pickup speed" : "Ülesannete töötlemise kiirus",
"_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Ülesannete töötlemise kiirus on viimase %n tunni jooksul olnud mõistlik.","Ülesannete töötlemise kiirus on viimase %n tunni jooksul olnud mõistlik."],
"_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Ülesannete töötlemise kiirus on viimase %n tunni jooksul olnud aeglane. Paljude ülesannete töölepanekuks kulus enam, kui 4 minutit. Palun kaalu võimalust, et ülesannete töötlemiseks seadistad taustal töötava protsessihalduri.","Ülesannete töötlemise kiirus on viimase %n tunni jooksul olnud aeglane. Paljude ülesannete töölepanekuks kulus enam, kui 4 minutit. Palun kaalu võimalust, et ülesannete töötlemiseks seadistad taustal töötava protsessihalduri."],
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHP funktsioon „disk_free_space“ pole kasutusel. Selle puudumine takistab ajutiste kaustade jaoks vajaliku andmeruumi kontrollimist.",
"Profile information" : "Kasutajaprofiili teave",
"Nextcloud settings" : "Nextcloudi seadistused",
@ -193,6 +195,7 @@ OC.L10N.register(
"Enable" : "Lülita sisse",
"Machine translation" : "Masintõlge",
"Image generation" : "Pildiloome",
"Here you can decide which group can access certain sections of the administration settings." : "Siinkohal saad sa otsustada mis gruppidel on ligipääs valitud haldusseadistustele.",
"Unable to modify setting" : "Seadistuse muutmine ei õnnestu",
"None" : "Pole",
"Changed disclaimer text" : "Vastutusest lahtiütluse tekst on muutunud",
@ -217,6 +220,7 @@ OC.L10N.register(
"Default expiration time of new shares in days" : "Uue jaosmeedia vaikimisi aegumine päevades",
"Expire shares after x days" : "Jaosmeedia aegub x päeva möödudes",
"Privacy settings for sharing" : "Jagamise privaatsusseadistused",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Kuva avaliku lingiga üleslaadimise lehel lahtiütluste tekst (vaid siis, kui failide loend on peidetud)",
"Disclaimer text" : "Vastutusest lahtiütluse tekst",
"This text will be shown on the public link upload page when the file list is hidden." : "Seda teksti näidatakse avaliku lingiga üleslaadimise lehel kui failide loend on peidetud.",
"Two-Factor Authentication" : "Kaheastmeline autentimine",
@ -375,12 +379,9 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Alati on hea mõte, kui varundad oma andmeid. Kui aga kasutusel on krüptimine, siis palun kontrolli, et lisaks andmetele on varundatud ka krüptovõtmed.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Süsteemihalduse juhendist leiad teavet kuidas saad käsitsi krüptida juba olemasolevaid faile.",
"This is the final warning: Do you really want to enable encryption?" : "See on viimane hoiatus: Kas oled kindel, et soovid krüptimise sisse lülitada?",
"Failed to remove group \"{group}\"" : "„{group}“ grupi eemaldamine ei õnnestunud",
"Please confirm the group removal" : "Palun kinnita grupi eemaldamine",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Sa oled eemaldamas gruppi „{group}“. Selles grupis olevad kasutajad aga JÄÄVAD kustutamata.",
"Submit" : "Saada",
"Rename group" : "Muuda grupi nime",
"Remove group" : "Eemalda grupp",
"Current password" : "Praegune salasõna",
"New password" : "Uus salasõna",
"Change password" : "Muuda salasõna",
@ -538,7 +539,10 @@ OC.L10N.register(
"Defaults" : "Vaikeväärtused",
"Default quota" : "Vaikimisi mahupiir",
"Select default quota" : "Vali vaikimisi andmemahu piir",
"Server error while trying to complete WebAuthn device registration" : "Serveriviga WebAuthn seadme registreerimise lõpetamisel",
"Passwordless authentication requires a secure connection." : "Salasõnata autentimine eeldab turvalise võrguühenduse kasutamist.",
"Add WebAuthn device" : "Lisa WebAuthni kasutav seade",
"Please authorize your WebAuthn device." : "Palun anna luba oma WebAuthn seadme kasutamiseks",
"Adding your device …" : "Lisan sinu seadet…",
"Unnamed device" : "Nimetu seade",
"Passwordless Authentication" : "Salasõnata autentimine",
@ -592,10 +596,12 @@ OC.L10N.register(
"Deploy and Enable" : "Võta kasutusele ja lülita sisse",
"Disable" : "Lülita välja",
"Allow untested app" : "Luba testimata rakenduse kasutamine",
"The app will be downloaded from the App Store" : "See rakendus laaditakse alla App Store'ist",
"Unknown" : "Teadmata",
"Never" : "Mitte kunagi",
"Could not register device: Network error" : "Seadme registreerimine polnud võimalik: võrguühenduse viga",
"An error occurred during the request. Unable to proceed." : "Päringu ajal tekkis viga. Jätkamine pole võimalik.",
"Error: This app cannot be enabled because it makes the server unstable" : "Viga: Kuna ta muudaks selle serveri mittetöökindlaks, siis seda rakendust ei saa sisse lülitada",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Rakendus on lubatud, aga see vajab uuendamist. Sind suunatakse 5 sekundi pärast uuendamise lehele.",
"Do you really want to wipe your data from this device?" : "Oled sa kindel, et soovid siit seadmest oma andmed kaugkustutada?",
"Confirm wipe" : "Kinnita kaugkustutamine",
@ -624,6 +630,7 @@ OC.L10N.register(
"Test and verify email settings" : "Testi ja kontrolli e-posti seadistusi",
"Security & setup warnings" : "Turva- ja paigalduse hoiatused",
"All checks passed." : "Kõik kontrollid on läbitud.",
"Reasons to use Nextcloud in your organization" : "Põhjused, miks peaksid Nextcloudi kasutama oma organisatsioonis",
"Follow us on X" : "Järgne meile X-is",
"Follow us on Mastodon" : "Järgne meile Mastodonis",
"Check out our blog" : "Loe meie ajaveebi",
@ -633,6 +640,7 @@ OC.L10N.register(
"The PHP memory limit is below the recommended value of %s." : "PHP mälukasutuse ülempiir on väiksem, kui soovitatav %s.",
"for WebAuthn passwordless login" : "WebAuthn salasõnata sisselogimise jaoks",
"for WebAuthn passwordless login, and SFTP storage" : "WebAuthn salasõnata sisselogimise ja SFTP andmeruumi jaoks",
"Set default expiration date for shares" : "Määra jaosmeedia vaikimisi aegumiskuupäev",
"Your biography" : "Sinu elulugu",
"You are using <strong>{usage}</strong>" : "Sa kasutad: <strong>{usage}</strong>",
"You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Sa kasutad: <strong>{usage}</strong> / <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",

@ -184,6 +184,8 @@
"64-bit" : "64-bitine",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Tundub, et kasutad PHP 32-bitist versiooni. Tõhusaks toimimiseks eeldab Nextcloud 64-bitist keskkonda. Palun uuenda oma serveri operatsioonisüsteem ja PHP 64-bitiseks versiooniks!",
"Task Processing pickup speed" : "Ülesannete töötlemise kiirus",
"_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Ülesannete töötlemise kiirus on viimase %n tunni jooksul olnud mõistlik.","Ülesannete töötlemise kiirus on viimase %n tunni jooksul olnud mõistlik."],
"_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Ülesannete töötlemise kiirus on viimase %n tunni jooksul olnud aeglane. Paljude ülesannete töölepanekuks kulus enam, kui 4 minutit. Palun kaalu võimalust, et ülesannete töötlemiseks seadistad taustal töötava protsessihalduri.","Ülesannete töötlemise kiirus on viimase %n tunni jooksul olnud aeglane. Paljude ülesannete töölepanekuks kulus enam, kui 4 minutit. Palun kaalu võimalust, et ülesannete töötlemiseks seadistad taustal töötava protsessihalduri."],
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHP funktsioon „disk_free_space“ pole kasutusel. Selle puudumine takistab ajutiste kaustade jaoks vajaliku andmeruumi kontrollimist.",
"Profile information" : "Kasutajaprofiili teave",
"Nextcloud settings" : "Nextcloudi seadistused",
@ -191,6 +193,7 @@
"Enable" : "Lülita sisse",
"Machine translation" : "Masintõlge",
"Image generation" : "Pildiloome",
"Here you can decide which group can access certain sections of the administration settings." : "Siinkohal saad sa otsustada mis gruppidel on ligipääs valitud haldusseadistustele.",
"Unable to modify setting" : "Seadistuse muutmine ei õnnestu",
"None" : "Pole",
"Changed disclaimer text" : "Vastutusest lahtiütluse tekst on muutunud",
@ -215,6 +218,7 @@
"Default expiration time of new shares in days" : "Uue jaosmeedia vaikimisi aegumine päevades",
"Expire shares after x days" : "Jaosmeedia aegub x päeva möödudes",
"Privacy settings for sharing" : "Jagamise privaatsusseadistused",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Kuva avaliku lingiga üleslaadimise lehel lahtiütluste tekst (vaid siis, kui failide loend on peidetud)",
"Disclaimer text" : "Vastutusest lahtiütluse tekst",
"This text will be shown on the public link upload page when the file list is hidden." : "Seda teksti näidatakse avaliku lingiga üleslaadimise lehel kui failide loend on peidetud.",
"Two-Factor Authentication" : "Kaheastmeline autentimine",
@ -373,12 +377,9 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Alati on hea mõte, kui varundad oma andmeid. Kui aga kasutusel on krüptimine, siis palun kontrolli, et lisaks andmetele on varundatud ka krüptovõtmed.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Süsteemihalduse juhendist leiad teavet kuidas saad käsitsi krüptida juba olemasolevaid faile.",
"This is the final warning: Do you really want to enable encryption?" : "See on viimane hoiatus: Kas oled kindel, et soovid krüptimise sisse lülitada?",
"Failed to remove group \"{group}\"" : "„{group}“ grupi eemaldamine ei õnnestunud",
"Please confirm the group removal" : "Palun kinnita grupi eemaldamine",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Sa oled eemaldamas gruppi „{group}“. Selles grupis olevad kasutajad aga JÄÄVAD kustutamata.",
"Submit" : "Saada",
"Rename group" : "Muuda grupi nime",
"Remove group" : "Eemalda grupp",
"Current password" : "Praegune salasõna",
"New password" : "Uus salasõna",
"Change password" : "Muuda salasõna",
@ -536,7 +537,10 @@
"Defaults" : "Vaikeväärtused",
"Default quota" : "Vaikimisi mahupiir",
"Select default quota" : "Vali vaikimisi andmemahu piir",
"Server error while trying to complete WebAuthn device registration" : "Serveriviga WebAuthn seadme registreerimise lõpetamisel",
"Passwordless authentication requires a secure connection." : "Salasõnata autentimine eeldab turvalise võrguühenduse kasutamist.",
"Add WebAuthn device" : "Lisa WebAuthni kasutav seade",
"Please authorize your WebAuthn device." : "Palun anna luba oma WebAuthn seadme kasutamiseks",
"Adding your device …" : "Lisan sinu seadet…",
"Unnamed device" : "Nimetu seade",
"Passwordless Authentication" : "Salasõnata autentimine",
@ -590,10 +594,12 @@
"Deploy and Enable" : "Võta kasutusele ja lülita sisse",
"Disable" : "Lülita välja",
"Allow untested app" : "Luba testimata rakenduse kasutamine",
"The app will be downloaded from the App Store" : "See rakendus laaditakse alla App Store'ist",
"Unknown" : "Teadmata",
"Never" : "Mitte kunagi",
"Could not register device: Network error" : "Seadme registreerimine polnud võimalik: võrguühenduse viga",
"An error occurred during the request. Unable to proceed." : "Päringu ajal tekkis viga. Jätkamine pole võimalik.",
"Error: This app cannot be enabled because it makes the server unstable" : "Viga: Kuna ta muudaks selle serveri mittetöökindlaks, siis seda rakendust ei saa sisse lülitada",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Rakendus on lubatud, aga see vajab uuendamist. Sind suunatakse 5 sekundi pärast uuendamise lehele.",
"Do you really want to wipe your data from this device?" : "Oled sa kindel, et soovid siit seadmest oma andmed kaugkustutada?",
"Confirm wipe" : "Kinnita kaugkustutamine",
@ -622,6 +628,7 @@
"Test and verify email settings" : "Testi ja kontrolli e-posti seadistusi",
"Security & setup warnings" : "Turva- ja paigalduse hoiatused",
"All checks passed." : "Kõik kontrollid on läbitud.",
"Reasons to use Nextcloud in your organization" : "Põhjused, miks peaksid Nextcloudi kasutama oma organisatsioonis",
"Follow us on X" : "Järgne meile X-is",
"Follow us on Mastodon" : "Järgne meile Mastodonis",
"Check out our blog" : "Loe meie ajaveebi",
@ -631,6 +638,7 @@
"The PHP memory limit is below the recommended value of %s." : "PHP mälukasutuse ülempiir on väiksem, kui soovitatav %s.",
"for WebAuthn passwordless login" : "WebAuthn salasõnata sisselogimise jaoks",
"for WebAuthn passwordless login, and SFTP storage" : "WebAuthn salasõnata sisselogimise ja SFTP andmeruumi jaoks",
"Set default expiration date for shares" : "Määra jaosmeedia vaikimisi aegumiskuupäev",
"Your biography" : "Sinu elulugu",
"You are using <strong>{usage}</strong>" : "Sa kasutad: <strong>{usage}</strong>",
"You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Sa kasutad: <strong>{usage}</strong> / <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",

@ -538,12 +538,9 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Kontuan izan zifratzeak beti fitxategiaren tamaina handitzen duela.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Zure datuen babeskopiak sortu beharko zenituzke aldizka, eta zifratuta badaude, ziurtatu zifratze-gakoen babeskopia ere egiten dela datuekin batera.",
"This is the final warning: Do you really want to enable encryption?" : "Azken abisua da: Benetan gaitu nahi duzu zifratzea?",
"Failed to remove group \"{group}\"" : "Ezin izan da \"{group}\" taldea kendu",
"Please confirm the group removal" : "Mesedez, baieztatu taldearen ezabaketa",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "\"{group}\" taldea ezabatzera zoaz. Kontuak EZ dira ezabatuko.",
"Submit" : "Bidali",
"Rename group" : "Berrizendatu taldea",
"Remove group" : "Ezabatu taldea",
"Current password" : "Uneko pasahitza",
"New password" : "Pasahitz berria",
"Change password" : "Aldatu pasahitza",

@ -536,12 +536,9 @@
"Be aware that encryption always increases the file size." : "Kontuan izan zifratzeak beti fitxategiaren tamaina handitzen duela.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Zure datuen babeskopiak sortu beharko zenituzke aldizka, eta zifratuta badaude, ziurtatu zifratze-gakoen babeskopia ere egiten dela datuekin batera.",
"This is the final warning: Do you really want to enable encryption?" : "Azken abisua da: Benetan gaitu nahi duzu zifratzea?",
"Failed to remove group \"{group}\"" : "Ezin izan da \"{group}\" taldea kendu",
"Please confirm the group removal" : "Mesedez, baieztatu taldearen ezabaketa",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "\"{group}\" taldea ezabatzera zoaz. Kontuak EZ dira ezabatuko.",
"Submit" : "Bidali",
"Rename group" : "Berrizendatu taldea",
"Remove group" : "Ezabatu taldea",
"Current password" : "Uneko pasahitza",
"New password" : "Pasahitz berria",
"Change password" : "Aldatu pasahitza",

@ -266,7 +266,6 @@ OC.L10N.register(
"This is the final warning: Do you really want to enable encryption?" : "این آخرین اخطار است: آیا می‌خواهید رمزگذاری را فعال کنید ؟",
"Submit" : "ارسال",
"Rename group" : "Rename group",
"Remove group" : "برداشتن گروه",
"Current password" : "گذرواژه کنونی",
"New password" : "گذرواژه جدید",
"Change password" : "تغییر گذر واژه",

@ -264,7 +264,6 @@
"This is the final warning: Do you really want to enable encryption?" : "این آخرین اخطار است: آیا می‌خواهید رمزگذاری را فعال کنید ؟",
"Submit" : "ارسال",
"Rename group" : "Rename group",
"Remove group" : "برداشتن گروه",
"Current password" : "گذرواژه کنونی",
"New password" : "گذرواژه جدید",
"Change password" : "تغییر گذر واژه",

@ -301,12 +301,9 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Ota huomioon, että salaus kasvattaa aina tiedostojen kokoa.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Säännöllisten varmuuskopioiden ottaminen on erittäin tärkeää. Jos olet ottanut salauksen käyttöön, huolehdi salausavainten varmuuskopioinnista.",
"This is the final warning: Do you really want to enable encryption?" : "Tämä on viimeinen varoitus: haluatko varmasti ottaa salauksen käyttöön?",
"Failed to remove group \"{group}\"" : "Ryhmän \"{group}\" poistaminen epäonnistui",
"Please confirm the group removal" : "Vahvista ryhmän poistaminen",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Olet aikeissa poistaa ryhmän \"{group}\". Tilejä EI poisteta.",
"Submit" : "Lähetä",
"Rename group" : "Nimeä ryhmä uudelleen",
"Remove group" : "Poista ryhmä",
"Current password" : "Nykyinen salasana",
"New password" : "Uusi salasana",
"Change password" : "Vaihda salasana",

@ -299,12 +299,9 @@
"Be aware that encryption always increases the file size." : "Ota huomioon, että salaus kasvattaa aina tiedostojen kokoa.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Säännöllisten varmuuskopioiden ottaminen on erittäin tärkeää. Jos olet ottanut salauksen käyttöön, huolehdi salausavainten varmuuskopioinnista.",
"This is the final warning: Do you really want to enable encryption?" : "Tämä on viimeinen varoitus: haluatko varmasti ottaa salauksen käyttöön?",
"Failed to remove group \"{group}\"" : "Ryhmän \"{group}\" poistaminen epäonnistui",
"Please confirm the group removal" : "Vahvista ryhmän poistaminen",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Olet aikeissa poistaa ryhmän \"{group}\". Tilejä EI poisteta.",
"Submit" : "Lähetä",
"Rename group" : "Nimeä ryhmä uudelleen",
"Remove group" : "Poista ryhmä",
"Current password" : "Nykyinen salasana",
"New password" : "Uusi salasana",
"Change password" : "Vaihda salasana",

@ -579,12 +579,9 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Il est opportun de sauvegarder régulièrement vos données. Si ces données sont chiffrées, noubliez pas de sauvegarder aussi les clés de chiffrement.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Reportez-vous à la documentation d'administration pour savoir comment chiffrer manuellement les fichiers existants.",
"This is the final warning: Do you really want to enable encryption?" : "Dernier avertissement : Voulez-vous vraiment activer le chiffrement ?",
"Failed to remove group \"{group}\"" : "Erreur à la suppression de « {group} »",
"Please confirm the group removal" : "Merci de confirmer la suppression du groupe",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Vous êtes sur le point de supprimer le groupe « {group} ». Les comptes qui en font partie ne seront PAS supprimés.",
"Submit" : "Soumettre",
"Rename group" : "Renommer le groupe",
"Remove group" : "Retirer le groupe",
"Current password" : "Mot de passe actuel",
"New password" : "Nouveau mot de passe",
"Change password" : "Changer de mot de passe",

@ -577,12 +577,9 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Il est opportun de sauvegarder régulièrement vos données. Si ces données sont chiffrées, noubliez pas de sauvegarder aussi les clés de chiffrement.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Reportez-vous à la documentation d'administration pour savoir comment chiffrer manuellement les fichiers existants.",
"This is the final warning: Do you really want to enable encryption?" : "Dernier avertissement : Voulez-vous vraiment activer le chiffrement ?",
"Failed to remove group \"{group}\"" : "Erreur à la suppression de « {group} »",
"Please confirm the group removal" : "Merci de confirmer la suppression du groupe",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Vous êtes sur le point de supprimer le groupe « {group} ». Les comptes qui en font partie ne seront PAS supprimés.",
"Submit" : "Soumettre",
"Rename group" : "Renommer le groupe",
"Remove group" : "Retirer le groupe",
"Current password" : "Mot de passe actuel",
"New password" : "Nouveau mot de passe",
"Change password" : "Changer de mot de passe",

@ -315,6 +315,9 @@ OC.L10N.register(
"Architecture" : "Ailtireacht",
"64-bit" : "64-giotán",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Is cosúil go bhfuil leagan PHP 32-giotán á rith agat. Tá 64-giotán ag teastáil ó Nextcloud chun go n-éireoidh go maith. Uasghrádaigh do OS agus PHP go 64-giotán le do thoil!",
"Task Processing pickup speed" : "Luas bailithe Próiseála Tascanna",
"_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas."],
"_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra."],
"Temporary space available" : "Spás sealadach ar fáil",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Earráid agus an cosán PHP sealadach á sheiceáil - níor socraíodh go heolaire é i gceart. Luach aischurtha: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "Tá an fheidhm PHP \"disk_free_space\" díchumasaithe, rud a chuireann cosc ar an seiceáil le haghaidh spás leordhóthanach sna heolairí sealadacha.",
@ -583,12 +586,9 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Is maith i gcónaí cúltacaí rialta de do shonraí a chruthú, i gcás criptithe déan cinnte cúltaca a dhéanamh de na heochracha criptithe chomh maith le do shonraí.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Déan tagairt don doiciméadú riaracháin maidir le conas comhaid atá ann cheana a chriptiú de láimh freisin.",
"This is the final warning: Do you really want to enable encryption?" : "Seo é an rabhadh deiridh: Ar mhaith leat criptiúchán a chumasú?",
"Failed to remove group \"{group}\"" : "Theip ar an ngrúpa \"{group}\" a bhaint",
"Please confirm the group removal" : "Deimhnigh baint an ghrúpa",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Tá tú ar tí an grúpa \"{group}\" a bhaint. NÍ scriosfar na cuntais.",
"Submit" : "Cuir isteach",
"Rename group" : "Athainmnigh an grúpa",
"Remove group" : "Bain an grúpa",
"Current password" : "Pasfhocal reatha",
"New password" : "Focal Faire Nua",
"Change password" : "Athraigh do phasfhocal",

@ -313,6 +313,9 @@
"Architecture" : "Ailtireacht",
"64-bit" : "64-giotán",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Is cosúil go bhfuil leagan PHP 32-giotán á rith agat. Tá 64-giotán ag teastáil ó Nextcloud chun go n-éireoidh go maith. Uasghrádaigh do OS agus PHP go 64-giotán le do thoil!",
"Task Processing pickup speed" : "Luas bailithe Próiseála Tascanna",
"_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas."],
"_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra."],
"Temporary space available" : "Spás sealadach ar fáil",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Earráid agus an cosán PHP sealadach á sheiceáil - níor socraíodh go heolaire é i gceart. Luach aischurtha: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "Tá an fheidhm PHP \"disk_free_space\" díchumasaithe, rud a chuireann cosc ar an seiceáil le haghaidh spás leordhóthanach sna heolairí sealadacha.",
@ -581,12 +584,9 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Is maith i gcónaí cúltacaí rialta de do shonraí a chruthú, i gcás criptithe déan cinnte cúltaca a dhéanamh de na heochracha criptithe chomh maith le do shonraí.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Déan tagairt don doiciméadú riaracháin maidir le conas comhaid atá ann cheana a chriptiú de láimh freisin.",
"This is the final warning: Do you really want to enable encryption?" : "Seo é an rabhadh deiridh: Ar mhaith leat criptiúchán a chumasú?",
"Failed to remove group \"{group}\"" : "Theip ar an ngrúpa \"{group}\" a bhaint",
"Please confirm the group removal" : "Deimhnigh baint an ghrúpa",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Tá tú ar tí an grúpa \"{group}\" a bhaint. NÍ scriosfar na cuntais.",
"Submit" : "Cuir isteach",
"Rename group" : "Athainmnigh an grúpa",
"Remove group" : "Bain an grúpa",
"Current password" : "Pasfhocal reatha",
"New password" : "Focal Faire Nua",
"Change password" : "Athraigh do phasfhocal",

@ -578,12 +578,9 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Sempre é bo crear copias de seguranza dos seus datos, no caso do cifrado, asegúrese de ter unha copia de seguranza das chaves de cifrado xunto cos seus datos.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Consulte a documentación de administración sobre para saber tamén como cifrar manualmente os ficheiros existentes.",
"This is the final warning: Do you really want to enable encryption?" : "Esta é a última advertencia: Confirma que quere activar o cifrado?",
"Failed to remove group \"{group}\"" : "Produciuse un fallo ao retirar o grupo «{group}»",
"Please confirm the group removal" : "Confirme a retirada do grupo",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Está a piques de retirar o grupo «{group}». As contas NON van ser eliminadas.",
"Submit" : "Enviar",
"Rename group" : "Cambiar o nome do grupo",
"Remove group" : "Retirar o grupo",
"Current password" : "Contrasinal actual",
"New password" : "Novo contrasinal",
"Change password" : "Cambiar o contrasinal",

@ -576,12 +576,9 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Sempre é bo crear copias de seguranza dos seus datos, no caso do cifrado, asegúrese de ter unha copia de seguranza das chaves de cifrado xunto cos seus datos.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Consulte a documentación de administración sobre para saber tamén como cifrar manualmente os ficheiros existentes.",
"This is the final warning: Do you really want to enable encryption?" : "Esta é a última advertencia: Confirma que quere activar o cifrado?",
"Failed to remove group \"{group}\"" : "Produciuse un fallo ao retirar o grupo «{group}»",
"Please confirm the group removal" : "Confirme a retirada do grupo",
"You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Está a piques de retirar o grupo «{group}». As contas NON van ser eliminadas.",
"Submit" : "Enviar",
"Rename group" : "Cambiar o nome do grupo",
"Remove group" : "Retirar o grupo",
"Current password" : "Contrasinal actual",
"New password" : "Novo contrasinal",
"Change password" : "Cambiar o contrasinal",

@ -212,7 +212,6 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "תמיד טוב ליצור גיבוי קבוע למידע , במקרה של הצפנה יש לוודא שגם מפתחות ההצפנה מגובים עם המידע שלך.",
"This is the final warning: Do you really want to enable encryption?" : "זו הזהרה אחרונה: האם באמת ברצונך להפעיל הצפנה?",
"Submit" : "שליחה",
"Remove group" : "הסרת קבוצה",
"Current password" : "סיסמא נוכחית",
"New password" : "סיסמא חדשה",
"Change password" : "שינוי סיסמא",

@ -210,7 +210,6 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "תמיד טוב ליצור גיבוי קבוע למידע , במקרה של הצפנה יש לוודא שגם מפתחות ההצפנה מגובים עם המידע שלך.",
"This is the final warning: Do you really want to enable encryption?" : "זו הזהרה אחרונה: האם באמת ברצונך להפעיל הצפנה?",
"Submit" : "שליחה",
"Remove group" : "הסרת קבוצה",
"Current password" : "סיסמא נוכחית",
"New password" : "סיסמא חדשה",
"Change password" : "שינוי סיסמא",

@ -228,7 +228,6 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Uvijek je dobra ideja redovito izrađivati sigurnosne kopije podataka; ako upotrebljavate šifriranje, obavezno sigurnosno kopirajte ključeve za šifriranje zajedno sa svojim podacima.",
"This is the final warning: Do you really want to enable encryption?" : "Ovo je posljednje upozorenje: želite li zaista omogućiti šifriranje?",
"Submit" : "Šalji",
"Remove group" : "Ukloni grupu",
"Current password" : "Trenutna zaporka",
"New password" : "Nova zaporka",
"Change password" : "Promijeni zaporku",

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