mirror of https://github.com/nextcloud/server
Merge branch 'master' into enh/text-processing-provider-with-id
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
This commit is contained in:
commit
2e0141165a
124
.drone.yml
124
.drone.yml
|
@ -1241,7 +1241,7 @@ steps:
|
|||
commands:
|
||||
# JavaScript files are not used in integration tests, so it is not needed to
|
||||
# build them.
|
||||
- git clone --depth 1 --branch master https://github.com/nextcloud/spreed apps/spreed
|
||||
- git clone --depth 1 --branch main https://github.com/nextcloud/spreed apps/spreed
|
||||
- cd apps/spreed
|
||||
- composer --version
|
||||
- composer self-update --2
|
||||
|
@ -1561,126 +1561,6 @@ trigger:
|
|||
- pull_request
|
||||
- push
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: acceptance-access-levels
|
||||
|
||||
steps:
|
||||
- name: submodules
|
||||
image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: acceptance-access-levels
|
||||
image: ghcr.io/nextcloud/continuous-integration-acceptance-php8.0:latest
|
||||
commands:
|
||||
- tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-access-levels --selenium-server selenium:4444 allow-git-repository-modifications features/access-levels.feature
|
||||
|
||||
services:
|
||||
- name: selenium
|
||||
image: ghcr.io/nextcloud/continuous-integration-selenium:3.141.59
|
||||
environment:
|
||||
# Reduce default log level for Selenium server (INFO) as it is too
|
||||
# verbose.
|
||||
JAVA_OPTS: -Dselenium.LOGGER.level=WARNING
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
- stable*
|
||||
event:
|
||||
- pull_request
|
||||
- push
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: acceptance-header
|
||||
|
||||
steps:
|
||||
- name: submodules
|
||||
image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: acceptance-header
|
||||
image: ghcr.io/nextcloud/continuous-integration-acceptance-php8.0:latest
|
||||
commands:
|
||||
- tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-header --selenium-server selenium:4444 allow-git-repository-modifications features/header.feature
|
||||
|
||||
services:
|
||||
- name: selenium
|
||||
image: ghcr.io/nextcloud/continuous-integration-selenium:3.141.59
|
||||
environment:
|
||||
# Reduce default log level for Selenium server (INFO) as it is too
|
||||
# verbose.
|
||||
JAVA_OPTS: -Dselenium.LOGGER.level=WARNING
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
- stable*
|
||||
event:
|
||||
- pull_request
|
||||
- push
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: acceptance-users
|
||||
|
||||
steps:
|
||||
- name: submodules
|
||||
image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: acceptance-users
|
||||
image: ghcr.io/nextcloud/continuous-integration-acceptance-php8.0:latest
|
||||
commands:
|
||||
- tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-users --selenium-server selenium:4444 allow-git-repository-modifications features/users.feature
|
||||
|
||||
services:
|
||||
- name: selenium
|
||||
image: ghcr.io/nextcloud/continuous-integration-selenium:3.141.59
|
||||
environment:
|
||||
# Reduce default log level for Selenium server (INFO) as it is too
|
||||
# verbose.
|
||||
JAVA_OPTS: -Dselenium.LOGGER.level=WARNING
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
- stable*
|
||||
event:
|
||||
- pull_request
|
||||
- push
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: acceptance-apps
|
||||
|
||||
steps:
|
||||
- name: submodules
|
||||
image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: acceptance-apps
|
||||
image: ghcr.io/nextcloud/continuous-integration-acceptance-php8.0:latest
|
||||
commands:
|
||||
- tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-apps --selenium-server selenium:4444 allow-git-repository-modifications features/apps.feature
|
||||
|
||||
services:
|
||||
- name: selenium
|
||||
image: ghcr.io/nextcloud/continuous-integration-selenium:3.141.59
|
||||
environment:
|
||||
# Reduce default log level for Selenium server (INFO) as it is too
|
||||
# verbose.
|
||||
JAVA_OPTS: -Dselenium.LOGGER.level=WARNING
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
- stable*
|
||||
event:
|
||||
- pull_request
|
||||
- push
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: nodb-codecov
|
||||
|
@ -1848,4 +1728,4 @@ trigger:
|
|||
- push
|
||||
---
|
||||
kind: signature
|
||||
hmac: 6814dc276b076a391796f3639b27499592e974db8e5e7a4043a120ce215b78cd
|
||||
hmac: 641c0bf70ed3d9561f41687c19dd5223da37143cbd6c2ad829836da41b57d4c5
|
||||
|
|
|
@ -76,9 +76,9 @@ body:
|
|||
Select Nextcloud Server version.
|
||||
_Versions not listed here are not maintained and not supported anymore_
|
||||
options:
|
||||
- "25"
|
||||
- "26"
|
||||
- "27"
|
||||
- "28"
|
||||
- "master"
|
||||
validations:
|
||||
required: true
|
||||
|
@ -101,10 +101,10 @@ body:
|
|||
Select PHP engine version serving Nextcloud Server.
|
||||
_Describe in the "Additional info" section if you chose "Other"._
|
||||
options:
|
||||
- "PHP 7.4"
|
||||
- "PHP 8.0"
|
||||
- "PHP 8.1"
|
||||
- "PHP 8.2"
|
||||
- "PHP 8.3"
|
||||
- "Other"
|
||||
- type: dropdown
|
||||
id: webserver
|
||||
|
|
|
@ -57,26 +57,6 @@ updates:
|
|||
|
||||
|
||||
# Main stableXX npm
|
||||
- package-ecosystem: npm
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
target-branch: stable25
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
reviewers:
|
||||
- "nextcloud/server-dependabot"
|
||||
ignore:
|
||||
# ignore all GitHub linguist patch updates
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
|
||||
# Disable automatic rebasing because without a build CI will likely fail anyway
|
||||
rebase-strategy: "disabled"
|
||||
|
||||
- package-ecosystem: npm
|
||||
directory: "/"
|
||||
schedule:
|
||||
|
@ -117,25 +97,27 @@ updates:
|
|||
# Disable automatic rebasing because without a build CI will likely fail anyway
|
||||
rebase-strategy: "disabled"
|
||||
|
||||
- package-ecosystem: npm
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
target-branch: stable28
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
reviewers:
|
||||
- "nextcloud/server-dependabot"
|
||||
ignore:
|
||||
# ignore all GitHub linguist patch updates
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
|
||||
# Disable automatic rebasing because without a build CI will likely fail anyway
|
||||
rebase-strategy: "disabled"
|
||||
|
||||
# Testing StableXX composer
|
||||
- package-ecosystem: composer
|
||||
directory: "/build/integration"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
target-branch: stable25
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
reviewers:
|
||||
- "nextcloud/server-dependabot"
|
||||
ignore:
|
||||
# ignore all GitHub linguist patch updates
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
|
||||
|
||||
- package-ecosystem: composer
|
||||
directory: "/build/integration"
|
||||
schedule:
|
||||
|
@ -172,6 +154,24 @@ updates:
|
|||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
|
||||
|
||||
- package-ecosystem: composer
|
||||
directory: "/build/integration"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
target-branch: stable28
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
reviewers:
|
||||
- "nextcloud/server-dependabot"
|
||||
ignore:
|
||||
# ignore all GitHub linguist patch updates
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
|
||||
|
||||
# GitHub Actions
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
|
|
|
@ -79,7 +79,7 @@ jobs:
|
|||
fallbackNpm: '^9'
|
||||
|
||||
- name: Set up node ${{ steps.package-engines-versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
|
||||
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
|
||||
with:
|
||||
node-version: ${{ steps.package-engines-versions.outputs.nodeVersion }}
|
||||
cache: npm
|
||||
|
@ -90,6 +90,7 @@ jobs:
|
|||
- name: Install dependencies & build
|
||||
env:
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
PUPPETEER_SKIP_DOWNLOAD: true
|
||||
run: |
|
||||
npm ci
|
||||
npm run build --if-present
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
name: Cypress
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- master
|
||||
- stable*
|
||||
on: pull_request
|
||||
|
||||
concurrency:
|
||||
group: cypress-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
# Adjust APP_NAME if your repository name is different
|
||||
|
@ -21,9 +19,15 @@ jobs:
|
|||
nodeVersion: ${{ steps.versions.outputs.nodeVersion }}
|
||||
npmVersion: ${{ steps.versions.outputs.npmVersion }}
|
||||
|
||||
env:
|
||||
PUPPETEER_SKIP_DOWNLOAD: true
|
||||
|
||||
steps:
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v3.5.2
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
||||
with:
|
||||
# We need to checkout submodules for 3rdparty
|
||||
submodules: true
|
||||
|
||||
- name: Check composer.json
|
||||
id: check_composer
|
||||
|
@ -39,11 +43,11 @@ jobs:
|
|||
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
|
||||
id: versions
|
||||
with:
|
||||
fallbackNode: "^14"
|
||||
fallbackNpm: "^7"
|
||||
fallbackNode: "^20"
|
||||
fallbackNpm: "^9"
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1
|
||||
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
|
@ -89,7 +93,7 @@ jobs:
|
|||
path: ./
|
||||
|
||||
- name: Set up node ${{ needs.init.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1
|
||||
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
|
||||
with:
|
||||
node-version: ${{ needs.init.outputs.nodeVersion }}
|
||||
|
||||
|
@ -97,7 +101,7 @@ jobs:
|
|||
run: npm i -g npm@"${{ needs.init.outputs.npmVersion }}"
|
||||
|
||||
- name: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} cypress tests
|
||||
uses: cypress-io/github-action@59810ebfa5a5ac6fcfdcfdf036d1cd4d083a88f2 # v6.5.0
|
||||
uses: cypress-io/github-action@ebe8b24c4428922d0f793a5c4c96853a633180e3 # v6.6.0
|
||||
with:
|
||||
component: ${{ matrix.containers == 'component' }}
|
||||
group: ${{ matrix.use-cypress-cloud && matrix.containers == 'component' && 'Run component' || matrix.use-cypress-cloud && 'Run E2E' || '' }}
|
||||
|
|
|
@ -1,17 +1,14 @@
|
|||
name: FTP unit tests
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- stable*
|
||||
paths:
|
||||
- '.github/**'
|
||||
- 'apps/files_external/**'
|
||||
pull_request:
|
||||
paths:
|
||||
- '.github/**'
|
||||
- 'apps/files_external/**'
|
||||
|
||||
concurrency:
|
||||
group: ftp-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
APP_NAME: files_external
|
||||
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
#
|
||||
# Use lint-eslint together with lint-eslint-when-unrelated to make eslint a required check for GitHub actions
|
||||
# https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks
|
||||
|
||||
name: Lint eslint
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- '.github/workflows/**'
|
||||
- 'src/**'
|
||||
- 'apps/**/appinfo/info.xml'
|
||||
- 'package.json'
|
||||
- 'package-lock.json'
|
||||
- 'tsconfig.json'
|
||||
- '.eslintrc.*'
|
||||
- '.eslintignore'
|
||||
- '**.js'
|
||||
- '**.ts'
|
||||
- '**.vue'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
permissions:
|
||||
contents: none
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
name: eslint
|
||||
|
||||
steps:
|
||||
- run: 'echo "No eslint required"'
|
|
@ -10,18 +10,6 @@ name: Lint eslint
|
|||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- '.github/workflows/**'
|
||||
- 'src/**'
|
||||
- 'appinfo/info.xml'
|
||||
- 'package.json'
|
||||
- 'package-lock.json'
|
||||
- 'tsconfig.json'
|
||||
- '.eslintrc.*'
|
||||
- '.eslintignore'
|
||||
- '**.js'
|
||||
- '**.ts'
|
||||
- '**.vue'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
@ -31,14 +19,42 @@ concurrency:
|
|||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
changes:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
outputs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
filters: |
|
||||
src:
|
||||
- '.github/workflows/**'
|
||||
- '**/src/**'
|
||||
- '**/appinfo/info.xml'
|
||||
- 'package.json'
|
||||
- 'package-lock.json'
|
||||
- 'tsconfig.json'
|
||||
- '.eslintrc.*'
|
||||
- '.eslintignore'
|
||||
- '**.js'
|
||||
- '**.ts'
|
||||
- '**.vue'
|
||||
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
name: eslint
|
||||
needs: changes
|
||||
if: needs.changes.outputs.src != 'false'
|
||||
|
||||
name: NPM lint
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v3.6.0
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
||||
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
|
||||
|
@ -48,7 +64,7 @@ jobs:
|
|||
fallbackNpm: '^9'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
|
||||
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
|
@ -58,7 +74,23 @@ jobs:
|
|||
- name: Install dependencies
|
||||
env:
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
PUPPETEER_SKIP_DOWNLOAD: true
|
||||
run: npm ci
|
||||
|
||||
- name: Lint
|
||||
run: npm run lint
|
||||
|
||||
summary:
|
||||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest
|
||||
needs: [changes, lint]
|
||||
|
||||
if: always()
|
||||
|
||||
# This is the summary, we just avoid to rename it so that branch protection rules still match
|
||||
name: eslint
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi
|
||||
|
|
|
@ -15,17 +15,40 @@ concurrency:
|
|||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
changes:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
outputs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
filters: |
|
||||
src:
|
||||
- '.github/workflows/**'
|
||||
- '3rdparty/**'
|
||||
- '**/lib/**'
|
||||
- '**/tests/**'
|
||||
- '**/vendor-bin/**'
|
||||
- '.php-cs-fixer.dist.php'
|
||||
- 'composer.json'
|
||||
- 'composer.lock'
|
||||
- '**.php'
|
||||
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
name: php-cs
|
||||
name: PHP CS fixer lint
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v3.5.2
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d # v2
|
||||
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
|
||||
with:
|
||||
php-version: 8.1
|
||||
coverage: none
|
||||
|
@ -38,3 +61,18 @@ jobs:
|
|||
|
||||
- name: Lint
|
||||
run: composer run cs:check || ( echo 'Please run `composer run cs:fix` to format your code' && exit 1 )
|
||||
|
||||
summary:
|
||||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest
|
||||
needs: [changes, lint]
|
||||
|
||||
if: always()
|
||||
|
||||
# This is the summary, we just avoid to rename it so that branch protection rules still match
|
||||
name: php-cs
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi
|
||||
|
|
|
@ -7,11 +7,6 @@ name: Lint php
|
|||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- master
|
||||
- stable*
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
@ -21,8 +16,35 @@ concurrency:
|
|||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
php-lint:
|
||||
changes:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
outputs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
filters: |
|
||||
src:
|
||||
- '.github/workflows/**'
|
||||
- '3rdparty/**'
|
||||
- '**/lib/**'
|
||||
- '**/tests/**'
|
||||
- '**/vendor-bin/**'
|
||||
- '.php-cs-fixer.dist.php'
|
||||
- 'composer.json'
|
||||
- 'composer.lock'
|
||||
- '**.php'
|
||||
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
needs: changes
|
||||
if: needs.changes.outputs.src != 'false'
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: [ "8.0", "8.1", "8.2", "8.3" ]
|
||||
|
@ -31,10 +53,10 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v3.5.2
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d # v2
|
||||
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
coverage: none
|
||||
|
@ -49,7 +71,7 @@ jobs:
|
|||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest
|
||||
needs: php-lint
|
||||
needs: [changes, lint]
|
||||
|
||||
if: always()
|
||||
|
||||
|
@ -57,4 +79,4 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.php-lint.result != 'success' && needs.php-lint.result != 'skipped' }}; then exit 1; fi
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi
|
||||
|
|
|
@ -2,16 +2,45 @@ name: Node tests
|
|||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- stable*
|
||||
schedule:
|
||||
- cron: "5 2 * * *"
|
||||
|
||||
concurrency:
|
||||
group: node-tests-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
versions:
|
||||
changes:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
|
||||
outputs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
filters: |
|
||||
src:
|
||||
- '.github/workflows/**'
|
||||
- '**/__tests__/**'
|
||||
- '**/__mocks__/**'
|
||||
- '**/src/**'
|
||||
- '**/appinfo/info.xml'
|
||||
- 'package.json'
|
||||
- 'package-lock.json'
|
||||
- 'tsconfig.json'
|
||||
- '**.js'
|
||||
- '**.ts'
|
||||
- '**.vue'
|
||||
- '**.handlebars'
|
||||
|
||||
versions:
|
||||
runs-on: ubuntu-latest
|
||||
needs: changes
|
||||
|
||||
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
|
||||
|
||||
outputs:
|
||||
nodeVersion: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
@ -25,22 +54,25 @@ jobs:
|
|||
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1
|
||||
id: versions
|
||||
with:
|
||||
fallbackNode: '^16'
|
||||
fallbackNpm: '^7'
|
||||
fallbackNode: '^20'
|
||||
fallbackNpm: '^9'
|
||||
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
needs: versions
|
||||
needs: [versions, changes]
|
||||
|
||||
if: ${{ needs.versions.result != 'failure' && needs.changes.outputs.src != 'false' }}
|
||||
|
||||
env:
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
PUPPETEER_SKIP_DOWNLOAD: true
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
|
||||
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d
|
||||
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65
|
||||
with:
|
||||
node-version: ${{ needs.versions.outputs.nodeVersion }}
|
||||
|
||||
|
@ -63,7 +95,9 @@ jobs:
|
|||
|
||||
jsunit:
|
||||
runs-on: ubuntu-latest
|
||||
needs: versions
|
||||
needs: [versions, changes]
|
||||
|
||||
if: ${{ needs.versions.result != 'failure' && needs.changes.outputs.src != 'false' }}
|
||||
|
||||
env:
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
|
@ -73,7 +107,7 @@ jobs:
|
|||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
|
||||
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d
|
||||
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65
|
||||
with:
|
||||
node-version: ${{ needs.versions.outputs.nodeVersion }}
|
||||
|
||||
|
@ -91,17 +125,20 @@ jobs:
|
|||
|
||||
handlebars:
|
||||
runs-on: ubuntu-latest
|
||||
needs: versions
|
||||
needs: [versions, changes]
|
||||
|
||||
if: ${{ needs.versions.result != 'failure' && needs.changes.outputs.src != 'false' }}
|
||||
|
||||
env:
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
PUPPETEER_SKIP_DOWNLOAD: true
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
|
||||
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d
|
||||
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65
|
||||
with:
|
||||
node-version: ${{ needs.versions.outputs.nodeVersion }}
|
||||
|
||||
|
@ -116,3 +153,17 @@ jobs:
|
|||
|
||||
- name: Run compile
|
||||
run: ./build/compile-handlebars-templates.sh
|
||||
|
||||
summary:
|
||||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest
|
||||
needs: [changes, test, jsunit, handlebars]
|
||||
|
||||
if: always()
|
||||
|
||||
name: node-test-summary
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.test.result != 'success' && needs.jsunit.result != 'success' && needs.handlebars.result != 'success' }}; then exit 1; fi
|
||||
|
|
|
@ -1,43 +0,0 @@
|
|||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
#
|
||||
# Use node together with node-when-unrelated to make eslint a required check for GitHub actions
|
||||
# https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks
|
||||
|
||||
name: Node
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- '.github/workflows/**'
|
||||
- 'src/**'
|
||||
- 'apps/**/appinfo/info.xml'
|
||||
- 'package.json'
|
||||
- 'package-lock.json'
|
||||
- 'tsconfig.json'
|
||||
- '**.js'
|
||||
- '**.ts'
|
||||
- '**.vue'
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- master
|
||||
- stable*
|
||||
|
||||
concurrency:
|
||||
group: node-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
permissions:
|
||||
contents: none
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
name: node
|
||||
steps:
|
||||
- name: Skip
|
||||
run: 'echo "No JS/TS files changed, skipped Node"'
|
|
@ -7,21 +7,6 @@ name: Node
|
|||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- '.github/workflows/**'
|
||||
- 'src/**'
|
||||
- 'appinfo/info.xml'
|
||||
- 'package.json'
|
||||
- 'package-lock.json'
|
||||
- 'tsconfig.json'
|
||||
- '**.js'
|
||||
- '**.ts'
|
||||
- '**.vue'
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- master
|
||||
- stable*
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
@ -31,10 +16,36 @@ concurrency:
|
|||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
changes:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
outputs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
filters: |
|
||||
src:
|
||||
- '.github/workflows/**'
|
||||
- '**/src/**'
|
||||
- '**/appinfo/info.xml'
|
||||
- 'package.json'
|
||||
- 'package-lock.json'
|
||||
- 'tsconfig.json'
|
||||
- '**.js'
|
||||
- '**.ts'
|
||||
- '**.vue'
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
name: node
|
||||
needs: changes
|
||||
if: needs.changes.outputs.src != 'false'
|
||||
|
||||
name: NPM build
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v3.6.0
|
||||
|
@ -47,7 +58,7 @@ jobs:
|
|||
fallbackNpm: '^9'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
|
||||
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
|
@ -57,6 +68,7 @@ jobs:
|
|||
- name: Install dependencies & build
|
||||
env:
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
PUPPETEER_SKIP_DOWNLOAD: true
|
||||
run: |
|
||||
npm ci
|
||||
npm run build --if-present
|
||||
|
@ -71,3 +83,18 @@ jobs:
|
|||
git status
|
||||
git --no-pager diff
|
||||
exit 1 # make it red to grab attention
|
||||
|
||||
summary:
|
||||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest
|
||||
needs: [changes, build]
|
||||
|
||||
if: always()
|
||||
|
||||
# This is the summary, we just avoid to rename it so that branch protection rules still match
|
||||
name: node
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.build.result != 'success' }}; then exit 1; fi
|
||||
|
|
|
@ -18,8 +18,8 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
branches: ["main", "master", "stable27", "stable26", "stable25", "stable24"]
|
||||
|
||||
branches: ["main", "master", "stable28", "stable27", "stable26", "stable25", "stable24"]
|
||||
|
||||
name: npm-audit-fix-${{ matrix.branches }}
|
||||
|
||||
steps:
|
||||
|
@ -36,7 +36,7 @@ jobs:
|
|||
fallbackNpm: '^9'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
|
||||
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
|
@ -51,6 +51,7 @@ jobs:
|
|||
if: always()
|
||||
env:
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
PUPPETEER_SKIP_DOWNLOAD: true
|
||||
run: |
|
||||
npm ci
|
||||
npm run build --if-present
|
||||
|
|
|
@ -2,10 +2,10 @@ name: OpenAPI
|
|||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- stable*
|
||||
|
||||
concurrency:
|
||||
group: openapi-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
openapi:
|
||||
|
|
|
@ -2,6 +2,10 @@ name: Performance testing
|
|||
on:
|
||||
pull_request:
|
||||
|
||||
concurrency:
|
||||
group: performance-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
performance-testing:
|
||||
runs-on: ubuntu-latest
|
||||
|
@ -85,7 +89,7 @@ jobs:
|
|||
before.json
|
||||
after.json
|
||||
|
||||
- uses: actions/github-script@v6
|
||||
- uses: actions/github-script@v7
|
||||
if: failure() && steps.compare.outcome == 'failure'
|
||||
with:
|
||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
name: PHPUnit oci
|
||||
|
||||
on: pull_request
|
||||
on:
|
||||
pull_request:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
@ -10,6 +11,29 @@ concurrency:
|
|||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
changes:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
outputs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
filters: |
|
||||
src:
|
||||
- '.github/workflows/**'
|
||||
- '3rdparty/**'
|
||||
- '**/lib/**'
|
||||
- '**/tests/**'
|
||||
- '**/vendor-bin/**'
|
||||
- '.php-cs-fixer.dist.php'
|
||||
- 'composer.json'
|
||||
- 'composer.lock'
|
||||
- '**.php'
|
||||
|
||||
phpunit-oci:
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
|
@ -74,7 +98,7 @@ jobs:
|
|||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest
|
||||
needs: phpunit-oci
|
||||
needs: [changes, phpunit-oci]
|
||||
|
||||
if: always()
|
||||
|
||||
|
@ -82,4 +106,4 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.phpunit-oci.result != 'success' }}; then exit 1; fi
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-oci.result != 'success' }}; then exit 1; fi
|
|
@ -1,15 +1,13 @@
|
|||
name: S3 External storage
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- stable*
|
||||
paths:
|
||||
- 'apps/files_external/**'
|
||||
pull_request:
|
||||
paths:
|
||||
- 'apps/files_external/**'
|
||||
|
||||
concurrency:
|
||||
group: s3-external-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
APP_NAME: files_external
|
||||
|
||||
|
|
|
@ -1,10 +1,20 @@
|
|||
name: S3 primary storage integration tests
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- stable*
|
||||
paths:
|
||||
- '.github/workflows/**'
|
||||
- '3rdparty/**'
|
||||
- '**/*.php'
|
||||
- '**/lib/**'
|
||||
- '**/tests/**'
|
||||
- '**/vendor-bin/**'
|
||||
- '.php-cs-fixer.dist.php'
|
||||
- 'composer.json'
|
||||
- 'composer.lock'
|
||||
|
||||
concurrency:
|
||||
group: s3-external-integration-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
s3-primary-integration-tests-minio:
|
||||
|
|
|
@ -1,10 +1,20 @@
|
|||
name: S3 primary storage
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- stable*
|
||||
paths:
|
||||
- '.github/workflows/**'
|
||||
- '3rdparty/**'
|
||||
- '**/*.php'
|
||||
- '**/lib/**'
|
||||
- '**/tests/**'
|
||||
- '**/vendor-bin/**'
|
||||
- '.php-cs-fixer.dist.php'
|
||||
- 'composer.json'
|
||||
- 'composer.lock'
|
||||
|
||||
concurrency:
|
||||
group: s3-primary-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
s3-primary-tests-minio:
|
||||
|
|
|
@ -1,11 +1,5 @@
|
|||
name: SFTP unit tests
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- stable*
|
||||
paths:
|
||||
- 'apps/files_external/**'
|
||||
pull_request:
|
||||
paths:
|
||||
- 'apps/files_external/**'
|
||||
|
@ -13,6 +7,10 @@ on:
|
|||
env:
|
||||
APP_NAME: files_external
|
||||
|
||||
concurrency:
|
||||
group: sftp-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
sftp-tests:
|
||||
runs-on: ubuntu-latest
|
||||
|
|
|
@ -1,17 +1,14 @@
|
|||
name: Samba Kerberos SSO
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- stable*
|
||||
paths:
|
||||
- 'apps/files_external/**'
|
||||
- '.github/workflows/smb-kerberos.yml'
|
||||
pull_request:
|
||||
paths:
|
||||
- 'apps/files_external/**'
|
||||
- '.github/workflows/smb-kerberos.yml'
|
||||
|
||||
concurrency:
|
||||
group: smb-kerberos-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
smb-kerberos-tests:
|
||||
runs-on: ubuntu-latest
|
||||
|
|
|
@ -15,7 +15,7 @@ jobs:
|
|||
issues: write
|
||||
|
||||
steps:
|
||||
- uses: actions/stale@v8
|
||||
- uses: actions/stale@v9
|
||||
with:
|
||||
repo-token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
stale-issue-message: >
|
||||
|
|
|
@ -2,10 +2,10 @@ name: Psalm static code analysis
|
|||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- stable*
|
||||
|
||||
concurrency:
|
||||
group: static-code-analysis-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
static-code-analysis:
|
||||
|
@ -40,7 +40,7 @@ jobs:
|
|||
|
||||
- name: Upload Analysis results to GitHub
|
||||
if: always()
|
||||
uses: github/codeql-action/upload-sarif@v2
|
||||
uses: github/codeql-action/upload-sarif@v3
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
|
||||
|
@ -68,7 +68,7 @@ jobs:
|
|||
|
||||
- name: Upload Security Analysis results to GitHub
|
||||
if: always()
|
||||
uses: github/codeql-action/upload-sarif@v2
|
||||
uses: github/codeql-action/upload-sarif@v3
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
branches: ["master", "stable27", "stable26", "stable25", "stable24", "stable23", "stable22"]
|
||||
branches: ["master", "stable28", "stable27", "stable26", "stable25", "stable24", "stable23", "stable22"]
|
||||
|
||||
name: update-ca-certificate-bundle-${{ matrix.branches }}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
branches: ["master", "stable27", "stable26", "stable25"]
|
||||
branches: ["master", "stable28", "stable27", "stable26"]
|
||||
|
||||
name: update-psalm-baseline-${{ matrix.branches }}
|
||||
|
||||
|
|
|
@ -162,6 +162,7 @@ tests/acceptance/vendor/
|
|||
|
||||
composer.phar
|
||||
/lib/composer/bin
|
||||
/lib/composer/bamarni
|
||||
/vendor-bin/**/vendor
|
||||
|
||||
./.htaccess
|
||||
|
|
|
@ -20,6 +20,7 @@ $config
|
|||
->notPath('composer')
|
||||
->notPath('node_modules')
|
||||
->notPath('vendor')
|
||||
->in('apps')
|
||||
->in(__DIR__);
|
||||
|
||||
// Ignore additional app directories
|
||||
|
|
2
3rdparty
2
3rdparty
|
@ -1 +1 @@
|
|||
Subproject commit e6c45c6c0d4f92ffec621446fcc3b34584772b13
|
||||
Subproject commit 5b8a5fc015968956a000d269561cb5ec9d931870
|
10
README.md
10
README.md
|
@ -16,12 +16,12 @@
|
|||
* 🚀 **Expandable with hundreds of Apps** ...like [Calendar](https://github.com/nextcloud/calendar), [Contacts](https://github.com/nextcloud/contacts), [Mail](https://github.com/nextcloud/mail), [Video Chat](https://github.com/nextcloud/spreed) and all those you can discover in our [App Store](https://apps.nextcloud.com)
|
||||
* 🔒 **Security** with our encryption mechanisms, [HackerOne bounty program](https://hackerone.com/nextcloud) and two-factor authentication.
|
||||
|
||||
Do you want to learn more about how you can use Nextcloud to access, share and protect your files, calendars, contacts, communication & more at home and in your organization? [**Learn about all our Features**](https://nextcloud.com/athome/).
|
||||
Do you want to learn more about how you can use Nextcloud to access, share, and protect your files, calendars, contacts, communication & more at home and in your organization? [**Learn about all our Features**](https://nextcloud.com/athome/).
|
||||
|
||||
## Get your Nextcloud 🚚
|
||||
|
||||
- ☑️ [**Simply sign up**](https://nextcloud.com/signup/) at one of our providers either through our website or through the apps directly.
|
||||
- 🖥 [**Install** a server by yourself](https://nextcloud.com/install/#instructions-server) on your hardware or by using one of our ready to use **appliances**
|
||||
- 🖥 [**Install** a server by yourself](https://nextcloud.com/install/#instructions-server) on your hardware or by using one of our ready-to-use **appliances**
|
||||
- 📦 Buy one of the [awesome **devices** coming with a preinstalled Nextcloud](https://nextcloud.com/devices/)
|
||||
- 🏢 Find a [service **provider**](https://nextcloud.com/providers/) who hosts Nextcloud for you or your company
|
||||
|
||||
|
@ -64,7 +64,7 @@ Otherwise, git checkouts can be handled the same as release archives, by using t
|
|||
- [🌊 WAVE](https://wave.webaim.org/extension/) for accessibility testing
|
||||
- [🚨 Lighthouse](https://developers.google.com/web/tools/lighthouse/) for testing performance, accessibility, and more
|
||||
|
||||
#### Helpful bots at github :robot:
|
||||
#### Helpful bots at GitHub :robot:
|
||||
|
||||
- Comment on a pull request with `/update-3rdparty` to update the 3rd party submodule. It will update to the last commit of the 3rd party branch named like the PR target.
|
||||
|
||||
|
@ -82,8 +82,8 @@ changed it substantially:
|
|||
@copyright Copyright (c) <year>, <your name> (<your email address>)
|
||||
```
|
||||
|
||||
Please read the [Code of Conduct](https://nextcloud.com/community/code-of-conduct/). This document offers some guidance to ensure Nextcloud participants can cooperate effectively in a positive and inspiring atmosphere, and to explain how together we can strengthen and support each other.
|
||||
Please read the [Code of Conduct](https://nextcloud.com/community/code-of-conduct/). This document offers some guidance to ensure Nextcloud participants can cooperate effectively in a positive and inspiring atmosphere and to explain how together we can strengthen and support each other.
|
||||
|
||||
Please review the [guidelines for contributing](.github/CONTRIBUTING.md) to this repository.
|
||||
|
||||
More information how to contribute: [https://nextcloud.com/contribute/](https://nextcloud.com/contribute/)
|
||||
More information on how to contribute: [https://nextcloud.com/contribute/](https://nextcloud.com/contribute/)
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<name>Auditing / Logging</name>
|
||||
<summary>Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.</summary>
|
||||
<description>Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.</description>
|
||||
<version>1.18.0</version>
|
||||
<version>1.19.0</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Nextcloud</author>
|
||||
<namespace>AdminAudit</namespace>
|
||||
|
@ -15,7 +15,7 @@
|
|||
<category>monitoring</category>
|
||||
<bugs>https://github.com/nextcloud/server/issues</bugs>
|
||||
<dependencies>
|
||||
<nextcloud min-version="28" max-version="28"/>
|
||||
<nextcloud min-version="29" max-version="29"/>
|
||||
</dependencies>
|
||||
<background-jobs>
|
||||
<job>OCA\AdminAudit\BackgroundJobs\Rotate</job>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
OC.L10N.register(
|
||||
"admin_audit",
|
||||
{
|
||||
"Auditing / Logging" : "Auditieren / Protokollieren",
|
||||
"Auditing / Logging" : "Auditieren/Protokollieren",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Stellt Protokollierungsfunktionen für Nextcloud zur Verfügung wie Dateizugriffe oder andere vertrauliche Aktionen."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ "translations": {
|
||||
"Auditing / Logging" : "Auditieren / Protokollieren",
|
||||
"Auditing / Logging" : "Auditieren/Protokollieren",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Stellt Protokollierungsfunktionen für Nextcloud zur Verfügung wie Dateizugriffe oder andere vertrauliche Aktionen."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
OC.L10N.register(
|
||||
"admin_audit",
|
||||
{
|
||||
"Auditing / Logging" : "Eftirlit / Atvikaskráning",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Býður upp á atvikaskráningu fyrir Nextcloud, eins og að skrá aðgang að skrám og fleiri viðkvæmar aðgerðir."
|
||||
},
|
||||
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
|
|
@ -0,0 +1,5 @@
|
|||
{ "translations": {
|
||||
"Auditing / Logging" : "Eftirlit / Atvikaskráning",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Býður upp á atvikaskráningu fyrir Nextcloud, eins og að skrá aðgang að skrám og fleiri viðkvæmar aðgerðir."
|
||||
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
|
||||
}
|
|
@ -34,7 +34,8 @@ class Action {
|
|||
|
||||
public function __construct(
|
||||
private IAuditLogger $logger,
|
||||
) {}
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Log a single action with a log level of info
|
||||
|
@ -45,9 +46,9 @@ class Action {
|
|||
* @param bool $obfuscateParameters
|
||||
*/
|
||||
public function log(string $text,
|
||||
array $params,
|
||||
array $elements,
|
||||
bool $obfuscateParameters = false): void {
|
||||
array $params,
|
||||
array $elements,
|
||||
bool $obfuscateParameters = false): void {
|
||||
foreach ($elements as $element) {
|
||||
if (!isset($params[$element])) {
|
||||
if ($obfuscateParameters) {
|
||||
|
|
|
@ -61,7 +61,7 @@ class UserManagement extends Action {
|
|||
*/
|
||||
public function assign(string $uid): void {
|
||||
$this->log(
|
||||
'UserID assigned: "%s"',
|
||||
'UserID assigned: "%s"',
|
||||
[ 'uid' => $uid ],
|
||||
[ 'uid' ]
|
||||
);
|
||||
|
|
|
@ -101,7 +101,7 @@ class Application extends App implements IBootstrap {
|
|||
* Register hooks in order to log them
|
||||
*/
|
||||
private function registerHooks(IAuditLogger $logger,
|
||||
ContainerInterface $serverContainer): void {
|
||||
ContainerInterface $serverContainer): void {
|
||||
$this->userManagementHooks($logger, $serverContainer->get(IUserSession::class));
|
||||
$this->groupHooks($logger, $serverContainer->get(IGroupManager::class));
|
||||
$this->authHooks($logger);
|
||||
|
@ -122,7 +122,7 @@ class Application extends App implements IBootstrap {
|
|||
}
|
||||
|
||||
private function userManagementHooks(IAuditLogger $logger,
|
||||
IUserSession $userSession): void {
|
||||
IUserSession $userSession): void {
|
||||
$userActions = new UserManagement($logger);
|
||||
|
||||
Util::connectHook('OC_User', 'post_createUser', $userActions, 'create');
|
||||
|
@ -136,7 +136,7 @@ class Application extends App implements IBootstrap {
|
|||
}
|
||||
|
||||
private function groupHooks(IAuditLogger $logger,
|
||||
IGroupManager $groupManager): void {
|
||||
IGroupManager $groupManager): void {
|
||||
$groupActions = new GroupManagement($logger);
|
||||
|
||||
assert($groupManager instanceof GroupManager);
|
||||
|
@ -167,7 +167,7 @@ class Application extends App implements IBootstrap {
|
|||
}
|
||||
|
||||
private function appHooks(IAuditLogger $logger,
|
||||
IEventDispatcher $eventDispatcher): void {
|
||||
IEventDispatcher $eventDispatcher): void {
|
||||
$eventDispatcher->addListener(ManagerEvent::EVENT_APP_ENABLE, function (ManagerEvent $event) use ($logger) {
|
||||
$appActions = new AppManagement($logger);
|
||||
$appActions->enableApp($event->getAppID());
|
||||
|
@ -183,7 +183,7 @@ class Application extends App implements IBootstrap {
|
|||
}
|
||||
|
||||
private function consoleHooks(IAuditLogger $logger,
|
||||
IEventDispatcher $eventDispatcher): void {
|
||||
IEventDispatcher $eventDispatcher): void {
|
||||
$eventDispatcher->addListener(ConsoleEvent::class, function (ConsoleEvent $event) use ($logger) {
|
||||
$appActions = new Console($logger);
|
||||
$appActions->runCommand($event->getArguments());
|
||||
|
@ -191,7 +191,7 @@ class Application extends App implements IBootstrap {
|
|||
}
|
||||
|
||||
private function fileHooks(IAuditLogger $logger,
|
||||
IEventDispatcher $eventDispatcher): void {
|
||||
IEventDispatcher $eventDispatcher): void {
|
||||
$fileActions = new Files($logger);
|
||||
$eventDispatcher->addListener(
|
||||
BeforePreviewFetchedEvent::class,
|
||||
|
@ -264,7 +264,7 @@ class Application extends App implements IBootstrap {
|
|||
}
|
||||
|
||||
private function securityHooks(IAuditLogger $logger,
|
||||
IEventDispatcher $eventDispatcher): void {
|
||||
IEventDispatcher $eventDispatcher): void {
|
||||
$eventDispatcher->addListener(TwoFactorProviderChallengePassed::class, function (TwoFactorProviderChallengePassed $event) use ($logger) {
|
||||
$security = new Security($logger);
|
||||
$security->twofactorSuccess($event->getUser(), $event->getProvider());
|
||||
|
|
|
@ -27,8 +27,8 @@ declare(strict_types=1);
|
|||
*/
|
||||
namespace OCA\AdminAudit\BackgroundJobs;
|
||||
|
||||
use OCP\BackgroundJob\TimedJob;
|
||||
use OCP\AppFramework\Utility\ITimeFactory;
|
||||
use OCP\BackgroundJob\TimedJob;
|
||||
use OCP\IConfig;
|
||||
use OCP\Log\RotationTrait;
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<name>Cloud Federation API</name>
|
||||
<summary>Enable clouds to communicate with each other and exchange data</summary>
|
||||
<description>The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.</description>
|
||||
<version>1.11.0</version>
|
||||
<version>1.12.0</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Bjoern Schiessle</author>
|
||||
<namespace>CloudFederationAPI</namespace>
|
||||
|
@ -15,6 +15,6 @@
|
|||
<category>integration</category>
|
||||
<bugs>https://github.com/nextcloud/server/issues</bugs>
|
||||
<dependencies>
|
||||
<nextcloud min-version="28" max-version="28"/>
|
||||
<nextcloud min-version="29" max-version="29"/>
|
||||
</dependencies>
|
||||
</info>
|
||||
|
|
|
@ -38,11 +38,11 @@ return [
|
|||
'verb' => 'POST',
|
||||
'root' => '/ocm',
|
||||
],
|
||||
// [
|
||||
// 'name' => 'RequestHandler#inviteAccepted',
|
||||
// 'url' => '/invite-accepted',
|
||||
// 'verb' => 'POST',
|
||||
// 'root' => '/ocm',
|
||||
// ]
|
||||
// [
|
||||
// 'name' => 'RequestHandler#inviteAccepted',
|
||||
// 'url' => '/invite-accepted',
|
||||
// 'verb' => 'POST',
|
||||
// 'root' => '/ocm',
|
||||
// ]
|
||||
],
|
||||
];
|
||||
|
|
|
@ -51,9 +51,9 @@ use Psr\Log\LoggerInterface;
|
|||
*
|
||||
* @package OCA\CloudFederationAPI\Controller
|
||||
*
|
||||
* @psalm-import-type CloudFederationApiAddShare from ResponseDefinitions
|
||||
* @psalm-import-type CloudFederationApiValidationError from ResponseDefinitions
|
||||
* @psalm-import-type CloudFederationApiError from ResponseDefinitions
|
||||
* @psalm-import-type CloudFederationAPIAddShare from ResponseDefinitions
|
||||
* @psalm-import-type CloudFederationAPIValidationError from ResponseDefinitions
|
||||
* @psalm-import-type CloudFederationAPIError from ResponseDefinitions
|
||||
*/
|
||||
class RequestHandlerController extends Controller {
|
||||
public function __construct(
|
||||
|
@ -90,7 +90,7 @@ class RequestHandlerController extends Controller {
|
|||
* @param string $shareType 'group' or 'user' share
|
||||
* @param string $resourceType 'file', 'calendar',...
|
||||
*
|
||||
* @return JSONResponse<Http::STATUS_CREATED, CloudFederationApiAddShare, array{}>|JSONResponse<Http::STATUS_BAD_REQUEST, CloudFederationApiValidationError, array{}>|JSONResponse<Http::STATUS_NOT_IMPLEMENTED, CloudFederationApiError, array{}>
|
||||
* @return JSONResponse<Http::STATUS_CREATED, CloudFederationAPIAddShare, array{}>|JSONResponse<Http::STATUS_BAD_REQUEST, CloudFederationAPIValidationError, array{}>|JSONResponse<Http::STATUS_NOT_IMPLEMENTED, CloudFederationAPIError, array{}>
|
||||
* 201: The notification was successfully received. The display name of the recipient might be returned in the body
|
||||
* 400: Bad request due to invalid parameters, e.g. when `shareWith` is not found or required properties are missing
|
||||
* 501: Share type or the resource type is not supported
|
||||
|
@ -213,7 +213,7 @@ class RequestHandlerController extends Controller {
|
|||
* @param string|null $providerId ID of the share
|
||||
* @param array<string, mixed>|null $notification The actual payload of the notification
|
||||
*
|
||||
* @return JSONResponse<Http::STATUS_CREATED, array<string, mixed>, array{}>|JSONResponse<Http::STATUS_BAD_REQUEST, CloudFederationApiValidationError, array{}>|JSONResponse<Http::STATUS_FORBIDDEN|Http::STATUS_NOT_IMPLEMENTED, CloudFederationApiError, array{}>
|
||||
* @return JSONResponse<Http::STATUS_CREATED, array<string, mixed>, array{}>|JSONResponse<Http::STATUS_BAD_REQUEST, CloudFederationAPIValidationError, array{}>|JSONResponse<Http::STATUS_FORBIDDEN|Http::STATUS_NOT_IMPLEMENTED, CloudFederationAPIError, array{}>
|
||||
* 201: The notification was successfully received
|
||||
* 400: Bad request due to invalid parameters, e.g. when `type` is invalid or missing
|
||||
* 403: Getting resource is not allowed
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
|
@ -26,15 +27,15 @@ declare(strict_types=1);
|
|||
namespace OCA\CloudFederationAPI;
|
||||
|
||||
/**
|
||||
* @psalm-type CloudFederationApiAddShare = array{
|
||||
* @psalm-type CloudFederationAPIAddShare = array{
|
||||
* recipientDisplayName: string,
|
||||
* }
|
||||
*
|
||||
* @psalm-type CloudFederationApiError = array{
|
||||
* @psalm-type CloudFederationAPIError = array{
|
||||
* message: string,
|
||||
* }
|
||||
*
|
||||
* @psalm-type CloudFederationApiValidationError = CloudFederationApiError&array{
|
||||
* @psalm-type CloudFederationAPIValidationError = CloudFederationAPIError&array{
|
||||
* validationErrors: array{
|
||||
* name: string,
|
||||
* message: string|null,
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"directory": "js/vendor"
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
# compiled vue templates
|
||||
src/templates.js
|
||||
js/
|
|
@ -5,7 +5,7 @@
|
|||
<name>Comments</name>
|
||||
<summary>Files app plugin to add comments to files</summary>
|
||||
<description>Files app plugin to add comments to files</description>
|
||||
<version>1.18.0</version>
|
||||
<version>1.19.0</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Arthur Schiwon</author>
|
||||
<author>Vincent Petry</author>
|
||||
|
@ -16,7 +16,7 @@
|
|||
<category>social</category>
|
||||
<bugs>https://github.com/nextcloud/server/issues</bugs>
|
||||
<dependencies>
|
||||
<nextcloud min-version="28" max-version="28"/>
|
||||
<nextcloud min-version="29" max-version="29"/>
|
||||
</dependencies>
|
||||
|
||||
<activity>
|
||||
|
|
|
@ -15,7 +15,6 @@ OC.L10N.register(
|
|||
"No comments yet, start the conversation!" : "Nog geen kommentaar, begin die gesprek!",
|
||||
"Retry" : "Herprobeer",
|
||||
"Comment" : "Kommentaar",
|
||||
"%1$s commented" : "%1$s het kommentaar gelewer",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ongelese kommentaar","%n ongelese kommentare"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
"No comments yet, start the conversation!" : "Nog geen kommentaar, begin die gesprek!",
|
||||
"Retry" : "Herprobeer",
|
||||
"Comment" : "Kommentaar",
|
||||
"%1$s commented" : "%1$s het kommentaar gelewer",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ongelese kommentaar","%n ongelese kommentare"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -16,7 +16,8 @@ OC.L10N.register(
|
|||
"Delete comment" : "حذف التعليق",
|
||||
"Cancel edit" : "إلغاء التعديل",
|
||||
"Post comment" : "أضف تعليق",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" للإشارات, \":\" للإيموجي, \"/\" للاقط الذكي",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ للإشارات، : للإيموجي، / للاقط الذكي",
|
||||
"Could not reload comments" : "تعذّرت إعادة تحميل الملاحظات",
|
||||
"No comments yet, start the conversation!" : "لا يوجد تعليقات, ابدأ النقاش الآن!",
|
||||
"No more messages" : "لامزيد من الرسائل",
|
||||
"Retry" : "أعد المحاولة",
|
||||
|
@ -28,7 +29,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "التعليق حُذف",
|
||||
"An error occurred while trying to delete the comment" : "حدث خطأ أثناء محاولة حذف التعليق",
|
||||
"An error occurred while trying to create the comment" : "حدث خطأ أثناء محاولة إنشاء التعليق",
|
||||
"%1$s commented" : "%1$s كتب تعليق",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n تعليق غير مقروء","%n تعليق غير مقروء","تعليقان غير مقروءة","%n تعليقات غير مقروء","%n تعليق غير مقروء","%n تعليق غير مقروء"]
|
||||
},
|
||||
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
|
||||
|
|
|
@ -14,7 +14,8 @@
|
|||
"Delete comment" : "حذف التعليق",
|
||||
"Cancel edit" : "إلغاء التعديل",
|
||||
"Post comment" : "أضف تعليق",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" للإشارات, \":\" للإيموجي, \"/\" للاقط الذكي",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ للإشارات، : للإيموجي، / للاقط الذكي",
|
||||
"Could not reload comments" : "تعذّرت إعادة تحميل الملاحظات",
|
||||
"No comments yet, start the conversation!" : "لا يوجد تعليقات, ابدأ النقاش الآن!",
|
||||
"No more messages" : "لامزيد من الرسائل",
|
||||
"Retry" : "أعد المحاولة",
|
||||
|
@ -26,7 +27,6 @@
|
|||
"Comment deleted" : "التعليق حُذف",
|
||||
"An error occurred while trying to delete the comment" : "حدث خطأ أثناء محاولة حذف التعليق",
|
||||
"An error occurred while trying to create the comment" : "حدث خطأ أثناء محاولة إنشاء التعليق",
|
||||
"%1$s commented" : "%1$s كتب تعليق",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n تعليق غير مقروء","%n تعليق غير مقروء","تعليقان غير مقروءة","%n تعليقات غير مقروء","%n تعليق غير مقروء","%n تعليق غير مقروء"]
|
||||
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
|
||||
}
|
|
@ -26,7 +26,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : " Изтрит е коментар",
|
||||
"An error occurred while trying to delete the comment" : "Възникна грешка при опит за изтриване на коментара",
|
||||
"An error occurred while trying to create the comment" : "Възникна грешка при опит за създаване на коментар",
|
||||
"%1$s commented" : "%1$s коментира",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n непрочетен коментар","%n непрочетени коментари"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
"Comment deleted" : " Изтрит е коментар",
|
||||
"An error occurred while trying to delete the comment" : "Възникна грешка при опит за изтриване на коментара",
|
||||
"An error occurred while trying to create the comment" : "Възникна грешка при опит за създаване на коментар",
|
||||
"%1$s commented" : "%1$s коментира",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n непрочетен коментар","%n непрочетени коментари"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -16,6 +16,8 @@ OC.L10N.register(
|
|||
"Delete comment" : "Suprimeix el comentari",
|
||||
"Cancel edit" : "Cancel·la l'edició",
|
||||
"Post comment" : "Publica el comentari",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ per a mencions, : per a emojis, / per al selector intel·ligent",
|
||||
"Could not reload comments" : "No s'han pogut tornar a carregar els comentaris",
|
||||
"No comments yet, start the conversation!" : "Encara no hi ha cap comentari. Enceteu la conversa!",
|
||||
"No more messages" : "No hi ha més missatges",
|
||||
"Retry" : "Torna-ho a provar",
|
||||
|
@ -27,7 +29,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "S'ha suprimit el comentari",
|
||||
"An error occurred while trying to delete the comment" : "S'ha produït un error en intentar suprimir el comentari",
|
||||
"An error occurred while trying to create the comment" : "S'ha produït un error en intentar crear el comentari",
|
||||
"%1$s commented" : "%1$s ha escrit un comentari",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentari sense llegir","%n comentaris sense llegir"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -14,6 +14,8 @@
|
|||
"Delete comment" : "Suprimeix el comentari",
|
||||
"Cancel edit" : "Cancel·la l'edició",
|
||||
"Post comment" : "Publica el comentari",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ per a mencions, : per a emojis, / per al selector intel·ligent",
|
||||
"Could not reload comments" : "No s'han pogut tornar a carregar els comentaris",
|
||||
"No comments yet, start the conversation!" : "Encara no hi ha cap comentari. Enceteu la conversa!",
|
||||
"No more messages" : "No hi ha més missatges",
|
||||
"Retry" : "Torna-ho a provar",
|
||||
|
@ -25,7 +27,6 @@
|
|||
"Comment deleted" : "S'ha suprimit el comentari",
|
||||
"An error occurred while trying to delete the comment" : "S'ha produït un error en intentar suprimir el comentari",
|
||||
"An error occurred while trying to create the comment" : "S'ha produït un error en intentar crear el comentari",
|
||||
"%1$s commented" : "%1$s ha escrit un comentari",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentari sense llegir","%n comentaris sense llegir"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -16,7 +16,8 @@ OC.L10N.register(
|
|||
"Delete comment" : "Smazat komentář",
|
||||
"Cancel edit" : "Zrušit úpravu",
|
||||
"Post comment" : "Odeslat komentář",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "„@“ pro zmínění, „:“ pro emotikony, „/“ pro inteligentní výběr",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ pro zmínění, : pro emotikony, / pro inteligentní výběr",
|
||||
"Could not reload comments" : "Znovunačtení komentářů se nezdařilo",
|
||||
"No comments yet, start the conversation!" : "Zatím bez komentářů, začněte konverzaci!",
|
||||
"No more messages" : "Žádné další zprávy",
|
||||
"Retry" : "Zkusit znovu",
|
||||
|
@ -28,7 +29,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Komentář smazán",
|
||||
"An error occurred while trying to delete the comment" : "Došlo k chybě při pokusu o smazání komentáře",
|
||||
"An error occurred while trying to create the comment" : "Došlo k chybě při pokusu o vytvoření komentáře",
|
||||
"%1$s commented" : "%1$s okomentováno",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n nepřečtený komentář","%n nepřečtené komentáře","%n nepřečtených komentářů","%n nepřečtené komentáře"]
|
||||
},
|
||||
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
|
||||
|
|
|
@ -14,7 +14,8 @@
|
|||
"Delete comment" : "Smazat komentář",
|
||||
"Cancel edit" : "Zrušit úpravu",
|
||||
"Post comment" : "Odeslat komentář",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "„@“ pro zmínění, „:“ pro emotikony, „/“ pro inteligentní výběr",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ pro zmínění, : pro emotikony, / pro inteligentní výběr",
|
||||
"Could not reload comments" : "Znovunačtení komentářů se nezdařilo",
|
||||
"No comments yet, start the conversation!" : "Zatím bez komentářů, začněte konverzaci!",
|
||||
"No more messages" : "Žádné další zprávy",
|
||||
"Retry" : "Zkusit znovu",
|
||||
|
@ -26,7 +27,6 @@
|
|||
"Comment deleted" : "Komentář smazán",
|
||||
"An error occurred while trying to delete the comment" : "Došlo k chybě při pokusu o smazání komentáře",
|
||||
"An error occurred while trying to create the comment" : "Došlo k chybě při pokusu o vytvoření komentáře",
|
||||
"%1$s commented" : "%1$s okomentováno",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n nepřečtený komentář","%n nepřečtené komentáře","%n nepřečtených komentářů","%n nepřečtené komentáře"]
|
||||
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
|
||||
}
|
|
@ -27,7 +27,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Kommentar slettet",
|
||||
"An error occurred while trying to delete the comment" : "Der opstod en fejl under forsøget på at slette kommentaren",
|
||||
"An error occurred while trying to create the comment" : "Der opstod en fejl under forsøget på at oprette kommentaren",
|
||||
"%1$s commented" : "%1$s kommenterede",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ulæst kommentar","%n ulæste kommentarer"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
"Comment deleted" : "Kommentar slettet",
|
||||
"An error occurred while trying to delete the comment" : "Der opstod en fejl under forsøget på at slette kommentaren",
|
||||
"An error occurred while trying to create the comment" : "Der opstod en fejl under forsøget på at oprette kommentaren",
|
||||
"%1$s commented" : "%1$s kommenterede",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ulæst kommentar","%n ulæste kommentarer"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -16,9 +16,12 @@ OC.L10N.register(
|
|||
"Delete comment" : "Kommentar löschen",
|
||||
"Cancel edit" : "Bearbeiten abbrechen",
|
||||
"Post comment" : "Kommentar veröffentlichen",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ für Erwähnungen, : für Emoji, / für Smart Picker",
|
||||
"Could not reload comments" : "Kommentare konnten nicht erneut geladen werden",
|
||||
"No comments yet, start the conversation!" : "Keine Kommentare bisher. Beginne die Diskussion!",
|
||||
"No more messages" : "Keine weiteren Nachrichten",
|
||||
"Retry" : "Wiederholen",
|
||||
"Failed to mark comments as read" : "Kommentare konnten nicht als gelesen markiert werden",
|
||||
"Unable to load the comments list" : "Kommentarliste konnte nicht geladen werden",
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 neuer Kommentar","[unread] neue Kommentare"],
|
||||
"Comment" : "Kommentar",
|
||||
|
@ -26,7 +29,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Kommentar gelöscht",
|
||||
"An error occurred while trying to delete the comment" : "Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
|
||||
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
|
||||
"%1$s commented" : "%1$s kommentierte",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ungelesener Kommentar","%n ungelesene Kommentare"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -14,9 +14,12 @@
|
|||
"Delete comment" : "Kommentar löschen",
|
||||
"Cancel edit" : "Bearbeiten abbrechen",
|
||||
"Post comment" : "Kommentar veröffentlichen",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ für Erwähnungen, : für Emoji, / für Smart Picker",
|
||||
"Could not reload comments" : "Kommentare konnten nicht erneut geladen werden",
|
||||
"No comments yet, start the conversation!" : "Keine Kommentare bisher. Beginne die Diskussion!",
|
||||
"No more messages" : "Keine weiteren Nachrichten",
|
||||
"Retry" : "Wiederholen",
|
||||
"Failed to mark comments as read" : "Kommentare konnten nicht als gelesen markiert werden",
|
||||
"Unable to load the comments list" : "Kommentarliste konnte nicht geladen werden",
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 neuer Kommentar","[unread] neue Kommentare"],
|
||||
"Comment" : "Kommentar",
|
||||
|
@ -24,7 +27,6 @@
|
|||
"Comment deleted" : "Kommentar gelöscht",
|
||||
"An error occurred while trying to delete the comment" : "Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
|
||||
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
|
||||
"%1$s commented" : "%1$s kommentierte",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ungelesener Kommentar","%n ungelesene Kommentare"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -16,7 +16,8 @@ OC.L10N.register(
|
|||
"Delete comment" : "Kommentar löschen",
|
||||
"Cancel edit" : "Bearbeiten abbrechen",
|
||||
"Post comment" : "Kommentar veröffentlichen",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" für Erwähnungen, \":\" für Emoji, \"/\" für Smart Picker",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ für Erwähnungen, : für Emoji, / für Smart Picker",
|
||||
"Could not reload comments" : "Kommentare konnten nicht erneut geladen werden",
|
||||
"No comments yet, start the conversation!" : "Keine Kommentare bisher. Beginnen Sie die Diskussion!",
|
||||
"No more messages" : "Keine weiteren Nachrichten",
|
||||
"Retry" : "Wiederholen",
|
||||
|
@ -28,7 +29,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Kommentar gelöscht",
|
||||
"An error occurred while trying to delete the comment" : "Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
|
||||
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
|
||||
"%1$s commented" : "%1$s kommentierte",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ungelesener Kommentar","%n ungelesene Kommentare"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -14,7 +14,8 @@
|
|||
"Delete comment" : "Kommentar löschen",
|
||||
"Cancel edit" : "Bearbeiten abbrechen",
|
||||
"Post comment" : "Kommentar veröffentlichen",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" für Erwähnungen, \":\" für Emoji, \"/\" für Smart Picker",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ für Erwähnungen, : für Emoji, / für Smart Picker",
|
||||
"Could not reload comments" : "Kommentare konnten nicht erneut geladen werden",
|
||||
"No comments yet, start the conversation!" : "Keine Kommentare bisher. Beginnen Sie die Diskussion!",
|
||||
"No more messages" : "Keine weiteren Nachrichten",
|
||||
"Retry" : "Wiederholen",
|
||||
|
@ -26,7 +27,6 @@
|
|||
"Comment deleted" : "Kommentar gelöscht",
|
||||
"An error occurred while trying to delete the comment" : "Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
|
||||
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
|
||||
"%1$s commented" : "%1$s kommentierte",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ungelesener Kommentar","%n ungelesene Kommentare"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -26,7 +26,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Το σχόλιο διαγράφηκε",
|
||||
"An error occurred while trying to delete the comment" : "Παρουσιάστηκε σφάλμα κατά την προσπάθεια διαγραφής του σχολίου",
|
||||
"An error occurred while trying to create the comment" : "Παρουσιάστηκε σφάλμα κατά την προσπάθεια δημιουργίας του σχολίου",
|
||||
"%1$s commented" : "%1$s σχολίασε",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n αδιάβαστο σχόλιο","%n αδιάβαστα σχόλια"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
"Comment deleted" : "Το σχόλιο διαγράφηκε",
|
||||
"An error occurred while trying to delete the comment" : "Παρουσιάστηκε σφάλμα κατά την προσπάθεια διαγραφής του σχολίου",
|
||||
"An error occurred while trying to create the comment" : "Παρουσιάστηκε σφάλμα κατά την προσπάθεια δημιουργίας του σχολίου",
|
||||
"%1$s commented" : "%1$s σχολίασε",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n αδιάβαστο σχόλιο","%n αδιάβαστα σχόλια"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -16,7 +16,8 @@ OC.L10N.register(
|
|||
"Delete comment" : "Delete comment",
|
||||
"Cancel edit" : "Cancel edit",
|
||||
"Post comment" : "Post comment",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" for mentions, \":\" for emoji, \"/\" for smart picker",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ for mentions, : for emoji, / for smart picker",
|
||||
"Could not reload comments" : "Could not reload comments",
|
||||
"No comments yet, start the conversation!" : "No comments yet, start the conversation!",
|
||||
"No more messages" : "No more messages",
|
||||
"Retry" : "Retry",
|
||||
|
@ -28,7 +29,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Comment deleted",
|
||||
"An error occurred while trying to delete the comment" : "An error occurred while trying to delete the comment",
|
||||
"An error occurred while trying to create the comment" : "An error occurred while trying to create the comment",
|
||||
"%1$s commented" : "%1$s commented",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n unread comment","%n unread comments"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -14,7 +14,8 @@
|
|||
"Delete comment" : "Delete comment",
|
||||
"Cancel edit" : "Cancel edit",
|
||||
"Post comment" : "Post comment",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" for mentions, \":\" for emoji, \"/\" for smart picker",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ for mentions, : for emoji, / for smart picker",
|
||||
"Could not reload comments" : "Could not reload comments",
|
||||
"No comments yet, start the conversation!" : "No comments yet, start the conversation!",
|
||||
"No more messages" : "No more messages",
|
||||
"Retry" : "Retry",
|
||||
|
@ -26,7 +27,6 @@
|
|||
"Comment deleted" : "Comment deleted",
|
||||
"An error occurred while trying to delete the comment" : "An error occurred while trying to delete the comment",
|
||||
"An error occurred while trying to create the comment" : "An error occurred while trying to create the comment",
|
||||
"%1$s commented" : "%1$s commented",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n unread comment","%n unread comments"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -16,7 +16,6 @@ OC.L10N.register(
|
|||
"Retry" : "Reprovi",
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 nova komento","{unread} novaj komentoj"],
|
||||
"Comment" : "Komento",
|
||||
"%1$s commented" : "%1$s komentis",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n nelegataj komentoj","%n nelegataj komentoj"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
"Retry" : "Reprovi",
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 nova komento","{unread} novaj komentoj"],
|
||||
"Comment" : "Komento",
|
||||
"%1$s commented" : "%1$s komentis",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n nelegataj komentoj","%n nelegataj komentoj"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -16,7 +16,8 @@ OC.L10N.register(
|
|||
"Delete comment" : "Borrar comentario",
|
||||
"Cancel edit" : "Cacelar edición",
|
||||
"Post comment" : "Publicar comentario",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" para menciones, \":\" para emojis, \"/\" para selector inteligente",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ para menciones, : para emoji, / para selector inteligente",
|
||||
"Could not reload comments" : "No se pudieron recargar los comentarios",
|
||||
"No comments yet, start the conversation!" : "¡No hay comentarios, empieza la conversación!",
|
||||
"No more messages" : "No hay más mensajes",
|
||||
"Retry" : "Reintentar",
|
||||
|
@ -28,7 +29,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Comentario borrado",
|
||||
"An error occurred while trying to delete the comment" : "Ocurrió un error intentando borrar el comentario",
|
||||
"An error occurred while trying to create the comment" : "Ocurrió un error intentando crear el comentario",
|
||||
"%1$s commented" : "%1$s comentados",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentario sin leer","%n comentarios no leídos","%n comentarios no leídos"]
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
|
|
@ -14,7 +14,8 @@
|
|||
"Delete comment" : "Borrar comentario",
|
||||
"Cancel edit" : "Cacelar edición",
|
||||
"Post comment" : "Publicar comentario",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" para menciones, \":\" para emojis, \"/\" para selector inteligente",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ para menciones, : para emoji, / para selector inteligente",
|
||||
"Could not reload comments" : "No se pudieron recargar los comentarios",
|
||||
"No comments yet, start the conversation!" : "¡No hay comentarios, empieza la conversación!",
|
||||
"No more messages" : "No hay más mensajes",
|
||||
"Retry" : "Reintentar",
|
||||
|
@ -26,7 +27,6 @@
|
|||
"Comment deleted" : "Comentario borrado",
|
||||
"An error occurred while trying to delete the comment" : "Ocurrió un error intentando borrar el comentario",
|
||||
"An error occurred while trying to create the comment" : "Ocurrió un error intentando crear el comentario",
|
||||
"%1$s commented" : "%1$s comentados",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentario sin leer","%n comentarios no leídos","%n comentarios no leídos"]
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
|
@ -15,7 +15,6 @@ OC.L10N.register(
|
|||
"No comments yet, start the conversation!" : "No hay comentarios aún, iniciar la conversación!",
|
||||
"Retry" : "Reintentar",
|
||||
"Comment" : "Comentar",
|
||||
"%1$s commented" : "%1$s comentados",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
"No comments yet, start the conversation!" : "No hay comentarios aún, iniciar la conversación!",
|
||||
"Retry" : "Reintentar",
|
||||
"Comment" : "Comentar",
|
||||
"%1$s commented" : "%1$s comentados",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
|
@ -15,7 +15,6 @@ OC.L10N.register(
|
|||
"Retry" : "Reintentar",
|
||||
"Comment" : "Comentario",
|
||||
"Comment deleted" : "Comentario borrado",
|
||||
"%1$s commented" : "%1$s comentó",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
"Retry" : "Reintentar",
|
||||
"Comment" : "Comentario",
|
||||
"Comment deleted" : "Comentario borrado",
|
||||
"%1$s commented" : "%1$s comentó",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
|
@ -27,7 +27,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Comentario eliminado",
|
||||
"An error occurred while trying to delete the comment" : "Ocurrió un error al intentar eliminar el comentario",
|
||||
"An error occurred while trying to create the comment" : "Ocurrió un error al intentar crear el comentario",
|
||||
"%1$s commented" : "%1$s comentó",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
"Comment deleted" : "Comentario eliminado",
|
||||
"An error occurred while trying to delete the comment" : "Ocurrió un error al intentar eliminar el comentario",
|
||||
"An error occurred while trying to create the comment" : "Ocurrió un error al intentar crear el comentario",
|
||||
"%1$s commented" : "%1$s comentó",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
|
@ -15,7 +15,6 @@ OC.L10N.register(
|
|||
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
|
||||
"Retry" : "Reintentar",
|
||||
"Comment" : "Comentario",
|
||||
"%1$s commented" : "%1$s comentó",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
|
||||
"Retry" : "Reintentar",
|
||||
"Comment" : "Comentario",
|
||||
"%1$s commented" : "%1$s comentó",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
|
@ -27,7 +27,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Kommentaar kustutatud",
|
||||
"An error occurred while trying to delete the comment" : "Kommentaari kustutamisel tekkis tõrge",
|
||||
"An error occurred while trying to create the comment" : "Kommentaari lisamisel tekkis tõrge",
|
||||
"%1$s commented" : "%1$s kommenteeris",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n lugemata kommentaar","%n lugemata kommentaari"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
"Comment deleted" : "Kommentaar kustutatud",
|
||||
"An error occurred while trying to delete the comment" : "Kommentaari kustutamisel tekkis tõrge",
|
||||
"An error occurred while trying to create the comment" : "Kommentaari lisamisel tekkis tõrge",
|
||||
"%1$s commented" : "%1$s kommenteeris",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n lugemata kommentaar","%n lugemata kommentaari"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -16,7 +16,8 @@ OC.L10N.register(
|
|||
"Delete comment" : "Ezabatu iruzkina",
|
||||
"Cancel edit" : "Utzi editatzeari",
|
||||
"Post comment" : "Argitaratu iruzkina",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" aipamenetarako, \":\" emojientzako, \"/\" hautatzaile adimentsurako",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ aipamenetarako, : emojientzako, / hautatzaile adimentsurako",
|
||||
"Could not reload comments" : "Ezin izan dira iruzkinak freskatu",
|
||||
"No comments yet, start the conversation!" : "Oraindik ez dago iruzkinik, izan zaitez lehena zerbait esanez!",
|
||||
"No more messages" : "Ez da mezu gehiagorik",
|
||||
"Retry" : "Saiatu berriro",
|
||||
|
@ -28,7 +29,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Iruzkina ezabatu da",
|
||||
"An error occurred while trying to delete the comment" : "Errorea gertatu da iruzkina ezabatzen saiatzean",
|
||||
"An error occurred while trying to create the comment" : "Errorea gertatu da iruzkina sortzen saiatzean",
|
||||
"%1$s commented" : "%1$s-(e)k iruzkindu du",
|
||||
"_%n unread comment_::_%n unread comments_" : ["iruzkin %n irakurri gabe","%n iruzkin irakurri gabe"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -14,7 +14,8 @@
|
|||
"Delete comment" : "Ezabatu iruzkina",
|
||||
"Cancel edit" : "Utzi editatzeari",
|
||||
"Post comment" : "Argitaratu iruzkina",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" aipamenetarako, \":\" emojientzako, \"/\" hautatzaile adimentsurako",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ aipamenetarako, : emojientzako, / hautatzaile adimentsurako",
|
||||
"Could not reload comments" : "Ezin izan dira iruzkinak freskatu",
|
||||
"No comments yet, start the conversation!" : "Oraindik ez dago iruzkinik, izan zaitez lehena zerbait esanez!",
|
||||
"No more messages" : "Ez da mezu gehiagorik",
|
||||
"Retry" : "Saiatu berriro",
|
||||
|
@ -26,7 +27,6 @@
|
|||
"Comment deleted" : "Iruzkina ezabatu da",
|
||||
"An error occurred while trying to delete the comment" : "Errorea gertatu da iruzkina ezabatzen saiatzean",
|
||||
"An error occurred while trying to create the comment" : "Errorea gertatu da iruzkina sortzen saiatzean",
|
||||
"%1$s commented" : "%1$s-(e)k iruzkindu du",
|
||||
"_%n unread comment_::_%n unread comments_" : ["iruzkin %n irakurri gabe","%n iruzkin irakurri gabe"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -27,7 +27,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "توضیح حذف",
|
||||
"An error occurred while trying to delete the comment" : "An error occurred while trying to delete the comment",
|
||||
"An error occurred while trying to create the comment" : "An error occurred while trying to create the comment",
|
||||
"%1$s commented" : "%1$s commented",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n unread comment","%n unread comments"]
|
||||
},
|
||||
"nplurals=2; plural=(n > 1);");
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
"Comment deleted" : "توضیح حذف",
|
||||
"An error occurred while trying to delete the comment" : "An error occurred while trying to delete the comment",
|
||||
"An error occurred while trying to create the comment" : "An error occurred while trying to create the comment",
|
||||
"%1$s commented" : "%1$s commented",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n unread comment","%n unread comments"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n > 1);"
|
||||
}
|
|
@ -25,7 +25,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Kommentti poistettu",
|
||||
"An error occurred while trying to delete the comment" : "Kommenttia poistaessa tapahtui virhe",
|
||||
"An error occurred while trying to create the comment" : "Kommenttia luodessa tapahtui virhe",
|
||||
"%1$s commented" : "%1$s kommentoi",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n lukematon kommentti","%n lukematonta kommenttia"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
"Comment deleted" : "Kommentti poistettu",
|
||||
"An error occurred while trying to delete the comment" : "Kommenttia poistaessa tapahtui virhe",
|
||||
"An error occurred while trying to create the comment" : "Kommenttia luodessa tapahtui virhe",
|
||||
"%1$s commented" : "%1$s kommentoi",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n lukematon kommentti","%n lukematonta kommenttia"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -16,7 +16,8 @@ OC.L10N.register(
|
|||
"Delete comment" : "Supprimer le commentaire",
|
||||
"Cancel edit" : "Annuler les modifications",
|
||||
"Post comment" : "Publier le commentaire",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" pour les mentions, \":\" pour les émojis, \"/\" pour le sélecteur intelligent",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ pour les mentions, : pour les émojis, / pour le sélecteur intelligent",
|
||||
"Could not reload comments" : "Impossible de rafraichir les commentaires",
|
||||
"No comments yet, start the conversation!" : "Il n'y a aucun commentaire, démarrez la conversation !",
|
||||
"No more messages" : "Aucun autre message",
|
||||
"Retry" : "Réessayer",
|
||||
|
@ -28,7 +29,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Commentaire supprimé",
|
||||
"An error occurred while trying to delete the comment" : "Une erreur s'est produite lors de la tentative de suppression du commentaire",
|
||||
"An error occurred while trying to create the comment" : "Une erreur s'est produite lors de la tentative de création du commentaire",
|
||||
"%1$s commented" : "%1$s a commenté",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n commentaire non lu","%n commentaires non lus","%n commentaires non lus"]
|
||||
},
|
||||
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
|
|
@ -14,7 +14,8 @@
|
|||
"Delete comment" : "Supprimer le commentaire",
|
||||
"Cancel edit" : "Annuler les modifications",
|
||||
"Post comment" : "Publier le commentaire",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" pour les mentions, \":\" pour les émojis, \"/\" pour le sélecteur intelligent",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ pour les mentions, : pour les émojis, / pour le sélecteur intelligent",
|
||||
"Could not reload comments" : "Impossible de rafraichir les commentaires",
|
||||
"No comments yet, start the conversation!" : "Il n'y a aucun commentaire, démarrez la conversation !",
|
||||
"No more messages" : "Aucun autre message",
|
||||
"Retry" : "Réessayer",
|
||||
|
@ -26,7 +27,6 @@
|
|||
"Comment deleted" : "Commentaire supprimé",
|
||||
"An error occurred while trying to delete the comment" : "Une erreur s'est produite lors de la tentative de suppression du commentaire",
|
||||
"An error occurred while trying to create the comment" : "Une erreur s'est produite lors de la tentative de création du commentaire",
|
||||
"%1$s commented" : "%1$s a commenté",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n commentaire non lu","%n commentaires non lus","%n commentaires non lus"]
|
||||
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
|
@ -16,6 +16,8 @@ OC.L10N.register(
|
|||
"Delete comment" : "Eliminar comentario",
|
||||
"Cancel edit" : "Cancelar a edición",
|
||||
"Post comment" : "Publicar comentario",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ para mencións, : para «emoji», / para selector intelixente",
|
||||
"Could not reload comments" : "Non foi posíbel volver cargar os comentarios",
|
||||
"No comments yet, start the conversation!" : "Aínda non hai comentarios, comeza a conversa!",
|
||||
"No more messages" : "Non hai máis mensaxes",
|
||||
"Retry" : "Tentar de novo",
|
||||
|
@ -27,7 +29,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Comentario eliminado",
|
||||
"An error occurred while trying to delete the comment" : "Produciuse un erro cando tentaba eliminar o comentario",
|
||||
"An error occurred while trying to create the comment" : "Produciuse un erro cando tentaba crear o comentario",
|
||||
"%1$s commented" : "%1$s comentados",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentario sen ler","%n comentarios sen ler"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -14,6 +14,8 @@
|
|||
"Delete comment" : "Eliminar comentario",
|
||||
"Cancel edit" : "Cancelar a edición",
|
||||
"Post comment" : "Publicar comentario",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ para mencións, : para «emoji», / para selector intelixente",
|
||||
"Could not reload comments" : "Non foi posíbel volver cargar os comentarios",
|
||||
"No comments yet, start the conversation!" : "Aínda non hai comentarios, comeza a conversa!",
|
||||
"No more messages" : "Non hai máis mensaxes",
|
||||
"Retry" : "Tentar de novo",
|
||||
|
@ -25,7 +27,6 @@
|
|||
"Comment deleted" : "Comentario eliminado",
|
||||
"An error occurred while trying to delete the comment" : "Produciuse un erro cando tentaba eliminar o comentario",
|
||||
"An error occurred while trying to create the comment" : "Produciuse un erro cando tentaba crear o comentario",
|
||||
"%1$s commented" : "%1$s comentados",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentario sen ler","%n comentarios sen ler"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -26,7 +26,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "נמחקה הערה",
|
||||
"An error occurred while trying to delete the comment" : "אירעה שגיאה בניסיון למחוק את התגובה",
|
||||
"An error occurred while trying to create the comment" : "אירעה שגיאה בניסיון ליצור את התגובה",
|
||||
"%1$s commented" : "התקבלו תגובות %1$s",
|
||||
"_%n unread comment_::_%n unread comments_" : ["תגובה אחת שלא נקראה","%n תגובות שלא נקראו","%n תגובות שלא נקראו","%n תגובות שלא נקראו"]
|
||||
},
|
||||
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;");
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
"Comment deleted" : "נמחקה הערה",
|
||||
"An error occurred while trying to delete the comment" : "אירעה שגיאה בניסיון למחוק את התגובה",
|
||||
"An error occurred while trying to create the comment" : "אירעה שגיאה בניסיון ליצור את התגובה",
|
||||
"%1$s commented" : "התקבלו תגובות %1$s",
|
||||
"_%n unread comment_::_%n unread comments_" : ["תגובה אחת שלא נקראה","%n תגובות שלא נקראו","%n תגובות שלא נקראו","%n תגובות שלא נקראו"]
|
||||
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"
|
||||
}
|
|
@ -24,7 +24,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Komentar izbrisan",
|
||||
"An error occurred while trying to delete the comment" : "Došlo je do pogreške prilikom brisanja komentara",
|
||||
"An error occurred while trying to create the comment" : "Došlo je do pogreške prilikom stvaranja komentara",
|
||||
"%1$s commented" : "Komentirao je %1$s",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n nepročitani komentar","%n nepročitanih komentara","%n nepročitanih komentara"]
|
||||
},
|
||||
"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;");
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
"Comment deleted" : "Komentar izbrisan",
|
||||
"An error occurred while trying to delete the comment" : "Došlo je do pogreške prilikom brisanja komentara",
|
||||
"An error occurred while trying to create the comment" : "Došlo je do pogreške prilikom stvaranja komentara",
|
||||
"%1$s commented" : "Komentirao je %1$s",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n nepročitani komentar","%n nepročitanih komentara","%n nepročitanih komentara"]
|
||||
},"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"
|
||||
}
|
|
@ -16,7 +16,8 @@ OC.L10N.register(
|
|||
"Delete comment" : "Hozzászólás törlése",
|
||||
"Cancel edit" : "Változások elvetése",
|
||||
"Post comment" : "Hozzászólás közzététele",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "„@” az említésekhez, „:” az emodzsikhoz, „/” az okos választához",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ az említésekhez, : az emodzsikhoz, / az okos választóhoz",
|
||||
"Could not reload comments" : "Nem sikerült a megjegyzések újratöltése.",
|
||||
"No comments yet, start the conversation!" : "Még nincsenek hozzászólások, kezdje el a beszélgetést!",
|
||||
"No more messages" : "Nincs több üzenet",
|
||||
"Retry" : "Újra",
|
||||
|
@ -28,7 +29,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Hozzászólás törölve",
|
||||
"An error occurred while trying to delete the comment" : "Hiba történt a megjegyzés törlése közben",
|
||||
"An error occurred while trying to create the comment" : "Hiba történt a megjegyzés létrehozása közben",
|
||||
"%1$s commented" : "%1$s hozzászólt",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n olvasatlan hozzászólás","%n olvasatlan hozzászólás"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -14,7 +14,8 @@
|
|||
"Delete comment" : "Hozzászólás törlése",
|
||||
"Cancel edit" : "Változások elvetése",
|
||||
"Post comment" : "Hozzászólás közzététele",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "„@” az említésekhez, „:” az emodzsikhoz, „/” az okos választához",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ az említésekhez, : az emodzsikhoz, / az okos választóhoz",
|
||||
"Could not reload comments" : "Nem sikerült a megjegyzések újratöltése.",
|
||||
"No comments yet, start the conversation!" : "Még nincsenek hozzászólások, kezdje el a beszélgetést!",
|
||||
"No more messages" : "Nincs több üzenet",
|
||||
"Retry" : "Újra",
|
||||
|
@ -26,7 +27,6 @@
|
|||
"Comment deleted" : "Hozzászólás törölve",
|
||||
"An error occurred while trying to delete the comment" : "Hiba történt a megjegyzés törlése közben",
|
||||
"An error occurred while trying to create the comment" : "Hiba történt a megjegyzés létrehozása közben",
|
||||
"%1$s commented" : "%1$s hozzászólt",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n olvasatlan hozzászólás","%n olvasatlan hozzászólás"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -26,7 +26,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Komentar dihapus",
|
||||
"An error occurred while trying to delete the comment" : "Terjadi kesalahan ketika mencoba untuk menghapus komentar",
|
||||
"An error occurred while trying to create the comment" : "Terjadi kesalahan ketika mencoba untuk membuat komentar",
|
||||
"%1$s commented" : "%1$s dikomentari",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%nkomentar belum dibaca"]
|
||||
},
|
||||
"nplurals=1; plural=0;");
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
"Comment deleted" : "Komentar dihapus",
|
||||
"An error occurred while trying to delete the comment" : "Terjadi kesalahan ketika mencoba untuk menghapus komentar",
|
||||
"An error occurred while trying to create the comment" : "Terjadi kesalahan ketika mencoba untuk membuat komentar",
|
||||
"%1$s commented" : "%1$s dikomentari",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%nkomentar belum dibaca"]
|
||||
},"pluralForm" :"nplurals=1; plural=0;"
|
||||
}
|
|
@ -9,14 +9,19 @@ OC.L10N.register(
|
|||
"%1$s commented on %2$s" : "%1$s setti inn athugasemd um %2$s",
|
||||
"{author} commented on {file}" : "{author} setti inn athugasemd við {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Athugasemdir</strong> við skrár",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Minnst var á þig í \"{file}\", í athugasemd frá notanda sem síðan þá hefur verið eytt",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} minntist á þig í athugasemd við \"{file}\"",
|
||||
"Files app plugin to add comments to files" : "Viðbót við skráaforrit til að bæta athugasemdum við skrár",
|
||||
"Edit comment" : "Breyta athugasemd",
|
||||
"Delete comment" : "Eyða athugasemd",
|
||||
"Cancel edit" : "Hætta við breytingar",
|
||||
"Post comment" : "Senda inn athugasemd",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ til að minnast á, : fyrir tjáningartákn, / fyrir snjallveljara",
|
||||
"Could not reload comments" : "Gat ekki endurlesið athugasemdir",
|
||||
"No comments yet, start the conversation!" : "Engar athugasemdir ennþá, byrjaðu umræðuna!",
|
||||
"No more messages" : "Engin fleiri skilaboð",
|
||||
"Retry" : "Reyna aftur",
|
||||
"Failed to mark comments as read" : "Tókst ekki að merkja athugasemdir sem lesnar",
|
||||
"Unable to load the comments list" : "Gat ekki hlaðið inn lista yfir athugasemdir",
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 ný athugasemd","{unread} nýjar athugasemdir"],
|
||||
"Comment" : "Athugasemd",
|
||||
|
@ -24,7 +29,6 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Athugasemd var eytt",
|
||||
"An error occurred while trying to delete the comment" : "Villa átti sér stað við að eyða athugasemdinni",
|
||||
"An error occurred while trying to create the comment" : "Villa átti sér stað við að útbúa athugasemdina",
|
||||
"%1$s commented" : "%1$s setti inn athugasemd",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ólesin athugasemd","%n ólesnar athugasemdir"]
|
||||
},
|
||||
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
|
||||
|
|
|
@ -7,14 +7,19 @@
|
|||
"%1$s commented on %2$s" : "%1$s setti inn athugasemd um %2$s",
|
||||
"{author} commented on {file}" : "{author} setti inn athugasemd við {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Athugasemdir</strong> við skrár",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Minnst var á þig í \"{file}\", í athugasemd frá notanda sem síðan þá hefur verið eytt",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} minntist á þig í athugasemd við \"{file}\"",
|
||||
"Files app plugin to add comments to files" : "Viðbót við skráaforrit til að bæta athugasemdum við skrár",
|
||||
"Edit comment" : "Breyta athugasemd",
|
||||
"Delete comment" : "Eyða athugasemd",
|
||||
"Cancel edit" : "Hætta við breytingar",
|
||||
"Post comment" : "Senda inn athugasemd",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ til að minnast á, : fyrir tjáningartákn, / fyrir snjallveljara",
|
||||
"Could not reload comments" : "Gat ekki endurlesið athugasemdir",
|
||||
"No comments yet, start the conversation!" : "Engar athugasemdir ennþá, byrjaðu umræðuna!",
|
||||
"No more messages" : "Engin fleiri skilaboð",
|
||||
"Retry" : "Reyna aftur",
|
||||
"Failed to mark comments as read" : "Tókst ekki að merkja athugasemdir sem lesnar",
|
||||
"Unable to load the comments list" : "Gat ekki hlaðið inn lista yfir athugasemdir",
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 ný athugasemd","{unread} nýjar athugasemdir"],
|
||||
"Comment" : "Athugasemd",
|
||||
|
@ -22,7 +27,6 @@
|
|||
"Comment deleted" : "Athugasemd var eytt",
|
||||
"An error occurred while trying to delete the comment" : "Villa átti sér stað við að eyða athugasemdinni",
|
||||
"An error occurred while trying to create the comment" : "Villa átti sér stað við að útbúa athugasemdina",
|
||||
"%1$s commented" : "%1$s setti inn athugasemd",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ólesin athugasemd","%n ólesnar athugasemdir"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue