Merge branch 'master' into fix/setting/accessibility-title

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
This commit is contained in:
Carl Schwan 2022-09-02 12:05:51 +02:00 committed by GitHub
commit 2397ea7219
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3376 changed files with 77823 additions and 34629 deletions

View File

@ -6,6 +6,7 @@ node_modules/
**/js/*
*.config.js
tests/lib/
apps-extra
# TODO: remove when comments files is not using handlebar templates anymore
apps/comments/src/templates.js

7
.github/CODEOWNERS vendored
View File

@ -8,3 +8,10 @@
/apps/twofactor_backupcodes @ChristophWurst @miaulalala @nickvergessen
*/TwoFactorAuth/* @ChristophWurst @miaulalala @nickvergessen
/core/templates/twofactor* @ChristophWurst @miaulalala @nickvergessen
/apps/user_status @CarlSchwan
/apps/settings/lib @CarlSchwan
/lib/private/Metadata @CarlSchwan
/lib/private/Profiler @CarlSchwan
/lib/public/Profiler @CarlSchwan

View File

@ -21,6 +21,8 @@ body:
required: true
- label: Nextcloud Server **is** up to date. See [Maintenance and Release Schedule](https://github.com/nextcloud/server/wiki/Maintenance-and-Release-Schedule) for supported versions.
required: true
- label: Nextcloud Server **is** running on 64bit capable CPU, PHP and OS.
required: true
- label: I agree to follow Nextcloud's [Code of Conduct](https://nextcloud.com/contribute/code-of-conduct/).
required: true
- type: textarea
@ -60,13 +62,14 @@ body:
Select installation method you've used.
_Describe the method in the "Additional info" section if you chose "Other"._
options:
- "Manual installation"
- "Official Docker image"
- "Official VM scripts"
- "Official SNAP package"
- "Official All-in-One appliance"
- "Web installer on a VPS or web space"
- "Other"
- "Community Web installer on a VPS or web space"
- "Community Manual installation with Archive"
- "Community Docker image"
- "Community NextcloudPi appliance"
- "Community SNAP package"
- "Community VM appliance"
- "Other Community project"
- type: dropdown
id: system
attributes:

View File

@ -86,6 +86,12 @@ jobs:
npm ci
npm run build --if-present
- name: Build css
run: npm run --if-present sass
- name: Build icons css
run: npm run --if-present sass:icons
- name: Commit and push default
if: ${{ needs.init.outputs.arg1 != 'fixup' && needs.init.outputs.arg1 != 'amend' }}
run: |

View File

@ -9,9 +9,14 @@ on:
issue_comment:
types: created
permissions:
contents: read
jobs:
rebase:
runs-on: ubuntu-latest
permissions:
contents: none
# On pull requests and if the comment starts with `/rebase`
if: github.event.issue.pull_request != '' && startsWith(github.event.comment.body, '/rebase')
@ -32,7 +37,7 @@ jobs:
token: ${{ secrets.COMMAND_BOT_PAT }}
- name: Automatic Rebase
uses: cirrus-actions/rebase@1.6
uses: cirrus-actions/rebase@1.7
env:
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}

View File

@ -6,7 +6,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
php-versions: ['7.4', '8.0', '8.1']
php-versions: ['7.4', '8.0', '8.1', '8.2']
name: php${{ matrix.php-versions }} lint
steps:
- name: Checkout

View File

@ -13,6 +13,9 @@ on:
- master
- stable*
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
@ -50,10 +53,12 @@ jobs:
- name: Check webpack build changes
run: |
bash -c "[[ ! \"`git status --porcelain `\" ]] || exit 1"
bash -c "[[ ! \"`git status --porcelain `\" ]] || (echo 'Please recompile and commit the assets, see the section \"Show changes on failure\" for details' && exit 1)"
- name: Show changes on failure
if: failure()
run: |
git status
git --no-pager diff
exit 1 # make it red to grab attention

101
.github/workflows/performance.yml vendored Normal file
View File

@ -0,0 +1,101 @@
name: Performance testing
on:
pull_request:
jobs:
performance-testing:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php-versions: ['8.0']
name: performance-${{ matrix.php-versions }}
steps:
- name: Checkout server before PR
uses: actions/checkout@v3
with:
submodules: true
ref: ${{ github.event.pull_request.base.ref }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
- name: Set up Nextcloud
run: |
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
php -S localhost:8080 &
- name: Apply blueprint
uses: icewind1991/blueprint@v0.1.2
with:
blueprint: tests/blueprints/basic.toml
ref: ${{ github.event.pull_request.head.ref }}
- name: Run before measurements
uses: nextcloud/profiler@fa03a1e6864fcb63fb92b8940fa72f5191baffbe
with:
run: |
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test
curl -s -u test:test http://localhost:8080/remote.php/dav/files/test/test.txt
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test/many_files
curl -s -u test:test -T README.md http://localhost:8080/remote.php/dav/files/test/new_file.txt
curl -s -u test:test -X DELETE http://localhost:8080/remote.php/dav/files/test/new_file.txt
output: before.json
- name: Apply PR
run: |
git fetch origin ${{ github.event.pull_request.head.ref }}
git checkout ${{ github.event.pull_request.head.ref }}
git submodule update
./occ upgrade
- name: Run after measurements
id: compare
uses: nextcloud/profiler@fa03a1e6864fcb63fb92b8940fa72f5191baffbe
with:
run: |
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test
curl -s -u test:test http://localhost:8080/remote.php/dav/files/test/test.txt
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test/many_files
curl -s -u test:test -T README.md http://localhost:8080/remote.php/dav/files/test/new_file.txt
curl -s -u test:test -X DELETE http://localhost:8080/remote.php/dav/files/test/new_file.txt
output: after.json
compare-with: before.json
- name: Upload profiles
if: always()
uses: actions/upload-artifact@v2
with:
name: profiles
path: |
before.json
after.json
- uses: actions/github-script@v5
if: failure() && steps.compare.outcome == 'failure'
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
let comment = `Possible performance regression detected\n`;
comment += `<details><summary>Show Output</summary>
\`\`\`
${{ steps.compare.outputs.compare }}
\`\`\`
</details>`;
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: comment
})

View File

@ -24,6 +24,7 @@ jobs:
for your contributions.
stale-issue-label: 'stale'
only-labels: 'needs info'
labels-to-remove-when-unstale: 'needs info,stale'
exempt-issue-labels: '1. to develop,2. developing,3. to review,4. to release,security'
days-before-stale: 30
days-before-close: 14

View File

@ -3,15 +3,23 @@ name: Update Psalm baseline
on:
workflow_dispatch:
schedule:
- cron: '5 4 * * *'
- cron: "5 4 * * *"
jobs:
update-psalm-baseline:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
branches: ["master", "stable24", "stable23", "stable22"]
name: update-psalm-baseline-${{ matrix.branches }}
steps:
- uses: actions/checkout@v2
with:
ref: ${{ matrix.branches }}
submodules: true
- name: Set up php7.4
@ -41,10 +49,8 @@ jobs:
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true
branch: automated/noid/psalm-baseline-update
# Make sure we can open multiple PRs
branch-suffix: timestamp
title: '[Automated] Update psalm-baseline.xml'
branch: automated/noid/${{ matrix.branches }}-update-psalm-baseline
title: "[${{ matrix.branches }}] Update psalm-baseline.xml"
body: |
Auto-generated update psalm-baseline.xml with fixed psalm warnings
labels: |

@ -1 +1 @@
Subproject commit 178ffea6b4c68f951e31df600f8929ee5466fd62
Subproject commit d6a35b6d5759c08dd268618951f9e5b1c18aa939

View File

@ -28,7 +28,7 @@ class InstalledVersions
{
/**
* @var mixed[]|null
* @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}|array{}|null
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
*/
private static $installed;
@ -39,7 +39,7 @@ class InstalledVersions
/**
* @var array[]
* @psalm-var array<string, array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
* @psalm-var array<string, array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
*/
private static $installedByVendor = array();
@ -243,7 +243,7 @@ class InstalledVersions
/**
* @return array
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
* @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
*/
public static function getRootPackage()
{
@ -257,7 +257,7 @@ class InstalledVersions
*
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
* @return array[]
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}
* @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}
*/
public static function getRawData()
{
@ -280,7 +280,7 @@ class InstalledVersions
* Returns the raw data of all installed.php which are currently loaded for custom implementations
*
* @return array[]
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
*/
public static function getAllRawData()
{
@ -303,7 +303,7 @@ class InstalledVersions
* @param array[] $data A vendor/composer/installed.php data set
* @return void
*
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data
* @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $data
*/
public static function reload($data)
{
@ -313,7 +313,7 @@ class InstalledVersions
/**
* @return array[]
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
*/
private static function getInstalled()
{

View File

@ -1,22 +1,22 @@
<?php return array(
'root' => array(
'name' => '__root__',
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'reference' => '7669331be09dd3cb848182ae8edc2408802a4fb4',
'type' => 'library',
'install_path' => __DIR__ . '/../',
'aliases' => array(),
'reference' => 'c6429e6cd19c57582364338362e543580821cf99',
'name' => '__root__',
'dev' => false,
),
'versions' => array(
'__root__' => array(
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'reference' => '7669331be09dd3cb848182ae8edc2408802a4fb4',
'type' => 'library',
'install_path' => __DIR__ . '/../',
'aliases' => array(),
'reference' => 'c6429e6cd19c57582364338362e543580821cf99',
'dev_requirement' => false,
),
),

View File

@ -4,4 +4,4 @@ OC.L10N.register(
"Auditing / Logging" : "Auditoría / Registro",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Ofrece a Nextcloud capacidades de registro tales como registrar los accesos a archivos u otras acciones sensibles."
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -1,5 +1,5 @@
{ "translations": {
"Auditing / Logging" : "Auditoría / Registro",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Ofrece a Nextcloud capacidades de registro tales como registrar los accesos a archivos u otras acciones sensibles."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -4,4 +4,4 @@ OC.L10N.register(
"Auditing / Logging" : "Auditando / Logueando",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Proporciona capacidades de registro para Nextcloud, como el acceso a archivos de registro o acciones sensibles."
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -1,5 +1,5 @@
{ "translations": {
"Auditing / Logging" : "Auditando / Logueando",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Proporciona capacidades de registro para Nextcloud, como el acceso a archivos de registro o acciones sensibles."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -4,4 +4,4 @@ OC.L10N.register(
"Auditing / Logging" : "Auditoría / Registro",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Proporciona capacidades de registro para Nextcloud, como el acceso a archivos de registro o acciones sensibles."
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -1,5 +1,5 @@
{ "translations": {
"Auditing / Logging" : "Auditoría / Registro",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Proporciona capacidades de registro para Nextcloud, como el acceso a archivos de registro o acciones sensibles."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -4,4 +4,4 @@ OC.L10N.register(
"Auditing / Logging" : "Auditoría / Registro",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Proporciona capacidades de registro para Nextcloud, como el acceso a archivos de registro o acciones sensibles."
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -1,5 +1,5 @@
{ "translations": {
"Auditing / Logging" : "Auditoría / Registro",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Proporciona capacidades de registro para Nextcloud, como el acceso a archivos de registro o acciones sensibles."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -4,4 +4,4 @@ OC.L10N.register(
"Auditing / Logging" : "Auditoría / Registros",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Habilita las opciones de bitácora de Nextcloud tales como registro de acceso a archivos o de acciones delicadas."
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -1,5 +1,5 @@
{ "translations": {
"Auditing / Logging" : "Auditoría / Registros",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Habilita las opciones de bitácora de Nextcloud tales como registro de acceso a archivos o de acciones delicadas."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -4,4 +4,4 @@ OC.L10N.register(
"Auditing / Logging" : "Audit / journalisation",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fournit des capacités de journalisation pour Nextcloud telles que l'enregistrement des accès aux fichiers ou d'autres actions sensibles."
},
"nplurals=2; plural=(n > 1);");
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -1,5 +1,5 @@
{ "translations": {
"Auditing / Logging" : "Audit / journalisation",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fournit des capacités de journalisation pour Nextcloud telles que l'enregistrement des accès aux fichiers ou d'autres actions sensibles."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -4,4 +4,4 @@ OC.L10N.register(
"Auditing / Logging" : "Auditing / Registrazione",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fornisce capacità di registrazione per Nextcloud come la registrazione di accessi ai file o azioni altrimenti sensibili."
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -1,5 +1,5 @@
{ "translations": {
"Auditing / Logging" : "Auditing / Registrazione",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fornisce capacità di registrazione per Nextcloud come la registrazione di accessi ai file o azioni altrimenti sensibili."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -4,4 +4,4 @@ OC.L10N.register(
"Auditing / Logging" : "Auditoria / Registro",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fornece recursos de registro para Nextcloud, como registros de acesso a arquivos ou outras ações confidenciais."
},
"nplurals=2; plural=(n > 1);");
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -1,5 +1,5 @@
{ "translations": {
"Auditing / Logging" : "Auditoria / Registro",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fornece recursos de registro para Nextcloud, como registros de acesso a arquivos ou outras ações confidenciais."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -4,4 +4,4 @@ OC.L10N.register(
"Auditing / Logging" : "Auditoria / registo",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fornece a funcionalidade de registo ao Nextcloud como o registo de acesso a ficheiros ou acções sensíveis."
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -1,5 +1,5 @@
{ "translations": {
"Auditing / Logging" : "Auditoria / registo",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fornece a funcionalidade de registo ao Nextcloud como o registo de acesso a ficheiros ou acções sensíveis."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -28,7 +28,7 @@ class InstalledVersions
{
/**
* @var mixed[]|null
* @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}|array{}|null
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
*/
private static $installed;
@ -39,7 +39,7 @@ class InstalledVersions
/**
* @var array[]
* @psalm-var array<string, array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
* @psalm-var array<string, array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
*/
private static $installedByVendor = array();
@ -243,7 +243,7 @@ class InstalledVersions
/**
* @return array
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
* @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
*/
public static function getRootPackage()
{
@ -257,7 +257,7 @@ class InstalledVersions
*
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
* @return array[]
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}
* @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}
*/
public static function getRawData()
{
@ -280,7 +280,7 @@ class InstalledVersions
* Returns the raw data of all installed.php which are currently loaded for custom implementations
*
* @return array[]
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
*/
public static function getAllRawData()
{
@ -303,7 +303,7 @@ class InstalledVersions
* @param array[] $data A vendor/composer/installed.php data set
* @return void
*
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data
* @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $data
*/
public static function reload($data)
{
@ -313,7 +313,7 @@ class InstalledVersions
/**
* @return array[]
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
*/
private static function getInstalled()
{

View File

@ -1,22 +1,22 @@
<?php return array(
'root' => array(
'name' => '__root__',
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'reference' => '7669331be09dd3cb848182ae8edc2408802a4fb4',
'type' => 'library',
'install_path' => __DIR__ . '/../',
'aliases' => array(),
'reference' => 'c6429e6cd19c57582364338362e543580821cf99',
'name' => '__root__',
'dev' => false,
),
'versions' => array(
'__root__' => array(
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'reference' => '7669331be09dd3cb848182ae8edc2408802a4fb4',
'type' => 'library',
'install_path' => __DIR__ . '/../',
'aliases' => array(),
'reference' => 'c6429e6cd19c57582364338362e543580821cf99',
'dev_requirement' => false,
),
),

View File

@ -5,4 +5,4 @@ OC.L10N.register(
"Enable clouds to communicate with each other and exchange data" : "Permitir que las nubes se comuniquen entre ellas e intercambien datos",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "La API Cloud Federation permite que varias instancias de Nextcloud se comuniquen entre ellas e intercambien datos."
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -2,5 +2,5 @@
"Cloud Federation API" : "Cloud Federation API",
"Enable clouds to communicate with each other and exchange data" : "Permitir que las nubes se comuniquen entre ellas e intercambien datos",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "La API Cloud Federation permite que varias instancias de Nextcloud se comuniquen entre ellas e intercambien datos."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -5,4 +5,4 @@ OC.L10N.register(
"Enable clouds to communicate with each other and exchange data" : "Permettre aux clouds de communiquer entre eux et d'échanger des données",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "L'API Cloud Federation permet à diverses instances Nextcloud de communiquer entre elles et d'échanger des données."
},
"nplurals=2; plural=(n > 1);");
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -2,5 +2,5 @@
"Cloud Federation API" : "API Cloud Federation",
"Enable clouds to communicate with each other and exchange data" : "Permettre aux clouds de communiquer entre eux et d'échanger des données",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "L'API Cloud Federation permet à diverses instances Nextcloud de communiquer entre elles et d'échanger des données."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -5,4 +5,4 @@ OC.L10N.register(
"Enable clouds to communicate with each other and exchange data" : "Consenti ai cloud di comunicare tra loro e di scambiare dati",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "L'API Federazione Cloud consente a varie istanze di Nextcloud di comunicare tra loro e scambiare dati."
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -2,5 +2,5 @@
"Cloud Federation API" : "API Federazione Cloud",
"Enable clouds to communicate with each other and exchange data" : "Consenti ai cloud di comunicare tra loro e di scambiare dati",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "L'API Federazione Cloud consente a varie istanze di Nextcloud di comunicare tra loro e scambiare dati."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -5,4 +5,4 @@ OC.L10N.register(
"Enable clouds to communicate with each other and exchange data" : "Permite que diferentes nuvens se comuniquem entre si e troquem dados",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "A API de Nuvem Federada permite que várias instâncias do Nextcloud se comuniquem entre si e troquem dados."
},
"nplurals=2; plural=(n > 1);");
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -2,5 +2,5 @@
"Cloud Federation API" : "API de Nuvem Federada",
"Enable clouds to communicate with each other and exchange data" : "Permite que diferentes nuvens se comuniquem entre si e troquem dados",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "A API de Nuvem Federada permite que várias instâncias do Nextcloud se comuniquem entre si e troquem dados."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -157,19 +157,23 @@ class RequestHandlerController extends Controller {
$shareWith = $this->mapUid($shareWith);
if (!$this->userManager->userExists($shareWith)) {
return new JSONResponse(
$response = new JSONResponse(
['message' => 'User "' . $shareWith . '" does not exists at ' . $this->urlGenerator->getBaseUrl()],
Http::STATUS_BAD_REQUEST
);
$response->throttle();
return $response;
}
}
if ($shareType === 'group') {
if (!$this->groupManager->groupExists($shareWith)) {
return new JSONResponse(
$response = new JSONResponse(
['message' => 'Group "' . $shareWith . '" does not exists at ' . $this->urlGenerator->getBaseUrl()],
Http::STATUS_BAD_REQUEST
);
$response->throttle();
return $response;
}
}
@ -199,6 +203,7 @@ class RequestHandlerController extends Controller {
$e->getCode()
);
} catch (\Exception $e) {
$this->logger->error($e->getMessage(), ['exception' => $e]);
return new JSONResponse(
['message' => 'Internal error at ' . $this->urlGenerator->getBaseUrl()],
Http::STATUS_BAD_REQUEST
@ -252,10 +257,12 @@ class RequestHandlerController extends Controller {
Http::STATUS_BAD_REQUEST
);
} catch (ShareNotFound $e) {
return new JSONResponse(
$response = new JSONResponse(
['message' => $e->getMessage()],
Http::STATUS_BAD_REQUEST
);
$response->throttle();
return $response;
} catch (ActionNotSupportedException $e) {
return new JSONResponse(
['message' => $e->getMessage()],
@ -264,7 +271,9 @@ class RequestHandlerController extends Controller {
} catch (BadRequestException $e) {
return new JSONResponse($e->getReturnMessage(), Http::STATUS_BAD_REQUEST);
} catch (AuthenticationFailedException $e) {
return new JSONResponse(["message" => "RESOURCE_NOT_FOUND"], Http::STATUS_FORBIDDEN);
$response = new JSONResponse(['message' => 'RESOURCE_NOT_FOUND'], Http::STATUS_FORBIDDEN);
$response->throttle();
return $response;
} catch (\Exception $e) {
return new JSONResponse(
['message' => 'Internal error at ' . $this->urlGenerator->getBaseUrl()],

View File

@ -28,7 +28,7 @@ class InstalledVersions
{
/**
* @var mixed[]|null
* @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}|array{}|null
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
*/
private static $installed;
@ -39,7 +39,7 @@ class InstalledVersions
/**
* @var array[]
* @psalm-var array<string, array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
* @psalm-var array<string, array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
*/
private static $installedByVendor = array();
@ -243,7 +243,7 @@ class InstalledVersions
/**
* @return array
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
* @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
*/
public static function getRootPackage()
{
@ -257,7 +257,7 @@ class InstalledVersions
*
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
* @return array[]
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}
* @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}
*/
public static function getRawData()
{
@ -280,7 +280,7 @@ class InstalledVersions
* Returns the raw data of all installed.php which are currently loaded for custom implementations
*
* @return array[]
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
*/
public static function getAllRawData()
{
@ -303,7 +303,7 @@ class InstalledVersions
* @param array[] $data A vendor/composer/installed.php data set
* @return void
*
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data
* @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $data
*/
public static function reload($data)
{
@ -313,7 +313,7 @@ class InstalledVersions
/**
* @return array[]
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
*/
private static function getInstalled()
{

View File

@ -1,22 +1,22 @@
<?php return array(
'root' => array(
'name' => '__root__',
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'reference' => '7669331be09dd3cb848182ae8edc2408802a4fb4',
'type' => 'library',
'install_path' => __DIR__ . '/../',
'aliases' => array(),
'reference' => 'c6429e6cd19c57582364338362e543580821cf99',
'name' => '__root__',
'dev' => false,
),
'versions' => array(
'__root__' => array(
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'reference' => '7669331be09dd3cb848182ae8edc2408802a4fb4',
'type' => 'library',
'install_path' => __DIR__ . '/../',
'aliases' => array(),
'reference' => 'c6429e6cd19c57582364338362e543580821cf99',
'dev_requirement' => false,
),
),

View File

@ -11,7 +11,7 @@ OC.L10N.register(
"{author} commented on {file}" : "{author} hat {file} kommentiert",
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
"{user} mentioned you in a comment on \"{file}\"" : "{user} hat Dich in einem Kommentar zu \"{file}\" erwähnt",
"{user} mentioned you in a comment on \"{file}\"" : "{user} hat dich in einem Kommentar zu \"{file}\" erwähnt",
"Files app plugin to add comments to files" : "Ein Plugin für die Dateien-App zum Kommentieren von Dateien",
"Edit comment" : "Kommentar bearbeiten",
"Delete comment" : "Kommentar löschen",
@ -29,6 +29,6 @@ OC.L10N.register(
"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",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
"{user} mentioned you in a comment on “{file}”" : "{user} hat Dich in einem Kommentar zu “{file}” erwähnt"
"{user} mentioned you in a comment on “{file}”" : "{user} hat dich in einem Kommentar zu “{file}” erwähnt"
},
"nplurals=2; plural=(n != 1);");

View File

@ -9,7 +9,7 @@
"{author} commented on {file}" : "{author} hat {file} kommentiert",
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
"{user} mentioned you in a comment on \"{file}\"" : "{user} hat Dich in einem Kommentar zu \"{file}\" erwähnt",
"{user} mentioned you in a comment on \"{file}\"" : "{user} hat dich in einem Kommentar zu \"{file}\" erwähnt",
"Files app plugin to add comments to files" : "Ein Plugin für die Dateien-App zum Kommentieren von Dateien",
"Edit comment" : "Kommentar bearbeiten",
"Delete comment" : "Kommentar löschen",
@ -27,6 +27,6 @@
"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",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
"{user} mentioned you in a comment on “{file}”" : "{user} hat Dich in einem Kommentar zu “{file}” erwähnt"
"{user} mentioned you in a comment on “{file}”" : "{user} hat dich in einem Kommentar zu “{file}” erwähnt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@ -10,6 +10,8 @@ OC.L10N.register(
"%1$s commented on %2$s" : "%1$s comentados en %2$s",
"{author} commented on {file}" : "{author} comentó en {file}",
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> para archivos",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Te han mencionado en \"{file}\", en un comentario de un usuario que después ha sido eliminado",
"{user} mentioned you in a comment on \"{file}\"" : "{user} te mencionó en un comentario en “{file}”",
"Files app plugin to add comments to files" : "Plugin de la app de Archivos para añadir comentarios a archivos.",
"Edit comment" : "Editar comentario",
"Delete comment" : "Borrar comentario",
@ -19,8 +21,8 @@ OC.L10N.register(
"No more messages" : "No hay más mensajes",
"Retry" : "Reintentar",
"Unable to load the comments list" : "No se pudo cargar la lista de comentarios",
"_%n unread comment_::_%n unread comments_" : ["%n comentario sin leer","%n comentarios no leídos"],
"_1 new comment_::_{unread} new comments_" : ["1 comentario nuevo","{unread} comentarios nuevos"],
"_%n unread comment_::_%n unread comments_" : ["%n comentario sin leer","%n comentarios no leídos","%n comentarios no leídos"],
"_1 new comment_::_{unread} new comments_" : ["1 comentario nuevo","{unread} comentarios nuevos","{unread} comentarios nuevos"],
"Comment" : "Comentar",
"An error occurred while trying to edit the comment" : "Ocurrió un error intentando editar el comentario",
"Comment deleted" : "Comentario borrado",
@ -29,4 +31,4 @@ OC.L10N.register(
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te han mencionado en \"{file}\", en un comentario de un usuario que después ha sido eliminado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -8,6 +8,8 @@
"%1$s commented on %2$s" : "%1$s comentados en %2$s",
"{author} commented on {file}" : "{author} comentó en {file}",
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> para archivos",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Te han mencionado en \"{file}\", en un comentario de un usuario que después ha sido eliminado",
"{user} mentioned you in a comment on \"{file}\"" : "{user} te mencionó en un comentario en “{file}”",
"Files app plugin to add comments to files" : "Plugin de la app de Archivos para añadir comentarios a archivos.",
"Edit comment" : "Editar comentario",
"Delete comment" : "Borrar comentario",
@ -17,8 +19,8 @@
"No more messages" : "No hay más mensajes",
"Retry" : "Reintentar",
"Unable to load the comments list" : "No se pudo cargar la lista de comentarios",
"_%n unread comment_::_%n unread comments_" : ["%n comentario sin leer","%n comentarios no leídos"],
"_1 new comment_::_{unread} new comments_" : ["1 comentario nuevo","{unread} comentarios nuevos"],
"_%n unread comment_::_%n unread comments_" : ["%n comentario sin leer","%n comentarios no leídos","%n comentarios no leídos"],
"_1 new comment_::_{unread} new comments_" : ["1 comentario nuevo","{unread} comentarios nuevos","{unread} comentarios nuevos"],
"Comment" : "Comentar",
"An error occurred while trying to edit the comment" : "Ocurrió un error intentando editar el comentario",
"Comment deleted" : "Comentario borrado",
@ -26,5 +28,5 @@
"An error occurred while trying to create the comment" : "Ocurrió un error intentando crear el comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te han mencionado en \"{file}\", en un comentario de un usuario que después ha sido eliminado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -14,9 +14,9 @@ OC.L10N.register(
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -12,9 +12,9 @@
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -15,9 +15,9 @@ OC.L10N.register(
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "No hay comentarios aún, iniciar la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentar",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Usted fue mencionado en “{file}”, en un comentario de un usuario que ya ha sido eliminado",
"{user} mentioned you in a comment on “{file}”" : "{user} te ha mencionado en un comentario en “{file}”"
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -13,9 +13,9 @@
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "No hay comentarios aún, iniciar la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentar",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Usted fue mencionado en “{file}”, en un comentario de un usuario que ya ha sido eliminado",
"{user} mentioned you in a comment on “{file}”" : "{user} te ha mencionado en un comentario en “{file}”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -14,9 +14,9 @@ OC.L10N.register(
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -12,9 +12,9 @@
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -14,10 +14,10 @@ OC.L10N.register(
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"Comment deleted" : "Comentario borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -12,10 +12,10 @@
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"Comment deleted" : "Comentario borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -14,9 +14,9 @@ OC.L10N.register(
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -12,9 +12,9 @@
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -14,9 +14,9 @@ OC.L10N.register(
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -12,9 +12,9 @@
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -14,9 +14,9 @@ OC.L10N.register(
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -12,9 +12,9 @@
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -14,9 +14,9 @@ OC.L10N.register(
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -12,9 +12,9 @@
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -14,9 +14,9 @@ OC.L10N.register(
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -12,9 +12,9 @@
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -15,9 +15,9 @@ OC.L10N.register(
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -13,9 +13,9 @@
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -14,9 +14,9 @@ OC.L10N.register(
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -12,9 +12,9 @@
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -14,9 +14,9 @@ OC.L10N.register(
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -12,9 +12,9 @@
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -14,9 +14,9 @@ OC.L10N.register(
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -12,9 +12,9 @@
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -14,9 +14,9 @@ OC.L10N.register(
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -12,9 +12,9 @@
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -14,9 +14,9 @@ OC.L10N.register(
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -12,9 +12,9 @@
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -14,9 +14,9 @@ OC.L10N.register(
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -12,9 +12,9 @@
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -14,9 +14,9 @@ OC.L10N.register(
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -12,9 +12,9 @@
"Delete comment" : "Borrar comentario",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"Retry" : "Reintentar",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -21,8 +21,8 @@ OC.L10N.register(
"No more messages" : "Aucun autre message",
"Retry" : "Réessayer",
"Unable to load the comments list" : "Impossible de charger la liste des commentaires",
"_%n unread comment_::_%n unread comments_" : ["%n commentaire non lu","%n commentaires non lus"],
"_1 new comment_::_{unread} new comments_" : ["1 nouveau commentaire","{unread} nouveaux commentaires"],
"_%n unread comment_::_%n unread comments_" : ["%n commentaire non lu","%n commentaires non lus","%n commentaires non lus"],
"_1 new comment_::_{unread} new comments_" : ["1 nouveau commentaire","{unread} nouveaux commentaires","{unread} nouveaux commentaires"],
"Comment" : "Commenter",
"An error occurred while trying to edit the comment" : "Une erreur s'est produite lors de la tentative de modification du commentaire",
"Comment deleted" : "Commentaire supprimé",
@ -31,4 +31,4 @@ OC.L10N.register(
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Vous avez été mentionné sur \"{file}\", dans un commentaire par un utilisateur qui a depuis été supprimé",
"{user} mentioned you in a comment on “{file}”" : "{user} vous a mentionné⋅e dans un commentaire sur “{file}”"
},
"nplurals=2; plural=(n > 1);");
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -19,8 +19,8 @@
"No more messages" : "Aucun autre message",
"Retry" : "Réessayer",
"Unable to load the comments list" : "Impossible de charger la liste des commentaires",
"_%n unread comment_::_%n unread comments_" : ["%n commentaire non lu","%n commentaires non lus"],
"_1 new comment_::_{unread} new comments_" : ["1 nouveau commentaire","{unread} nouveaux commentaires"],
"_%n unread comment_::_%n unread comments_" : ["%n commentaire non lu","%n commentaires non lus","%n commentaires non lus"],
"_1 new comment_::_{unread} new comments_" : ["1 nouveau commentaire","{unread} nouveaux commentaires","{unread} nouveaux commentaires"],
"Comment" : "Commenter",
"An error occurred while trying to edit the comment" : "Une erreur s'est produite lors de la tentative de modification du commentaire",
"Comment deleted" : "Commentaire supprimé",
@ -28,5 +28,5 @@
"An error occurred while trying to create the comment" : "Une erreur s'est produite lors de la tentative de création du commentaire",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Vous avez été mentionné sur \"{file}\", dans un commentaire par un utilisateur qui a depuis été supprimé",
"{user} mentioned you in a comment on “{file}”" : "{user} vous a mentionné⋅e dans un commentaire sur “{file}”"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -21,8 +21,8 @@ OC.L10N.register(
"No more messages" : "Non ci sono altri messaggi",
"Retry" : "Riprova",
"Unable to load the comments list" : "Impossibile caricare l'elenco dei commenti",
"_%n unread comment_::_%n unread comments_" : ["%n commento non letto","%n commenti non letti"],
"_1 new comment_::_{unread} new comments_" : ["1 nuovo commento","{unread} nuovi commenti"],
"_%n unread comment_::_%n unread comments_" : ["%n commento non letto","%n commenti non letti","%n commenti non letti"],
"_1 new comment_::_{unread} new comments_" : ["1 nuovo commento","{unread} nuovi commenti","{unread} nuovi commenti"],
"Comment" : "Commento",
"An error occurred while trying to edit the comment" : "Si è verificato un errore durante il tentativo di modificare il commento",
"Comment deleted" : "Commento eliminato",
@ -31,4 +31,4 @@ OC.L10N.register(
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Sei stato menzionato su \"{file}\", in un commento di un utente che è stato eliminato",
"{user} mentioned you in a comment on “{file}”" : "{user} ti ha menzionato in un commento su \"{file}\"."
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -19,8 +19,8 @@
"No more messages" : "Non ci sono altri messaggi",
"Retry" : "Riprova",
"Unable to load the comments list" : "Impossibile caricare l'elenco dei commenti",
"_%n unread comment_::_%n unread comments_" : ["%n commento non letto","%n commenti non letti"],
"_1 new comment_::_{unread} new comments_" : ["1 nuovo commento","{unread} nuovi commenti"],
"_%n unread comment_::_%n unread comments_" : ["%n commento non letto","%n commenti non letti","%n commenti non letti"],
"_1 new comment_::_{unread} new comments_" : ["1 nuovo commento","{unread} nuovi commenti","{unread} nuovi commenti"],
"Comment" : "Commento",
"An error occurred while trying to edit the comment" : "Si è verificato un errore durante il tentativo di modificare il commento",
"Comment deleted" : "Commento eliminato",
@ -28,5 +28,5 @@
"An error occurred while trying to create the comment" : "Si è verificato un errore durante il tentativo di creare il commento",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Sei stato menzionato su \"{file}\", in un commento di un utente che è stato eliminato",
"{user} mentioned you in a comment on “{file}”" : "{user} ti ha menzionato in un commento su \"{file}\"."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -11,6 +11,7 @@ OC.L10N.register(
"{author} commented on {file}" : "{author} が{file} にコメントしました",
"<strong>Comments</strong> for files" : "ファイルへの<strong>コメント</strong>があったとき",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "You were mentioned on \"{file}\", in a comment by a user that has since been deleted",
"{user} mentioned you in a comment on \"{file}\"" : "{user} さんが \"{file}\" のコメント内であなたついて言及しました",
"Files app plugin to add comments to files" : "ファイルにコメントを追加するためのファイルアプリプラグイン",
"Edit comment" : "コメントを編集",
"Delete comment" : "コメントを削除",

View File

@ -9,6 +9,7 @@
"{author} commented on {file}" : "{author} が{file} にコメントしました",
"<strong>Comments</strong> for files" : "ファイルへの<strong>コメント</strong>があったとき",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "You were mentioned on \"{file}\", in a comment by a user that has since been deleted",
"{user} mentioned you in a comment on \"{file}\"" : "{user} さんが \"{file}\" のコメント内であなたついて言及しました",
"Files app plugin to add comments to files" : "ファイルにコメントを追加するためのファイルアプリプラグイン",
"Edit comment" : "コメントを編集",
"Delete comment" : "コメントを削除",

View File

@ -10,6 +10,8 @@ OC.L10N.register(
"%1$s commented on %2$s" : "%1$s коментираше на %2$s",
"{author} commented on {file}" : "{author} коментираше на {file}",
"<strong>Comments</strong> for files" : "<strong>Коментари</strong> за датотеки",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Бевте спомнати на коментар на “{file}”, од корисник кој сега е избришан",
"{user} mentioned you in a comment on \"{file}\"" : "{user} те спомна во коментар на датотеката “{file}”",
"Files app plugin to add comments to files" : "Додади додаток за коментирање на датотеки",
"Edit comment" : "Измени го коментарот",
"Delete comment" : "Избриши коментар",

View File

@ -8,6 +8,8 @@
"%1$s commented on %2$s" : "%1$s коментираше на %2$s",
"{author} commented on {file}" : "{author} коментираше на {file}",
"<strong>Comments</strong> for files" : "<strong>Коментари</strong> за датотеки",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Бевте спомнати на коментар на “{file}”, од корисник кој сега е избришан",
"{user} mentioned you in a comment on \"{file}\"" : "{user} те спомна во коментар на датотеката “{file}”",
"Files app plugin to add comments to files" : "Додади додаток за коментирање на датотеки",
"Edit comment" : "Измени го коментарот",
"Delete comment" : "Избриши коментар",

View File

@ -13,11 +13,15 @@ OC.L10N.register(
"Files app plugin to add comments to files" : "Tillegg for å legge til kommentarer til filer",
"Edit comment" : "Rediger kommentar",
"Delete comment" : "Slett kommentar",
"Cancel edit" : "Avbryt endring",
"Post comment" : "Send kommentar",
"No comments yet, start the conversation!" : "Ingen kommentarer enda, start diskusjonen!",
"No more messages" : "Ingen flere meldinger",
"Retry" : "Prøv igjen",
"_%n unread comment_::_%n unread comments_" : ["%n ulest kommentar","%n uleste kommentarer"],
"_1 new comment_::_{unread} new comments_" : ["[uleste] nye kommentarer","{uleste} nye kommentarer"],
"Comment" : "Kommentar",
"Comment deleted" : "Kommentar slettet",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Du ble nevnte på \"{file}\", i en kommentar av en bruker som siden har blitt slettet",
"{user} mentioned you in a comment on “{file}”" : "{user} nevnte deg i en kommentar på “{file}”"
},

View File

@ -11,11 +11,15 @@
"Files app plugin to add comments to files" : "Tillegg for å legge til kommentarer til filer",
"Edit comment" : "Rediger kommentar",
"Delete comment" : "Slett kommentar",
"Cancel edit" : "Avbryt endring",
"Post comment" : "Send kommentar",
"No comments yet, start the conversation!" : "Ingen kommentarer enda, start diskusjonen!",
"No more messages" : "Ingen flere meldinger",
"Retry" : "Prøv igjen",
"_%n unread comment_::_%n unread comments_" : ["%n ulest kommentar","%n uleste kommentarer"],
"_1 new comment_::_{unread} new comments_" : ["[uleste] nye kommentarer","{uleste} nye kommentarer"],
"Comment" : "Kommentar",
"Comment deleted" : "Kommentar slettet",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Du ble nevnte på \"{file}\", i en kommentar av en bruker som siden har blitt slettet",
"{user} mentioned you in a comment on “{file}”" : "{user} nevnte deg i en kommentar på “{file}”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"

View File

@ -21,8 +21,8 @@ OC.L10N.register(
"No more messages" : "Sem mais mensagens",
"Retry" : "Tentar novamente",
"Unable to load the comments list" : "Não foi possível carregar a lista de comentários",
"_%n unread comment_::_%n unread comments_" : ["%n comentários não lidos","%n comentários não lidos"],
"_1 new comment_::_{unread} new comments_" : ["1 novo comentário","{unread} novos comentários"],
"_%n unread comment_::_%n unread comments_" : ["%n comentários não lidos","%n comentários não lidos","%n comentários não lidos"],
"_1 new comment_::_{unread} new comments_" : ["1 novo comentário","{unread} novos comentários","{unread} novos comentários"],
"Comment" : "Comentar",
"An error occurred while trying to edit the comment" : "Ocorreu um erro ao tentar editar o comentário",
"Comment deleted" : "Comentário excluído",
@ -31,4 +31,4 @@ OC.L10N.register(
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Você foi mencionado em \"{file}\", em um comentário por um usuário que já foi excluído",
"{user} mentioned you in a comment on “{file}”" : "{user} mencionou você em um comentário sobre “{file}”"
},
"nplurals=2; plural=(n > 1);");
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -19,8 +19,8 @@
"No more messages" : "Sem mais mensagens",
"Retry" : "Tentar novamente",
"Unable to load the comments list" : "Não foi possível carregar a lista de comentários",
"_%n unread comment_::_%n unread comments_" : ["%n comentários não lidos","%n comentários não lidos"],
"_1 new comment_::_{unread} new comments_" : ["1 novo comentário","{unread} novos comentários"],
"_%n unread comment_::_%n unread comments_" : ["%n comentários não lidos","%n comentários não lidos","%n comentários não lidos"],
"_1 new comment_::_{unread} new comments_" : ["1 novo comentário","{unread} novos comentários","{unread} novos comentários"],
"Comment" : "Comentar",
"An error occurred while trying to edit the comment" : "Ocorreu um erro ao tentar editar o comentário",
"Comment deleted" : "Comentário excluído",
@ -28,5 +28,5 @@
"An error occurred while trying to create the comment" : "Ocorreu um erro ao tentar criar o comentário",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Você foi mencionado em \"{file}\", em um comentário por um usuário que já foi excluído",
"{user} mentioned you in a comment on “{file}”" : "{user} mencionou você em um comentário sobre “{file}”"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -15,10 +15,10 @@ OC.L10N.register(
"Delete comment" : "Eliminar comentário",
"No comments yet, start the conversation!" : "Ainda sem comentários, inicie uma conversação!",
"Retry" : "Repetir",
"_%n unread comment_::_%n unread comments_" : ["%n comentários por ler","%n comentários por ler"],
"_1 new comment_::_{unread} new comments_" : ["1 novo comentário","{unread} novos comentários"],
"_%n unread comment_::_%n unread comments_" : ["%n comentários por ler","%n comentários por ler","%n comentários por ler"],
"_1 new comment_::_{unread} new comments_" : ["1 novo comentário","{unread} novos comentários","{unread} novos comentários"],
"Comment" : "Comentário",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Foste mencionado e, “{file}”, num comentário de um utilizador que foi entretanto removido",
"{user} mentioned you in a comment on “{file}”" : "{user} mencionou-te num comentário em “{file}”"
},
"nplurals=2; plural=(n != 1);");
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@ -13,10 +13,10 @@
"Delete comment" : "Eliminar comentário",
"No comments yet, start the conversation!" : "Ainda sem comentários, inicie uma conversação!",
"Retry" : "Repetir",
"_%n unread comment_::_%n unread comments_" : ["%n comentários por ler","%n comentários por ler"],
"_1 new comment_::_{unread} new comments_" : ["1 novo comentário","{unread} novos comentários"],
"_%n unread comment_::_%n unread comments_" : ["%n comentários por ler","%n comentários por ler","%n comentários por ler"],
"_1 new comment_::_{unread} new comments_" : ["1 novo comentário","{unread} novos comentários","{unread} novos comentários"],
"Comment" : "Comentário",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Foste mencionado e, “{file}”, num comentário de um utilizador que foi entretanto removido",
"{user} mentioned you in a comment on “{file}”" : "{user} mencionou-te num comentário em “{file}”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@ -2,14 +2,16 @@ OC.L10N.register(
"comments",
{
"Comments" : "评论",
"You commented" : "的评论",
"You commented" : "的评论",
"%1$s commented" : "%1$s 已评论",
"{author} commented" : "{author} 评论了",
"You commented on %1$s" : "在 %1$s 的评论",
"You commented on {file}" : "对 {file} 的评论",
"You commented on %1$s" : "在 %1$s 的评论",
"You commented on {file}" : "对 {file} 的评论",
"%1$s commented on %2$s" : "%1$s 评论了 %2$s",
"{author} commented on {file}" : "{author} 对 {file} 的评论",
"<strong>Comments</strong> for files" : "文件的<strong>评论</strong>",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "用户在“ {file}”中的评论中提到了你,此评论已被删除",
"{user} mentioned you in a comment on \"{file}\"" : "{user} 在 “{file}” 的评论中提到了你",
"Files app plugin to add comments to files" : "文件应用插件可向文件添加评论",
"Edit comment" : "编辑评论",
"Delete comment" : "删除评论",
@ -26,7 +28,7 @@ OC.L10N.register(
"Comment deleted" : "评论已删除",
"An error occurred while trying to delete the comment" : "删除评论时出错",
"An error occurred while trying to create the comment" : "创建评论时出错",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "用户在“ {file}”中的评论中提到了,此评论已被删除",
"{user} mentioned you in a comment on “{file}”" : "{user} 在 “{file}” 的评论中提到了"
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "用户在“ {file}”中的评论中提到了,此评论已被删除",
"{user} mentioned you in a comment on “{file}”" : "{user} 在 “{file}” 的评论中提到了"
},
"nplurals=1; plural=0;");

View File

@ -1,13 +1,15 @@
{ "translations": {
"Comments" : "评论",
"You commented" : "的评论",
"You commented" : "的评论",
"%1$s commented" : "%1$s 已评论",
"{author} commented" : "{author} 评论了",
"You commented on %1$s" : "在 %1$s 的评论",
"You commented on {file}" : "对 {file} 的评论",
"You commented on %1$s" : "在 %1$s 的评论",
"You commented on {file}" : "对 {file} 的评论",
"%1$s commented on %2$s" : "%1$s 评论了 %2$s",
"{author} commented on {file}" : "{author} 对 {file} 的评论",
"<strong>Comments</strong> for files" : "文件的<strong>评论</strong>",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "用户在“ {file}”中的评论中提到了你,此评论已被删除",
"{user} mentioned you in a comment on \"{file}\"" : "{user} 在 “{file}” 的评论中提到了你",
"Files app plugin to add comments to files" : "文件应用插件可向文件添加评论",
"Edit comment" : "编辑评论",
"Delete comment" : "删除评论",
@ -24,7 +26,7 @@
"Comment deleted" : "评论已删除",
"An error occurred while trying to delete the comment" : "删除评论时出错",
"An error occurred while trying to create the comment" : "创建评论时出错",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "用户在“ {file}”中的评论中提到了,此评论已被删除",
"{user} mentioned you in a comment on “{file}”" : "{user} 在 “{file}” 的评论中提到了"
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "用户在“ {file}”中的评论中提到了,此评论已被删除",
"{user} mentioned you in a comment on “{file}”" : "{user} 在 “{file}” 的评论中提到了"
},"pluralForm" :"nplurals=1; plural=0;"
}

View File

@ -43,8 +43,6 @@ class Provider implements IProvider {
protected ICommentsManager $commentsManager;
protected IUserManager $userManager;
protected IManager $activityManager;
/** @var string[] */
protected array $displayNames = [];
public function __construct(IFactory $languageFactory, IURLGenerator $url, ICommentsManager $commentsManager, IUserManager $userManager, IManager $activityManager) {
$this->languageFactory = $languageFactory;
@ -213,22 +211,10 @@ class Provider implements IProvider {
}
protected function generateUserParameter(string $uid): array {
if (!isset($this->displayNames[$uid])) {
$this->displayNames[$uid] = $this->getDisplayName($uid);
}
return [
'type' => 'user',
'id' => $uid,
'name' => $this->displayNames[$uid],
'name' => $this->userManager->getDisplayName($uid) ?? $uid,
];
}
protected function getDisplayName(string $uid): string {
$user = $this->userManager->get($uid);
if ($user instanceof IUser) {
return $user->getDisplayName();
}
return $uid;
}
}

View File

@ -100,9 +100,9 @@ class Notifier implements INotifier {
$displayName = $comment->getActorId();
$isDeletedActor = $comment->getActorType() === ICommentsManager::DELETED_USER;
if ($comment->getActorType() === 'users') {
$commenter = $this->userManager->get($comment->getActorId());
if ($commenter instanceof IUser) {
$displayName = $commenter->getDisplayName();
$commenter = $this->userManager->getDisplayName($comment->getActorId());
if ($commenter !== null) {
$displayName = $commenter;
}
}
@ -171,8 +171,8 @@ class Notifier implements INotifier {
$mentions = $comment->getMentions();
foreach ($mentions as $mention) {
if ($mention['type'] === 'user') {
$user = $this->userManager->get($mention['id']);
if (!$user instanceof IUser) {
$userDisplayName = $this->userManager->getDisplayName($mention['id']);
if ($userDisplayName === null) {
continue;
}
}

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