Signed-off-by: Marcel Klehr <mklehr@gmx.net>tags/v29.0.0beta1
@@ -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 |
@@ -64,7 +64,7 @@ updates: | |||
day: saturday | |||
time: "03:00" | |||
timezone: Europe/Paris | |||
target-branch: stable25 | |||
target-branch: stable26 | |||
labels: | |||
- "3. to review" | |||
- "feature: dependencies" | |||
@@ -84,7 +84,7 @@ updates: | |||
day: saturday | |||
time: "03:00" | |||
timezone: Europe/Paris | |||
target-branch: stable26 | |||
target-branch: stable27 | |||
labels: | |||
- "3. to review" | |||
- "feature: dependencies" | |||
@@ -104,7 +104,7 @@ updates: | |||
day: saturday | |||
time: "03:00" | |||
timezone: Europe/Paris | |||
target-branch: stable27 | |||
target-branch: stable28 | |||
labels: | |||
- "3. to review" | |||
- "feature: dependencies" | |||
@@ -125,7 +125,7 @@ updates: | |||
day: saturday | |||
time: "03:00" | |||
timezone: Europe/Paris | |||
target-branch: stable25 | |||
target-branch: stable26 | |||
labels: | |||
- "3. to review" | |||
- "feature: dependencies" | |||
@@ -143,7 +143,7 @@ updates: | |||
day: saturday | |||
time: "03:00" | |||
timezone: Europe/Paris | |||
target-branch: stable26 | |||
target-branch: stable27 | |||
labels: | |||
- "3. to review" | |||
- "feature: dependencies" | |||
@@ -161,7 +161,7 @@ updates: | |||
day: saturday | |||
time: "03:00" | |||
timezone: Europe/Paris | |||
target-branch: stable27 | |||
target-branch: stable28 | |||
labels: | |||
- "3. to review" | |||
- "feature: dependencies" |
@@ -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: | |||
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/**' | |||
- '**/__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' }} | |||
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 |
@@ -1 +1 @@ | |||
Subproject commit e6c45c6c0d4f92ffec621446fcc3b34584772b13 | |||
Subproject commit 5b8a5fc015968956a000d269561cb5ec9d931870 |
@@ -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);"); |