Compare commits
133 Commits
mod-1
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
91a636761b | ||
|
|
d2ad7bdc29 | ||
|
|
8e7e9d85ac | ||
|
|
53f5fbdadd | ||
|
|
fbccabceaf | ||
|
|
d33305b77c | ||
|
|
dba232041d | ||
|
|
2b17403129 | ||
|
|
5cfc3a7a3a | ||
|
|
60f250d69a | ||
|
|
bb60f7f57b | ||
|
|
1219d52b02 | ||
|
|
5c769aa82d | ||
|
|
7c615f2607 | ||
|
|
64d3a69f28 | ||
|
|
26494eee86 | ||
|
|
336b6f3348 | ||
|
|
380184af50 | ||
|
|
16aa9c954b | ||
|
|
01842c7f92 | ||
|
|
1c38638ee8 | ||
|
|
dd534fbea1 | ||
|
|
b7cb1f7d05 | ||
|
|
c9d45f4a96 | ||
|
|
dfc61453c4 | ||
|
|
4dd48d18c7 | ||
|
|
ee51cb8e3c | ||
|
|
4aaaca52c6 | ||
|
|
ee67476581 | ||
|
|
1f82d386e0 | ||
|
|
d7d6009070 | ||
|
|
263f9c8bbe | ||
|
|
92b641c52d | ||
|
|
26da5a17a6 | ||
|
|
e6a3e1a7bf | ||
|
|
339c13447a | ||
|
|
3e674381ca | ||
|
|
5479bc16af | ||
|
|
96fdacc46d | ||
|
|
a1a5aa9bd2 | ||
|
|
e7a4eec911 | ||
|
|
0191d54369 | ||
|
|
3e69070e8c | ||
|
|
240ea42a51 | ||
|
|
15e019fd03 | ||
|
|
ca9bf74434 | ||
|
|
c3362a8584 | ||
|
|
6764873d66 | ||
|
|
a692b8c512 | ||
|
|
0d23cc0951 | ||
|
|
b7f5648e63 | ||
|
|
ec292df849 | ||
|
|
63e39bcc51 | ||
|
|
878f9caf87 | ||
|
|
1156688517 | ||
|
|
8d2e018b9c | ||
|
|
b66d6c5b46 | ||
|
|
8dbfd37fe0 | ||
|
|
04e16e003d | ||
|
|
91b9b8804e | ||
|
|
0a415b97df | ||
|
|
9e36a9ebe2 | ||
|
|
c70d089ca7 | ||
|
|
53acec7372 | ||
|
|
5ca18b1d32 | ||
|
|
3a454b75e0 | ||
|
|
79ab6a16af | ||
|
|
62dd2e29cd | ||
|
|
00a63e59ae | ||
|
|
4b6540880c | ||
|
|
a735d85c25 | ||
|
|
b93bb93895 | ||
|
|
77d4126aa9 | ||
|
|
647b9dece2 | ||
|
|
a931433475 | ||
|
|
726e62527a | ||
|
|
24bb353a74 | ||
|
|
fba3b030ac | ||
|
|
a868425dd3 | ||
|
|
3033cb4d8c | ||
|
|
c4ea019eee | ||
|
|
6a19934ace | ||
|
|
2fd7586902 | ||
|
|
77b0602833 | ||
|
|
715b8fc6aa | ||
|
|
f1d3631d22 | ||
|
|
3e05e88a6b | ||
|
|
238f5674ab | ||
|
|
0ddefff9c1 | ||
|
|
91aaf3d6b0 | ||
|
|
48b25da3ea | ||
|
|
4059042a9c | ||
|
|
e6b29b7cb1 | ||
|
|
d934867381 | ||
|
|
f130baff43 | ||
|
|
6f8baba8c5 | ||
|
|
3badc5c90c | ||
|
|
c6b04b9abf | ||
|
|
3ec8ff3d1f | ||
|
|
a721fe27a6 | ||
|
|
1d848e0fc4 | ||
|
|
9e8c1e982f | ||
|
|
11276ea5e1 | ||
|
|
f0840641ba | ||
|
|
f53de9a269 | ||
|
|
9b5bdc3d02 | ||
|
|
e9e5234925 | ||
|
|
81c8aad66f | ||
|
|
7cc43c706b | ||
|
|
19b0d60b21 | ||
|
|
b1b38e05eb | ||
|
|
687414a7a2 | ||
|
|
35a6c4d783 | ||
|
|
c863c78623 | ||
|
|
affcbf7287 | ||
|
|
aab45b764d | ||
|
|
3288e0e002 | ||
|
|
cca9cc08f0 | ||
|
|
508dddc7cd | ||
|
|
fd75f66624 | ||
|
|
7635cde5cd | ||
|
|
5b48075bc2 | ||
|
|
fb0096b113 | ||
|
|
d9ce467c98 | ||
|
|
ccd10248f7 | ||
|
|
2473117892 | ||
|
|
e729bdcd04 | ||
|
|
58de28909f | ||
|
|
eda6bca538 | ||
|
|
aa90c0b2d4 | ||
|
|
5a08e57de8 | ||
|
|
75067a0695 | ||
|
|
00d63692c8 |
2
.github/CODEOWNERS
vendored
Normal file
2
.github/CODEOWNERS
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
# App maintainers
|
||||
* @luka-nextcloud @grnd-alt @elzody
|
||||
120
.github/ISSUE_TEMPLATE/Bug_report.md
vendored
Normal file
120
.github/ISSUE_TEMPLATE/Bug_report.md
vendored
Normal file
@@ -0,0 +1,120 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
Thanks for reporting issues back!
|
||||
|
||||
Guidelines for submitting issues:
|
||||
|
||||
* Please search the existing issues first, it's likely that your issue was already reported or even fixed.
|
||||
|
||||
* SECURITY: Report any potential security bug to us via our HackerOne page (https://hackerone.com/nextcloud) following our security policy (https://nextcloud.com/security/) instead of filing an issue in our bug tracker.
|
||||
|
||||
* The issues in other components should be reported in their respective repositories: You will find them in our GitHub Organization (https://github.com/nextcloud/)
|
||||
|
||||
* You can also use the Issue Template app to prefill most of the required information: https://apps.nextcloud.com/apps/issuetemplate
|
||||
-->
|
||||
|
||||
<!--- Please keep this note for other contributors -->
|
||||
|
||||
### How to use GitHub
|
||||
|
||||
* Please use the 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to show that you are affected by the same issue.
|
||||
* Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
|
||||
* Subscribe to receive notifications on status change and new comments.
|
||||
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Client details:**
|
||||
- OS: [e.g. iOS]
|
||||
- Browser [e.g. chrome, safari]
|
||||
- Version [e.g. 22]
|
||||
- Device: [e.g. iPhone6, desktop]
|
||||
|
||||
<details>
|
||||
<summary>Server details</summary>
|
||||
<!--
|
||||
You can use the Issue Template application to prefill most of the required information: https://apps.nextcloud.com/apps/issuetemplate
|
||||
-->
|
||||
|
||||
**Operating system**:
|
||||
|
||||
**Web server:**
|
||||
|
||||
**Database:**
|
||||
|
||||
**PHP version:**
|
||||
|
||||
**Nextcloud version:** (see Nextcloud admin page)
|
||||
|
||||
**Where did you install Nextcloud from:**
|
||||
|
||||
**Signing status:**
|
||||
|
||||
```
|
||||
Login as admin user into your Nextcloud and access
|
||||
http://example.com/index.php/settings/integrity/failed
|
||||
paste the results here.
|
||||
```
|
||||
|
||||
**List of activated apps:**
|
||||
|
||||
```
|
||||
If you have access to your command line run e.g.:
|
||||
sudo -u www-data php occ app:list
|
||||
from within your Nextcloud installation folder
|
||||
```
|
||||
|
||||
**Nextcloud configuration:**
|
||||
|
||||
```
|
||||
If you have access to your command line run e.g.:
|
||||
sudo -u www-data php occ config:list system
|
||||
from within your Nextcloud installation folder
|
||||
|
||||
or
|
||||
|
||||
Insert your config.php content here
|
||||
Make sure to remove all sensitive content such as passwords. (e.g. database password, passwordsalt, secret, smtp password, …)
|
||||
```
|
||||
|
||||
**Are you using an external user-backend, if yes which one:** LDAP/ActiveDirectory/Webdav/...
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Logs</summary>
|
||||
|
||||
#### Nextcloud log (data/nextcloud.log)
|
||||
```
|
||||
Insert your Nextcloud log here
|
||||
```
|
||||
|
||||
#### Browser log
|
||||
```
|
||||
Insert your browser log here, this could for example include:
|
||||
|
||||
a) The javascript console log
|
||||
b) The network log
|
||||
c) ...
|
||||
```
|
||||
|
||||
</details>
|
||||
39
.github/ISSUE_TEMPLATE/Feature_request.md
vendored
Normal file
39
.github/ISSUE_TEMPLATE/Feature_request.md
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
Thanks for reporting issues back!
|
||||
|
||||
Guidelines for submitting issues:
|
||||
|
||||
* Please search the existing issues first, it's likely that your issue was already reported or even fixed.
|
||||
|
||||
* SECURITY: Report any potential security bug to us via our HackerOne page (https://hackerone.com/nextcloud) following our security policy (https://nextcloud.com/security/) instead of filing an issue in our bug tracker.
|
||||
|
||||
* The issues in other components should be reported in their respective repositories: You will find them in our GitHub Organization (https://github.com/nextcloud/)
|
||||
|
||||
* You can also use the Issue Template app to prefill most of the required information: https://apps.nextcloud.com/apps/issuetemplate
|
||||
-->
|
||||
|
||||
<!--- Please keep this note for other contributors -->
|
||||
|
||||
### How to use GitHub
|
||||
|
||||
* Please use the 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to show that you are affected by the same issue.
|
||||
* Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
|
||||
* Subscribe to receive notifications on status change and new comments.
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
101
.github/dependabot.yml
vendored
Normal file
101
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,101 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: npm
|
||||
directory: "/"
|
||||
target-branch: "main"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
open-pull-requests-limit: 10
|
||||
reviewers:
|
||||
- juliushaertl
|
||||
- luka-nextcloud
|
||||
|
||||
- package-ecosystem: npm
|
||||
target-branch: stable30
|
||||
versioning-strategy: lockfile-only
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
ignore:
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major"]
|
||||
open-pull-requests-limit: 30
|
||||
labels:
|
||||
- 3. to review
|
||||
- dependencies
|
||||
|
||||
- package-ecosystem: npm
|
||||
target-branch: stable29
|
||||
versioning-strategy: lockfile-only
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
ignore:
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major"]
|
||||
open-pull-requests-limit: 30
|
||||
labels:
|
||||
- 3. to review
|
||||
- dependencies
|
||||
|
||||
- package-ecosystem: npm
|
||||
target-branch: stable28
|
||||
versioning-strategy: lockfile-only
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
ignore:
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major"]
|
||||
open-pull-requests-limit: 30
|
||||
labels:
|
||||
- 3. to review
|
||||
- dependencies
|
||||
|
||||
- package-ecosystem: composer
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
open-pull-requests-limit: 10
|
||||
reviewers:
|
||||
- juliushaertl
|
||||
- luka-nextcloud
|
||||
|
||||
- package-ecosystem: composer
|
||||
directory: "/tests/integration"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
open-pull-requests-limit: 10
|
||||
reviewers:
|
||||
- juliushaertl
|
||||
- luka-nextcloud
|
||||
|
||||
- package-ecosystem: github-actions
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
open-pull-requests-limit: 10
|
||||
reviewers:
|
||||
- juliushaertl
|
||||
- luka-nextcloud
|
||||
17
.github/pull_request_template.md
vendored
Normal file
17
.github/pull_request_template.md
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
|
||||
* Resolves: # <!-- related github issue -->
|
||||
* Target version: main
|
||||
|
||||
### Summary
|
||||
|
||||
|
||||
### TODO
|
||||
|
||||
- [ ] ...
|
||||
|
||||
### Checklist
|
||||
|
||||
- [ ] Code is properly formatted
|
||||
- [ ] Sign-off message is added to all commits
|
||||
- [ ] Tests (unit, integration, api and/or acceptance) are included
|
||||
- [ ] Documentation (manuals or wiki) has been updated or is not required
|
||||
@@ -3,7 +3,9 @@ name: Package build
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- draggable
|
||||
- main
|
||||
- master
|
||||
- stable*
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@@ -16,26 +18,26 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v4.2.2
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4.4.0
|
||||
uses: actions/setup-node@v4.1.0
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: Set up npm7
|
||||
run: npm i -g npm@7
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@2.34.1
|
||||
uses: shivammathur/setup-php@2.31.1
|
||||
with:
|
||||
php-version: '7.4'
|
||||
tools: composer
|
||||
- name: install dependencies
|
||||
run: |
|
||||
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.13.3/krankerl_0.13.3_amd64.deb
|
||||
sudo dpkg -i krankerl_0.13.3_amd64.deb
|
||||
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.14.0/krankerl_0.14.0_amd64.deb
|
||||
sudo dpkg -i krankerl_0.14.0_amd64.deb
|
||||
- name: package
|
||||
run: |
|
||||
uname -a
|
||||
RUST_BACKTRACE=1 krankerl --version
|
||||
RUST_BACKTRACE=1 krankerl package
|
||||
- uses: https://data.forgejo.org/forgejo/upload-artifact@v4
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Deck app tarball
|
||||
path: build/artifacts/deck.tar.gz
|
||||
191
.github/workflows/appstore-build-publish.yml
vendored
Normal file
191
.github/workflows/appstore-build-publish.yml
vendored
Normal file
@@ -0,0 +1,191 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: Build and publish app release
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
build_and_publish:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
# Only allowed to be run on nextcloud-releases repositories
|
||||
if: ${{ github.repository_owner == 'nextcloud-releases' }}
|
||||
|
||||
steps:
|
||||
- name: Check actor permission
|
||||
uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v3.0
|
||||
with:
|
||||
require: write
|
||||
|
||||
- name: Set app env
|
||||
run: |
|
||||
# Split and keep last
|
||||
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
||||
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
path: ${{ env.APP_NAME }}
|
||||
|
||||
- name: Get app version number
|
||||
id: app-version
|
||||
uses: skjnldsv/xpath-action@f5b036e9d973f42c86324833fd00be90665fbf77 # master
|
||||
with:
|
||||
filename: ${{ env.APP_NAME }}/appinfo/info.xml
|
||||
expression: "//info//version/text()"
|
||||
|
||||
- name: Validate app version against tag
|
||||
run: |
|
||||
[ "${{ env.APP_VERSION }}" = "v${{ fromJSON(steps.app-version.outputs.result).version }}" ]
|
||||
|
||||
- name: Get appinfo data
|
||||
id: appinfo
|
||||
uses: skjnldsv/xpath-action@f5b036e9d973f42c86324833fd00be90665fbf77 # master
|
||||
with:
|
||||
filename: ${{ env.APP_NAME }}/appinfo/info.xml
|
||||
expression: "//info//dependencies//nextcloud/@min-version"
|
||||
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||
id: versions
|
||||
# Continue if no package.json
|
||||
continue-on-error: true
|
||||
with:
|
||||
path: ${{ env.APP_NAME }}
|
||||
fallbackNode: '^20'
|
||||
fallbackNpm: '^10'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
# Skip if no package.json
|
||||
if: ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
|
||||
# Skip if no package.json
|
||||
if: ${{ steps.versions.outputs.npmVersion }}
|
||||
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
|
||||
|
||||
- name: Get php version
|
||||
id: php-versions
|
||||
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
|
||||
with:
|
||||
filename: ${{ env.APP_NAME }}/appinfo/info.xml
|
||||
|
||||
- name: Set up php ${{ steps.php-versions.outputs.php-min }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
with:
|
||||
php-version: ${{ steps.php-versions.outputs.php-min }}
|
||||
coverage: none
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Check composer.json
|
||||
id: check_composer
|
||||
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
|
||||
with:
|
||||
files: "${{ env.APP_NAME }}/composer.json"
|
||||
|
||||
- name: Install composer dependencies
|
||||
if: steps.check_composer.outputs.files_exists == 'true'
|
||||
run: |
|
||||
cd ${{ env.APP_NAME }}
|
||||
composer install --no-dev
|
||||
|
||||
- name: Build ${{ env.APP_NAME }}
|
||||
# Skip if no package.json
|
||||
if: ${{ steps.versions.outputs.nodeVersion }}
|
||||
env:
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
run: |
|
||||
cd ${{ env.APP_NAME }}
|
||||
npm ci
|
||||
npm run build --if-present
|
||||
|
||||
- name: Check Krankerl config
|
||||
id: krankerl
|
||||
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
|
||||
with:
|
||||
files: ${{ env.APP_NAME }}/krankerl.toml
|
||||
|
||||
- name: Install Krankerl
|
||||
if: steps.krankerl.outputs.files_exists == 'true'
|
||||
run: |
|
||||
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.14.0/krankerl_0.14.0_amd64.deb
|
||||
sudo dpkg -i krankerl_0.14.0_amd64.deb
|
||||
|
||||
- name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }} with krankerl
|
||||
if: steps.krankerl.outputs.files_exists == 'true'
|
||||
run: |
|
||||
cd ${{ env.APP_NAME }}
|
||||
krankerl package
|
||||
|
||||
- name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }} with makefile
|
||||
if: steps.krankerl.outputs.files_exists != 'true'
|
||||
run: |
|
||||
cd ${{ env.APP_NAME }}
|
||||
make appstore
|
||||
|
||||
- name: Checkout server ${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
|
||||
continue-on-error: true
|
||||
id: server-checkout
|
||||
run: |
|
||||
NCVERSION='${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}'
|
||||
wget --quiet https://download.nextcloud.com/server/releases/latest-$NCVERSION.zip
|
||||
unzip latest-$NCVERSION.zip
|
||||
|
||||
- name: Checkout server master fallback
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
if: ${{ steps.server-checkout.outcome != 'success' }}
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
repository: nextcloud/server
|
||||
path: nextcloud
|
||||
|
||||
- name: Sign app
|
||||
run: |
|
||||
# Extracting release
|
||||
cd ${{ env.APP_NAME }}/build/artifacts
|
||||
tar -xvf ${{ env.APP_NAME }}.tar.gz
|
||||
cd ../../../
|
||||
# Setting up keys
|
||||
echo '${{ secrets.APP_PRIVATE_KEY }}' > ${{ env.APP_NAME }}.key
|
||||
wget --quiet "https://github.com/nextcloud/app-certificate-requests/raw/master/${{ env.APP_NAME }}/${{ env.APP_NAME }}.crt"
|
||||
# Signing
|
||||
php nextcloud/occ integrity:sign-app --privateKey=../${{ env.APP_NAME }}.key --certificate=../${{ env.APP_NAME }}.crt --path=../${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}
|
||||
# Rebuilding archive
|
||||
cd ${{ env.APP_NAME }}/build/artifacts
|
||||
tar -zcvf ${{ env.APP_NAME }}.tar.gz ${{ env.APP_NAME }}
|
||||
|
||||
- name: Attach tarball to github release
|
||||
uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd # v2
|
||||
id: attach_to_release
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: ${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}.tar.gz
|
||||
asset_name: ${{ env.APP_NAME }}-${{ env.APP_VERSION }}.tar.gz
|
||||
tag: ${{ github.ref }}
|
||||
overwrite: true
|
||||
|
||||
- name: Upload app to Nextcloud appstore
|
||||
uses: nextcloud-releases/nextcloud-appstore-push-action@a011fe619bcf6e77ddebc96f9908e1af4071b9c1 # v1
|
||||
with:
|
||||
app_name: ${{ env.APP_NAME }}
|
||||
appstore_token: ${{ secrets.APPSTORE_TOKEN }}
|
||||
download_url: ${{ steps.attach_to_release.outputs.browser_download_url }}
|
||||
app_private_key: ${{ secrets.APP_PRIVATE_KEY }}
|
||||
153
.github/workflows/cypress-e2e.yml
vendored
Normal file
153
.github/workflows/cypress-e2e.yml
vendored
Normal file
@@ -0,0 +1,153 @@
|
||||
name: Cypress
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- stable*
|
||||
|
||||
env:
|
||||
APP_NAME: deck
|
||||
CYPRESS_baseUrl: http://localhost:8081/index.php
|
||||
|
||||
jobs:
|
||||
cypress:
|
||||
|
||||
runs-on: 'ubuntu-latest'
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
node-version: [20.x]
|
||||
# containers: [1, 2, 3]
|
||||
php-versions: [ '8.2' ]
|
||||
server-versions: [ 'stable31' ]
|
||||
|
||||
env:
|
||||
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, apcu
|
||||
key: cache-v1
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: ghcr.io/nextcloud/continuous-integration-postgres-14:latest
|
||||
ports:
|
||||
- 4444:5432/tcp
|
||||
env:
|
||||
POSTGRES_USER: root
|
||||
POSTGRES_PASSWORD: rootpassword
|
||||
POSTGRES_DB: nextcloud
|
||||
options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
|
||||
|
||||
steps:
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4.1.0
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
|
||||
- name: Register text Git reference
|
||||
run: |
|
||||
text_app_ref="$(if [ "${{ matrix.server-versions }}" = "master" ]; then echo -n "main"; else echo -n "${{ matrix.server-versions }}"; fi)"
|
||||
echo "text_app_ref=$text_app_ref" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: nextcloud/server
|
||||
ref: ${{ matrix.server-versions }}
|
||||
|
||||
- name: Checkout submodules
|
||||
shell: bash
|
||||
run: |
|
||||
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
|
||||
git submodule sync --recursive
|
||||
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
|
||||
|
||||
- name: Checkout ${{ env.APP_NAME }}
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Checkout text
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: nextcloud/text
|
||||
ref: ${{ env.text_app_ref }}
|
||||
path: apps/text
|
||||
|
||||
- name: Setup cache environment
|
||||
id: extcache
|
||||
uses: shivammathur/cache-extensions@v1
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: ${{ env.extensions }}
|
||||
key: ${{ env.key }}
|
||||
|
||||
- name: Cache extensions
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ${{ steps.extcache.outputs.dir }}
|
||||
key: ${{ steps.extcache.outputs.key }}
|
||||
restore-keys: ${{ steps.extcache.outputs.key }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@2.31.1
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: ${{ env.extensions }}
|
||||
ini-values:
|
||||
apc.enable_cli=on
|
||||
coverage: none
|
||||
|
||||
- name: Install composer dependencies
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: |
|
||||
composer install --no-dev
|
||||
|
||||
- name: Set up Nextcloud
|
||||
env:
|
||||
DB_PORT: 4444
|
||||
PHP_CLI_SERVER_WORKERS: 20
|
||||
run: |
|
||||
mkdir data
|
||||
echo '<?php $CONFIG=["memcache.local"=>"\OC\Memcache\APCu","hashing_default_password"=>true];' > config/config.php
|
||||
php occ maintenance:install --verbose --database=pgsql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
|
||||
php occ background:cron
|
||||
php -f index.php
|
||||
php -S 0.0.0.0:8081 &
|
||||
export OC_PASS=1234561
|
||||
php occ user:add --password-from-env user1
|
||||
php occ user:add --password-from-env user2
|
||||
php occ app:enable deck
|
||||
php occ app:list
|
||||
curl -v http://localhost:8081/index.php/login
|
||||
|
||||
- name: Cypress run
|
||||
uses: cypress-io/github-action@v6
|
||||
with:
|
||||
build: npm run dev
|
||||
record: false
|
||||
parallel: false
|
||||
browser: chrome
|
||||
wait-on: '${{ env.CYPRESS_baseUrl }}'
|
||||
working-directory: 'apps/${{ env.APP_NAME }}'
|
||||
config: defaultCommandTimeout=10000,video=false
|
||||
env:
|
||||
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
|
||||
npm_package_name: ${{ env.APP_NAME }}
|
||||
|
||||
- name: Upload test failure screenshots
|
||||
uses: actions/upload-artifact@v4
|
||||
if: failure()
|
||||
with:
|
||||
name: Upload screenshots
|
||||
path: apps/${{ env.APP_NAME }}/cypress/screenshots/
|
||||
retention-days: 5
|
||||
|
||||
- name: Upload nextcloud logs
|
||||
uses: actions/upload-artifact@v4
|
||||
if: failure()
|
||||
with:
|
||||
name: Upload nextcloud log
|
||||
path: data/nextcloud.log
|
||||
retention-days: 5
|
||||
49
.github/workflows/dependabot-approve-merge.yml
vendored
Normal file
49
.github/workflows/dependabot-approve-merge.yml
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: Dependabot
|
||||
|
||||
on:
|
||||
pull_request_target: # zizmor: ignore[dangerous-triggers]
|
||||
branches:
|
||||
- main
|
||||
- master
|
||||
- stable*
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: dependabot-approve-merge-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
auto-approve-merge:
|
||||
if: github.event.pull_request.user.login == 'dependabot[bot]' || github.event.pull_request.user.login == 'renovate[bot]'
|
||||
runs-on: ubuntu-latest-low
|
||||
permissions:
|
||||
# for hmarr/auto-approve-action to approve PRs
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- name: Disabled on forks
|
||||
if: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
|
||||
run: |
|
||||
echo 'Can not approve PRs from forks'
|
||||
exit 1
|
||||
|
||||
# GitHub actions bot approve
|
||||
- uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v2
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# Nextcloud bot approve and merge request
|
||||
- uses: ahmadnassri/action-dependabot-auto-merge@45fc124d949b19b6b8bf6645b6c9d55f4f9ac61a # v2
|
||||
with:
|
||||
target: minor
|
||||
github-token: ${{ secrets.DEPENDABOT_AUTOMERGE_TOKEN }}
|
||||
36
.github/workflows/fixup.yml
vendored
Normal file
36
.github/workflows/fixup.yml
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: Block fixup and squash commits
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, ready_for_review, reopened, synchronize]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: fixup-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
commit-message-check:
|
||||
if: github.event.pull_request.draft == false
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
name: Block fixup and squash commits
|
||||
|
||||
runs-on: ubuntu-latest-low
|
||||
|
||||
steps:
|
||||
- name: Run check
|
||||
uses: skjnldsv/block-fixup-merge-action@c138ea99e45e186567b64cf065ce90f7158c236a # v2
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
165
.github/workflows/integration.yml
vendored
Normal file
165
.github/workflows/integration.yml
vendored
Normal file
@@ -0,0 +1,165 @@
|
||||
name: Integration tests
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- '.github/workflows/integration.yml'
|
||||
- 'appinfo/**'
|
||||
- 'lib/**'
|
||||
- 'templates/**'
|
||||
- 'tests/**'
|
||||
- 'composer.json'
|
||||
- 'composer.lock'
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- master
|
||||
- stable*
|
||||
|
||||
env:
|
||||
APP_NAME: deck
|
||||
|
||||
jobs:
|
||||
integration:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['8.1']
|
||||
databases: ['sqlite', 'mysql', 'pgsql']
|
||||
server-versions: ['master']
|
||||
|
||||
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:14
|
||||
ports:
|
||||
- 4445:5432/tcp
|
||||
env:
|
||||
POSTGRES_USER: root
|
||||
POSTGRES_PASSWORD: rootpassword
|
||||
POSTGRES_DB: nextcloud
|
||||
options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
|
||||
mysql:
|
||||
image: mariadb:10.5
|
||||
ports:
|
||||
- 4444:3306/tcp
|
||||
env:
|
||||
MYSQL_ROOT_PASSWORD: rootpassword
|
||||
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 5
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: nextcloud/server
|
||||
ref: ${{ matrix.server-versions }}
|
||||
|
||||
- name: Checkout submodules
|
||||
shell: bash
|
||||
run: |
|
||||
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
|
||||
git submodule sync --recursive
|
||||
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
|
||||
cd build/integration && composer require --dev phpunit/phpunit:~9
|
||||
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Checkout activity
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
repository: nextcloud/activity
|
||||
ref: ${{ matrix.server-versions }}
|
||||
path: apps/activity
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@2.31.1
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql, apcu, gd
|
||||
ini-values:
|
||||
apc.enable_cli=on
|
||||
coverage: none
|
||||
|
||||
- name: Set up dependencies
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: composer i --no-dev
|
||||
|
||||
- name: Set up Nextcloud
|
||||
run: |
|
||||
if [ "${{ matrix.databases }}" = "mysql" ]; then
|
||||
export DB_PORT=4444
|
||||
elif [ "${{ matrix.databases }}" = "pgsql" ]; then
|
||||
export DB_PORT=4445
|
||||
fi
|
||||
mkdir data
|
||||
./occ maintenance:install --verbose --database=${{ matrix.databases }} --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
|
||||
./occ config:system:set hashing_default_password --value=true --type=boolean
|
||||
./occ config:system:set memcache.local --value="\\OC\\Memcache\\APCu"
|
||||
./occ config:system:set memcache.distributed --value="\\OC\\Memcache\\APCu"
|
||||
cat config/config.php
|
||||
./occ user:list
|
||||
./occ app:enable --force ${{ env.APP_NAME }}
|
||||
./occ config:system:set query_log_file --value "$PWD/query.log"
|
||||
php -S localhost:8080 &
|
||||
|
||||
- name: Run behat
|
||||
working-directory: apps/${{ env.APP_NAME }}/tests/integration
|
||||
run: ./run.sh
|
||||
|
||||
- name: Print log
|
||||
if: always()
|
||||
run: cat data/nextcloud.log
|
||||
|
||||
- name: Query count
|
||||
if: ${{ matrix.databases == 'mysql' }}
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
||||
script: |
|
||||
let myOutput = ''
|
||||
let myError = ''
|
||||
|
||||
const options = {}
|
||||
options.listeners = {
|
||||
stdout: (data) => {
|
||||
myOutput += data.toString()
|
||||
},
|
||||
stderr: (data) => {
|
||||
myError += data.toString()
|
||||
}
|
||||
}
|
||||
await exec.exec(`/bin/bash -c "cat query.log | wc -l"`, [], options)
|
||||
msg = myOutput
|
||||
const queryCount = parseInt(myOutput, 10)
|
||||
|
||||
myOutput = ''
|
||||
await exec.exec('cat', ['apps/${{ env.APP_NAME }}/tests/integration/base-query-count.txt'], options)
|
||||
const baseCount = parseInt(myOutput, 10)
|
||||
|
||||
const absoluteIncrease = queryCount - baseCount
|
||||
const relativeIncrease = baseCount <= 0 ? 100 : (parseInt((absoluteIncrease / baseCount * 10000), 10) / 100)
|
||||
|
||||
if (absoluteIncrease >= 100 || relativeIncrease > 5) {
|
||||
const comment = `🐢 Performance warning.\nIt looks like the query count of the integration tests increased with this PR.\nDatabase query count is now ` + queryCount + ' was ' + baseCount + ' (+' + relativeIncrease + '%)\nPlease check your code again. If you added a new test this can be expected and the base value in tests/integration/base-query-count.txt can be increased.'
|
||||
github.rest.issues.createComment({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
body: comment
|
||||
})
|
||||
}
|
||||
if (queryCount < 100) {
|
||||
const comment = `🐈 Performance messuring seems broken. Failed to get query count.`
|
||||
github.rest.issues.createComment({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
body: comment
|
||||
})
|
||||
}
|
||||
100
.github/workflows/lint-eslint.yml
vendored
Normal file
100
.github/workflows/lint-eslint.yml
vendored
Normal file
@@ -0,0 +1,100 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: Lint eslint
|
||||
|
||||
on: pull_request
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: lint-eslint-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
changes:
|
||||
runs-on: ubuntu-latest-low
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
|
||||
outputs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
filters: |
|
||||
src:
|
||||
- '.github/workflows/**'
|
||||
- 'src/**'
|
||||
- 'appinfo/info.xml'
|
||||
- 'package.json'
|
||||
- 'package-lock.json'
|
||||
- 'tsconfig.json'
|
||||
- '.eslintrc.*'
|
||||
- '.eslintignore'
|
||||
- '**.js'
|
||||
- '**.ts'
|
||||
- '**.vue'
|
||||
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
needs: changes
|
||||
if: needs.changes.outputs.src != 'false'
|
||||
|
||||
name: NPM lint
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||
id: versions
|
||||
with:
|
||||
fallbackNode: '^20'
|
||||
fallbackNpm: '^10'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
|
||||
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
|
||||
|
||||
- name: Install dependencies
|
||||
env:
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
PUPPETEER_SKIP_DOWNLOAD: true
|
||||
run: npm ci
|
||||
|
||||
- name: Lint
|
||||
run: npm run lint
|
||||
|
||||
summary:
|
||||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest-low
|
||||
needs: [changes, lint]
|
||||
|
||||
if: always()
|
||||
|
||||
# This is the summary, we just avoid to rename it so that branch protection rules still match
|
||||
name: eslint
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi
|
||||
52
.github/workflows/lint-php-cs.yml
vendored
Normal file
52
.github/workflows/lint-php-cs.yml
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: Lint php-cs
|
||||
|
||||
on: pull_request
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: lint-php-cs-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
name: php-cs
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Get php version
|
||||
id: versions
|
||||
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
|
||||
|
||||
- name: Set up php${{ steps.versions.outputs.php-available }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
with:
|
||||
php-version: ${{ steps.versions.outputs.php-min }}
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||
coverage: none
|
||||
ini-file: development
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
composer remove nextcloud/ocp --dev
|
||||
composer i
|
||||
|
||||
- name: Lint
|
||||
run: composer run cs:check || ( echo 'Please run `composer run cs:fix` to format your code' && exit 1 )
|
||||
75
.github/workflows/lint-php.yml
vendored
Normal file
75
.github/workflows/lint-php.yml
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: Lint php
|
||||
|
||||
on: pull_request
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: lint-php-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
matrix:
|
||||
runs-on: ubuntu-latest-low
|
||||
outputs:
|
||||
php-versions: ${{ steps.versions.outputs.php-versions }}
|
||||
steps:
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Get version matrix
|
||||
id: versions
|
||||
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.0.0
|
||||
|
||||
php-lint:
|
||||
runs-on: ubuntu-latest
|
||||
needs: matrix
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ${{fromJson(needs.matrix.outputs.php-versions)}}
|
||||
|
||||
name: php-lint
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||
coverage: none
|
||||
ini-file: development
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Lint
|
||||
run: composer run lint
|
||||
|
||||
summary:
|
||||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest-low
|
||||
needs: php-lint
|
||||
|
||||
if: always()
|
||||
|
||||
name: php-lint-summary
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.php-lint.result != 'success' && needs.php-lint.result != 'skipped' }}; then exit 1; fi
|
||||
53
.github/workflows/lint-stylelint.yml
vendored
Normal file
53
.github/workflows/lint-stylelint.yml
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: Lint stylelint
|
||||
|
||||
on: pull_request
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: lint-stylelint-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
name: stylelint
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||
id: versions
|
||||
with:
|
||||
fallbackNode: '^20'
|
||||
fallbackNpm: '^10'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
|
||||
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
|
||||
|
||||
- name: Install dependencies
|
||||
env:
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
run: npm ci
|
||||
|
||||
- name: Lint
|
||||
run: npm run stylelint
|
||||
34
.github/workflows/nodejs.yml
vendored
Normal file
34
.github/workflows/nodejs.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: Node CI
|
||||
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [14.x]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4.2.2
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4.1.0
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: Set up npm7
|
||||
run: npm i -g npm@7
|
||||
- name: install dependencies
|
||||
run: |
|
||||
npm ci
|
||||
- name: build
|
||||
env:
|
||||
RELATIVE_CI_KEY: ${{ secrets.RELATIVE_CI_KEY }}
|
||||
RELATIVE_CI_SLUG: nextcloud/deck
|
||||
run: |
|
||||
mkdir -p js
|
||||
npm run build --if-present -- --profile --json | tail -n +6 > js/webpack-stats.json
|
||||
npx relative-ci-agent
|
||||
|
||||
|
||||
75
.github/workflows/npm-audit-fix.yml
vendored
Normal file
75
.github/workflows/npm-audit-fix.yml
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: Npm audit fix and compile
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
# At 2:30 on Sundays
|
||||
- cron: '30 2 * * 0'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
branches: ['main', 'master', 'stable30', 'stable29', 'stable28']
|
||||
|
||||
name: npm-audit-fix-${{ matrix.branches }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
ref: ${{ matrix.branches }}
|
||||
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||
id: versions
|
||||
with:
|
||||
fallbackNode: '^20'
|
||||
fallbackNpm: '^10'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
|
||||
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
|
||||
|
||||
- name: Fix npm audit
|
||||
id: npm-audit
|
||||
uses: nextcloud-libraries/npm-audit-action@2a60bd2e79cc77f2cc4d9a3fe40f1a69896f3a87 # v0.1.0
|
||||
|
||||
- name: Run npm ci and npm run build
|
||||
if: always()
|
||||
env:
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
run: |
|
||||
npm ci
|
||||
npm run build --if-present
|
||||
|
||||
- name: Create Pull Request
|
||||
if: always()
|
||||
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
commit-message: 'fix(deps): Fix npm audit'
|
||||
committer: GitHub <noreply@github.com>
|
||||
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
|
||||
signoff: true
|
||||
branch: automated/noid/${{ matrix.branches }}-fix-npm-audit
|
||||
title: '[${{ matrix.branches }}] Fix npm audit'
|
||||
body: ${{ steps.npm-audit.outputs.markdown }}
|
||||
labels: |
|
||||
dependencies
|
||||
3. to review
|
||||
200
.github/workflows/phpunit-mysql.yml
vendored
Normal file
200
.github/workflows/phpunit-mysql.yml
vendored
Normal file
@@ -0,0 +1,200 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: PHPUnit MySQL
|
||||
|
||||
on: pull_request
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: phpunit-mysql-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
matrix:
|
||||
runs-on: ubuntu-latest-low
|
||||
outputs:
|
||||
matrix: ${{ steps.versions.outputs.sparse-matrix }}
|
||||
steps:
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Get version matrix
|
||||
id: versions
|
||||
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
|
||||
with:
|
||||
matrix: '{"mysql-versions": ["8.4"]}'
|
||||
|
||||
changes:
|
||||
runs-on: ubuntu-latest-low
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
|
||||
outputs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
filters: |
|
||||
src:
|
||||
- '.github/workflows/**'
|
||||
- 'appinfo/**'
|
||||
- 'lib/**'
|
||||
- 'templates/**'
|
||||
- 'tests/**'
|
||||
- 'vendor/**'
|
||||
- 'vendor-bin/**'
|
||||
- '.php-cs-fixer.dist.php'
|
||||
- 'composer.json'
|
||||
- 'composer.lock'
|
||||
|
||||
phpunit-mysql:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
needs: [changes, matrix]
|
||||
if: needs.changes.outputs.src != 'false'
|
||||
|
||||
strategy:
|
||||
matrix: ${{ fromJson(needs.matrix.outputs.matrix) }}
|
||||
|
||||
name: MySQL ${{ matrix.mysql-versions }} PHP ${{ matrix.php-versions }} Nextcloud ${{ matrix.server-versions }}
|
||||
|
||||
services:
|
||||
mysql:
|
||||
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
|
||||
ports:
|
||||
- 4444:3306/tcp
|
||||
env:
|
||||
MYSQL_ROOT_PASSWORD: rootpassword
|
||||
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
|
||||
|
||||
steps:
|
||||
- name: Set app env
|
||||
if: ${{ env.APP_NAME == '' }}
|
||||
run: |
|
||||
# Split and keep last
|
||||
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
repository: nextcloud/server
|
||||
ref: ${{ matrix.server-versions }}
|
||||
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql
|
||||
coverage: none
|
||||
ini-file: development
|
||||
# Temporary workaround for missing pcntl_* in PHP 8.3
|
||||
ini-values: disable_functions=
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Enable ONLY_FULL_GROUP_BY MySQL option
|
||||
run: |
|
||||
echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
|
||||
echo 'SELECT @@sql_mode;' | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
|
||||
|
||||
- name: Check composer file existence
|
||||
id: check_composer
|
||||
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
|
||||
with:
|
||||
files: apps/${{ env.APP_NAME }}/composer.json
|
||||
|
||||
- name: Set up dependencies
|
||||
# Only run if phpunit config file exists
|
||||
if: steps.check_composer.outputs.files_exists == 'true'
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: |
|
||||
composer remove nextcloud/ocp --dev
|
||||
composer i
|
||||
|
||||
- name: Set up Nextcloud
|
||||
env:
|
||||
DB_PORT: 4444
|
||||
run: |
|
||||
mkdir data
|
||||
./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
|
||||
./occ app:enable --force ${{ env.APP_NAME }}
|
||||
|
||||
- name: Check PHPUnit script is defined
|
||||
id: check_phpunit
|
||||
continue-on-error: true
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: |
|
||||
composer run --list | grep '^ test:unit ' | wc -l | grep 1
|
||||
|
||||
- name: PHPUnit
|
||||
# Only run if phpunit config file exists
|
||||
if: steps.check_phpunit.outcome == 'success'
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: composer run test:unit
|
||||
|
||||
- name: Check PHPUnit integration script is defined
|
||||
id: check_integration
|
||||
continue-on-error: true
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: |
|
||||
composer run --list | grep '^ test:integration ' | wc -l | grep 1
|
||||
|
||||
- name: Run Nextcloud
|
||||
# Only run if phpunit integration config file exists
|
||||
if: steps.check_integration.outcome == 'success'
|
||||
run: php -S localhost:8080 &
|
||||
|
||||
- name: PHPUnit integration
|
||||
# Only run if phpunit integration config file exists
|
||||
if: steps.check_integration.outcome == 'success'
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: composer run test:integration
|
||||
|
||||
- name: Print logs
|
||||
if: always()
|
||||
run: |
|
||||
cat data/nextcloud.log
|
||||
|
||||
- name: Skipped
|
||||
# Fail the action when neither unit nor integration tests ran
|
||||
if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
|
||||
run: |
|
||||
echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
|
||||
exit 1
|
||||
|
||||
summary:
|
||||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest-low
|
||||
needs: [changes, phpunit-mysql]
|
||||
|
||||
if: always()
|
||||
|
||||
name: phpunit-mysql-summary
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-mysql.result != 'success' }}; then exit 1; fi
|
||||
198
.github/workflows/phpunit-pgsql.yml
vendored
Normal file
198
.github/workflows/phpunit-pgsql.yml
vendored
Normal file
@@ -0,0 +1,198 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: PHPUnit PostgreSQL
|
||||
|
||||
on: pull_request
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: phpunit-pgsql-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
matrix:
|
||||
runs-on: ubuntu-latest-low
|
||||
outputs:
|
||||
php-version: ${{ steps.versions.outputs.php-available-list }}
|
||||
server-max: ${{ steps.versions.outputs.branches-max-list }}
|
||||
steps:
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Get version matrix
|
||||
id: versions
|
||||
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
|
||||
|
||||
changes:
|
||||
runs-on: ubuntu-latest-low
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
|
||||
outputs:
|
||||
src: ${{ steps.changes.outputs.src }}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
filters: |
|
||||
src:
|
||||
- '.github/workflows/**'
|
||||
- 'appinfo/**'
|
||||
- 'lib/**'
|
||||
- 'templates/**'
|
||||
- 'tests/**'
|
||||
- 'vendor/**'
|
||||
- 'vendor-bin/**'
|
||||
- '.php-cs-fixer.dist.php'
|
||||
- 'composer.json'
|
||||
- 'composer.lock'
|
||||
|
||||
phpunit-pgsql:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
needs: [changes, matrix]
|
||||
if: needs.changes.outputs.src != 'false'
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ${{ fromJson(needs.matrix.outputs.php-version) }}
|
||||
server-versions: ${{ fromJson(needs.matrix.outputs.server-max) }}
|
||||
|
||||
name: PostgreSQL PHP ${{ matrix.php-versions }} Nextcloud ${{ matrix.server-versions }}
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: ghcr.io/nextcloud/continuous-integration-postgres-14:latest
|
||||
ports:
|
||||
- 4444:5432/tcp
|
||||
env:
|
||||
POSTGRES_USER: root
|
||||
POSTGRES_PASSWORD: rootpassword
|
||||
POSTGRES_DB: nextcloud
|
||||
options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
|
||||
|
||||
steps:
|
||||
- name: Set app env
|
||||
if: ${{ env.APP_NAME == '' }}
|
||||
run: |
|
||||
# Split and keep last
|
||||
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
repository: nextcloud/server
|
||||
ref: ${{ matrix.server-versions }}
|
||||
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, pgsql, pdo_pgsql
|
||||
coverage: none
|
||||
ini-file: development
|
||||
# Temporary workaround for missing pcntl_* in PHP 8.3
|
||||
ini-values: disable_functions=
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Check composer file existence
|
||||
id: check_composer
|
||||
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
|
||||
with:
|
||||
files: apps/${{ env.APP_NAME }}/composer.json
|
||||
|
||||
- name: Set up dependencies
|
||||
# Only run if phpunit config file exists
|
||||
if: steps.check_composer.outputs.files_exists == 'true'
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: |
|
||||
composer remove nextcloud/ocp --dev
|
||||
composer i
|
||||
|
||||
- name: Set up Nextcloud
|
||||
env:
|
||||
DB_PORT: 4444
|
||||
run: |
|
||||
mkdir data
|
||||
./occ maintenance:install --verbose --database=pgsql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
|
||||
./occ app:enable --force ${{ env.APP_NAME }}
|
||||
|
||||
- name: Check PHPUnit script is defined
|
||||
id: check_phpunit
|
||||
continue-on-error: true
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: |
|
||||
composer run --list | grep '^ test:unit ' | wc -l | grep 1
|
||||
|
||||
- name: PHPUnit
|
||||
# Only run if phpunit config file exists
|
||||
if: steps.check_phpunit.outcome == 'success'
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: composer run test:unit
|
||||
|
||||
- name: Check PHPUnit integration script is defined
|
||||
id: check_integration
|
||||
continue-on-error: true
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: |
|
||||
composer run --list | grep '^ test:integration ' | wc -l | grep 1
|
||||
|
||||
- name: Run Nextcloud
|
||||
# Only run if phpunit integration config file exists
|
||||
if: steps.check_integration.outcome == 'success'
|
||||
run: php -S localhost:8080 &
|
||||
|
||||
- name: PHPUnit integration
|
||||
# Only run if phpunit integration config file exists
|
||||
if: steps.check_integration.outcome == 'success'
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: composer run test:integration
|
||||
|
||||
- name: Print logs
|
||||
if: always()
|
||||
run: |
|
||||
cat data/nextcloud.log
|
||||
|
||||
- name: Skipped
|
||||
# Fail the action when neither unit nor integration tests ran
|
||||
if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
|
||||
run: |
|
||||
echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
|
||||
exit 1
|
||||
|
||||
summary:
|
||||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest-low
|
||||
needs: [changes, phpunit-pgsql]
|
||||
|
||||
if: always()
|
||||
|
||||
name: phpunit-pgsql-summary
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-pgsql.result != 'success' }}; then exit 1; fi
|
||||
187
.github/workflows/phpunit-sqlite.yml
vendored
Normal file
187
.github/workflows/phpunit-sqlite.yml
vendored
Normal file
@@ -0,0 +1,187 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: PHPUnit SQLite
|
||||
|
||||
on: pull_request
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: phpunit-sqlite-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
matrix:
|
||||
runs-on: ubuntu-latest-low
|
||||
outputs:
|
||||
php-version: ${{ steps.versions.outputs.php-available-list }}
|
||||
server-max: ${{ steps.versions.outputs.branches-max-list }}
|
||||
steps:
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Get version matrix
|
||||
id: versions
|
||||
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
|
||||
|
||||
changes:
|
||||
runs-on: ubuntu-latest-low
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
|
||||
outputs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
filters: |
|
||||
src:
|
||||
- '.github/workflows/**'
|
||||
- 'appinfo/**'
|
||||
- 'lib/**'
|
||||
- 'templates/**'
|
||||
- 'tests/**'
|
||||
- 'vendor/**'
|
||||
- 'vendor-bin/**'
|
||||
- '.php-cs-fixer.dist.php'
|
||||
- 'composer.json'
|
||||
- 'composer.lock'
|
||||
|
||||
phpunit-sqlite:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
needs: [changes, matrix]
|
||||
if: needs.changes.outputs.src != 'false'
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ${{ fromJson(needs.matrix.outputs.php-version) }}
|
||||
server-versions: ${{ fromJson(needs.matrix.outputs.server-max) }}
|
||||
|
||||
name: SQLite PHP ${{ matrix.php-versions }} Nextcloud ${{ matrix.server-versions }}
|
||||
|
||||
steps:
|
||||
- name: Set app env
|
||||
if: ${{ env.APP_NAME == '' }}
|
||||
run: |
|
||||
# Split and keep last
|
||||
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
repository: nextcloud/server
|
||||
ref: ${{ matrix.server-versions }}
|
||||
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||
coverage: none
|
||||
ini-file: development
|
||||
# Temporary workaround for missing pcntl_* in PHP 8.3
|
||||
ini-values: disable_functions=
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Check composer file existence
|
||||
id: check_composer
|
||||
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
|
||||
with:
|
||||
files: apps/${{ env.APP_NAME }}/composer.json
|
||||
|
||||
- name: Set up dependencies
|
||||
# Only run if phpunit config file exists
|
||||
if: steps.check_composer.outputs.files_exists == 'true'
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: |
|
||||
composer remove nextcloud/ocp --dev
|
||||
composer i
|
||||
|
||||
- name: Set up Nextcloud
|
||||
env:
|
||||
DB_PORT: 4444
|
||||
run: |
|
||||
mkdir data
|
||||
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
|
||||
./occ app:enable --force ${{ env.APP_NAME }}
|
||||
|
||||
- name: Check PHPUnit script is defined
|
||||
id: check_phpunit
|
||||
continue-on-error: true
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: |
|
||||
composer run --list | grep '^ test:unit ' | wc -l | grep 1
|
||||
|
||||
- name: PHPUnit
|
||||
# Only run if phpunit config file exists
|
||||
if: steps.check_phpunit.outcome == 'success'
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: composer run test:unit
|
||||
|
||||
- name: Check PHPUnit integration script is defined
|
||||
id: check_integration
|
||||
continue-on-error: true
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: |
|
||||
composer run --list | grep '^ test:integration ' | wc -l | grep 1
|
||||
|
||||
- name: Run Nextcloud
|
||||
# Only run if phpunit integration config file exists
|
||||
if: steps.check_integration.outcome == 'success'
|
||||
run: php -S localhost:8080 &
|
||||
|
||||
- name: PHPUnit integration
|
||||
# Only run if phpunit integration config file exists
|
||||
if: steps.check_integration.outcome == 'success'
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: composer run test:integration
|
||||
|
||||
- name: Print logs
|
||||
if: always()
|
||||
run: |
|
||||
cat data/nextcloud.log
|
||||
|
||||
- name: Skipped
|
||||
# Fail the action when neither unit nor integration tests ran
|
||||
if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
|
||||
run: |
|
||||
echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
|
||||
exit 1
|
||||
|
||||
summary:
|
||||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest-low
|
||||
needs: [changes, phpunit-sqlite]
|
||||
|
||||
if: always()
|
||||
|
||||
name: phpunit-sqlite-summary
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-sqlite.result != 'success' }}; then exit 1; fi
|
||||
50
.github/workflows/pr-feedback.yml
vendored
Normal file
50
.github/workflows/pr-feedback.yml
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
|
||||
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-FileCopyrightText: 2023 Marcel Klehr <mklehr@gmx.net>
|
||||
# SPDX-FileCopyrightText: 2023 Joas Schilling <213943+nickvergessen@users.noreply.github.com>
|
||||
# SPDX-FileCopyrightText: 2023 Daniel Kesselberg <mail@danielkesselberg.de>
|
||||
# SPDX-FileCopyrightText: 2023 Florian Steffens <florian.steffens@nextcloud.com>
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: 'Ask for feedback on PRs'
|
||||
on:
|
||||
schedule:
|
||||
- cron: '30 1 * * *'
|
||||
|
||||
jobs:
|
||||
pr-feedback:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: The get-github-handles-from-website action
|
||||
uses: marcelklehr/get-github-handles-from-website-action@06b2239db0a48fe1484ba0bfd966a3ab81a08308 # v1.0.1
|
||||
id: scrape
|
||||
with:
|
||||
website: 'https://nextcloud.com/team/'
|
||||
|
||||
- name: Get blocklist
|
||||
id: blocklist
|
||||
run: |
|
||||
blocklist=$(curl https://raw.githubusercontent.com/nextcloud/.github/master/non-community-usernames.txt | paste -s -d, -)
|
||||
echo "blocklist=$blocklist" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- uses: nextcloud/pr-feedback-action@1883b38a033fb16f576875e0cf45f98b857655c4 # main
|
||||
with:
|
||||
feedback-message: |
|
||||
Hello there,
|
||||
Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.
|
||||
|
||||
We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process.
|
||||
|
||||
Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6
|
||||
|
||||
Thank you for contributing to Nextcloud and we hope to hear from you soon!
|
||||
|
||||
(If you believe you should not receive this message, you can add yourself to the [blocklist](https://github.com/nextcloud/.github/blob/master/non-community-usernames.txt).)
|
||||
days-before-feedback: 14
|
||||
start-date: '2024-04-30'
|
||||
exempt-authors: '${{ steps.blocklist.outputs.blocklist }},${{ steps.scrape.outputs.users }}'
|
||||
exempt-bots: true
|
||||
59
.github/workflows/psalm.yml
vendored
Normal file
59
.github/workflows/psalm.yml
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: Static analysis
|
||||
|
||||
on: pull_request
|
||||
|
||||
concurrency:
|
||||
group: psalm-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
static-analysis:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
name: static-psalm-analysis
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Get php version
|
||||
id: versions
|
||||
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
|
||||
|
||||
- name: Check enforcement of minimum PHP version ${{ steps.versions.outputs.php-min }} in psalm.xml
|
||||
run: grep 'phpVersion="${{ steps.versions.outputs.php-min }}' psalm.xml
|
||||
|
||||
- name: Set up php${{ steps.versions.outputs.php-available }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
with:
|
||||
php-version: ${{ steps.versions.outputs.php-min }}
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||
coverage: none
|
||||
ini-file: development
|
||||
# Temporary workaround for missing pcntl_* in PHP 8.3
|
||||
ini-values: disable_functions=
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
composer remove nextcloud/ocp --dev
|
||||
composer i
|
||||
|
||||
- name: Install nextcloud/ocp
|
||||
run: composer require --dev nextcloud/ocp:dev-${{ steps.versions.outputs.branches-max }} --ignore-platform-reqs --with-dependencies
|
||||
|
||||
- name: Run coding standards check
|
||||
run: composer run psalm -- --threads=1 --monochrome --no-progress --output-format=github
|
||||
27
.github/workflows/reuse.yml
vendored
Normal file
27
.github/workflows/reuse.yml
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
|
||||
# SPDX-FileCopyrightText: 2022 Free Software Foundation Europe e.V. <https://fsfe.org>
|
||||
#
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
||||
name: REUSE Compliance Check
|
||||
|
||||
on: [pull_request]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
reuse-compliance-check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: REUSE Compliance Check
|
||||
uses: fsfe/reuse-action@bb774aa972c2a89ff34781233d275075cbddf542 # v5.0.0
|
||||
58
.github/workflows/update-nextcloud-ocp-approve-merge.yml
vendored
Normal file
58
.github/workflows/update-nextcloud-ocp-approve-merge.yml
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: Auto approve nextcloud/ocp
|
||||
|
||||
on:
|
||||
pull_request_target: # zizmor: ignore[dangerous-triggers]
|
||||
branches:
|
||||
- main
|
||||
- master
|
||||
- stable*
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: update-nextcloud-ocp-approve-merge-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
auto-approve-merge:
|
||||
if: github.actor == 'nextcloud-command'
|
||||
runs-on: ubuntu-latest-low
|
||||
permissions:
|
||||
# for hmarr/auto-approve-action to approve PRs
|
||||
pull-requests: write
|
||||
# for alexwilson/enable-github-automerge-action to approve PRs
|
||||
contents: write
|
||||
|
||||
steps:
|
||||
- name: Disabled on forks
|
||||
if: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
|
||||
run: |
|
||||
echo 'Can not approve PRs from forks'
|
||||
exit 1
|
||||
|
||||
- uses: mdecoleman/pr-branch-name@55795d86b4566d300d237883103f052125cc7508 # v3.0.0
|
||||
id: branchname
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# GitHub actions bot approve
|
||||
- uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v2
|
||||
if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-nextcloud-ocp')
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# Enable GitHub auto merge
|
||||
- name: Auto merge
|
||||
uses: alexwilson/enable-github-automerge-action@56e3117d1ae1540309dc8f7a9f2825bc3c5f06ff # v2.0.0
|
||||
if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-nextcloud-ocp')
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
123
.github/workflows/update-nextcloud-ocp.yml
vendored
Normal file
123
.github/workflows/update-nextcloud-ocp.yml
vendored
Normal file
@@ -0,0 +1,123 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: Update nextcloud/ocp
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: "5 2 * * 0"
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
update-nextcloud-ocp:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
branches: ['main', 'master', 'stable30', 'stable29', 'stable28']
|
||||
|
||||
name: update-nextcloud-ocp-${{ matrix.branches }}
|
||||
|
||||
steps:
|
||||
- id: checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
ref: ${{ matrix.branches }}
|
||||
submodules: true
|
||||
continue-on-error: true
|
||||
|
||||
- name: Set up php8.2
|
||||
if: steps.checkout.outcome == 'success'
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
with:
|
||||
php-version: 8.2
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||
coverage: none
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Read codeowners
|
||||
if: steps.checkout.outcome == 'success'
|
||||
id: codeowners
|
||||
run: |
|
||||
grep '/appinfo/info.xml' .github/CODEOWNERS | cut -f 2- -d ' ' | xargs | awk '{ print "codeowners="$0 }' >> $GITHUB_OUTPUT
|
||||
continue-on-error: true
|
||||
|
||||
- name: Composer install
|
||||
if: steps.checkout.outcome == 'success'
|
||||
run: composer install
|
||||
|
||||
- name: Composer update nextcloud/ocp
|
||||
id: update_branch
|
||||
if: ${{ steps.checkout.outcome == 'success' && matrix.branches != 'main' }}
|
||||
run: composer require --dev 'nextcloud/ocp:dev-${{ matrix.branches }}'
|
||||
|
||||
- name: Raise on issue on failure
|
||||
uses: dacbd/create-issue-action@cdb57ab6ff8862aa09fee2be6ba77a59581921c2 # v2.0.0
|
||||
if: ${{ steps.checkout.outcome == 'success' && failure() && steps.update_branch.conclusion == 'failure' }}
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
title: 'Failed to update nextcloud/ocp package on branch ${{ matrix.branches }}'
|
||||
body: 'Please check the output of the GitHub action and manually resolve the issues<br>${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}<br>${{ steps.codeowners.outputs.codeowners }}'
|
||||
|
||||
- name: Composer update nextcloud/ocp
|
||||
id: update_main
|
||||
if: ${{ steps.checkout.outcome == 'success' && matrix.branches == 'main' }}
|
||||
run: composer require --dev nextcloud/ocp:dev-master
|
||||
|
||||
- name: Raise on issue on failure
|
||||
uses: dacbd/create-issue-action@cdb57ab6ff8862aa09fee2be6ba77a59581921c2 # v2.0.0
|
||||
if: ${{ steps.checkout.outcome == 'success' && failure() && steps.update_main.conclusion == 'failure' }}
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
title: 'Failed to update nextcloud/ocp package on branch ${{ matrix.branches }}'
|
||||
body: 'Please check the output of the GitHub action and manually resolve the issues<br>${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}<br>${{ steps.codeowners.outputs.codeowners }}'
|
||||
|
||||
- name: Reset checkout 3rdparty
|
||||
if: steps.checkout.outcome == 'success'
|
||||
run: |
|
||||
git clean -f 3rdparty
|
||||
git checkout 3rdparty
|
||||
continue-on-error: true
|
||||
|
||||
- name: Reset checkout vendor
|
||||
if: steps.checkout.outcome == 'success'
|
||||
run: |
|
||||
git clean -f vendor
|
||||
git checkout vendor
|
||||
continue-on-error: true
|
||||
|
||||
- name: Reset checkout vendor-bin
|
||||
if: steps.checkout.outcome == 'success'
|
||||
run: |
|
||||
git clean -f vendor-bin
|
||||
git checkout vendor-bin
|
||||
continue-on-error: true
|
||||
|
||||
- name: Create Pull Request
|
||||
if: steps.checkout.outcome == 'success'
|
||||
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
commit-message: 'chore(dev-deps): Bump nextcloud/ocp package'
|
||||
committer: GitHub <noreply@github.com>
|
||||
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
|
||||
signoff: true
|
||||
branch: 'automated/noid/${{ matrix.branches }}-update-nextcloud-ocp'
|
||||
title: '[${{ matrix.branches }}] Update nextcloud/ocp dependency'
|
||||
body: |
|
||||
Auto-generated update of [nextcloud/ocp](https://github.com/nextcloud-deps/ocp/) dependency
|
||||
labels: |
|
||||
dependencies
|
||||
3. to review
|
||||
@@ -6,7 +6,6 @@
|
||||
|
||||
- Adrian Missy <adrian.missy@onewavestudios.com>
|
||||
- Alexandru Puiu <alexpuiu20@yahoo.com>
|
||||
- Arne Bartelt <arne.bartelt@gmail.com>
|
||||
- Chandi Langecker <git@chandi.it>
|
||||
- Christoph Wurst <christoph@winzerhof-wurst.at>
|
||||
- Gary Kim <gary@garykim.dev>
|
||||
|
||||
33
CHANGELOG.md
33
CHANGELOG.md
@@ -5,16 +5,35 @@
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 1.16.0-beta.1
|
||||
## 1.15.1
|
||||
### Fixed
|
||||
* [stable31] fix: Properly show attachment extension by @backportbot in https://github.com/nextcloud/deck/pull/6701
|
||||
* [stable31] Clear selected stack when selected board changed by @backportbot in https://github.com/nextcloud/deck/pull/6915
|
||||
* [stable31] fix: Use strings as rich object ids by @backportbot in https://github.com/nextcloud/deck/pull/6951
|
||||
* [stable31] fix: Limit label actions to labels of the cards board by @backportbot in https://github.com/nextcloud/deck/pull/6954
|
||||
* [stable31] fix: only delete assignments on unshared board by @grnd-alt in https://github.com/nextcloud/deck/pull/6934
|
||||
|
||||
### Improvements
|
||||
* [stable31] perf: Skip doing a query just to check if a board is deleted by @backportbot in https://github.com/nextcloud/deck/pull/6894
|
||||
|
||||
## 1.15.0
|
||||
### Fixed
|
||||
- Fix: Adapt URLs generated in the backend to new routes #6743
|
||||
- Fix npm audit #6719
|
||||
- Fix: skip exporting a deleted card #6723
|
||||
|
||||
## 1.15.0-beta.2
|
||||
|
||||
### Added
|
||||
- feat: update default content @luka-nextcloud [#6740](https://github.com/nextcloud/deck/pull/6740)
|
||||
- feat: add board import and export @luka-nextcloud [#6872](https://github.com/nextcloud/deck/pull/6872)
|
||||
- feat: use outline icons @luka-nextcloud [#7114](https://github.com/nextcloud/deck/pull/7114)
|
||||
- Add OCC commands for global calendar feature opt-in and opt-out in Deck @Fledermaus-20 [#7080](https://github.com/nextcloud/deck/pull/7080)
|
||||
|
||||
### Fixed
|
||||
- CSV export fixes @gidan80 [#6800](https://github.com/nextcloud/deck/pull/6800)
|
||||
- feat: Implement reference resolving for cards that have a link in the title @juliusknorr [#6286](https://github.com/nextcloud/deck/pull/6286)
|
||||
|
||||
### Other
|
||||
|
||||
- Remove old project from README @edent [#6658](https://github.com/nextcloud/deck/pull/6658)
|
||||
- devcontainer(image): Fix package path @niclasheinz [#6653](https://github.com/nextcloud/deck/pull/6653)
|
||||
- remove deprecated nextcloud-vue-collections @grnd-alt [#6664](https://github.com/nextcloud/deck/pull/6664)
|
||||
- fix: set cypress ci server version to stable31 @grnd-alt [#6705](https://github.com/nextcloud/deck/pull/6705)
|
||||
|
||||
## 1.15.0-beta.1
|
||||
### Fixed
|
||||
|
||||
@@ -24,7 +24,7 @@ Deck is a kanban style organization tool aimed at personal planning and project
|
||||
### Mobile apps
|
||||
|
||||
- [Nextcloud Deck app for Android](https://github.com/stefan-niedermann/nextcloud-deck) - It is available in [F-Droid](https://f-droid.org/de/packages/it.niedermann.nextcloud.deck/) and the [Google Play Store](https://play.google.com/store/apps/details?id=it.niedermann.nextcloud.deck.play)
|
||||
- Nextcloud Deck app for iOS - It is available in [Apple App store](https://apps.apple.com/de/app/next-deck/id6752478755)
|
||||
- [Nextcloud Deck app for iOS](https://github.com/StCyr/deck-react-native) - It is available in [Apple App store](https://apps.apple.com/ml/app/nextcloud-deck/id1570892788)
|
||||
|
||||
### 3rd-Party Integrations
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ SPDX-FileCopyrightText = "none"
|
||||
SPDX-License-Identifier = "CC0-1.0"
|
||||
|
||||
[[annotations]]
|
||||
path = ["l10n/**.js", "l10n/**.json", "js/**.js.map", "js/**.js", "js/**.mjs", "js/**.mjs.map", "js/templates/**.handlebars", "lib/Service/Importer/fixtures/config-deckJson-schema.json", "lib/Service/Importer/fixtures/config-trelloApi-schema.json", "lib/Service/Importer/fixtures/config-trelloJson-schema.json", "lib/Service/fixtures/default-board.json", "screenshots/screenshot1.png", "src/assets/file-placeholder.svg", "img/favicon.ico", "img/favicon.png", "img/favicon.svg", "img/activity.svg", "img/activity-dark.svg", "img/deck.svg", "img/deck-current.svg", "img/deck-dark.svg", "img/details-white.svg", "img/card.svg", "img/sample-image.jpg"]
|
||||
path = ["l10n/**.js", "l10n/**.json", "js/**.js.map", "js/**.js", "js/**.mjs", "js/**.mjs.map", "js/templates/**.handlebars", "lib/Service/Importer/fixtures/config-deckJson-schema.json", "lib/Service/Importer/fixtures/config-trelloApi-schema.json", "lib/Service/Importer/fixtures/config-trelloJson-schema.json", "screenshots/screenshot1.png", "src/assets/file-placeholder.svg", "img/favicon.ico", "img/favicon.png", "img/favicon.svg", "img/activity.svg", "img/activity-dark.svg", "img/deck.svg", "img/deck-current.svg", "img/deck-dark.svg", "img/details-white.svg", "img/card.svg"]
|
||||
precedence = "aggregate"
|
||||
SPDX-FileCopyrightText = "2019 Nextcloud GmbH and Nextcloud contributors"
|
||||
SPDX-License-Identifier = "AGPL-3.0-or-later"
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
- 🚀 Get your project organized
|
||||
|
||||
</description>
|
||||
<version>2.0.0-dev.0</version>
|
||||
<version>1.15.1</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Julius Härtl</author>
|
||||
<namespace>Deck</namespace>
|
||||
@@ -42,7 +42,7 @@
|
||||
<database min-version="9.4">pgsql</database>
|
||||
<database>sqlite</database>
|
||||
<database min-version="8.0">mysql</database>
|
||||
<nextcloud min-version="33" max-version="33"/>
|
||||
<nextcloud min-version="31" max-version="31"/>
|
||||
</dependencies>
|
||||
<background-jobs>
|
||||
<job>OCA\Deck\Cron\DeleteCron</job>
|
||||
@@ -54,15 +54,11 @@
|
||||
<live-migration>
|
||||
<step>OCA\Deck\Migration\DeletedCircleCleanup</step>
|
||||
</live-migration>
|
||||
<post-migration>
|
||||
<step>OCA\Deck\Migration\LabelMismatchCleanup</step>
|
||||
</post-migration>
|
||||
</repair-steps>
|
||||
<commands>
|
||||
<command>OCA\Deck\Command\UserExport</command>
|
||||
<command>OCA\Deck\Command\BoardImport</command>
|
||||
<command>OCA\Deck\Command\TransferOwnership</command>
|
||||
<command>OCA\Deck\Command\CalendarToggle</command>
|
||||
</commands>
|
||||
<activity>
|
||||
<settings>
|
||||
|
||||
@@ -29,7 +29,6 @@ return [
|
||||
['name' => 'board#clone', 'url' => '/boards/{boardId}/clone', 'verb' => 'POST'],
|
||||
['name' => 'board#transferOwner', 'url' => '/boards/{boardId}/transferOwner', 'verb' => 'PUT'],
|
||||
['name' => 'board#export', 'url' => '/boards/{boardId}/export', 'verb' => 'GET'],
|
||||
['name' => 'board#import', 'url' => '/boards/import', 'verb' => 'POST'],
|
||||
|
||||
// stacks
|
||||
['name' => 'stack#index', 'url' => '/stacks/{boardId}', 'verb' => 'GET'],
|
||||
|
||||
@@ -9,35 +9,31 @@
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"justinrainbow/json-schema": "^6.0",
|
||||
"bamarni/composer-bin-plugin": "^1.8"
|
||||
"justinrainbow/json-schema": "^6.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"roave/security-advisories": "dev-master",
|
||||
"phpunit/phpunit": "^9",
|
||||
"nextcloud/coding-standard": "^1.1",
|
||||
"nextcloud/ocp": "dev-master"
|
||||
"nextcloud/ocp": "dev-master",
|
||||
"psalm/phar": "^5.13"
|
||||
},
|
||||
"config": {
|
||||
"optimize-autoloader": true,
|
||||
"allow-plugins": {
|
||||
"composer/package-versions-deprecated": true,
|
||||
"bamarni/composer-bin-plugin": true
|
||||
"composer/package-versions-deprecated": true
|
||||
},
|
||||
"platform": {
|
||||
"php": "8.1"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"post-install-cmd": [
|
||||
"@composer bin all install --ansi"
|
||||
],
|
||||
"lint": "find . -name \\*.php -not -path './vendor/*' -print0 | xargs -0 -n1 php -l",
|
||||
"cs:check": "php-cs-fixer fix --dry-run --diff",
|
||||
"cs:fix": "php-cs-fixer fix",
|
||||
"psalm": "psalm",
|
||||
"psalm:update-baseline": "psalm --threads=$(nproc) --no-cache --update-baseline",
|
||||
"psalm:fix": "psalm --alter --issues=InvalidReturnType,InvalidNullableReturnType,MismatchingDocblockParamType,MismatchingDocblockReturnType,MissingParamType,InvalidFalsableReturnType",
|
||||
"psalm": "psalm.phar",
|
||||
"psalm:update-baseline": "psalm.phar --update-baseline",
|
||||
"psalm:fix": "psalm.phar --alter --issues=InvalidReturnType,InvalidNullableReturnType,MismatchingDocblockParamType,MismatchingDocblockReturnType,MissingParamType,InvalidFalsableReturnType",
|
||||
"test": [
|
||||
"@test:unit",
|
||||
"@test:integration"
|
||||
|
||||
200
composer.lock
generated
200
composer.lock
generated
@@ -4,91 +4,146 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "263f9ff9e6a13d50ab09bc9f4e06b749",
|
||||
"content-hash": "6950663d9d213151028e780637480220",
|
||||
"packages": [
|
||||
{
|
||||
"name": "bamarni/composer-bin-plugin",
|
||||
"version": "1.8.2",
|
||||
"name": "icecave/parity",
|
||||
"version": "1.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/bamarni/composer-bin-plugin.git",
|
||||
"reference": "92fd7b1e6e9cdae19b0d57369d8ad31a37b6a880"
|
||||
"url": "https://github.com/icecave/parity.git",
|
||||
"reference": "0109fef58b3230d23b20b2ac52ecdf477218d300"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/bamarni/composer-bin-plugin/zipball/92fd7b1e6e9cdae19b0d57369d8ad31a37b6a880",
|
||||
"reference": "92fd7b1e6e9cdae19b0d57369d8ad31a37b6a880",
|
||||
"url": "https://api.github.com/repos/icecave/parity/zipball/0109fef58b3230d23b20b2ac52ecdf477218d300",
|
||||
"reference": "0109fef58b3230d23b20b2ac52ecdf477218d300",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer-plugin-api": "^2.0",
|
||||
"php": "^7.2.5 || ^8.0"
|
||||
"icecave/repr": "~1",
|
||||
"php": ">=5.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/composer": "^2.0",
|
||||
"ext-json": "*",
|
||||
"phpstan/extension-installer": "^1.1",
|
||||
"phpstan/phpstan": "^1.8",
|
||||
"phpstan/phpstan-phpunit": "^1.1",
|
||||
"phpunit/phpunit": "^8.5 || ^9.5",
|
||||
"symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0",
|
||||
"symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0",
|
||||
"symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0"
|
||||
"eloquent/liberator": "~1",
|
||||
"icecave/archer": "~1"
|
||||
},
|
||||
"type": "composer-plugin",
|
||||
"extra": {
|
||||
"class": "Bamarni\\Composer\\Bin\\BamarniBinPlugin"
|
||||
"suggest": {
|
||||
"eloquent/asplode": "Drop-in exception-based error handling."
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Bamarni\\Composer\\Bin\\": "src"
|
||||
"psr-0": {
|
||||
"Icecave\\Parity": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "No conflicts for your bin dependencies",
|
||||
"authors": [
|
||||
{
|
||||
"name": "James Harris",
|
||||
"email": "james.harris@icecave.com.au",
|
||||
"homepage": "https://github.com/jmalloc"
|
||||
}
|
||||
],
|
||||
"description": "A customizable deep comparison library.",
|
||||
"homepage": "https://github.com/IcecaveStudios/parity",
|
||||
"keywords": [
|
||||
"composer",
|
||||
"conflict",
|
||||
"dependency",
|
||||
"executable",
|
||||
"isolation",
|
||||
"tool"
|
||||
"compare",
|
||||
"comparison",
|
||||
"equal",
|
||||
"equality",
|
||||
"greater",
|
||||
"less",
|
||||
"sort",
|
||||
"sorting"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/bamarni/composer-bin-plugin/issues",
|
||||
"source": "https://github.com/bamarni/composer-bin-plugin/tree/1.8.2"
|
||||
"issues": "https://github.com/icecave/parity/issues",
|
||||
"source": "https://github.com/icecave/parity/tree/1.0.0"
|
||||
},
|
||||
"time": "2022-10-31T08:38:03+00:00"
|
||||
"time": "2014-01-17T05:56:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "justinrainbow/json-schema",
|
||||
"version": "6.4.2",
|
||||
"name": "icecave/repr",
|
||||
"version": "1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/jsonrainbow/json-schema.git",
|
||||
"reference": "ce1fd2d47799bb60668643bc6220f6278a4c1d02"
|
||||
"url": "https://github.com/icecave/repr.git",
|
||||
"reference": "8a3d2953adf5f464a06e3e2587aeacc97e2bed07"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/ce1fd2d47799bb60668643bc6220f6278a4c1d02",
|
||||
"reference": "ce1fd2d47799bb60668643bc6220f6278a4c1d02",
|
||||
"url": "https://api.github.com/repos/icecave/repr/zipball/8a3d2953adf5f464a06e3e2587aeacc97e2bed07",
|
||||
"reference": "8a3d2953adf5f464a06e3e2587aeacc97e2bed07",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"marc-mabe/php-enum": "^4.0",
|
||||
"php": "^7.2 || ^8.0"
|
||||
"php": ">=5.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "3.3.0",
|
||||
"icecave/archer": "~1"
|
||||
},
|
||||
"suggest": {
|
||||
"eloquent/asplode": "Drop-in exception-based error handling."
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Icecave\\Repr\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "James Harris",
|
||||
"email": "james.harris@icecave.com.au",
|
||||
"homepage": "https://github.com/jmalloc"
|
||||
}
|
||||
],
|
||||
"description": "A library for generating string representations of any value, inspired by Python's reprlib library.",
|
||||
"homepage": "https://github.com/IcecaveStudios/repr",
|
||||
"keywords": [
|
||||
"human",
|
||||
"readable",
|
||||
"repr",
|
||||
"representation",
|
||||
"string"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/icecave/repr/issues",
|
||||
"source": "https://github.com/icecave/repr/tree/1.0.1"
|
||||
},
|
||||
"time": "2014-07-25T05:44:41+00:00"
|
||||
},
|
||||
{
|
||||
"name": "justinrainbow/json-schema",
|
||||
"version": "6.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/jsonrainbow/json-schema.git",
|
||||
"reference": "a38c6198d53b09c0702f440585a4f4a5d9137bd9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/a38c6198d53b09c0702f440585a4f4a5d9137bd9",
|
||||
"reference": "a38c6198d53b09c0702f440585a4f4a5d9137bd9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"icecave/parity": "1.0.0",
|
||||
"marc-mabe/php-enum": "^2.0 || ^3.0 || ^4.0",
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "~2.2.20 || ~2.19.0",
|
||||
"json-schema/json-schema-test-suite": "1.2.0",
|
||||
"marc-mabe/php-enum-phpstan": "^2.0",
|
||||
"phpspec/prophecy": "^1.19",
|
||||
"phpstan/phpstan": "^1.12",
|
||||
"phpunit/phpunit": "^8.5"
|
||||
"phpunit/phpunit": "^4.8.35"
|
||||
},
|
||||
"bin": [
|
||||
"bin/validate-json"
|
||||
@@ -134,9 +189,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/jsonrainbow/json-schema/issues",
|
||||
"source": "https://github.com/jsonrainbow/json-schema/tree/6.4.2"
|
||||
"source": "https://github.com/jsonrainbow/json-schema/tree/6.0.0"
|
||||
},
|
||||
"time": "2025-06-03T18:27:04+00:00"
|
||||
"time": "2024-07-30T17:49:21+00:00"
|
||||
},
|
||||
{
|
||||
"name": "marc-mabe/php-enum",
|
||||
@@ -437,16 +492,16 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nextcloud-deps/ocp.git",
|
||||
"reference": "9a2e6c0bf6f2d87e1db8d18063a5bedf85040bb2"
|
||||
"reference": "ed23f703c172ba167a62a76f7b2d8a6b4e37f44f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/9a2e6c0bf6f2d87e1db8d18063a5bedf85040bb2",
|
||||
"reference": "9a2e6c0bf6f2d87e1db8d18063a5bedf85040bb2",
|
||||
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/ed23f703c172ba167a62a76f7b2d8a6b4e37f44f",
|
||||
"reference": "ed23f703c172ba167a62a76f7b2d8a6b4e37f44f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "~8.1 || ~8.2 || ~8.3 || ~8.4",
|
||||
"php": "~8.1 || ~8.2 || ~8.3",
|
||||
"psr/clock": "^1.0",
|
||||
"psr/container": "^2.0.2",
|
||||
"psr/event-dispatcher": "^1.0",
|
||||
@@ -456,7 +511,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "33.0.0-dev"
|
||||
"dev-master": "31.0.0-dev"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
@@ -478,7 +533,7 @@
|
||||
"issues": "https://github.com/nextcloud-deps/ocp/issues",
|
||||
"source": "https://github.com/nextcloud-deps/ocp/tree/master"
|
||||
},
|
||||
"time": "2025-09-27T00:45:05+00:00"
|
||||
"time": "2025-01-10T00:44:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nikic/php-parser",
|
||||
@@ -1130,6 +1185,41 @@
|
||||
],
|
||||
"time": "2024-12-05T13:48:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psalm/phar",
|
||||
"version": "5.26.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/psalm/phar.git",
|
||||
"reference": "8a38e7ad04499a0ccd2c506fd1da6fc01fff4547"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/psalm/phar/zipball/8a38e7ad04499a0ccd2c506fd1da6fc01fff4547",
|
||||
"reference": "8a38e7ad04499a0ccd2c506fd1da6fc01fff4547",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"conflict": {
|
||||
"vimeo/psalm": "*"
|
||||
},
|
||||
"bin": [
|
||||
"psalm.phar"
|
||||
],
|
||||
"type": "library",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "Composer-based Psalm Phar",
|
||||
"support": {
|
||||
"issues": "https://github.com/psalm/phar/issues",
|
||||
"source": "https://github.com/psalm/phar/tree/5.26.1"
|
||||
},
|
||||
"time": "2024-09-09T16:22:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/clock",
|
||||
"version": "1.0.0",
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
|
||||
input[type=submit].icon-confirm {
|
||||
border-color: var(--color-border-maxcontrast) !important;
|
||||
border-style: solid;
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
|
||||
@@ -129,81 +129,3 @@ describe('Board cloning', function() {
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe('Board export', function() {
|
||||
before(function() {
|
||||
cy.createUser(user)
|
||||
})
|
||||
|
||||
it('Exports a board as JSON', function() {
|
||||
const boardName = 'Export JSON board'
|
||||
const board = sampleBoard(boardName)
|
||||
cy.createExampleBoard({ user, board }).then((board) => {
|
||||
const boardId = board.id
|
||||
cy.visit(`/apps/deck/board/${boardId}`)
|
||||
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + '")')
|
||||
.parent()
|
||||
.find('button[aria-label="Actions"]')
|
||||
.click()
|
||||
cy.get('button:contains("Export board")')
|
||||
.click()
|
||||
cy.get('.modal-container .checkbox-radio-switch__text:contains("Export as JSON")')
|
||||
.click()
|
||||
cy.get('.modal-container button:contains("Export")')
|
||||
.click()
|
||||
|
||||
const downloadsFolder = Cypress.config('downloadsFolder')
|
||||
cy.readFile(`${downloadsFolder}/${boardName}.json`)
|
||||
})
|
||||
})
|
||||
|
||||
it('Exports a board as CSV', function() {
|
||||
const boardName = 'Export CSV board'
|
||||
const board = sampleBoard(boardName)
|
||||
cy.createExampleBoard({ user, board }).then((board) => {
|
||||
const boardId = board.id
|
||||
cy.visit(`/apps/deck/board/${boardId}`)
|
||||
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + '")')
|
||||
.parent()
|
||||
.find('button[aria-label="Actions"]')
|
||||
.click()
|
||||
cy.get('button:contains("Export board")')
|
||||
.click()
|
||||
cy.get('.modal-container .checkbox-radio-switch__text:contains("Export as CSV")')
|
||||
.click()
|
||||
cy.get('.modal-container button:contains("Export")')
|
||||
.click()
|
||||
|
||||
const downloadsFolder = Cypress.config('downloadsFolder')
|
||||
cy.readFile(`${downloadsFolder}/${boardName}.csv`)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe('Board import', function() {
|
||||
before(function () {
|
||||
cy.createUser(user)
|
||||
})
|
||||
beforeEach(function() {
|
||||
cy.login(user)
|
||||
cy.visit('/apps/deck')
|
||||
})
|
||||
|
||||
it('Imports a board from JSON', function() {
|
||||
cy.get('#app-navigation-vue .app-navigation__list .app-navigation-entry:contains("Import board")')
|
||||
.should('be.visible')
|
||||
.click()
|
||||
|
||||
// Upload a JSON file
|
||||
cy.get('input[type="file"]')
|
||||
.selectFile([
|
||||
{
|
||||
contents: 'cypress/fixtures/import-board.json',
|
||||
fileName: 'import-board.json',
|
||||
},
|
||||
], { force: true })
|
||||
|
||||
cy.get('.app-navigation__list .app-navigation-entry:contains("Imported board")')
|
||||
.should('be.visible')
|
||||
})
|
||||
})
|
||||
|
||||
@@ -133,7 +133,6 @@ describe('Card', function () {
|
||||
|
||||
// Rename link to plain title
|
||||
cy.get('.card:contains("Example Domain")')
|
||||
.last() // A duplicate card might be created in other test case, so we select the last one
|
||||
.find('.action-item__menutoggle')
|
||||
.click()
|
||||
cy.get('.v-popper__popper button:contains("Edit title")')
|
||||
@@ -302,15 +301,12 @@ describe('Card', function () {
|
||||
.first().click()
|
||||
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible').click()
|
||||
|
||||
// Add delay to ensure the events are bound
|
||||
cy.wait(1000)
|
||||
|
||||
cy.get('#app-sidebar-vue [data-test="tag-selector"] .vs__dropdown-toggle').should('be.visible').click()
|
||||
cy.get('#app-sidebar-vue [data-test="tag-selector"]').should('be.visible').click()
|
||||
cy.get('.vs__dropdown-menu .tag:contains("Action needed")').should('be.visible').click()
|
||||
cy.get('.vs__selected .tag:contains("Action needed")').should('be.visible')
|
||||
cy.get('.vs__dropdown-menu .tag:contains("Later")').should('be.visible').click()
|
||||
|
||||
cy.get('.vs__selected .tag:contains("Action needed")').should('be.visible')
|
||||
cy.get('.vs__selected .tag:contains("Later")').should('be.visible')
|
||||
cy.get('.vs__selected .tag:contains("Action needed")')
|
||||
.parent().find('button').click()
|
||||
|
||||
|
||||
@@ -22,10 +22,10 @@ describe('Deck dashboard', function() {
|
||||
.should($el => expect($el.text().trim()).to.equal('Upcoming cards'))
|
||||
})
|
||||
|
||||
it('Can see the default "Welcome Board" created for user by default', function() {
|
||||
it('Can see the default "Personal Board" created for user by default', function() {
|
||||
cy.visit('/apps/deck')
|
||||
|
||||
const defaultBoard = 'Welcome to Nextcloud Deck!'
|
||||
const defaultBoard = 'Personal'
|
||||
|
||||
cy.get('.app-navigation-entry-wrapper[icon=icon-deck]')
|
||||
.find('ul.app-navigation-entry__children .app-navigation-entry:contains(' + defaultBoard + ')')
|
||||
|
||||
@@ -1,102 +0,0 @@
|
||||
{
|
||||
"boards": [
|
||||
{
|
||||
"id": 70,
|
||||
"title": "Imported board",
|
||||
"owner": "unvjrmwuag",
|
||||
"color": "00ff00",
|
||||
"archived": false,
|
||||
"labels": [
|
||||
{
|
||||
"id": 293,
|
||||
"title": "Finished",
|
||||
"color": "31CC7C",
|
||||
"boardId": 70,
|
||||
"cardId": null,
|
||||
"lastModified": 0,
|
||||
"ETag": "cfcd208495d565ef66e7dff9f98764da"
|
||||
},
|
||||
{
|
||||
"id": 294,
|
||||
"title": "To review",
|
||||
"color": "317CCC",
|
||||
"boardId": 70,
|
||||
"cardId": null,
|
||||
"lastModified": 0,
|
||||
"ETag": "cfcd208495d565ef66e7dff9f98764da"
|
||||
},
|
||||
{
|
||||
"id": 295,
|
||||
"title": "Action needed",
|
||||
"color": "FF7A66",
|
||||
"boardId": 70,
|
||||
"cardId": null,
|
||||
"lastModified": 0,
|
||||
"ETag": "cfcd208495d565ef66e7dff9f98764da"
|
||||
},
|
||||
{
|
||||
"id": 296,
|
||||
"title": "Later",
|
||||
"color": "F1DB50",
|
||||
"boardId": 70,
|
||||
"cardId": null,
|
||||
"lastModified": 0,
|
||||
"ETag": "cfcd208495d565ef66e7dff9f98764da"
|
||||
}
|
||||
],
|
||||
"acl": [],
|
||||
"permissions": [],
|
||||
"users": [],
|
||||
"stacks": {
|
||||
"114": {
|
||||
"id": 114,
|
||||
"title": "TestList",
|
||||
"boardId": 70,
|
||||
"deletedAt": 0,
|
||||
"lastModified": 1743495533,
|
||||
"cards": [
|
||||
{
|
||||
"id": 124,
|
||||
"title": "Hello world",
|
||||
"description": "# Hello world",
|
||||
"descriptionPrev": null,
|
||||
"stackId": 114,
|
||||
"type": "plain",
|
||||
"lastModified": 1743495533,
|
||||
"lastEditor": null,
|
||||
"createdAt": 1743495533,
|
||||
"labels": [],
|
||||
"assignedUsers": null,
|
||||
"attachments": null,
|
||||
"attachmentCount": null,
|
||||
"owner": {
|
||||
"primaryKey": "unvjrmwuag",
|
||||
"uid": "unvjrmwuag",
|
||||
"displayname": "unvjrmwuag",
|
||||
"type": 0
|
||||
},
|
||||
"order": 999,
|
||||
"archived": false,
|
||||
"done": null,
|
||||
"duedate": null,
|
||||
"notified": false,
|
||||
"deletedAt": 0,
|
||||
"commentsUnread": 0,
|
||||
"commentsCount": 0,
|
||||
"relatedStack": null,
|
||||
"relatedBoard": null,
|
||||
"ETag": "aa85bb973089e7fbc0bbf122e926c23f"
|
||||
}
|
||||
],
|
||||
"order": 0,
|
||||
"ETag": "aa85bb973089e7fbc0bbf122e926c23f"
|
||||
}
|
||||
},
|
||||
"activeSessions": [],
|
||||
"deletedAt": 0,
|
||||
"lastModified": 1743495533,
|
||||
"settings": [],
|
||||
"ETag": "aa85bb973089e7fbc0bbf122e926c23f"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -102,11 +102,7 @@ Cypress.Commands.add('shareBoardWithUi', (query, userId=query) => {
|
||||
cy.intercept({ method: 'GET', url: `**/ocs/v2.php/apps/files_sharing/api/v1/sharees?search=${query}*` }).as('fetchRecipients')
|
||||
cy.get('[aria-label="Open details"]').click()
|
||||
cy.get('.app-sidebar').should('be.visible')
|
||||
|
||||
// Add delay to ensure the events are bound
|
||||
cy.wait(1000)
|
||||
|
||||
cy.get('.select input').click().type(`${query}`)
|
||||
cy.get('.select input').type(`${query}`)
|
||||
cy.wait('@fetchRecipients', { timeout: 7000 })
|
||||
|
||||
cy.get('.vs__dropdown-menu .option').first().contains(query)
|
||||
|
||||
24
docs/API.md
24
docs/API.md
@@ -6,7 +6,7 @@ The REST API provides access for authenticated users to their data inside the De
|
||||
|
||||
# Prerequisites
|
||||
|
||||
- All requests require a `OCS-APIRequest` HTTP header to be set to `true` and a `Content-Type` of `application/json`. This does not apply to the endpoint for uploading attachments, which consumes `multipart/form-data`.
|
||||
- All requests require a `OCS-APIRequest` HTTP header to be set to `true` and a `Content-Type` of `application/json`.
|
||||
- The API is located at https://nextcloud.local/index.php/apps/deck/api/v1.0
|
||||
- All request parameters are required, unless otherwise specified
|
||||
|
||||
@@ -733,7 +733,6 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ------- | --------------------------------------- |
|
||||
| labelId | Integer | The label id to assign to the card |
|
||||
|
||||
#### Response
|
||||
|
||||
##### 200 Success
|
||||
@@ -998,12 +997,10 @@ The request can fail with a bad request response for the following reasons:
|
||||
|
||||
#### Request data
|
||||
|
||||
The request is performed as `multipart/form-data`.
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ------- | ----------------------------------------------------------------------------------------------- |
|
||||
| type | String | The type of the attachement. Use `file` or `deck_file`. |
|
||||
| file | Binary | File data to add as an attachment together with the `filename` parameter according to RFC 7578. |
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ------- | --------------------------------------------- |
|
||||
| type | String | The type of the attachement |
|
||||
| file | Binary | File data to add as an attachment |
|
||||
|
||||
- Prior to Deck version v1.3.0 (API v1.0), attachments were stored within deck. For this type of attachments `deck_file` was used as the default type of attachments
|
||||
- Starting with Deck version 1.3.0 (API v1.1) files are stored within the users regular Nextcloud files and the type `file` has been introduced for that
|
||||
@@ -1025,13 +1022,12 @@ The request is performed as `multipart/form-data`.
|
||||
|
||||
#### Request data
|
||||
|
||||
The request is performed as `multipart/form-data`.
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ------- | ----------------------------------------------------------------------------------------------- |
|
||||
| type | String | The type of the attachement. For now only `deck_file` is supported as an attachment type. |
|
||||
| file | Binary | File data to add as an attachment together with the `filename` parameter according to RFC 7578. |
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ------- | --------------------------------------------- |
|
||||
| type | String | The type of the attachement |
|
||||
| file | Binary | File data to add as an attachment |
|
||||
|
||||
For now only `deck_file` is supported as an attachment type.
|
||||
|
||||
#### Response
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 188 KiB |
@@ -12,7 +12,6 @@ OC.L10N.register(
|
||||
"copy" : "kopie",
|
||||
"To Do" : "Moet doen",
|
||||
"Done" : "Gereed",
|
||||
"File" : "Lêer",
|
||||
"Cancel" : "Kanselleer",
|
||||
"File already exists" : "Lêer bestaan reeds",
|
||||
"Open" : "Open",
|
||||
@@ -45,10 +44,11 @@ OC.L10N.register(
|
||||
"No notifications" : "Geen kennisgewings",
|
||||
"Advanced options" : "Gevorderde opsies",
|
||||
"Export" : "Voer uit",
|
||||
"Today" : "Vandag",
|
||||
"Tomorrow" : "Môre",
|
||||
"Close" : "Sluit",
|
||||
"Due date" : "Sperdatum",
|
||||
"Share" : "Deel",
|
||||
"Personal" : "Persoonlik",
|
||||
"Today" : "Vandag",
|
||||
"Tomorrow" : "Môre"
|
||||
"Personal" : "Persoonlik"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
"copy" : "kopie",
|
||||
"To Do" : "Moet doen",
|
||||
"Done" : "Gereed",
|
||||
"File" : "Lêer",
|
||||
"Cancel" : "Kanselleer",
|
||||
"File already exists" : "Lêer bestaan reeds",
|
||||
"Open" : "Open",
|
||||
@@ -43,10 +42,11 @@
|
||||
"No notifications" : "Geen kennisgewings",
|
||||
"Advanced options" : "Gevorderde opsies",
|
||||
"Export" : "Voer uit",
|
||||
"Today" : "Vandag",
|
||||
"Tomorrow" : "Môre",
|
||||
"Close" : "Sluit",
|
||||
"Due date" : "Sperdatum",
|
||||
"Share" : "Deel",
|
||||
"Personal" : "Persoonlik",
|
||||
"Today" : "Vandag",
|
||||
"Tomorrow" : "Môre"
|
||||
"Personal" : "Persoonlik"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
11
l10n/ar.js
11
l10n/ar.js
@@ -119,8 +119,6 @@ OC.L10N.register(
|
||||
"4. Share, comment and collaborate!" : "4. مشاركات، و ملاحظات، وتعاون!",
|
||||
"Create your first card!" : "أنشِئ بطاقتك الأولى!",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : " هذه الملاحظات فيها أكثر من %s حرفاً.\n تمّت إضافتها كمُرفق إلى البطاقة التي اسمها%s.\n الموجودة على الرابط %s.",
|
||||
"Attachments" : "المرفقات",
|
||||
"File" : "File",
|
||||
"Card not found" : "لم يتم العثور على البطاقة ",
|
||||
"Path is already shared with this card" : "تم مشاركة المسار بالفعل مع هذه البطاقة ",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "تاريخ غير صحيح, يجب أن يكون تنسيق التاريخ YYYY-MM-DD",
|
||||
@@ -238,6 +236,7 @@ OC.L10N.register(
|
||||
"The title cannot be empty." : "لا يمكن ترك العنوان فارغًا.",
|
||||
"Open in sidebar view" : "فتح في الشريط الجانبي ",
|
||||
"Open in bigger view" : "فتح في نافذة أكبر ",
|
||||
"Attachments" : "المرفقات",
|
||||
"Comments" : "تعليقات",
|
||||
"Failed to load comments" : "فشل في تحميل التعليقات ",
|
||||
"No comments yet. Begin the discussion!" : "لا يوجد تعليقات بعد, ابدأ النقاش الآن!",
|
||||
@@ -360,6 +359,9 @@ OC.L10N.register(
|
||||
"Export as CSV" : "صدِّر كـ CSV",
|
||||
"Export" : "تصدير",
|
||||
"Loading filtered view" : "جارِ تحميل التصفية ",
|
||||
"Today" : "اليوم",
|
||||
"Tomorrow" : "غدا",
|
||||
"No due" : "غير محدد",
|
||||
"Search for {searchQuery} in all boards" : "البحث عن {searchQuery} في جميع اللوح",
|
||||
"No results found" : "لا يتم العثور على أي نتائج ",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "اسم اللوحة {name} \n* آخر تعديل لها في {lastMod}",
|
||||
@@ -399,9 +401,6 @@ OC.L10N.register(
|
||||
"Example Task 3" : "مثال المهمة 3",
|
||||
"Example Task 2" : "مثال المهمة 2",
|
||||
"Example Task 1" : "مثال المهمة 1",
|
||||
"Move card to another board" : "حرك البطاقة الى لوح اخر",
|
||||
"Today" : "اليوم",
|
||||
"Tomorrow" : "غدا",
|
||||
"No due" : "غير محدد"
|
||||
"Move card to another board" : "حرك البطاقة الى لوح اخر"
|
||||
},
|
||||
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
|
||||
|
||||
11
l10n/ar.json
11
l10n/ar.json
@@ -117,8 +117,6 @@
|
||||
"4. Share, comment and collaborate!" : "4. مشاركات، و ملاحظات، وتعاون!",
|
||||
"Create your first card!" : "أنشِئ بطاقتك الأولى!",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : " هذه الملاحظات فيها أكثر من %s حرفاً.\n تمّت إضافتها كمُرفق إلى البطاقة التي اسمها%s.\n الموجودة على الرابط %s.",
|
||||
"Attachments" : "المرفقات",
|
||||
"File" : "File",
|
||||
"Card not found" : "لم يتم العثور على البطاقة ",
|
||||
"Path is already shared with this card" : "تم مشاركة المسار بالفعل مع هذه البطاقة ",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "تاريخ غير صحيح, يجب أن يكون تنسيق التاريخ YYYY-MM-DD",
|
||||
@@ -236,6 +234,7 @@
|
||||
"The title cannot be empty." : "لا يمكن ترك العنوان فارغًا.",
|
||||
"Open in sidebar view" : "فتح في الشريط الجانبي ",
|
||||
"Open in bigger view" : "فتح في نافذة أكبر ",
|
||||
"Attachments" : "المرفقات",
|
||||
"Comments" : "تعليقات",
|
||||
"Failed to load comments" : "فشل في تحميل التعليقات ",
|
||||
"No comments yet. Begin the discussion!" : "لا يوجد تعليقات بعد, ابدأ النقاش الآن!",
|
||||
@@ -358,6 +357,9 @@
|
||||
"Export as CSV" : "صدِّر كـ CSV",
|
||||
"Export" : "تصدير",
|
||||
"Loading filtered view" : "جارِ تحميل التصفية ",
|
||||
"Today" : "اليوم",
|
||||
"Tomorrow" : "غدا",
|
||||
"No due" : "غير محدد",
|
||||
"Search for {searchQuery} in all boards" : "البحث عن {searchQuery} في جميع اللوح",
|
||||
"No results found" : "لا يتم العثور على أي نتائج ",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "اسم اللوحة {name} \n* آخر تعديل لها في {lastMod}",
|
||||
@@ -397,9 +399,6 @@
|
||||
"Example Task 3" : "مثال المهمة 3",
|
||||
"Example Task 2" : "مثال المهمة 2",
|
||||
"Example Task 1" : "مثال المهمة 1",
|
||||
"Move card to another board" : "حرك البطاقة الى لوح اخر",
|
||||
"Today" : "اليوم",
|
||||
"Tomorrow" : "غدا",
|
||||
"No due" : "غير محدد"
|
||||
"Move card to another board" : "حرك البطاقة الى لوح اخر"
|
||||
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
|
||||
}
|
||||
@@ -17,7 +17,6 @@ OC.L10N.register(
|
||||
"Action needed" : "Aición necesaria",
|
||||
"copy" : "copia",
|
||||
"Done" : "Fecho",
|
||||
"File" : "Ficheru",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La data ye inválida, el so formatu ha ser AAAA-MM-DD",
|
||||
"Move card" : "Mover la tarxeta",
|
||||
"Cancel" : "Encaboxar",
|
||||
@@ -102,6 +101,8 @@ OC.L10N.register(
|
||||
"Clone cards" : "Clonar les tarxetes",
|
||||
"Advanced options" : "Opciones avanzaes",
|
||||
"Export" : "Esportar",
|
||||
"Today" : "Güei",
|
||||
"Tomorrow" : "Mañana",
|
||||
"No results found" : "Nun s'atopó nengún resultáu",
|
||||
"Close" : "Zarrar",
|
||||
"Message from {author} in {conversationName}" : "Mensaxe de {author} en {conversationName}",
|
||||
@@ -112,8 +113,6 @@ OC.L10N.register(
|
||||
"To do" : "Xera pendiente",
|
||||
"Example Task 3" : "Xera d'exemplu 3",
|
||||
"Example Task 2" : "Xera d'exemplu 2",
|
||||
"Example Task 1" : "Xera d'exemplu 1",
|
||||
"Today" : "Güei",
|
||||
"Tomorrow" : "Mañana"
|
||||
"Example Task 1" : "Xera d'exemplu 1"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
"Action needed" : "Aición necesaria",
|
||||
"copy" : "copia",
|
||||
"Done" : "Fecho",
|
||||
"File" : "Ficheru",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La data ye inválida, el so formatu ha ser AAAA-MM-DD",
|
||||
"Move card" : "Mover la tarxeta",
|
||||
"Cancel" : "Encaboxar",
|
||||
@@ -100,6 +99,8 @@
|
||||
"Clone cards" : "Clonar les tarxetes",
|
||||
"Advanced options" : "Opciones avanzaes",
|
||||
"Export" : "Esportar",
|
||||
"Today" : "Güei",
|
||||
"Tomorrow" : "Mañana",
|
||||
"No results found" : "Nun s'atopó nengún resultáu",
|
||||
"Close" : "Zarrar",
|
||||
"Message from {author} in {conversationName}" : "Mensaxe de {author} en {conversationName}",
|
||||
@@ -110,8 +111,6 @@
|
||||
"To do" : "Xera pendiente",
|
||||
"Example Task 3" : "Xera d'exemplu 3",
|
||||
"Example Task 2" : "Xera d'exemplu 2",
|
||||
"Example Task 1" : "Xera d'exemplu 1",
|
||||
"Today" : "Güei",
|
||||
"Tomorrow" : "Mañana"
|
||||
"Example Task 1" : "Xera d'exemplu 1"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -35,10 +35,10 @@ OC.L10N.register(
|
||||
"Search" : "Axtarış",
|
||||
"Shared with you" : "Shared with you",
|
||||
"Export" : "Çıxarış",
|
||||
"Today" : "Bu gün",
|
||||
"Tomorrow" : "Sabah",
|
||||
"Close" : "Bağla",
|
||||
"Share" : "Paylaş",
|
||||
"Personal" : "Şəxsi",
|
||||
"Today" : "Bu gün",
|
||||
"Tomorrow" : "Sabah"
|
||||
"Personal" : "Şəxsi"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -33,10 +33,10 @@
|
||||
"Search" : "Axtarış",
|
||||
"Shared with you" : "Shared with you",
|
||||
"Export" : "Çıxarış",
|
||||
"Today" : "Bu gün",
|
||||
"Tomorrow" : "Sabah",
|
||||
"Close" : "Bağla",
|
||||
"Share" : "Paylaş",
|
||||
"Personal" : "Şəxsi",
|
||||
"Today" : "Bu gün",
|
||||
"Tomorrow" : "Sabah"
|
||||
"Personal" : "Şəxsi"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
93
l10n/be.js
93
l10n/be.js
@@ -1,93 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"deck",
|
||||
{
|
||||
"The file was uploaded" : "Файл быў запампаваны.",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Памер запампаванага файла перавышае значэнне дырэктывы upload_max_filesize у php.ini",
|
||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Памер запампаванага файла перавышае значэнне дырэктывы MAX_FILE_SIZE у HTML форме",
|
||||
"The file was only partially uploaded" : "Файл быў запампаваны толькі часткова",
|
||||
"No file was uploaded" : "Ніводзін файл не быў запампаваны",
|
||||
"Missing a temporary folder" : "Адсутнічае часовая папка",
|
||||
"Could not write file to disk" : "Не ўдалося запісаць файл на дыск",
|
||||
"A PHP extension stopped the file upload" : "Пашырэнне PHP спыніла запампоўванне файла",
|
||||
"No file uploaded or file size exceeds maximum of %s" : "Файл не запампаваны, або памер файла перавышае максімальны %s",
|
||||
"copy" : "копія",
|
||||
"Done" : "Гатова",
|
||||
"File" : "Файл",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Памылковая дата, дата павінна быць у фармаце ГГГГ-ММ-ДД",
|
||||
"Cancel" : "Скасаваць",
|
||||
"Drop your files to upload" : "Перацягніце файлы для запампоўвання",
|
||||
"File already exists" : "Файл ужо існуе",
|
||||
"A file with the name {filename} already exists." : "Файл з назвай {filename} ужо існуе.",
|
||||
"Do you want to overwrite it?" : "Хочаце перазапісаць яго?",
|
||||
"Overwrite file" : "Перазапісаць файл",
|
||||
"Keep existing file" : "Пакінуць існуючы файл",
|
||||
"Active filters" : "Актыўныя фільтры",
|
||||
"Apply filter" : "Ужыць фільтр",
|
||||
"Open" : "Адкрыць",
|
||||
"Clear filter" : "Ачысціць фільтр",
|
||||
"Open details" : "Адкрыць падрабязнасці",
|
||||
"Details" : "Падрабязнасці",
|
||||
"Sharing" : "Абагульванне",
|
||||
"Tags" : "Тэгі",
|
||||
"Activity" : "Актыўнасць",
|
||||
"Undo" : "Адрабіць",
|
||||
"Transfer" : "Перадаць",
|
||||
"(Group)" : "(Група)",
|
||||
"Can edit" : "Можа рэдагаваць",
|
||||
"Can share" : "Можа абагульваць",
|
||||
"Owner" : "Уладальнік",
|
||||
"Delete" : "Выдаліць",
|
||||
"Edit" : "Рэдагаваць",
|
||||
"Members" : "Удзельнікі",
|
||||
"File to share" : "Файл для абагульвання",
|
||||
"Invalid path selected" : "Выбраны памылковы шлях",
|
||||
"Share from Files" : "Абагуліць з Файлаў",
|
||||
"Show in Files" : "Паказаць у Файлах",
|
||||
"Download" : "Спампаваць",
|
||||
"Modified" : "Зменены",
|
||||
"Comments" : "Каментарыі",
|
||||
"Save" : "Захаваць",
|
||||
"Created:" : "Створана:",
|
||||
"Cancel reply" : "Скасаваць адказ",
|
||||
"Reply" : "Адказаць",
|
||||
"Update" : "Абнавіць",
|
||||
"Description" : "Апісанне",
|
||||
"Formatting help" : "Даведка па фармаціраванні",
|
||||
"Later today – {timeLocale}" : "Пазней сёння – {timeLocale}",
|
||||
"Set due date for later today" : "Задаць дату выканання на пазней сёння",
|
||||
"Tomorrow – {timeLocale}" : "Заўтра – {timeLocale}",
|
||||
"This weekend – {timeLocale}" : "У гэты ўік-энд – {timeLocale}",
|
||||
"Set due date for this weekend" : "Задаць дату выканання на гэты ўік-энд",
|
||||
"Next week – {timeLocale}" : "На наступным тыдні – {timeLocale}",
|
||||
"Set due date for next week" : "Задаць дату выканання на наступны тыдзень",
|
||||
"Create a new tag:" : "Стварыць новы тэг:",
|
||||
"(group)" : "(група)",
|
||||
"Open link" : "Адкрыць спасылку",
|
||||
"Edit title" : "Рэдагаваць загаловак",
|
||||
"seconds ago" : "с таму",
|
||||
"Keyboard shortcuts" : "Спалучэнні клавіш",
|
||||
"Keyboard shortcut" : "Спалучэнне клавіш",
|
||||
"Action" : "Дзеянне",
|
||||
"Shift" : "Shift",
|
||||
"Ctrl" : "Ctrl",
|
||||
"Search" : "Пошук",
|
||||
"Enter" : "Enter",
|
||||
"Shared with you" : "Абагулена з вамі",
|
||||
"Cancel edit" : "Скасаваць рэдагаванне",
|
||||
"An error occurred" : "Узнікла памылка",
|
||||
"No notifications" : "Няма апавяшчэнняў",
|
||||
"Export" : "Экспарт",
|
||||
"No results found" : "Вынікаў не знойдзена",
|
||||
"{stack} in {board}" : "{stack} у {board}",
|
||||
"Close" : "Закрыць",
|
||||
"Message from {author} in {conversationName}" : "Паведамленне ад {author} у {conversationName}",
|
||||
"Failed to upload {name}" : "Не ўдалося запампаваць {name}",
|
||||
"Share" : "Абагуліць",
|
||||
"Personal" : "Асабістыя",
|
||||
"Example Task 3" : "Прыклад задання 3",
|
||||
"Example Task 2" : "Прыклад задання 2",
|
||||
"Example Task 1" : "Прыклад задання 1",
|
||||
"Today" : "Сёння",
|
||||
"Tomorrow" : "Заўтра"
|
||||
},
|
||||
"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
|
||||
91
l10n/be.json
91
l10n/be.json
@@ -1,91 +0,0 @@
|
||||
{ "translations": {
|
||||
"The file was uploaded" : "Файл быў запампаваны.",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Памер запампаванага файла перавышае значэнне дырэктывы upload_max_filesize у php.ini",
|
||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Памер запампаванага файла перавышае значэнне дырэктывы MAX_FILE_SIZE у HTML форме",
|
||||
"The file was only partially uploaded" : "Файл быў запампаваны толькі часткова",
|
||||
"No file was uploaded" : "Ніводзін файл не быў запампаваны",
|
||||
"Missing a temporary folder" : "Адсутнічае часовая папка",
|
||||
"Could not write file to disk" : "Не ўдалося запісаць файл на дыск",
|
||||
"A PHP extension stopped the file upload" : "Пашырэнне PHP спыніла запампоўванне файла",
|
||||
"No file uploaded or file size exceeds maximum of %s" : "Файл не запампаваны, або памер файла перавышае максімальны %s",
|
||||
"copy" : "копія",
|
||||
"Done" : "Гатова",
|
||||
"File" : "Файл",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Памылковая дата, дата павінна быць у фармаце ГГГГ-ММ-ДД",
|
||||
"Cancel" : "Скасаваць",
|
||||
"Drop your files to upload" : "Перацягніце файлы для запампоўвання",
|
||||
"File already exists" : "Файл ужо існуе",
|
||||
"A file with the name {filename} already exists." : "Файл з назвай {filename} ужо існуе.",
|
||||
"Do you want to overwrite it?" : "Хочаце перазапісаць яго?",
|
||||
"Overwrite file" : "Перазапісаць файл",
|
||||
"Keep existing file" : "Пакінуць існуючы файл",
|
||||
"Active filters" : "Актыўныя фільтры",
|
||||
"Apply filter" : "Ужыць фільтр",
|
||||
"Open" : "Адкрыць",
|
||||
"Clear filter" : "Ачысціць фільтр",
|
||||
"Open details" : "Адкрыць падрабязнасці",
|
||||
"Details" : "Падрабязнасці",
|
||||
"Sharing" : "Абагульванне",
|
||||
"Tags" : "Тэгі",
|
||||
"Activity" : "Актыўнасць",
|
||||
"Undo" : "Адрабіць",
|
||||
"Transfer" : "Перадаць",
|
||||
"(Group)" : "(Група)",
|
||||
"Can edit" : "Можа рэдагаваць",
|
||||
"Can share" : "Можа абагульваць",
|
||||
"Owner" : "Уладальнік",
|
||||
"Delete" : "Выдаліць",
|
||||
"Edit" : "Рэдагаваць",
|
||||
"Members" : "Удзельнікі",
|
||||
"File to share" : "Файл для абагульвання",
|
||||
"Invalid path selected" : "Выбраны памылковы шлях",
|
||||
"Share from Files" : "Абагуліць з Файлаў",
|
||||
"Show in Files" : "Паказаць у Файлах",
|
||||
"Download" : "Спампаваць",
|
||||
"Modified" : "Зменены",
|
||||
"Comments" : "Каментарыі",
|
||||
"Save" : "Захаваць",
|
||||
"Created:" : "Створана:",
|
||||
"Cancel reply" : "Скасаваць адказ",
|
||||
"Reply" : "Адказаць",
|
||||
"Update" : "Абнавіць",
|
||||
"Description" : "Апісанне",
|
||||
"Formatting help" : "Даведка па фармаціраванні",
|
||||
"Later today – {timeLocale}" : "Пазней сёння – {timeLocale}",
|
||||
"Set due date for later today" : "Задаць дату выканання на пазней сёння",
|
||||
"Tomorrow – {timeLocale}" : "Заўтра – {timeLocale}",
|
||||
"This weekend – {timeLocale}" : "У гэты ўік-энд – {timeLocale}",
|
||||
"Set due date for this weekend" : "Задаць дату выканання на гэты ўік-энд",
|
||||
"Next week – {timeLocale}" : "На наступным тыдні – {timeLocale}",
|
||||
"Set due date for next week" : "Задаць дату выканання на наступны тыдзень",
|
||||
"Create a new tag:" : "Стварыць новы тэг:",
|
||||
"(group)" : "(група)",
|
||||
"Open link" : "Адкрыць спасылку",
|
||||
"Edit title" : "Рэдагаваць загаловак",
|
||||
"seconds ago" : "с таму",
|
||||
"Keyboard shortcuts" : "Спалучэнні клавіш",
|
||||
"Keyboard shortcut" : "Спалучэнне клавіш",
|
||||
"Action" : "Дзеянне",
|
||||
"Shift" : "Shift",
|
||||
"Ctrl" : "Ctrl",
|
||||
"Search" : "Пошук",
|
||||
"Enter" : "Enter",
|
||||
"Shared with you" : "Абагулена з вамі",
|
||||
"Cancel edit" : "Скасаваць рэдагаванне",
|
||||
"An error occurred" : "Узнікла памылка",
|
||||
"No notifications" : "Няма апавяшчэнняў",
|
||||
"Export" : "Экспарт",
|
||||
"No results found" : "Вынікаў не знойдзена",
|
||||
"{stack} in {board}" : "{stack} у {board}",
|
||||
"Close" : "Закрыць",
|
||||
"Message from {author} in {conversationName}" : "Паведамленне ад {author} у {conversationName}",
|
||||
"Failed to upload {name}" : "Не ўдалося запампаваць {name}",
|
||||
"Share" : "Абагуліць",
|
||||
"Personal" : "Асабістыя",
|
||||
"Example Task 3" : "Прыклад задання 3",
|
||||
"Example Task 2" : "Прыклад задання 2",
|
||||
"Example Task 1" : "Прыклад задання 1",
|
||||
"Today" : "Сёння",
|
||||
"Tomorrow" : "Заўтра"
|
||||
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
|
||||
}
|
||||
21
l10n/bg.js
21
l10n/bg.js
@@ -63,7 +63,7 @@ OC.L10N.register(
|
||||
"{user} has restored the attachment {attachment} to card {card}" : "{user} възстанови прикачения файл {attachment} към карта {card}",
|
||||
"You have commented on card {card}" : "Коментирали сте карта {card}",
|
||||
"{user} has commented on card {card}" : "{user} коментира карта {card}",
|
||||
"Deck" : "Deck",
|
||||
"Deck" : "Набор",
|
||||
"Changes in the <strong>Deck app</strong>" : "Промени в <strong>приложението Deck</strong>",
|
||||
"A <strong>comment</strong> was created on a card" : "На картата е създаден <strong>коментар</strong>",
|
||||
"The file was uploaded" : "Файлът е качен",
|
||||
@@ -75,11 +75,8 @@ OC.L10N.register(
|
||||
"Could not write file to disk" : " Файлът не можа да бъде записан на диск",
|
||||
"A PHP extension stopped the file upload" : "PHP разширение спря качването на файла",
|
||||
"No file uploaded or file size exceeds maximum of %s" : "Няма качен файл или размерът на файла надвишава максимума от %s",
|
||||
"Cards due today" : "Карти изтичащи днес",
|
||||
"Cards due tomorrow" : "Карти изтичащи утре",
|
||||
"Upcoming cards" : "Предстоящи карти",
|
||||
"Load more" : "Зареждане на още",
|
||||
"Welcome to Nextcloud Deck!" : "Добре дошли в Nextcloud Deck!",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Картата \"%s\" на \"%s\" Ви е била възложена от %s.",
|
||||
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} е възложил картата {deck-card} на {deck-board} на Вас.",
|
||||
"The card \"%s\" on \"%s\" has reached its due date." : "Картата \"%s\" on \"%s\" е достигнала датата на падежа си.",
|
||||
@@ -104,8 +101,6 @@ OC.L10N.register(
|
||||
"To Do" : "Задачи",
|
||||
"Done" : "Завършено",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Този коментар има повече от %s знака.\nДобавено като прикачен файл към картата с име %s.\nДостъпно на URL: %s.",
|
||||
"Attachments" : "Прикачени файлове",
|
||||
"File" : "Файл",
|
||||
"Card not found" : "Катртата не е намерена",
|
||||
"Path is already shared with this card" : "Пътят вече е споделен с тази карта",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Невалидна дата, форматът е различен от ГГГГ-ММ-ДД",
|
||||
@@ -210,6 +205,7 @@ OC.L10N.register(
|
||||
"The title cannot be empty." : "Заглавието не може да бъде празно.",
|
||||
"Open in sidebar view" : "Отваряне в изгледа на страничната лента",
|
||||
"Open in bigger view" : "Отваря се в по-голям изглед",
|
||||
"Attachments" : "Прикачени файлове",
|
||||
"Comments" : "Коментари",
|
||||
"Failed to load comments" : "Неуспешно зареждане на коментари",
|
||||
"No comments yet. Begin the discussion!" : "Все още няма коментари. Започнете дискусията!",
|
||||
@@ -231,14 +227,9 @@ OC.L10N.register(
|
||||
"Add Attachment" : "Добавяне на прикачен файл",
|
||||
"Choose attachment" : "Избор на прикачен файл",
|
||||
"Select Date" : "Изберете дата",
|
||||
"Later today – {timeLocale}" : "По-късно днес - {timeLocale}",
|
||||
"Tomorrow – {timeLocale}" : "Утре - {timeLocale}",
|
||||
"This weekend – {timeLocale}" : "Този уикенд - {timeLocale}",
|
||||
"Next week – {timeLocale}" : "Следващата седмица - {timeLocale}",
|
||||
"Set a due date" : "Задаване на крайна дата",
|
||||
"Remove due date" : "Премахни крайната дата",
|
||||
"Mark as done" : "Маркирай като готово",
|
||||
"Not done" : "Незавършен",
|
||||
"Unarchive card" : "Разархивиране на карта",
|
||||
"Archive card" : "Архивиране на карта",
|
||||
"Assign a tag to this card…" : "Присвояване на етикет на тази карта ...",
|
||||
@@ -293,6 +284,9 @@ OC.L10N.register(
|
||||
"Export as CSV" : "Експортиране като CSV файл",
|
||||
"Export" : "Експорт /изнасям/",
|
||||
"Loading filtered view" : "Зареждане на филтриран изглед",
|
||||
"Today" : "Днес",
|
||||
"Tomorrow" : "Утре",
|
||||
"No due" : "Не се дължи",
|
||||
"Search for {searchQuery} in all boards" : "Търсене на {searchQuery} във всички табла",
|
||||
"No results found" : "Няма намерени резултати",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Табло {name}\n* Последна промяна на {lastMod}",
|
||||
@@ -330,9 +324,6 @@ OC.L10N.register(
|
||||
"Example Task 3" : "Примерна задача 3",
|
||||
"Example Task 2" : "Примерна задача 2",
|
||||
"Example Task 1" : "Примерна задача 1",
|
||||
"Move card to another board" : "Преместване на картата на друго табло",
|
||||
"Today" : "Днес",
|
||||
"Tomorrow" : "Утре",
|
||||
"No due" : "Не се дължи"
|
||||
"Move card to another board" : "Преместване на картата на друго табло"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
21
l10n/bg.json
21
l10n/bg.json
@@ -61,7 +61,7 @@
|
||||
"{user} has restored the attachment {attachment} to card {card}" : "{user} възстанови прикачения файл {attachment} към карта {card}",
|
||||
"You have commented on card {card}" : "Коментирали сте карта {card}",
|
||||
"{user} has commented on card {card}" : "{user} коментира карта {card}",
|
||||
"Deck" : "Deck",
|
||||
"Deck" : "Набор",
|
||||
"Changes in the <strong>Deck app</strong>" : "Промени в <strong>приложението Deck</strong>",
|
||||
"A <strong>comment</strong> was created on a card" : "На картата е създаден <strong>коментар</strong>",
|
||||
"The file was uploaded" : "Файлът е качен",
|
||||
@@ -73,11 +73,8 @@
|
||||
"Could not write file to disk" : " Файлът не можа да бъде записан на диск",
|
||||
"A PHP extension stopped the file upload" : "PHP разширение спря качването на файла",
|
||||
"No file uploaded or file size exceeds maximum of %s" : "Няма качен файл или размерът на файла надвишава максимума от %s",
|
||||
"Cards due today" : "Карти изтичащи днес",
|
||||
"Cards due tomorrow" : "Карти изтичащи утре",
|
||||
"Upcoming cards" : "Предстоящи карти",
|
||||
"Load more" : "Зареждане на още",
|
||||
"Welcome to Nextcloud Deck!" : "Добре дошли в Nextcloud Deck!",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Картата \"%s\" на \"%s\" Ви е била възложена от %s.",
|
||||
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} е възложил картата {deck-card} на {deck-board} на Вас.",
|
||||
"The card \"%s\" on \"%s\" has reached its due date." : "Картата \"%s\" on \"%s\" е достигнала датата на падежа си.",
|
||||
@@ -102,8 +99,6 @@
|
||||
"To Do" : "Задачи",
|
||||
"Done" : "Завършено",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Този коментар има повече от %s знака.\nДобавено като прикачен файл към картата с име %s.\nДостъпно на URL: %s.",
|
||||
"Attachments" : "Прикачени файлове",
|
||||
"File" : "Файл",
|
||||
"Card not found" : "Катртата не е намерена",
|
||||
"Path is already shared with this card" : "Пътят вече е споделен с тази карта",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Невалидна дата, форматът е различен от ГГГГ-ММ-ДД",
|
||||
@@ -208,6 +203,7 @@
|
||||
"The title cannot be empty." : "Заглавието не може да бъде празно.",
|
||||
"Open in sidebar view" : "Отваряне в изгледа на страничната лента",
|
||||
"Open in bigger view" : "Отваря се в по-голям изглед",
|
||||
"Attachments" : "Прикачени файлове",
|
||||
"Comments" : "Коментари",
|
||||
"Failed to load comments" : "Неуспешно зареждане на коментари",
|
||||
"No comments yet. Begin the discussion!" : "Все още няма коментари. Започнете дискусията!",
|
||||
@@ -229,14 +225,9 @@
|
||||
"Add Attachment" : "Добавяне на прикачен файл",
|
||||
"Choose attachment" : "Избор на прикачен файл",
|
||||
"Select Date" : "Изберете дата",
|
||||
"Later today – {timeLocale}" : "По-късно днес - {timeLocale}",
|
||||
"Tomorrow – {timeLocale}" : "Утре - {timeLocale}",
|
||||
"This weekend – {timeLocale}" : "Този уикенд - {timeLocale}",
|
||||
"Next week – {timeLocale}" : "Следващата седмица - {timeLocale}",
|
||||
"Set a due date" : "Задаване на крайна дата",
|
||||
"Remove due date" : "Премахни крайната дата",
|
||||
"Mark as done" : "Маркирай като готово",
|
||||
"Not done" : "Незавършен",
|
||||
"Unarchive card" : "Разархивиране на карта",
|
||||
"Archive card" : "Архивиране на карта",
|
||||
"Assign a tag to this card…" : "Присвояване на етикет на тази карта ...",
|
||||
@@ -291,6 +282,9 @@
|
||||
"Export as CSV" : "Експортиране като CSV файл",
|
||||
"Export" : "Експорт /изнасям/",
|
||||
"Loading filtered view" : "Зареждане на филтриран изглед",
|
||||
"Today" : "Днес",
|
||||
"Tomorrow" : "Утре",
|
||||
"No due" : "Не се дължи",
|
||||
"Search for {searchQuery} in all boards" : "Търсене на {searchQuery} във всички табла",
|
||||
"No results found" : "Няма намерени резултати",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Табло {name}\n* Последна промяна на {lastMod}",
|
||||
@@ -328,9 +322,6 @@
|
||||
"Example Task 3" : "Примерна задача 3",
|
||||
"Example Task 2" : "Примерна задача 2",
|
||||
"Example Task 1" : "Примерна задача 1",
|
||||
"Move card to another board" : "Преместване на картата на друго табло",
|
||||
"Today" : "Днес",
|
||||
"Tomorrow" : "Утре",
|
||||
"No due" : "Не се дължи"
|
||||
"Move card to another board" : "Преместване на картата на друго табло"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -29,10 +29,10 @@ OC.L10N.register(
|
||||
"Search" : "Search",
|
||||
"Shared with you" : "Shared with you",
|
||||
"Export" : "রপ্তানি",
|
||||
"Today" : "আজ",
|
||||
"Tomorrow" : "আগামীকাল",
|
||||
"Close" : "বন্ধ",
|
||||
"Share" : "ভাগাভাগি কর",
|
||||
"Personal" : "ব্যক্তিগত",
|
||||
"Today" : "আজ",
|
||||
"Tomorrow" : "আগামীকাল"
|
||||
"Personal" : "ব্যক্তিগত"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -27,10 +27,10 @@
|
||||
"Search" : "Search",
|
||||
"Shared with you" : "Shared with you",
|
||||
"Export" : "রপ্তানি",
|
||||
"Today" : "আজ",
|
||||
"Tomorrow" : "আগামীকাল",
|
||||
"Close" : "বন্ধ",
|
||||
"Share" : "ভাগাভাগি কর",
|
||||
"Personal" : "ব্যক্তিগত",
|
||||
"Today" : "আজ",
|
||||
"Tomorrow" : "আগামীকাল"
|
||||
"Personal" : "ব্যক্তিগত"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -7,7 +7,6 @@ OC.L10N.register(
|
||||
"copy" : "eil",
|
||||
"In Progress" : "War ar stern",
|
||||
"Done" : "Graet",
|
||||
"File" : "Restr",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Deizat fall, stumm an deizat a zo ret bezhañ BBBB-MM-DD",
|
||||
"Cancel" : "Nullañ",
|
||||
"Drop your files to upload" : "Laoskit ho restroù evit pellkas",
|
||||
@@ -41,10 +40,10 @@ OC.L10N.register(
|
||||
"Search" : "Klask",
|
||||
"Shared with you" : "Rannet ganeoc'h",
|
||||
"No notifications" : "Kemennadenn ebet",
|
||||
"Close" : "Serriñ",
|
||||
"Share" : "Rannan",
|
||||
"Personal" : "Personel",
|
||||
"Today" : "Hiziv",
|
||||
"Tomorrow" : "Warc'hoaz"
|
||||
"Tomorrow" : "Warc'hoaz",
|
||||
"Close" : "Seriñ",
|
||||
"Share" : "Rannan",
|
||||
"Personal" : "Personel"
|
||||
},
|
||||
"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);");
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"copy" : "eil",
|
||||
"In Progress" : "War ar stern",
|
||||
"Done" : "Graet",
|
||||
"File" : "Restr",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Deizat fall, stumm an deizat a zo ret bezhañ BBBB-MM-DD",
|
||||
"Cancel" : "Nullañ",
|
||||
"Drop your files to upload" : "Laoskit ho restroù evit pellkas",
|
||||
@@ -39,10 +38,10 @@
|
||||
"Search" : "Klask",
|
||||
"Shared with you" : "Rannet ganeoc'h",
|
||||
"No notifications" : "Kemennadenn ebet",
|
||||
"Close" : "Serriñ",
|
||||
"Share" : "Rannan",
|
||||
"Personal" : "Personel",
|
||||
"Today" : "Hiziv",
|
||||
"Tomorrow" : "Warc'hoaz"
|
||||
"Tomorrow" : "Warc'hoaz",
|
||||
"Close" : "Seriñ",
|
||||
"Share" : "Rannan",
|
||||
"Personal" : "Personel"
|
||||
},"pluralForm" :"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);"
|
||||
}
|
||||
@@ -25,11 +25,11 @@ OC.L10N.register(
|
||||
"Search" : "Search",
|
||||
"Shared with you" : "Shared with you",
|
||||
"Export" : "Izvezi",
|
||||
"Today" : "Danas",
|
||||
"Tomorrow" : "Sutra",
|
||||
"Close" : "Zatvori",
|
||||
"Maximum file size of {size} exceeded" : "Maksimalna veličina datoteke prekoračena",
|
||||
"Share" : "Podjeli",
|
||||
"Personal" : "Osobno",
|
||||
"Today" : "Danas",
|
||||
"Tomorrow" : "Sutra"
|
||||
"Personal" : "Osobno"
|
||||
},
|
||||
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
|
||||
|
||||
@@ -23,11 +23,11 @@
|
||||
"Search" : "Search",
|
||||
"Shared with you" : "Shared with you",
|
||||
"Export" : "Izvezi",
|
||||
"Today" : "Danas",
|
||||
"Tomorrow" : "Sutra",
|
||||
"Close" : "Zatvori",
|
||||
"Maximum file size of {size} exceeded" : "Maksimalna veličina datoteke prekoračena",
|
||||
"Share" : "Podjeli",
|
||||
"Personal" : "Osobno",
|
||||
"Today" : "Danas",
|
||||
"Tomorrow" : "Sutra"
|
||||
"Personal" : "Osobno"
|
||||
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
|
||||
}
|
||||
11
l10n/ca.js
11
l10n/ca.js
@@ -119,8 +119,6 @@ OC.L10N.register(
|
||||
"4. Share, comment and collaborate!" : "4. Comparteix, comenta i col·labora!",
|
||||
"Create your first card!" : "Crea la teva primera targeta!",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Aquest comentari té més de %s caràcters.\nS'ha afegit com a fitxer adjunt a la targeta amb el nom %s.\nAccessible a l'URL: %s.",
|
||||
"Attachments" : "Adjunts",
|
||||
"File" : "Fitxer",
|
||||
"Card not found" : "No s'ha trobat la targeta",
|
||||
"Path is already shared with this card" : "Aquesta ruta ja ha estat compartida amb aquesta targeta",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La data no és vàlida, el format de la data ha de ser YYYY-MM-DD",
|
||||
@@ -238,6 +236,7 @@ OC.L10N.register(
|
||||
"The title cannot be empty." : "El títol no pot estar buit.",
|
||||
"Open in sidebar view" : "Obre a la vista de la barra lateral",
|
||||
"Open in bigger view" : "Obre a la vista més gran",
|
||||
"Attachments" : "Adjunts",
|
||||
"Comments" : "Comentaris",
|
||||
"Failed to load comments" : "No s'han pogut carregar els comentaris",
|
||||
"No comments yet. Begin the discussion!" : "No hi ha comentaris encara. Començar la discussió!",
|
||||
@@ -360,6 +359,9 @@ OC.L10N.register(
|
||||
"Export as CSV" : "Exporta a CSV",
|
||||
"Export" : "Exporta",
|
||||
"Loading filtered view" : "S'està carregant la visualització filtrada",
|
||||
"Today" : "Avui",
|
||||
"Tomorrow" : "Demà",
|
||||
"No due" : "Sense venciment",
|
||||
"Search for {searchQuery} in all boards" : "Busca {searchQuery} a tots els taulers",
|
||||
"No results found" : "No s'han trobat resultats",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Tauler de piles {name}\n* Última modificació el dia {lastMod}",
|
||||
@@ -399,9 +401,6 @@ OC.L10N.register(
|
||||
"Example Task 3" : "Tasca d'exemple 3",
|
||||
"Example Task 2" : "Tasca d'exemple 2",
|
||||
"Example Task 1" : "Tasca d'exemple 1",
|
||||
"Move card to another board" : "Mou la targeta a un altre tauler",
|
||||
"Today" : "Avui",
|
||||
"Tomorrow" : "Demà",
|
||||
"No due" : "Sense venciment"
|
||||
"Move card to another board" : "Mou la targeta a un altre tauler"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
11
l10n/ca.json
11
l10n/ca.json
@@ -117,8 +117,6 @@
|
||||
"4. Share, comment and collaborate!" : "4. Comparteix, comenta i col·labora!",
|
||||
"Create your first card!" : "Crea la teva primera targeta!",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Aquest comentari té més de %s caràcters.\nS'ha afegit com a fitxer adjunt a la targeta amb el nom %s.\nAccessible a l'URL: %s.",
|
||||
"Attachments" : "Adjunts",
|
||||
"File" : "Fitxer",
|
||||
"Card not found" : "No s'ha trobat la targeta",
|
||||
"Path is already shared with this card" : "Aquesta ruta ja ha estat compartida amb aquesta targeta",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La data no és vàlida, el format de la data ha de ser YYYY-MM-DD",
|
||||
@@ -236,6 +234,7 @@
|
||||
"The title cannot be empty." : "El títol no pot estar buit.",
|
||||
"Open in sidebar view" : "Obre a la vista de la barra lateral",
|
||||
"Open in bigger view" : "Obre a la vista més gran",
|
||||
"Attachments" : "Adjunts",
|
||||
"Comments" : "Comentaris",
|
||||
"Failed to load comments" : "No s'han pogut carregar els comentaris",
|
||||
"No comments yet. Begin the discussion!" : "No hi ha comentaris encara. Començar la discussió!",
|
||||
@@ -358,6 +357,9 @@
|
||||
"Export as CSV" : "Exporta a CSV",
|
||||
"Export" : "Exporta",
|
||||
"Loading filtered view" : "S'està carregant la visualització filtrada",
|
||||
"Today" : "Avui",
|
||||
"Tomorrow" : "Demà",
|
||||
"No due" : "Sense venciment",
|
||||
"Search for {searchQuery} in all boards" : "Busca {searchQuery} a tots els taulers",
|
||||
"No results found" : "No s'han trobat resultats",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Tauler de piles {name}\n* Última modificació el dia {lastMod}",
|
||||
@@ -397,9 +399,6 @@
|
||||
"Example Task 3" : "Tasca d'exemple 3",
|
||||
"Example Task 2" : "Tasca d'exemple 2",
|
||||
"Example Task 1" : "Tasca d'exemple 1",
|
||||
"Move card to another board" : "Mou la targeta a un altre tauler",
|
||||
"Today" : "Avui",
|
||||
"Tomorrow" : "Demà",
|
||||
"No due" : "Sense venciment"
|
||||
"Move card to another board" : "Mou la targeta a un altre tauler"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
15
l10n/cs.js
15
l10n/cs.js
@@ -122,9 +122,6 @@ OC.L10N.register(
|
||||
"4. Share, comment and collaborate!" : "4. Sdílejte, komentujte a spolupracujte!",
|
||||
"Create your first card!" : "Vytvořte svou první kartu!",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Tento komentář je delší než %s znaků.\nPřidán jako příloha ke kartě nazvané %s.\nDostupné na URL: %s.",
|
||||
"Attachments" : "Přílohy",
|
||||
"File" : "Soubor",
|
||||
"date" : "datum",
|
||||
"Card not found" : "Karta nebyla nalezena",
|
||||
"Path is already shared with this card" : "Popis umístění už je touto kartou sdíleno",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Neplatné datum – je třeba, aby formát data byl RRRR-MM-DD",
|
||||
@@ -240,9 +237,9 @@ OC.L10N.register(
|
||||
"Modified" : "Změněno",
|
||||
"Created" : "Vytvořeno",
|
||||
"The title cannot be empty." : "Nadpis je třeba vyplnit.",
|
||||
"Cannot close unsaved card!" : "Nebylo možné zavřít neuloženou kartu!",
|
||||
"Open in sidebar view" : "Otevřít v zobrazení v postranním panelu",
|
||||
"Open in bigger view" : "Otevřít ve větším zobrazení",
|
||||
"Attachments" : "Přílohy",
|
||||
"Comments" : "Komentáře",
|
||||
"Failed to load comments" : "Načtení komentářů se nezdařilo",
|
||||
"No comments yet. Begin the discussion!" : "Zatím bez komentářů. Zahajte diskuzi!",
|
||||
@@ -255,7 +252,6 @@ OC.L10N.register(
|
||||
"Reply" : "Odpovědět",
|
||||
"Update" : "Aktualizovat",
|
||||
"Write a description …" : "Zadejte popis…",
|
||||
"Could not save description" : "Nebylo možné uložit popis",
|
||||
"Description" : "Popis",
|
||||
"(Unsaved)" : "(Neuloženo)",
|
||||
"(Saving…)" : "(Ukládání…)",
|
||||
@@ -373,7 +369,9 @@ OC.L10N.register(
|
||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Pozn.: Pro import zpět do aplikace Deck je podporován pouze formát JSON.",
|
||||
"Export" : "Exportovat",
|
||||
"Loading filtered view" : "Načítání filtrovaného pohledu",
|
||||
"Search for {searchQuery} in other boards" : "Hledat {searchQuery} v ostatních tabulích",
|
||||
"Today" : "Dnes",
|
||||
"Tomorrow" : "Zítra",
|
||||
"No due" : "Žádný termín",
|
||||
"Search for {searchQuery} in all boards" : "Hledat {searchQuery} na všech tabulích",
|
||||
"No results found" : "Nenalezeny žádné výsledky",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Deck karta {name}\n* Naposledy změněno {lastMod}",
|
||||
@@ -414,9 +412,6 @@ OC.L10N.register(
|
||||
"Example Task 3" : "Třetí úkol pro ukázku",
|
||||
"Example Task 2" : "Druhý úkol pro ukázku",
|
||||
"Example Task 1" : "První úkol pro ukázku",
|
||||
"Move card to another board" : "Přesunout kartu na jinou tabuli",
|
||||
"Today" : "Dnes",
|
||||
"Tomorrow" : "Zítra",
|
||||
"No due" : "Žádný termín"
|
||||
"Move card to another board" : "Přesunout kartu na jinou tabuli"
|
||||
},
|
||||
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
|
||||
|
||||
15
l10n/cs.json
15
l10n/cs.json
@@ -120,9 +120,6 @@
|
||||
"4. Share, comment and collaborate!" : "4. Sdílejte, komentujte a spolupracujte!",
|
||||
"Create your first card!" : "Vytvořte svou první kartu!",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Tento komentář je delší než %s znaků.\nPřidán jako příloha ke kartě nazvané %s.\nDostupné na URL: %s.",
|
||||
"Attachments" : "Přílohy",
|
||||
"File" : "Soubor",
|
||||
"date" : "datum",
|
||||
"Card not found" : "Karta nebyla nalezena",
|
||||
"Path is already shared with this card" : "Popis umístění už je touto kartou sdíleno",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Neplatné datum – je třeba, aby formát data byl RRRR-MM-DD",
|
||||
@@ -238,9 +235,9 @@
|
||||
"Modified" : "Změněno",
|
||||
"Created" : "Vytvořeno",
|
||||
"The title cannot be empty." : "Nadpis je třeba vyplnit.",
|
||||
"Cannot close unsaved card!" : "Nebylo možné zavřít neuloženou kartu!",
|
||||
"Open in sidebar view" : "Otevřít v zobrazení v postranním panelu",
|
||||
"Open in bigger view" : "Otevřít ve větším zobrazení",
|
||||
"Attachments" : "Přílohy",
|
||||
"Comments" : "Komentáře",
|
||||
"Failed to load comments" : "Načtení komentářů se nezdařilo",
|
||||
"No comments yet. Begin the discussion!" : "Zatím bez komentářů. Zahajte diskuzi!",
|
||||
@@ -253,7 +250,6 @@
|
||||
"Reply" : "Odpovědět",
|
||||
"Update" : "Aktualizovat",
|
||||
"Write a description …" : "Zadejte popis…",
|
||||
"Could not save description" : "Nebylo možné uložit popis",
|
||||
"Description" : "Popis",
|
||||
"(Unsaved)" : "(Neuloženo)",
|
||||
"(Saving…)" : "(Ukládání…)",
|
||||
@@ -371,7 +367,9 @@
|
||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Pozn.: Pro import zpět do aplikace Deck je podporován pouze formát JSON.",
|
||||
"Export" : "Exportovat",
|
||||
"Loading filtered view" : "Načítání filtrovaného pohledu",
|
||||
"Search for {searchQuery} in other boards" : "Hledat {searchQuery} v ostatních tabulích",
|
||||
"Today" : "Dnes",
|
||||
"Tomorrow" : "Zítra",
|
||||
"No due" : "Žádný termín",
|
||||
"Search for {searchQuery} in all boards" : "Hledat {searchQuery} na všech tabulích",
|
||||
"No results found" : "Nenalezeny žádné výsledky",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Deck karta {name}\n* Naposledy změněno {lastMod}",
|
||||
@@ -412,9 +410,6 @@
|
||||
"Example Task 3" : "Třetí úkol pro ukázku",
|
||||
"Example Task 2" : "Druhý úkol pro ukázku",
|
||||
"Example Task 1" : "První úkol pro ukázku",
|
||||
"Move card to another board" : "Přesunout kartu na jinou tabuli",
|
||||
"Today" : "Dnes",
|
||||
"Tomorrow" : "Zítra",
|
||||
"No due" : "Žádný termín"
|
||||
"Move card to another board" : "Přesunout kartu na jinou tabuli"
|
||||
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
|
||||
}
|
||||
@@ -31,9 +31,9 @@ OC.L10N.register(
|
||||
"No reminder" : "Dim nodyn atgoffa",
|
||||
"An error occurred" : "Digwyddodd gwall",
|
||||
"Export" : "Allforio",
|
||||
"Today" : "Heddiw",
|
||||
"Close" : "Cau",
|
||||
"Share" : "Rhannu",
|
||||
"Personal" : "Personol",
|
||||
"Today" : "Heddiw"
|
||||
"Personal" : "Personol"
|
||||
},
|
||||
"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;");
|
||||
|
||||
@@ -29,9 +29,9 @@
|
||||
"No reminder" : "Dim nodyn atgoffa",
|
||||
"An error occurred" : "Digwyddodd gwall",
|
||||
"Export" : "Allforio",
|
||||
"Today" : "Heddiw",
|
||||
"Close" : "Cau",
|
||||
"Share" : "Rhannu",
|
||||
"Personal" : "Personol",
|
||||
"Today" : "Heddiw"
|
||||
"Personal" : "Personol"
|
||||
},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"
|
||||
}
|
||||
51
l10n/da.js
51
l10n/da.js
@@ -29,11 +29,6 @@ OC.L10N.register(
|
||||
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} har slettet kortet {card} i listen {stack} på tavlen {board}",
|
||||
"You have renamed the card {before} to {card}" : "Du har omdøbt kortet {before} til {card}",
|
||||
"{user} has renamed the card {before} to {card}" : "{user} har omdøbt kortet {before} til {card}",
|
||||
"You have added a description to card {card} in list {stack} on board {board}" : "Du har tilføjet en beskrivelse til kortet {card} i listen {stack} på tavlen {board}",
|
||||
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} har tilføjet en beskrivelse til kortet {card} i listen {stack} på tavlen {board}",
|
||||
"You have updated the description of card {card} in list {stack} on board {board}" : "Du har opdateret beskrivelsen for kortet {card} i listen {stack} på tavlen {board}",
|
||||
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} har opdateret beskrivelsen for kortet {card} i listen {stack} på tavlen {board}",
|
||||
"You have archived card {card} in list {stack} on board {board}" : "Du har arkiveret kortet {card} i listen {stack} på tavlen {board}",
|
||||
"Deck" : "Opslag",
|
||||
"Changes in the <strong>Deck app</strong>" : "Ændringer i <strong>Opslags app'en</strong>",
|
||||
"The file was uploaded" : "Filen blev uploadet",
|
||||
@@ -51,14 +46,13 @@ OC.L10N.register(
|
||||
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} har tilknyttet kortet {deck-card} på {deck-board} til dig.",
|
||||
"The card \"%s\" on \"%s\" has reached its due date." : "Kortet \"%s\" på \"%s\" har nået sin forfaldsdato.",
|
||||
"The card {deck-card} on {deck-board} has reached its due date." : "Kortet {deck-card} på {deck-board} har nået sin forfaldsdato.",
|
||||
"%s has mentioned you in a comment on \"%s\"." : " %s har omtalt dig i en kommentar på \"%s\".",
|
||||
"{user} has mentioned you in a comment on {deck-card}." : "{user} har omtalt dig i en kommentar på {deck-card}.",
|
||||
"%s has mentioned you in a comment on \"%s\"." : " %s har nævnt dig i en kommentar på \"%s\".",
|
||||
"{user} has mentioned you in a comment on {deck-card}." : "{user} har nævnt dig i en kommentar på {deck-card}.",
|
||||
"The board \"%s\" has been shared with you by %s." : "Tavlen \"%s\" er blevet delt med dig af %s.",
|
||||
"{user} has shared {deck-board} with you." : "{user} har delt {deck-board} med dig.",
|
||||
"Deck board" : "Opslagstavle",
|
||||
"Deck boards, cards and comments" : "Opslagstavler, kort og kommentarer",
|
||||
"Create a new deck card" : "Opret et nyt opslagskort",
|
||||
"Card comments" : "Kommentarer på kort",
|
||||
"%s on %s" : "%s på %s",
|
||||
"Deck boards and cards" : "Opslagstavler og -kort",
|
||||
"No data was provided to create an attachment." : "Ingen data blev givet som kunne vedhæftes",
|
||||
@@ -70,9 +64,6 @@ OC.L10N.register(
|
||||
"To Do" : "To-do liste",
|
||||
"In Progress" : "I gang",
|
||||
"Done" : "Afsluttet",
|
||||
"Create your first card!" : "Opret dit første kort!",
|
||||
"Attachments" : "Vedhæftede filer",
|
||||
"File" : "Fil",
|
||||
"Card not found" : "Kort ikke fundet.",
|
||||
"Path is already shared with this card" : "Stien er allerede delt med dette kort.",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Ikke gyldig dato - dato formatet skal være ÅÅÅÅ-MM-DD",
|
||||
@@ -82,12 +73,10 @@ OC.L10N.register(
|
||||
"Select the board to link to a project" : "Vælg tavlen der skal linkes til et projekt",
|
||||
"Search by board title" : "Søg efter tavletitel",
|
||||
"Select board" : "Vælg tavle",
|
||||
"Move/copy card" : "Flyt/kopiér kort",
|
||||
"Select a board" : "Vælg en tavle",
|
||||
"No lists available" : "Ingen lister tilgængelige",
|
||||
"Select a list" : "Vælg en liste",
|
||||
"Move card" : "Flyt kort",
|
||||
"Copy card" : "Kopiér kort",
|
||||
"Select the card to link to a project" : "Vælg kortet der skal linkes til et projekt",
|
||||
"Link to card" : "Link til kort",
|
||||
"Select a card" : "Vælg et kort",
|
||||
@@ -149,7 +138,7 @@ OC.L10N.register(
|
||||
"Add a new card" : "Tilføj et nyt kort",
|
||||
"Card name" : "Kortnavn",
|
||||
"title and color value must be provided" : "Titel- og farveværdi skal angives.",
|
||||
"Edit" : "Redigér",
|
||||
"Edit" : "Rediger",
|
||||
"Add a new tag" : "Opret et nyt tag",
|
||||
"Board name" : "Tavlenavn",
|
||||
"Members" : "Medlemmer",
|
||||
@@ -168,6 +157,7 @@ OC.L10N.register(
|
||||
"The title cannot be empty." : "Titlen må ikke være tom",
|
||||
"Open in sidebar view" : "Åben i sidebjælke visning",
|
||||
"Open in bigger view" : "Åben i større visning",
|
||||
"Attachments" : "Vedhæftede filer",
|
||||
"Comments" : "Kommentarer",
|
||||
"No comments yet. Begin the discussion!" : "Ingen kommentarer endnu. Begynd diskussionen!",
|
||||
"The comment cannot be empty." : "Kommentaren må ikke være tom.",
|
||||
@@ -177,21 +167,17 @@ OC.L10N.register(
|
||||
"In reply to" : "Som svar til",
|
||||
"Cancel reply" : "Annuller svar",
|
||||
"Reply" : "Besvar",
|
||||
"Update" : "Opdatér",
|
||||
"Update" : "Opdater",
|
||||
"Write a description …" : "Skriv en beskrivelse...",
|
||||
"Description" : "Beskrivelse",
|
||||
"(Unsaved)" : "(Ikke gemt)",
|
||||
"(Saving…)" : "(Gemmer...)",
|
||||
"Formatting help" : "Hjælp til formatering",
|
||||
"Edit description" : "Redigér beskrivelse",
|
||||
"Edit description" : "Rediger beskrivelse",
|
||||
"View description" : "Se beskrivelse",
|
||||
"Add Attachment" : "Tilføj vedhæftning",
|
||||
"Choose attachment" : "Vælg en vedhæftning",
|
||||
"Select Date" : "Vælg dato",
|
||||
"Later today – {timeLocale}" : "Senere i dag – {timeLocale}",
|
||||
"Tomorrow – {timeLocale}" : "I morgen – {timeLocale}",
|
||||
"This weekend – {timeLocale}" : "Denne weekend – {timeLocale}",
|
||||
"Next week – {timeLocale}" : "Næste uge – {timeLocale}",
|
||||
"Set a due date" : "Angiv en forfaldsdato",
|
||||
"Remove due date" : "Fjern forfaldsdato",
|
||||
"Mark as done" : "Marker som færdig",
|
||||
@@ -201,10 +187,9 @@ OC.L10N.register(
|
||||
"Assign a tag to this card…" : "Tilføj et Tag til dette kort ...",
|
||||
"Create a new tag:" : "Opret et nyt tag:",
|
||||
"(group)" : "(gruppe)",
|
||||
"Edit card title" : "Redigér titel på kort",
|
||||
"Open link" : "Åben link",
|
||||
"Card deleted" : "Kort slettet",
|
||||
"Edit title" : "Redigér titel",
|
||||
"Edit title" : "Rediger titel",
|
||||
"Assign to me" : "Tildel til mig",
|
||||
"Unassign myself" : "Fjern mig selv",
|
||||
"Delete card" : "Slet kort",
|
||||
@@ -214,24 +199,16 @@ OC.L10N.register(
|
||||
"Keyboard shortcut" : "Tastaturgenvej",
|
||||
"Action" : "Handling",
|
||||
"Shift" : "Shift",
|
||||
"Navigate between cards" : "Naviger mellem kort",
|
||||
"Close card details" : "Luk detaljer for kort",
|
||||
"Ctrl" : "Ctrl",
|
||||
"Search" : "Søg",
|
||||
"Show card filters" : "Vis kort filtre",
|
||||
"Clear card filters" : "Ryd kort filtre",
|
||||
"Card actions" : "Kort handlinger",
|
||||
"Enter" : "Indtast",
|
||||
"Open card details" : "Åbn detaljer for kort",
|
||||
"Edit the card title" : "Redigér titel på kort",
|
||||
"Assign yourself to the current card" : "Tilknyt dig selv til det aktuelle kort",
|
||||
"All boards" : "Alle tavler",
|
||||
"Archived boards" : "Arkiverede lister",
|
||||
"Shared with you" : "Delt med dig",
|
||||
"Deck settings" : "Opslagsindstillinger",
|
||||
"Use bigger card view" : "Brug større kort visning",
|
||||
"Show boards in calendar/tasks" : "Vis tavler i kalender/opgaver",
|
||||
"Cancel edit" : "Annullér redigering",
|
||||
"Cancel edit" : "Annuller redigering",
|
||||
"Board {0} deleted" : "Tavle {0} er slettet",
|
||||
"All cards" : "Alle kort",
|
||||
"Only assigned cards" : "Kun tildelte kort",
|
||||
@@ -239,7 +216,7 @@ OC.L10N.register(
|
||||
"An error occurred" : "Der opstod en fejl",
|
||||
"Delete the board?" : "Slet tavlen?",
|
||||
"Board details" : "Tavledetaljer",
|
||||
"Edit board" : "Redigér liste",
|
||||
"Edit board" : "Rediger liste",
|
||||
"Clone board" : "Klon tavle",
|
||||
"Unarchive board" : "Genaktiver tavle",
|
||||
"Archive board" : "Arkiver tavle",
|
||||
@@ -259,11 +236,14 @@ OC.L10N.register(
|
||||
"Export as CSV" : "Eksportér som CSV",
|
||||
"Export" : "Eksportér",
|
||||
"Loading filtered view" : "Indlæser filtreret visning",
|
||||
"Today" : "I dag",
|
||||
"Tomorrow" : "I morgen",
|
||||
"No due" : "Ikke forfalden",
|
||||
"No results found" : "Ingen resultater fundet",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Opslagstavle {name}\n* Senest ændret den {lastMod}",
|
||||
"Create card" : "Opret kort",
|
||||
"Create a new card" : "Opret et nyt kort",
|
||||
"Creating the new card …" : "Opretter det nye kort ...",
|
||||
"Creating the new card …" : "Oprette det nye kort ...",
|
||||
"Close" : "Luk",
|
||||
"No upcoming cards" : "Ingen kommende kort",
|
||||
"upcoming cards" : "kommende kort",
|
||||
@@ -285,9 +265,6 @@ OC.L10N.register(
|
||||
"Example Task 3" : "Eksempel opgave 3",
|
||||
"Example Task 2" : "Eksempel opgave 2",
|
||||
"Example Task 1" : "Eksempel opgave 1",
|
||||
"Move card to another board" : "Flyt kort til en anden tavle",
|
||||
"Today" : "I dag",
|
||||
"Tomorrow" : "I morgen",
|
||||
"No due" : "Ikke forfalden"
|
||||
"Move card to another board" : "Flyt kort til en anden tavle"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
51
l10n/da.json
51
l10n/da.json
@@ -27,11 +27,6 @@
|
||||
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} har slettet kortet {card} i listen {stack} på tavlen {board}",
|
||||
"You have renamed the card {before} to {card}" : "Du har omdøbt kortet {before} til {card}",
|
||||
"{user} has renamed the card {before} to {card}" : "{user} har omdøbt kortet {before} til {card}",
|
||||
"You have added a description to card {card} in list {stack} on board {board}" : "Du har tilføjet en beskrivelse til kortet {card} i listen {stack} på tavlen {board}",
|
||||
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} har tilføjet en beskrivelse til kortet {card} i listen {stack} på tavlen {board}",
|
||||
"You have updated the description of card {card} in list {stack} on board {board}" : "Du har opdateret beskrivelsen for kortet {card} i listen {stack} på tavlen {board}",
|
||||
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} har opdateret beskrivelsen for kortet {card} i listen {stack} på tavlen {board}",
|
||||
"You have archived card {card} in list {stack} on board {board}" : "Du har arkiveret kortet {card} i listen {stack} på tavlen {board}",
|
||||
"Deck" : "Opslag",
|
||||
"Changes in the <strong>Deck app</strong>" : "Ændringer i <strong>Opslags app'en</strong>",
|
||||
"The file was uploaded" : "Filen blev uploadet",
|
||||
@@ -49,14 +44,13 @@
|
||||
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} har tilknyttet kortet {deck-card} på {deck-board} til dig.",
|
||||
"The card \"%s\" on \"%s\" has reached its due date." : "Kortet \"%s\" på \"%s\" har nået sin forfaldsdato.",
|
||||
"The card {deck-card} on {deck-board} has reached its due date." : "Kortet {deck-card} på {deck-board} har nået sin forfaldsdato.",
|
||||
"%s has mentioned you in a comment on \"%s\"." : " %s har omtalt dig i en kommentar på \"%s\".",
|
||||
"{user} has mentioned you in a comment on {deck-card}." : "{user} har omtalt dig i en kommentar på {deck-card}.",
|
||||
"%s has mentioned you in a comment on \"%s\"." : " %s har nævnt dig i en kommentar på \"%s\".",
|
||||
"{user} has mentioned you in a comment on {deck-card}." : "{user} har nævnt dig i en kommentar på {deck-card}.",
|
||||
"The board \"%s\" has been shared with you by %s." : "Tavlen \"%s\" er blevet delt med dig af %s.",
|
||||
"{user} has shared {deck-board} with you." : "{user} har delt {deck-board} med dig.",
|
||||
"Deck board" : "Opslagstavle",
|
||||
"Deck boards, cards and comments" : "Opslagstavler, kort og kommentarer",
|
||||
"Create a new deck card" : "Opret et nyt opslagskort",
|
||||
"Card comments" : "Kommentarer på kort",
|
||||
"%s on %s" : "%s på %s",
|
||||
"Deck boards and cards" : "Opslagstavler og -kort",
|
||||
"No data was provided to create an attachment." : "Ingen data blev givet som kunne vedhæftes",
|
||||
@@ -68,9 +62,6 @@
|
||||
"To Do" : "To-do liste",
|
||||
"In Progress" : "I gang",
|
||||
"Done" : "Afsluttet",
|
||||
"Create your first card!" : "Opret dit første kort!",
|
||||
"Attachments" : "Vedhæftede filer",
|
||||
"File" : "Fil",
|
||||
"Card not found" : "Kort ikke fundet.",
|
||||
"Path is already shared with this card" : "Stien er allerede delt med dette kort.",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Ikke gyldig dato - dato formatet skal være ÅÅÅÅ-MM-DD",
|
||||
@@ -80,12 +71,10 @@
|
||||
"Select the board to link to a project" : "Vælg tavlen der skal linkes til et projekt",
|
||||
"Search by board title" : "Søg efter tavletitel",
|
||||
"Select board" : "Vælg tavle",
|
||||
"Move/copy card" : "Flyt/kopiér kort",
|
||||
"Select a board" : "Vælg en tavle",
|
||||
"No lists available" : "Ingen lister tilgængelige",
|
||||
"Select a list" : "Vælg en liste",
|
||||
"Move card" : "Flyt kort",
|
||||
"Copy card" : "Kopiér kort",
|
||||
"Select the card to link to a project" : "Vælg kortet der skal linkes til et projekt",
|
||||
"Link to card" : "Link til kort",
|
||||
"Select a card" : "Vælg et kort",
|
||||
@@ -147,7 +136,7 @@
|
||||
"Add a new card" : "Tilføj et nyt kort",
|
||||
"Card name" : "Kortnavn",
|
||||
"title and color value must be provided" : "Titel- og farveværdi skal angives.",
|
||||
"Edit" : "Redigér",
|
||||
"Edit" : "Rediger",
|
||||
"Add a new tag" : "Opret et nyt tag",
|
||||
"Board name" : "Tavlenavn",
|
||||
"Members" : "Medlemmer",
|
||||
@@ -166,6 +155,7 @@
|
||||
"The title cannot be empty." : "Titlen må ikke være tom",
|
||||
"Open in sidebar view" : "Åben i sidebjælke visning",
|
||||
"Open in bigger view" : "Åben i større visning",
|
||||
"Attachments" : "Vedhæftede filer",
|
||||
"Comments" : "Kommentarer",
|
||||
"No comments yet. Begin the discussion!" : "Ingen kommentarer endnu. Begynd diskussionen!",
|
||||
"The comment cannot be empty." : "Kommentaren må ikke være tom.",
|
||||
@@ -175,21 +165,17 @@
|
||||
"In reply to" : "Som svar til",
|
||||
"Cancel reply" : "Annuller svar",
|
||||
"Reply" : "Besvar",
|
||||
"Update" : "Opdatér",
|
||||
"Update" : "Opdater",
|
||||
"Write a description …" : "Skriv en beskrivelse...",
|
||||
"Description" : "Beskrivelse",
|
||||
"(Unsaved)" : "(Ikke gemt)",
|
||||
"(Saving…)" : "(Gemmer...)",
|
||||
"Formatting help" : "Hjælp til formatering",
|
||||
"Edit description" : "Redigér beskrivelse",
|
||||
"Edit description" : "Rediger beskrivelse",
|
||||
"View description" : "Se beskrivelse",
|
||||
"Add Attachment" : "Tilføj vedhæftning",
|
||||
"Choose attachment" : "Vælg en vedhæftning",
|
||||
"Select Date" : "Vælg dato",
|
||||
"Later today – {timeLocale}" : "Senere i dag – {timeLocale}",
|
||||
"Tomorrow – {timeLocale}" : "I morgen – {timeLocale}",
|
||||
"This weekend – {timeLocale}" : "Denne weekend – {timeLocale}",
|
||||
"Next week – {timeLocale}" : "Næste uge – {timeLocale}",
|
||||
"Set a due date" : "Angiv en forfaldsdato",
|
||||
"Remove due date" : "Fjern forfaldsdato",
|
||||
"Mark as done" : "Marker som færdig",
|
||||
@@ -199,10 +185,9 @@
|
||||
"Assign a tag to this card…" : "Tilføj et Tag til dette kort ...",
|
||||
"Create a new tag:" : "Opret et nyt tag:",
|
||||
"(group)" : "(gruppe)",
|
||||
"Edit card title" : "Redigér titel på kort",
|
||||
"Open link" : "Åben link",
|
||||
"Card deleted" : "Kort slettet",
|
||||
"Edit title" : "Redigér titel",
|
||||
"Edit title" : "Rediger titel",
|
||||
"Assign to me" : "Tildel til mig",
|
||||
"Unassign myself" : "Fjern mig selv",
|
||||
"Delete card" : "Slet kort",
|
||||
@@ -212,24 +197,16 @@
|
||||
"Keyboard shortcut" : "Tastaturgenvej",
|
||||
"Action" : "Handling",
|
||||
"Shift" : "Shift",
|
||||
"Navigate between cards" : "Naviger mellem kort",
|
||||
"Close card details" : "Luk detaljer for kort",
|
||||
"Ctrl" : "Ctrl",
|
||||
"Search" : "Søg",
|
||||
"Show card filters" : "Vis kort filtre",
|
||||
"Clear card filters" : "Ryd kort filtre",
|
||||
"Card actions" : "Kort handlinger",
|
||||
"Enter" : "Indtast",
|
||||
"Open card details" : "Åbn detaljer for kort",
|
||||
"Edit the card title" : "Redigér titel på kort",
|
||||
"Assign yourself to the current card" : "Tilknyt dig selv til det aktuelle kort",
|
||||
"All boards" : "Alle tavler",
|
||||
"Archived boards" : "Arkiverede lister",
|
||||
"Shared with you" : "Delt med dig",
|
||||
"Deck settings" : "Opslagsindstillinger",
|
||||
"Use bigger card view" : "Brug større kort visning",
|
||||
"Show boards in calendar/tasks" : "Vis tavler i kalender/opgaver",
|
||||
"Cancel edit" : "Annullér redigering",
|
||||
"Cancel edit" : "Annuller redigering",
|
||||
"Board {0} deleted" : "Tavle {0} er slettet",
|
||||
"All cards" : "Alle kort",
|
||||
"Only assigned cards" : "Kun tildelte kort",
|
||||
@@ -237,7 +214,7 @@
|
||||
"An error occurred" : "Der opstod en fejl",
|
||||
"Delete the board?" : "Slet tavlen?",
|
||||
"Board details" : "Tavledetaljer",
|
||||
"Edit board" : "Redigér liste",
|
||||
"Edit board" : "Rediger liste",
|
||||
"Clone board" : "Klon tavle",
|
||||
"Unarchive board" : "Genaktiver tavle",
|
||||
"Archive board" : "Arkiver tavle",
|
||||
@@ -257,11 +234,14 @@
|
||||
"Export as CSV" : "Eksportér som CSV",
|
||||
"Export" : "Eksportér",
|
||||
"Loading filtered view" : "Indlæser filtreret visning",
|
||||
"Today" : "I dag",
|
||||
"Tomorrow" : "I morgen",
|
||||
"No due" : "Ikke forfalden",
|
||||
"No results found" : "Ingen resultater fundet",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Opslagstavle {name}\n* Senest ændret den {lastMod}",
|
||||
"Create card" : "Opret kort",
|
||||
"Create a new card" : "Opret et nyt kort",
|
||||
"Creating the new card …" : "Opretter det nye kort ...",
|
||||
"Creating the new card …" : "Oprette det nye kort ...",
|
||||
"Close" : "Luk",
|
||||
"No upcoming cards" : "Ingen kommende kort",
|
||||
"upcoming cards" : "kommende kort",
|
||||
@@ -283,9 +263,6 @@
|
||||
"Example Task 3" : "Eksempel opgave 3",
|
||||
"Example Task 2" : "Eksempel opgave 2",
|
||||
"Example Task 1" : "Eksempel opgave 1",
|
||||
"Move card to another board" : "Flyt kort til en anden tavle",
|
||||
"Today" : "I dag",
|
||||
"Tomorrow" : "I morgen",
|
||||
"No due" : "Ikke forfalden"
|
||||
"Move card to another board" : "Flyt kort til en anden tavle"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
15
l10n/de.js
15
l10n/de.js
@@ -122,9 +122,6 @@ OC.L10N.register(
|
||||
"4. Share, comment and collaborate!" : "4. Teilen, kommentieren und mitarbeiten!",
|
||||
"Create your first card!" : "Erstelle Deine erste Karte!",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Dieser Kommentar hat mehr als %s Zeichen.\nAls Anhang der Karte mit dem Namen %s hinzugefügt.\nZugriff über die URL: %s.",
|
||||
"Attachments" : "Anhänge",
|
||||
"File" : "Datei",
|
||||
"date" : "Datum",
|
||||
"Card not found" : "Karte nicht gefunden",
|
||||
"Path is already shared with this card" : "Pfad wurde bereits mit dieser Karte geteilt",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT",
|
||||
@@ -240,9 +237,9 @@ OC.L10N.register(
|
||||
"Modified" : "Geändert",
|
||||
"Created" : "Erstellt",
|
||||
"The title cannot be empty." : "Der Titel darf nicht leer sein.",
|
||||
"Cannot close unsaved card!" : "Nicht gespeicherte Karte kann nicht geschlossen werden!",
|
||||
"Open in sidebar view" : "In Seitenleiste öffnen",
|
||||
"Open in bigger view" : "In größerer Ansicht öffnen",
|
||||
"Attachments" : "Anhänge",
|
||||
"Comments" : "Kommentare",
|
||||
"Failed to load comments" : "Laden der Kommentare ist fehlgeschlagen",
|
||||
"No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginne die Diskussion!",
|
||||
@@ -255,7 +252,6 @@ OC.L10N.register(
|
||||
"Reply" : "Antworten",
|
||||
"Update" : "Aktualisieren",
|
||||
"Write a description …" : "Beschreibung schreiben …",
|
||||
"Could not save description" : "Beschreibung konnte nicht gespeichert werden",
|
||||
"Description" : "Beschreibung",
|
||||
"(Unsaved)" : "(nicht gespeichert)",
|
||||
"(Saving…)" : "(Speichere …)",
|
||||
@@ -373,7 +369,9 @@ OC.L10N.register(
|
||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Hinweis: Für den Rückimport in die Deck-App wird nur das JSON-Format unterstützt.",
|
||||
"Export" : "Exportieren",
|
||||
"Loading filtered view" : "Lade gefilterte Ansicht",
|
||||
"Search for {searchQuery} in other boards" : "Suche nach {searchQuery} in anderen Boards",
|
||||
"Today" : "Heute",
|
||||
"Tomorrow" : "Morgen",
|
||||
"No due" : "Kein Fälligkeitsdatum",
|
||||
"Search for {searchQuery} in all boards" : "Suche nach {searchQuery} in allen Boards",
|
||||
"No results found" : "Keine Ergebnisse gefunden",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Deck-Board {name}\n* Zuletzt geändert am {lastMod} ",
|
||||
@@ -414,9 +412,6 @@ OC.L10N.register(
|
||||
"Example Task 3" : "Beispielaufgabe 3",
|
||||
"Example Task 2" : "Beispielaufgabe 2",
|
||||
"Example Task 1" : "Beispielaufgabe 1",
|
||||
"Move card to another board" : "Karte auf ein anderes Board verschieben",
|
||||
"Today" : "Heute",
|
||||
"Tomorrow" : "Morgen",
|
||||
"No due" : "Kein Fälligkeitsdatum"
|
||||
"Move card to another board" : "Karte auf ein anderes Board verschieben"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
15
l10n/de.json
15
l10n/de.json
@@ -120,9 +120,6 @@
|
||||
"4. Share, comment and collaborate!" : "4. Teilen, kommentieren und mitarbeiten!",
|
||||
"Create your first card!" : "Erstelle Deine erste Karte!",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Dieser Kommentar hat mehr als %s Zeichen.\nAls Anhang der Karte mit dem Namen %s hinzugefügt.\nZugriff über die URL: %s.",
|
||||
"Attachments" : "Anhänge",
|
||||
"File" : "Datei",
|
||||
"date" : "Datum",
|
||||
"Card not found" : "Karte nicht gefunden",
|
||||
"Path is already shared with this card" : "Pfad wurde bereits mit dieser Karte geteilt",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT",
|
||||
@@ -238,9 +235,9 @@
|
||||
"Modified" : "Geändert",
|
||||
"Created" : "Erstellt",
|
||||
"The title cannot be empty." : "Der Titel darf nicht leer sein.",
|
||||
"Cannot close unsaved card!" : "Nicht gespeicherte Karte kann nicht geschlossen werden!",
|
||||
"Open in sidebar view" : "In Seitenleiste öffnen",
|
||||
"Open in bigger view" : "In größerer Ansicht öffnen",
|
||||
"Attachments" : "Anhänge",
|
||||
"Comments" : "Kommentare",
|
||||
"Failed to load comments" : "Laden der Kommentare ist fehlgeschlagen",
|
||||
"No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginne die Diskussion!",
|
||||
@@ -253,7 +250,6 @@
|
||||
"Reply" : "Antworten",
|
||||
"Update" : "Aktualisieren",
|
||||
"Write a description …" : "Beschreibung schreiben …",
|
||||
"Could not save description" : "Beschreibung konnte nicht gespeichert werden",
|
||||
"Description" : "Beschreibung",
|
||||
"(Unsaved)" : "(nicht gespeichert)",
|
||||
"(Saving…)" : "(Speichere …)",
|
||||
@@ -371,7 +367,9 @@
|
||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Hinweis: Für den Rückimport in die Deck-App wird nur das JSON-Format unterstützt.",
|
||||
"Export" : "Exportieren",
|
||||
"Loading filtered view" : "Lade gefilterte Ansicht",
|
||||
"Search for {searchQuery} in other boards" : "Suche nach {searchQuery} in anderen Boards",
|
||||
"Today" : "Heute",
|
||||
"Tomorrow" : "Morgen",
|
||||
"No due" : "Kein Fälligkeitsdatum",
|
||||
"Search for {searchQuery} in all boards" : "Suche nach {searchQuery} in allen Boards",
|
||||
"No results found" : "Keine Ergebnisse gefunden",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Deck-Board {name}\n* Zuletzt geändert am {lastMod} ",
|
||||
@@ -412,9 +410,6 @@
|
||||
"Example Task 3" : "Beispielaufgabe 3",
|
||||
"Example Task 2" : "Beispielaufgabe 2",
|
||||
"Example Task 1" : "Beispielaufgabe 1",
|
||||
"Move card to another board" : "Karte auf ein anderes Board verschieben",
|
||||
"Today" : "Heute",
|
||||
"Tomorrow" : "Morgen",
|
||||
"No due" : "Kein Fälligkeitsdatum"
|
||||
"Move card to another board" : "Karte auf ein anderes Board verschieben"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -122,9 +122,6 @@ OC.L10N.register(
|
||||
"4. Share, comment and collaborate!" : "4. Teilen, kommentieren und mitarbeiten!",
|
||||
"Create your first card!" : "Erstellen Sie Ihre erste Karte!",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Dieser Kommentar hat mehr als %s Zeichen.\nAls Anhang der Karte mit dem Namen %s hinzugefügt.\nZugriff über die URL: %s.",
|
||||
"Attachments" : "Anhänge",
|
||||
"File" : "Datei",
|
||||
"date" : "Datum",
|
||||
"Card not found" : "Karte nicht gefunden",
|
||||
"Path is already shared with this card" : "Pfad wurde bereits mit dieser Karte geteilt",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT",
|
||||
@@ -240,9 +237,9 @@ OC.L10N.register(
|
||||
"Modified" : "Geändert",
|
||||
"Created" : "Erstellt",
|
||||
"The title cannot be empty." : "Der Titel darf nicht leer sein.",
|
||||
"Cannot close unsaved card!" : "Nicht gespeicherte Karte kann nicht geschlossen werden!",
|
||||
"Open in sidebar view" : "In Seitenleiste öffnen",
|
||||
"Open in bigger view" : "In größerer Ansicht öffnen",
|
||||
"Attachments" : "Anhänge",
|
||||
"Comments" : "Kommentare",
|
||||
"Failed to load comments" : "Kommentare konnten nicht geladen werden",
|
||||
"No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginnen Sie die Diskussion!",
|
||||
@@ -255,7 +252,6 @@ OC.L10N.register(
|
||||
"Reply" : "Antworten",
|
||||
"Update" : "Aktualisieren",
|
||||
"Write a description …" : "Beschreibung schreiben …",
|
||||
"Could not save description" : "Beschreibung konnte nicht gespeichert werden",
|
||||
"Description" : "Beschreibung",
|
||||
"(Unsaved)" : "(nicht gespeichert)",
|
||||
"(Saving…)" : "(Speichere…)",
|
||||
@@ -373,7 +369,9 @@ OC.L10N.register(
|
||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Hinweis: Für den Rückimport in die Deck-App wird nur das JSON-Format unterstützt.",
|
||||
"Export" : "Exportieren",
|
||||
"Loading filtered view" : "Lade gefilterte Ansicht",
|
||||
"Search for {searchQuery} in other boards" : "Suche nach {searchQuery} in anderen Boards",
|
||||
"Today" : "Heute",
|
||||
"Tomorrow" : "Morgen",
|
||||
"No due" : "Kein Fälligkeitsdatum",
|
||||
"Search for {searchQuery} in all boards" : "Suche nach {searchQuery} in allen Boards",
|
||||
"No results found" : "Keine Ergebnisse gefunden",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Deck-Board {name}\n* Zuletzt geändert am {lastMod} ",
|
||||
@@ -414,9 +412,6 @@ OC.L10N.register(
|
||||
"Example Task 3" : "Beispielaufgabe 3",
|
||||
"Example Task 2" : "Beispielaufgabe 2",
|
||||
"Example Task 1" : "Beispielaufgabe 1",
|
||||
"Move card to another board" : "Karte auf ein anderes Board verschieben",
|
||||
"Today" : "Heute",
|
||||
"Tomorrow" : "Morgen",
|
||||
"No due" : "Kein Fälligkeitsdatum"
|
||||
"Move card to another board" : "Karte auf ein anderes Board verschieben"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -120,9 +120,6 @@
|
||||
"4. Share, comment and collaborate!" : "4. Teilen, kommentieren und mitarbeiten!",
|
||||
"Create your first card!" : "Erstellen Sie Ihre erste Karte!",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Dieser Kommentar hat mehr als %s Zeichen.\nAls Anhang der Karte mit dem Namen %s hinzugefügt.\nZugriff über die URL: %s.",
|
||||
"Attachments" : "Anhänge",
|
||||
"File" : "Datei",
|
||||
"date" : "Datum",
|
||||
"Card not found" : "Karte nicht gefunden",
|
||||
"Path is already shared with this card" : "Pfad wurde bereits mit dieser Karte geteilt",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT",
|
||||
@@ -238,9 +235,9 @@
|
||||
"Modified" : "Geändert",
|
||||
"Created" : "Erstellt",
|
||||
"The title cannot be empty." : "Der Titel darf nicht leer sein.",
|
||||
"Cannot close unsaved card!" : "Nicht gespeicherte Karte kann nicht geschlossen werden!",
|
||||
"Open in sidebar view" : "In Seitenleiste öffnen",
|
||||
"Open in bigger view" : "In größerer Ansicht öffnen",
|
||||
"Attachments" : "Anhänge",
|
||||
"Comments" : "Kommentare",
|
||||
"Failed to load comments" : "Kommentare konnten nicht geladen werden",
|
||||
"No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginnen Sie die Diskussion!",
|
||||
@@ -253,7 +250,6 @@
|
||||
"Reply" : "Antworten",
|
||||
"Update" : "Aktualisieren",
|
||||
"Write a description …" : "Beschreibung schreiben …",
|
||||
"Could not save description" : "Beschreibung konnte nicht gespeichert werden",
|
||||
"Description" : "Beschreibung",
|
||||
"(Unsaved)" : "(nicht gespeichert)",
|
||||
"(Saving…)" : "(Speichere…)",
|
||||
@@ -371,7 +367,9 @@
|
||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Hinweis: Für den Rückimport in die Deck-App wird nur das JSON-Format unterstützt.",
|
||||
"Export" : "Exportieren",
|
||||
"Loading filtered view" : "Lade gefilterte Ansicht",
|
||||
"Search for {searchQuery} in other boards" : "Suche nach {searchQuery} in anderen Boards",
|
||||
"Today" : "Heute",
|
||||
"Tomorrow" : "Morgen",
|
||||
"No due" : "Kein Fälligkeitsdatum",
|
||||
"Search for {searchQuery} in all boards" : "Suche nach {searchQuery} in allen Boards",
|
||||
"No results found" : "Keine Ergebnisse gefunden",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Deck-Board {name}\n* Zuletzt geändert am {lastMod} ",
|
||||
@@ -412,9 +410,6 @@
|
||||
"Example Task 3" : "Beispielaufgabe 3",
|
||||
"Example Task 2" : "Beispielaufgabe 2",
|
||||
"Example Task 1" : "Beispielaufgabe 1",
|
||||
"Move card to another board" : "Karte auf ein anderes Board verschieben",
|
||||
"Today" : "Heute",
|
||||
"Tomorrow" : "Morgen",
|
||||
"No due" : "Kein Fälligkeitsdatum"
|
||||
"Move card to another board" : "Karte auf ein anderes Board verschieben"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
56
l10n/el.js
56
l10n/el.js
@@ -81,14 +81,10 @@ OC.L10N.register(
|
||||
"Could not write file to disk" : "Αδυναμία εγγραφής αρχείου στον δίσκο",
|
||||
"A PHP extension stopped the file upload" : "Ένα πρόσθετο PHP διέκοψε την μεταφόρτωση του αρχείου",
|
||||
"No file uploaded or file size exceeds maximum of %s" : "Δεν μεταφορτώθηκε αρχείο ή το μέγεθος αρχείου υπερβαίνει το μέγιστο %s",
|
||||
"Invalid file type. Only JSON files are allowed." : "Μη έγκυρος τύπος αρχείου. Επιτρέπονται μόνο αρχεία JSON.",
|
||||
"Invalid JSON data" : "Μη έγκυρα δεδομένα JSON",
|
||||
"Failed to import board" : "Αποτυχία εισαγωγής πίνακα",
|
||||
"Cards due today" : "Κάρτες που λήγουν σήμερα",
|
||||
"Cards due tomorrow" : "Κάρτες που λήγουν αύριο",
|
||||
"Upcoming cards" : "Επερχόμενες καρτέλες",
|
||||
"Load more" : "Φόρτωση περισσότερων",
|
||||
"Welcome to Nextcloud Deck!" : "Καλώς ήρθατε στο Nextcloud Deck!",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Η καρτέλα \"%s\" του \"%s\" ανατέθηκε σε εσάς από τον %s.",
|
||||
"{user} has assigned the card {deck-card} on {deck-board} to you." : "Ο/Η {user} έχει αναθέσει την καρτέλα {deck-card} του πίνακα {deck-board} σε εσάς.",
|
||||
"The card \"%s\" on \"%s\" has reached its due date." : "Η καρτέλα \"%s\" στο \"%s\" έχει λήξει.",
|
||||
@@ -100,7 +96,6 @@ OC.L10N.register(
|
||||
"Deck board" : "Πίνακας του Deck",
|
||||
"Owned by %1$s" : "Ανήκει στον/στην %1$s",
|
||||
"Deck boards, cards and comments" : "Πίνακες, κάρτες και σχόλια Deck",
|
||||
"From %1$s, in %2$s/%3$s, owned by %4$s" : "Από %1$s, στον %2$s/%3$s, που ανήκει στον %4$s",
|
||||
"Create a new deck card" : "Δημιουργήστε μια νέα κάρτα",
|
||||
"Card comments" : "Σχόλια καρτέλας",
|
||||
"%s on %s" : "%s στο %s",
|
||||
@@ -111,20 +106,9 @@ OC.L10N.register(
|
||||
"Action needed" : "Απαιτείται ενέργεια",
|
||||
"Later" : "Αργότερα",
|
||||
"copy" : "Αντιγραφή",
|
||||
"Read more inside" : "Διαβάστε περισσότερα εντός",
|
||||
"Custom lists - click to rename!" : "Προσαρμοσμένες λίστες - κάντε κλικ για μετονομασία!",
|
||||
"To Do" : "Προς Ενέργεια",
|
||||
"In Progress" : "Σε Εξέλιξη",
|
||||
"Done" : "Ολοκληρώθηκε",
|
||||
"1. Open to learn more about boards and cards" : "1. Ανοίξτε για να μάθετε περισσότερα για τους πίνακες και τις κάρτες",
|
||||
"2. Drag cards left and right, up and down" : "2. Σύρετε κάρτες αριστερά και δεξιά, πάνω και κάτω",
|
||||
"3. Apply rich formatting and link content" : "3. Εφαρμόστε πλούσια μορφοποίηση και συνδέστε περιεχόμενο",
|
||||
"4. Share, comment and collaborate!" : "4. Μοιραστείτε, σχολιάστε και συνεργαστείτε!",
|
||||
"Create your first card!" : "Δημιουργήστε την πρώτη σας κάρτα!",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Αυτό το σχόλιο έχει περισσότερους από %s χαρακτήρες.\nΠροστέθηκε ως συνημμένο στην καρτέλα με όνομα %s .\nΠροσβάσιμο στη διεύθυνση URL: %s.",
|
||||
"Attachments" : "Συνημμένα",
|
||||
"File" : "Αρχείο",
|
||||
"date" : "ημερομηνία",
|
||||
"Card not found" : "Η καρτέλα δεν βρέθηκε",
|
||||
"Path is already shared with this card" : "Η διαδρομή κοινοποιείται ήδη σε αυτήν την καρτέλα",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Μη έγκυρη ημερομηνία, η μορφή ημερομηνίας πρέπει να είναι ΕΕΕΕ-ΜΜ-ΗΗ",
|
||||
@@ -135,12 +119,10 @@ OC.L10N.register(
|
||||
"Select the board to link to a project" : "Επιλέξτε πίνακα και συνδέστε τον σε ένα έργο",
|
||||
"Search by board title" : "Αναζήτηση με το όνομα πίνακα",
|
||||
"Select board" : "Επιλογή πίνακα",
|
||||
"Move/copy card" : "Μετακίνηση/αντιγραφή κάρτας",
|
||||
"Select a board" : "Επιλογή ενός πίνακα",
|
||||
"No lists available" : "Δεν υπάρχουν διαθέσιμες λίστες",
|
||||
"Select a list" : "Επιλέξτε μια λίστα",
|
||||
"Move card" : "Μετακίνηση καρτέλας",
|
||||
"Copy card" : "Αντίγραφο κάρτας",
|
||||
"Select the card to link to a project" : "Επιλογή καρτέλας για σύνδεση στο έργο",
|
||||
"Link to card" : "Σύνδεσμος σε καρτέλα",
|
||||
"Select a card" : "Επιλογή μιας καρτέλας",
|
||||
@@ -228,7 +210,7 @@ OC.L10N.register(
|
||||
"Select a user to assign to this card…" : "Επιλέξτε έναν χρήστη για να του αναθέσετε αυτή την κάρτα...",
|
||||
"File to share" : "Αρχείο για κοινή χρήση",
|
||||
"Invalid path selected" : "Επιλέχθηκε μη έγκυρη διαδρομή",
|
||||
"Upload new files" : "Μεταφορτώστε νέα αρχεία",
|
||||
"Upload new files" : "Ανεβάστε νέα αρχεία",
|
||||
"Share from Files" : "Κοινή χρήση από Αρχεία",
|
||||
"Pending share" : "Κοινή χρήση σε εκκρεμότητα",
|
||||
"Add this attachment" : "Προσθήκη αυτού του συνημμένου",
|
||||
@@ -240,9 +222,9 @@ OC.L10N.register(
|
||||
"Modified" : "Τροποποιήθηκε",
|
||||
"Created" : "Δημιουργήθηκε",
|
||||
"The title cannot be empty." : "Ο τίτλος δεν μπορεί να είναι κενός.",
|
||||
"Cannot close unsaved card!" : "Αδυναμία κλεισίματος της κάρτας που δεν έχει αποθηκευτεί!",
|
||||
"Open in sidebar view" : "Άνοιγμα σε προβολή πλευρικής στήλης",
|
||||
"Open in bigger view" : "Άνοιγμα σε μεγαλύτερη προβολή",
|
||||
"Attachments" : "Συνημμένα",
|
||||
"Comments" : "Σχόλια",
|
||||
"Failed to load comments" : "Αποτυχία φόρτωσης σχολίων",
|
||||
"No comments yet. Begin the discussion!" : "Χωρίς σχόλια ακόμη. Ξεκινήστε την συζήτηση!",
|
||||
@@ -255,7 +237,6 @@ OC.L10N.register(
|
||||
"Reply" : "Απάντηση",
|
||||
"Update" : "Ενημέρωση",
|
||||
"Write a description …" : "Γράψτε μια περιγραφή…",
|
||||
"Could not save description" : "Αδυναμία αποθήκευσης της περιγραφής",
|
||||
"Description" : "Περιγραφή",
|
||||
"(Unsaved)" : "(Δεν αποθηκεύτηκε)",
|
||||
"(Saving…)" : "(Αποθήκευση...)",
|
||||
@@ -290,7 +271,6 @@ OC.L10N.register(
|
||||
"{count} comments, {unread} unread" : "{count} σχόλια, {unread} μη αναγνωσμένα",
|
||||
"Todo items" : "Στοιχεία todo",
|
||||
"Edit card title" : "Επεξεργασία τίτλου κάρτας",
|
||||
"Open link" : "Άνοιγμα συνδέσμου",
|
||||
"Card deleted" : "Η καρτέλα διαγράφηκε",
|
||||
"Edit title" : "Επεξεργασία τίτλου",
|
||||
"Assign to me" : "Ανάθεση σε εμένα",
|
||||
@@ -334,7 +314,6 @@ OC.L10N.register(
|
||||
"Limit board creation to some groups" : "Περιορισμός της δημιουργίας πινάκων σε ορισμένες ομάδες",
|
||||
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Οι χρήστες εκτός αυτών των ομάδων δεν θα μπορούν να δημιουργούν τους δικούς τους πίνακες, αλλά θα μπορούν να εργάζονται σε πίνακες που τους έχουν διαμοιραστεί.",
|
||||
"Cancel edit" : "Ακύρωση επεξεργασίας",
|
||||
"Save board" : "Αποθήκευση πίνακα",
|
||||
"Board {0} deleted" : "Διαγράφηκε {0} πίνακας ",
|
||||
"All cards" : "Όλες οι καρτέλες",
|
||||
"Only assigned cards" : "Μόνο καρτέλες που έχουν ανατεθεί",
|
||||
@@ -342,7 +321,6 @@ OC.L10N.register(
|
||||
"An error occurred" : "Παρουσιάστηκε σφάλμα",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Είστε βέβαιοι ότι θέλετε να διαγράψετε τον πίνακα {title}; Αυτό θα διαγράψει όλα τα δεδομένα του πίνακα συμπεριλαμβανομένων και των αρχειοθετημένων καρτών.",
|
||||
"Delete the board?" : "Διαγραφή του πίνακα;",
|
||||
"Exporting board..." : "Εξαγωγή πίνακα...",
|
||||
"Board details" : "Λεπτομέριες πίνακα",
|
||||
"Edit board" : "Επεξεργασία πίνακα",
|
||||
"Clone board" : "Κλώνος πίνακα",
|
||||
@@ -355,25 +333,15 @@ OC.L10N.register(
|
||||
"Assigned cards" : "Ανατεθειμένες καρτέλες",
|
||||
"No notifications" : "Δεν υπάρχουν ειδοποιήσεις",
|
||||
"Delete board" : "Διαγραφή πίνακα",
|
||||
"Importing board..." : "Εισαγωγή πίνακα...",
|
||||
"Board imported successfully" : "Ο πίνακας εισήχθη επιτυχώς",
|
||||
"Import board" : "Εισαγωγή πίνακα",
|
||||
"Clone {boardTitle}" : "Κλωνοποίηση {boardTitle}",
|
||||
"Clone cards" : "Κλωνοποίηση καρτών",
|
||||
"Clone assignments" : "Κλωνοποίηση αναθέσεων",
|
||||
"Clone labels" : "Κλωνοποίηση ετικετών",
|
||||
"Clone due dates" : "Κλωνοποίηση προθεσμιών",
|
||||
"Advanced options" : "Προχωρημένες επιλογές",
|
||||
"Move all cards to the first list" : "Μετακίνηση όλων των καρτών στην πρώτη λίστα",
|
||||
"Restore archived cards" : "Επαναφορά αρχειοθετημένων καρτών",
|
||||
"Clone" : "Κλωνοποίηση",
|
||||
"Export {boardTitle}" : "Εξαγωγή {boardTitle}",
|
||||
"Export as JSON" : "Εξαγωγή ως JSON",
|
||||
"Export as CSV" : "Εξαγωγή ως CSV",
|
||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Σημείωση: Μόνο η μορφή JSON υποστηρίζεται για εισαγωγή πίσω στην εφαρμογή Deck.",
|
||||
"Clone cards" : "Κάρτες κλώνου",
|
||||
"Advanced options" : "Επιλογές για προχωρημένους",
|
||||
"Clone" : "Κλώνος",
|
||||
"Export as CSV" : "Εξαγωγή σε CSV",
|
||||
"Export" : "Εξαγωγή",
|
||||
"Loading filtered view" : "Φόρτωση εμφάνισης με βάση το φίλτρο",
|
||||
"Search for {searchQuery} in other boards" : "Αναζήτηση για {searchQuery} σε άλλους πίνακες",
|
||||
"Today" : "Σήμερα",
|
||||
"Tomorrow" : "Αύριο",
|
||||
"No due" : "Χωρίς λήξη",
|
||||
"Search for {searchQuery} in all boards" : "Αναζήτηση για {searchQuery} σε όλους τους πίνακες",
|
||||
"No results found" : "Δεν βρέθηκαν αποτελέσματα",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Πίνακας Deck {name}\n* Τελευταία τροποποίηση στις {lastMod}",
|
||||
@@ -402,7 +370,6 @@ OC.L10N.register(
|
||||
"Something went wrong" : "Κάτι πήγε στραβά",
|
||||
"Failed to upload {name}" : "Αποτυχία μεταφόρτωσης {name}",
|
||||
"Maximum file size of {size} exceeded" : "Υπέρβαση επιτρεπόμενου μεγέθους αρχείου {size}",
|
||||
"Assigned users" : "Ανατεθειμένοι χρήστες",
|
||||
"Due date" : "Προθεσμία",
|
||||
"Error creating the share" : "Σφάλμα κατά τη δημιουργία της κοινοποίησης",
|
||||
"Share with a Deck card" : "Μοιραστείτε με μια καρτέλα Deck",
|
||||
@@ -414,9 +381,6 @@ OC.L10N.register(
|
||||
"Example Task 3" : "Παράδειγμα Εργασίας 3",
|
||||
"Example Task 2" : "Παράδειγμα Εργασίας 2",
|
||||
"Example Task 1" : "Παράδειγμα Εργασίας 1",
|
||||
"Move card to another board" : "Μετακίνηση καρτέλας σε άλλο πίνακα",
|
||||
"Today" : "Σήμερα",
|
||||
"Tomorrow" : "Αύριο",
|
||||
"No due" : "Χωρίς λήξη"
|
||||
"Move card to another board" : "Μετακίνηση καρτέλας σε άλλο πίνακα"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
56
l10n/el.json
56
l10n/el.json
@@ -79,14 +79,10 @@
|
||||
"Could not write file to disk" : "Αδυναμία εγγραφής αρχείου στον δίσκο",
|
||||
"A PHP extension stopped the file upload" : "Ένα πρόσθετο PHP διέκοψε την μεταφόρτωση του αρχείου",
|
||||
"No file uploaded or file size exceeds maximum of %s" : "Δεν μεταφορτώθηκε αρχείο ή το μέγεθος αρχείου υπερβαίνει το μέγιστο %s",
|
||||
"Invalid file type. Only JSON files are allowed." : "Μη έγκυρος τύπος αρχείου. Επιτρέπονται μόνο αρχεία JSON.",
|
||||
"Invalid JSON data" : "Μη έγκυρα δεδομένα JSON",
|
||||
"Failed to import board" : "Αποτυχία εισαγωγής πίνακα",
|
||||
"Cards due today" : "Κάρτες που λήγουν σήμερα",
|
||||
"Cards due tomorrow" : "Κάρτες που λήγουν αύριο",
|
||||
"Upcoming cards" : "Επερχόμενες καρτέλες",
|
||||
"Load more" : "Φόρτωση περισσότερων",
|
||||
"Welcome to Nextcloud Deck!" : "Καλώς ήρθατε στο Nextcloud Deck!",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Η καρτέλα \"%s\" του \"%s\" ανατέθηκε σε εσάς από τον %s.",
|
||||
"{user} has assigned the card {deck-card} on {deck-board} to you." : "Ο/Η {user} έχει αναθέσει την καρτέλα {deck-card} του πίνακα {deck-board} σε εσάς.",
|
||||
"The card \"%s\" on \"%s\" has reached its due date." : "Η καρτέλα \"%s\" στο \"%s\" έχει λήξει.",
|
||||
@@ -98,7 +94,6 @@
|
||||
"Deck board" : "Πίνακας του Deck",
|
||||
"Owned by %1$s" : "Ανήκει στον/στην %1$s",
|
||||
"Deck boards, cards and comments" : "Πίνακες, κάρτες και σχόλια Deck",
|
||||
"From %1$s, in %2$s/%3$s, owned by %4$s" : "Από %1$s, στον %2$s/%3$s, που ανήκει στον %4$s",
|
||||
"Create a new deck card" : "Δημιουργήστε μια νέα κάρτα",
|
||||
"Card comments" : "Σχόλια καρτέλας",
|
||||
"%s on %s" : "%s στο %s",
|
||||
@@ -109,20 +104,9 @@
|
||||
"Action needed" : "Απαιτείται ενέργεια",
|
||||
"Later" : "Αργότερα",
|
||||
"copy" : "Αντιγραφή",
|
||||
"Read more inside" : "Διαβάστε περισσότερα εντός",
|
||||
"Custom lists - click to rename!" : "Προσαρμοσμένες λίστες - κάντε κλικ για μετονομασία!",
|
||||
"To Do" : "Προς Ενέργεια",
|
||||
"In Progress" : "Σε Εξέλιξη",
|
||||
"Done" : "Ολοκληρώθηκε",
|
||||
"1. Open to learn more about boards and cards" : "1. Ανοίξτε για να μάθετε περισσότερα για τους πίνακες και τις κάρτες",
|
||||
"2. Drag cards left and right, up and down" : "2. Σύρετε κάρτες αριστερά και δεξιά, πάνω και κάτω",
|
||||
"3. Apply rich formatting and link content" : "3. Εφαρμόστε πλούσια μορφοποίηση και συνδέστε περιεχόμενο",
|
||||
"4. Share, comment and collaborate!" : "4. Μοιραστείτε, σχολιάστε και συνεργαστείτε!",
|
||||
"Create your first card!" : "Δημιουργήστε την πρώτη σας κάρτα!",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Αυτό το σχόλιο έχει περισσότερους από %s χαρακτήρες.\nΠροστέθηκε ως συνημμένο στην καρτέλα με όνομα %s .\nΠροσβάσιμο στη διεύθυνση URL: %s.",
|
||||
"Attachments" : "Συνημμένα",
|
||||
"File" : "Αρχείο",
|
||||
"date" : "ημερομηνία",
|
||||
"Card not found" : "Η καρτέλα δεν βρέθηκε",
|
||||
"Path is already shared with this card" : "Η διαδρομή κοινοποιείται ήδη σε αυτήν την καρτέλα",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Μη έγκυρη ημερομηνία, η μορφή ημερομηνίας πρέπει να είναι ΕΕΕΕ-ΜΜ-ΗΗ",
|
||||
@@ -133,12 +117,10 @@
|
||||
"Select the board to link to a project" : "Επιλέξτε πίνακα και συνδέστε τον σε ένα έργο",
|
||||
"Search by board title" : "Αναζήτηση με το όνομα πίνακα",
|
||||
"Select board" : "Επιλογή πίνακα",
|
||||
"Move/copy card" : "Μετακίνηση/αντιγραφή κάρτας",
|
||||
"Select a board" : "Επιλογή ενός πίνακα",
|
||||
"No lists available" : "Δεν υπάρχουν διαθέσιμες λίστες",
|
||||
"Select a list" : "Επιλέξτε μια λίστα",
|
||||
"Move card" : "Μετακίνηση καρτέλας",
|
||||
"Copy card" : "Αντίγραφο κάρτας",
|
||||
"Select the card to link to a project" : "Επιλογή καρτέλας για σύνδεση στο έργο",
|
||||
"Link to card" : "Σύνδεσμος σε καρτέλα",
|
||||
"Select a card" : "Επιλογή μιας καρτέλας",
|
||||
@@ -226,7 +208,7 @@
|
||||
"Select a user to assign to this card…" : "Επιλέξτε έναν χρήστη για να του αναθέσετε αυτή την κάρτα...",
|
||||
"File to share" : "Αρχείο για κοινή χρήση",
|
||||
"Invalid path selected" : "Επιλέχθηκε μη έγκυρη διαδρομή",
|
||||
"Upload new files" : "Μεταφορτώστε νέα αρχεία",
|
||||
"Upload new files" : "Ανεβάστε νέα αρχεία",
|
||||
"Share from Files" : "Κοινή χρήση από Αρχεία",
|
||||
"Pending share" : "Κοινή χρήση σε εκκρεμότητα",
|
||||
"Add this attachment" : "Προσθήκη αυτού του συνημμένου",
|
||||
@@ -238,9 +220,9 @@
|
||||
"Modified" : "Τροποποιήθηκε",
|
||||
"Created" : "Δημιουργήθηκε",
|
||||
"The title cannot be empty." : "Ο τίτλος δεν μπορεί να είναι κενός.",
|
||||
"Cannot close unsaved card!" : "Αδυναμία κλεισίματος της κάρτας που δεν έχει αποθηκευτεί!",
|
||||
"Open in sidebar view" : "Άνοιγμα σε προβολή πλευρικής στήλης",
|
||||
"Open in bigger view" : "Άνοιγμα σε μεγαλύτερη προβολή",
|
||||
"Attachments" : "Συνημμένα",
|
||||
"Comments" : "Σχόλια",
|
||||
"Failed to load comments" : "Αποτυχία φόρτωσης σχολίων",
|
||||
"No comments yet. Begin the discussion!" : "Χωρίς σχόλια ακόμη. Ξεκινήστε την συζήτηση!",
|
||||
@@ -253,7 +235,6 @@
|
||||
"Reply" : "Απάντηση",
|
||||
"Update" : "Ενημέρωση",
|
||||
"Write a description …" : "Γράψτε μια περιγραφή…",
|
||||
"Could not save description" : "Αδυναμία αποθήκευσης της περιγραφής",
|
||||
"Description" : "Περιγραφή",
|
||||
"(Unsaved)" : "(Δεν αποθηκεύτηκε)",
|
||||
"(Saving…)" : "(Αποθήκευση...)",
|
||||
@@ -288,7 +269,6 @@
|
||||
"{count} comments, {unread} unread" : "{count} σχόλια, {unread} μη αναγνωσμένα",
|
||||
"Todo items" : "Στοιχεία todo",
|
||||
"Edit card title" : "Επεξεργασία τίτλου κάρτας",
|
||||
"Open link" : "Άνοιγμα συνδέσμου",
|
||||
"Card deleted" : "Η καρτέλα διαγράφηκε",
|
||||
"Edit title" : "Επεξεργασία τίτλου",
|
||||
"Assign to me" : "Ανάθεση σε εμένα",
|
||||
@@ -332,7 +312,6 @@
|
||||
"Limit board creation to some groups" : "Περιορισμός της δημιουργίας πινάκων σε ορισμένες ομάδες",
|
||||
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Οι χρήστες εκτός αυτών των ομάδων δεν θα μπορούν να δημιουργούν τους δικούς τους πίνακες, αλλά θα μπορούν να εργάζονται σε πίνακες που τους έχουν διαμοιραστεί.",
|
||||
"Cancel edit" : "Ακύρωση επεξεργασίας",
|
||||
"Save board" : "Αποθήκευση πίνακα",
|
||||
"Board {0} deleted" : "Διαγράφηκε {0} πίνακας ",
|
||||
"All cards" : "Όλες οι καρτέλες",
|
||||
"Only assigned cards" : "Μόνο καρτέλες που έχουν ανατεθεί",
|
||||
@@ -340,7 +319,6 @@
|
||||
"An error occurred" : "Παρουσιάστηκε σφάλμα",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Είστε βέβαιοι ότι θέλετε να διαγράψετε τον πίνακα {title}; Αυτό θα διαγράψει όλα τα δεδομένα του πίνακα συμπεριλαμβανομένων και των αρχειοθετημένων καρτών.",
|
||||
"Delete the board?" : "Διαγραφή του πίνακα;",
|
||||
"Exporting board..." : "Εξαγωγή πίνακα...",
|
||||
"Board details" : "Λεπτομέριες πίνακα",
|
||||
"Edit board" : "Επεξεργασία πίνακα",
|
||||
"Clone board" : "Κλώνος πίνακα",
|
||||
@@ -353,25 +331,15 @@
|
||||
"Assigned cards" : "Ανατεθειμένες καρτέλες",
|
||||
"No notifications" : "Δεν υπάρχουν ειδοποιήσεις",
|
||||
"Delete board" : "Διαγραφή πίνακα",
|
||||
"Importing board..." : "Εισαγωγή πίνακα...",
|
||||
"Board imported successfully" : "Ο πίνακας εισήχθη επιτυχώς",
|
||||
"Import board" : "Εισαγωγή πίνακα",
|
||||
"Clone {boardTitle}" : "Κλωνοποίηση {boardTitle}",
|
||||
"Clone cards" : "Κλωνοποίηση καρτών",
|
||||
"Clone assignments" : "Κλωνοποίηση αναθέσεων",
|
||||
"Clone labels" : "Κλωνοποίηση ετικετών",
|
||||
"Clone due dates" : "Κλωνοποίηση προθεσμιών",
|
||||
"Advanced options" : "Προχωρημένες επιλογές",
|
||||
"Move all cards to the first list" : "Μετακίνηση όλων των καρτών στην πρώτη λίστα",
|
||||
"Restore archived cards" : "Επαναφορά αρχειοθετημένων καρτών",
|
||||
"Clone" : "Κλωνοποίηση",
|
||||
"Export {boardTitle}" : "Εξαγωγή {boardTitle}",
|
||||
"Export as JSON" : "Εξαγωγή ως JSON",
|
||||
"Export as CSV" : "Εξαγωγή ως CSV",
|
||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Σημείωση: Μόνο η μορφή JSON υποστηρίζεται για εισαγωγή πίσω στην εφαρμογή Deck.",
|
||||
"Clone cards" : "Κάρτες κλώνου",
|
||||
"Advanced options" : "Επιλογές για προχωρημένους",
|
||||
"Clone" : "Κλώνος",
|
||||
"Export as CSV" : "Εξαγωγή σε CSV",
|
||||
"Export" : "Εξαγωγή",
|
||||
"Loading filtered view" : "Φόρτωση εμφάνισης με βάση το φίλτρο",
|
||||
"Search for {searchQuery} in other boards" : "Αναζήτηση για {searchQuery} σε άλλους πίνακες",
|
||||
"Today" : "Σήμερα",
|
||||
"Tomorrow" : "Αύριο",
|
||||
"No due" : "Χωρίς λήξη",
|
||||
"Search for {searchQuery} in all boards" : "Αναζήτηση για {searchQuery} σε όλους τους πίνακες",
|
||||
"No results found" : "Δεν βρέθηκαν αποτελέσματα",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Πίνακας Deck {name}\n* Τελευταία τροποποίηση στις {lastMod}",
|
||||
@@ -400,7 +368,6 @@
|
||||
"Something went wrong" : "Κάτι πήγε στραβά",
|
||||
"Failed to upload {name}" : "Αποτυχία μεταφόρτωσης {name}",
|
||||
"Maximum file size of {size} exceeded" : "Υπέρβαση επιτρεπόμενου μεγέθους αρχείου {size}",
|
||||
"Assigned users" : "Ανατεθειμένοι χρήστες",
|
||||
"Due date" : "Προθεσμία",
|
||||
"Error creating the share" : "Σφάλμα κατά τη δημιουργία της κοινοποίησης",
|
||||
"Share with a Deck card" : "Μοιραστείτε με μια καρτέλα Deck",
|
||||
@@ -412,9 +379,6 @@
|
||||
"Example Task 3" : "Παράδειγμα Εργασίας 3",
|
||||
"Example Task 2" : "Παράδειγμα Εργασίας 2",
|
||||
"Example Task 1" : "Παράδειγμα Εργασίας 1",
|
||||
"Move card to another board" : "Μετακίνηση καρτέλας σε άλλο πίνακα",
|
||||
"Today" : "Σήμερα",
|
||||
"Tomorrow" : "Αύριο",
|
||||
"No due" : "Χωρίς λήξη"
|
||||
"Move card to another board" : "Μετακίνηση καρτέλας σε άλλο πίνακα"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -122,14 +122,11 @@ OC.L10N.register(
|
||||
"4. Share, comment and collaborate!" : "4. Share, comment and collaborate!",
|
||||
"Create your first card!" : "Create your first card!",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s.",
|
||||
"Attachments" : "Attachments",
|
||||
"File" : "File",
|
||||
"date" : "date",
|
||||
"Card not found" : "Card not found",
|
||||
"Path is already shared with this card" : "Path is already shared with this card",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Invalid date, date format must be YYYY-MM-DD",
|
||||
"Personal planning and team project organization" : "Personal planning and team project organisation",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck is a kanban style organisation tool aimed at personal planning and project organisation for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organisation\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organised",
|
||||
"Personal planning and team project organization" : "Personal planning and team project organization",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized",
|
||||
"Add board" : "Add board",
|
||||
"Card details" : "Card details",
|
||||
"Select the board to link to a project" : "Select the board to link to a project",
|
||||
@@ -240,9 +237,9 @@ OC.L10N.register(
|
||||
"Modified" : "Modified",
|
||||
"Created" : "Created",
|
||||
"The title cannot be empty." : "The title cannot be empty.",
|
||||
"Cannot close unsaved card!" : "Cannot close unsaved card!",
|
||||
"Open in sidebar view" : "Open in sidebar view",
|
||||
"Open in bigger view" : "Open in bigger view",
|
||||
"Attachments" : "Attachments",
|
||||
"Comments" : "Comments",
|
||||
"Failed to load comments" : "Failed to load comments",
|
||||
"No comments yet. Begin the discussion!" : "No comments yet. Begin the discussion!",
|
||||
@@ -255,7 +252,6 @@ OC.L10N.register(
|
||||
"Reply" : "Reply",
|
||||
"Update" : "Update",
|
||||
"Write a description …" : "Write a description …",
|
||||
"Could not save description" : "Could not save description",
|
||||
"Description" : "Description",
|
||||
"(Unsaved)" : "(Unsaved)",
|
||||
"(Saving…)" : "(Saving…)",
|
||||
@@ -373,7 +369,9 @@ OC.L10N.register(
|
||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Note: Only the JSON format is supported for importing back into the Deck app.",
|
||||
"Export" : "Export",
|
||||
"Loading filtered view" : "Loading filtered view",
|
||||
"Search for {searchQuery} in other boards" : "Search for {searchQuery} in other boards",
|
||||
"Today" : "Today",
|
||||
"Tomorrow" : "Tomorrow",
|
||||
"No due" : "No due",
|
||||
"Search for {searchQuery} in all boards" : "Search for {searchQuery} in all boards",
|
||||
"No results found" : "No results found",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Deck board {name}\n* Last modified on {lastMod}",
|
||||
@@ -414,9 +412,6 @@ OC.L10N.register(
|
||||
"Example Task 3" : "Example Task 3",
|
||||
"Example Task 2" : "Example Task 2",
|
||||
"Example Task 1" : "Example Task 1",
|
||||
"Move card to another board" : "Move card to another board",
|
||||
"Today" : "Today",
|
||||
"Tomorrow" : "Tomorrow",
|
||||
"No due" : "No due"
|
||||
"Move card to another board" : "Move card to another board"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -120,14 +120,11 @@
|
||||
"4. Share, comment and collaborate!" : "4. Share, comment and collaborate!",
|
||||
"Create your first card!" : "Create your first card!",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s.",
|
||||
"Attachments" : "Attachments",
|
||||
"File" : "File",
|
||||
"date" : "date",
|
||||
"Card not found" : "Card not found",
|
||||
"Path is already shared with this card" : "Path is already shared with this card",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Invalid date, date format must be YYYY-MM-DD",
|
||||
"Personal planning and team project organization" : "Personal planning and team project organisation",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck is a kanban style organisation tool aimed at personal planning and project organisation for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organisation\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organised",
|
||||
"Personal planning and team project organization" : "Personal planning and team project organization",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized",
|
||||
"Add board" : "Add board",
|
||||
"Card details" : "Card details",
|
||||
"Select the board to link to a project" : "Select the board to link to a project",
|
||||
@@ -238,9 +235,9 @@
|
||||
"Modified" : "Modified",
|
||||
"Created" : "Created",
|
||||
"The title cannot be empty." : "The title cannot be empty.",
|
||||
"Cannot close unsaved card!" : "Cannot close unsaved card!",
|
||||
"Open in sidebar view" : "Open in sidebar view",
|
||||
"Open in bigger view" : "Open in bigger view",
|
||||
"Attachments" : "Attachments",
|
||||
"Comments" : "Comments",
|
||||
"Failed to load comments" : "Failed to load comments",
|
||||
"No comments yet. Begin the discussion!" : "No comments yet. Begin the discussion!",
|
||||
@@ -253,7 +250,6 @@
|
||||
"Reply" : "Reply",
|
||||
"Update" : "Update",
|
||||
"Write a description …" : "Write a description …",
|
||||
"Could not save description" : "Could not save description",
|
||||
"Description" : "Description",
|
||||
"(Unsaved)" : "(Unsaved)",
|
||||
"(Saving…)" : "(Saving…)",
|
||||
@@ -371,7 +367,9 @@
|
||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Note: Only the JSON format is supported for importing back into the Deck app.",
|
||||
"Export" : "Export",
|
||||
"Loading filtered view" : "Loading filtered view",
|
||||
"Search for {searchQuery} in other boards" : "Search for {searchQuery} in other boards",
|
||||
"Today" : "Today",
|
||||
"Tomorrow" : "Tomorrow",
|
||||
"No due" : "No due",
|
||||
"Search for {searchQuery} in all boards" : "Search for {searchQuery} in all boards",
|
||||
"No results found" : "No results found",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Deck board {name}\n* Last modified on {lastMod}",
|
||||
@@ -412,9 +410,6 @@
|
||||
"Example Task 3" : "Example Task 3",
|
||||
"Example Task 2" : "Example Task 2",
|
||||
"Example Task 1" : "Example Task 1",
|
||||
"Move card to another board" : "Move card to another board",
|
||||
"Today" : "Today",
|
||||
"Tomorrow" : "Tomorrow",
|
||||
"No due" : "No due"
|
||||
"Move card to another board" : "Move card to another board"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -63,8 +63,6 @@ OC.L10N.register(
|
||||
"Later" : "Poste",
|
||||
"copy" : "kopio",
|
||||
"Done" : "Farita",
|
||||
"Attachments" : "Dosieraj aldonaĵoj",
|
||||
"File" : "Dosiero",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Nevalida dato; datoformo estu JJJJ-MM-TT",
|
||||
"Select the board to link to a project" : "Elekti la tabulon ligotan al projekto",
|
||||
"Select board" : "Elekti tabulon",
|
||||
@@ -95,6 +93,7 @@ OC.L10N.register(
|
||||
"Download" : "Elŝuti",
|
||||
"Modified" : "Modifita",
|
||||
"Created" : "Kreita",
|
||||
"Attachments" : "Dosieraj aldonaĵoj",
|
||||
"Comments" : "Komentoj",
|
||||
"Save" : "Konservi",
|
||||
"Created:" : "Kreita:",
|
||||
@@ -121,6 +120,8 @@ OC.L10N.register(
|
||||
"Delete board" : "Forigi tabulon",
|
||||
"Advanced options" : "Detalaj agordoj",
|
||||
"Export" : "Eksporti",
|
||||
"Today" : "Hodiaŭ",
|
||||
"Tomorrow" : "Morgaŭ",
|
||||
"Close" : "Malfermi",
|
||||
"Link to a board" : "Ligilo al tabulo",
|
||||
"Maximum file size of {size} exceeded" : "Maksimuma dosiergrando {size} transpasita",
|
||||
@@ -132,8 +133,6 @@ OC.L10N.register(
|
||||
"Doing" : "Farata",
|
||||
"Example Task 3" : "Ekzempla tasko 3",
|
||||
"Example Task 2" : "Ekzempla tasko 2",
|
||||
"Example Task 1" : "Ekzempla tasko 1",
|
||||
"Today" : "Hodiaŭ",
|
||||
"Tomorrow" : "Morgaŭ"
|
||||
"Example Task 1" : "Ekzempla tasko 1"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -61,8 +61,6 @@
|
||||
"Later" : "Poste",
|
||||
"copy" : "kopio",
|
||||
"Done" : "Farita",
|
||||
"Attachments" : "Dosieraj aldonaĵoj",
|
||||
"File" : "Dosiero",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Nevalida dato; datoformo estu JJJJ-MM-TT",
|
||||
"Select the board to link to a project" : "Elekti la tabulon ligotan al projekto",
|
||||
"Select board" : "Elekti tabulon",
|
||||
@@ -93,6 +91,7 @@
|
||||
"Download" : "Elŝuti",
|
||||
"Modified" : "Modifita",
|
||||
"Created" : "Kreita",
|
||||
"Attachments" : "Dosieraj aldonaĵoj",
|
||||
"Comments" : "Komentoj",
|
||||
"Save" : "Konservi",
|
||||
"Created:" : "Kreita:",
|
||||
@@ -119,6 +118,8 @@
|
||||
"Delete board" : "Forigi tabulon",
|
||||
"Advanced options" : "Detalaj agordoj",
|
||||
"Export" : "Eksporti",
|
||||
"Today" : "Hodiaŭ",
|
||||
"Tomorrow" : "Morgaŭ",
|
||||
"Close" : "Malfermi",
|
||||
"Link to a board" : "Ligilo al tabulo",
|
||||
"Maximum file size of {size} exceeded" : "Maksimuma dosiergrando {size} transpasita",
|
||||
@@ -130,8 +131,6 @@
|
||||
"Doing" : "Farata",
|
||||
"Example Task 3" : "Ekzempla tasko 3",
|
||||
"Example Task 2" : "Ekzempla tasko 2",
|
||||
"Example Task 1" : "Ekzempla tasko 1",
|
||||
"Today" : "Hodiaŭ",
|
||||
"Tomorrow" : "Morgaŭ"
|
||||
"Example Task 1" : "Ekzempla tasko 1"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
78
l10n/es.js
78
l10n/es.js
@@ -37,9 +37,9 @@ OC.L10N.register(
|
||||
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ha archivado la tarjeta {card} en la lista {stack} del tablero {board}",
|
||||
"You have unarchived card {card} in list {stack} on board {board}" : "Has desarchivado la tarjeta {card} en la lista {stack} del tablero {board}",
|
||||
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} ha desarchivado la tarjeta {card} en la lista {stack} del tablero {board}",
|
||||
"You have marked the card {card} as done in list {stack} on board {board}" : "Ud. ha marcado la tarjeta {card} como completada en la lista {stack} del tablero {board}",
|
||||
"You have marked the card {card} as done in list {stack} on board {board}" : "Has marcado la tarjeta {card} como completada en la lista {stack} del tablero {board}",
|
||||
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} ha marcado la tarjeta {card} como completada en la lista {stack} del tablero {board}",
|
||||
"You have marked the card {card} as undone in list {stack} on board {board}" : "Ud. ha marcado la tarjeta {card} como no completada en la lista {stack} del tablero {board}",
|
||||
"You have marked the card {card} as undone in list {stack} on board {board}" : "Has marcado la tarjeta {card} como no completada en la lista {stack} del tablero {board}",
|
||||
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} ha marcado la tarjeta {card} como no completada en la lista {stack} del tablero {board}",
|
||||
"You have removed the due date of card {card}" : "Has eliminado la fecha de vencimiento de {card}",
|
||||
"{user} has removed the due date of card {card}" : "{user} ha eliminado la fecha de vencimiento de {card}",
|
||||
@@ -81,14 +81,10 @@ OC.L10N.register(
|
||||
"Could not write file to disk" : "No se ha podido escribir el archivo al disco",
|
||||
"A PHP extension stopped the file upload" : "Una extensión de PHP ha detenido la subida del archivo",
|
||||
"No file uploaded or file size exceeds maximum of %s" : "No se ha subido ningún archivo, o el tamaño del archivo excede el máximo de %s",
|
||||
"Invalid file type. Only JSON files are allowed." : "Tipo de archivo inválido. Solo se permiten archivos JSON",
|
||||
"Invalid JSON data" : "Datos JSON inválidos",
|
||||
"Failed to import board" : "Fallo al importar tablero",
|
||||
"Cards due today" : "Tarjetas que vencen hoy",
|
||||
"Cards due tomorrow" : "Tarjetas que vencen mañana",
|
||||
"Upcoming cards" : "Próximas tarjetas",
|
||||
"Load more" : "Cargar más",
|
||||
"Welcome to Nextcloud Deck!" : "¡Bienvenido a Nextcloud Deck!",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "La tarjeta \"%s\" en \"%s\" te ha sido asignada por %s.",
|
||||
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} te ha asigando la tarjeta {deck-card} de {deck-board} a ti.",
|
||||
"The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alcanzado su fecha límite.",
|
||||
@@ -98,7 +94,7 @@ OC.L10N.register(
|
||||
"The board \"%s\" has been shared with you by %s." : "El tablero \"%s\" ha sido compartido contigo por %s.",
|
||||
"{user} has shared {deck-board} with you." : "{user} ha compartido {deck-board} contigo.",
|
||||
"Deck board" : "Tablero Deck",
|
||||
"Owned by %1$s" : "Propiedad de %1$s",
|
||||
"Owned by %1$s" : "Apropiado por %1$s",
|
||||
"Deck boards, cards and comments" : "Tableros Deck, tarjetas y comentarios",
|
||||
"From %1$s, in %2$s/%3$s, owned by %4$s" : "De %1$s, en %2$s/%3$s, propiedad de %4$s",
|
||||
"Create a new deck card" : "Crear una nueva tarjeta de tablero",
|
||||
@@ -111,25 +107,15 @@ OC.L10N.register(
|
||||
"Action needed" : "Acción necesaria",
|
||||
"Later" : "Después",
|
||||
"copy" : "copiar",
|
||||
"Read more inside" : "Lea más, adentro",
|
||||
"Custom lists - click to rename!" : "Listas personalizadas - ¡Haga clic para renombrar!",
|
||||
"To Do" : "Por hacer",
|
||||
"In Progress" : "En progreso",
|
||||
"Done" : "Hecho",
|
||||
"1. Open to learn more about boards and cards" : "1. Abra aquí para aprender más sobre los tableros y las tarjetas",
|
||||
"2. Drag cards left and right, up and down" : "2. Arrastre las tarjetas a la izquierda y derecha, arriba y abajo",
|
||||
"3. Apply rich formatting and link content" : "3. Aplique formato enriquecido y contenido a los enlaces",
|
||||
"4. Share, comment and collaborate!" : "4. ¡Comparta, comente y colabore!",
|
||||
"Create your first card!" : "¡Cree su primera tarjeta!",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentario tiene más de %s caracteres.\nSe ha añadido como adjunto a la tarjeta con el nombre %s.\nAccesible en la URL: %s.",
|
||||
"Attachments" : "Adjuntos",
|
||||
"File" : "Archivo",
|
||||
"date" : "fecha",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentario tiene más de %s caracteres.\nAñadido como adjunto a la tarjeta con el nombre %s.\nAccesible en la URL: %s.",
|
||||
"Card not found" : "Tarjeta no encontrada",
|
||||
"Path is already shared with this card" : "La ruta ya se ha compartido con esta tarjeta",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Fecha no válida, el formato de las fechas debe ser AAAA-MM-DD",
|
||||
"Personal planning and team project organization" : "Planificación personal y organización de proyecto de equipo",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck es una herramienta de organización de estilo kanban dirigida a la planificación personal y la organización de proyectos para equipos, integrada a Nextcloud.\n\n\n- 📥 Agregue sus tareas a las tarjetas y póngalas en orden.\n- 📄 Escriba notas adicionales en Markdown\n- 🔖 Asigne etiquetas para una organización mejor\n- 👥 Comparta con su equipo, amigos o familia.\n- 📎 Adjunte archivos e incruste los mismos en su descripción Markdown\n- 💬 Discuta con su equipo usando comentarios.\n- ⚡ Mantenga un registro de los cambios en el flujo de actividad\n- 🚀 Organice su proyecto",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck es una herramienta de organización de estilo kanban dirigida a la planificación personal y la organización de proyectos para equipos integrados con Nextcloud.\n\n\n- 📥 Agrega tus tareas a las tarjetas y ordénalas.\n- 📄 Escriba notas adicionales\n- 🔖 Asignar etiquetas para una organización mejor\n- 👥 Comparte con tu equipo, amigos o familia.\n- 📎 Adjuntar archivos e incrustarlos en su descripción\n- 💬 Discuta con su equipo usando comentarios.\n- ⚡ Mantenga un registro de los cambios en el flujo de actividad\n- 🚀 Organiza tu proyecto",
|
||||
"Add board" : "Añadir tablero",
|
||||
"Card details" : "Detalles de la tarjeta",
|
||||
"Select the board to link to a project" : "Selecciona el tablero que enlazar a un proyecto",
|
||||
@@ -177,8 +163,8 @@ OC.L10N.register(
|
||||
"Hide archived cards" : "Ocultar tarjetas archivadas",
|
||||
"Show archived cards" : "Mostrar tarjetas archivadas",
|
||||
"Toggle compact mode" : "Mostrar/ocultar modo compacto",
|
||||
"Hide card cover images" : "Ocultar la imagen de portada de las tarjetas",
|
||||
"Show card cover images" : "Mostrar la imagen de portada de las tarjetas",
|
||||
"Hide card cover images" : "Ocultar la imagen principal de las tarjetas",
|
||||
"Show card cover images" : "Mostrar la imagen principal de las tarjetas",
|
||||
"Open details" : "Abrir detalles",
|
||||
"Details" : "Detalles",
|
||||
"Currently present people" : "Personas presentes actualmente",
|
||||
@@ -193,11 +179,11 @@ OC.L10N.register(
|
||||
"Undo" : "Deshacer",
|
||||
"Deleted cards" : "Cartas eliminadas",
|
||||
"Failed to create share with {displayName}" : "Fallo al crear el recurso compartido denominado {displayName}",
|
||||
"Are you sure you want to transfer the board {title} to {user}?" : "¿Está seguro de que quiere transferir el tablero {title} a {user}?",
|
||||
"Transfer the board." : "Transfiera el tablero.",
|
||||
"Are you sure you want to transfer the board {title} to {user}?" : "¿Estás seguro de que quieres transferir el tablero {título} a {usuario}?",
|
||||
"Transfer the board." : "Transfiere el tablero.",
|
||||
"Transfer" : "Transferir",
|
||||
"The board has been transferred to {user}" : "El tablero ha sido transferido a {user}",
|
||||
"Failed to transfer the board to {user}" : "Fallo al transferir el tablero a {user}",
|
||||
"The board has been transferred to {user}" : "El tablero ha sido transferido a {usuario}",
|
||||
"Failed to transfer the board to {user}" : "Failed to transfer the board to {user}",
|
||||
"Share board with a user, group or team …" : "Compartir tablero con un usuario, grupo o equipo …",
|
||||
"Searching for users, groups and teams …" : "Buscando usuarios, grupos y equipos …",
|
||||
"No participants found" : "No se encontraron participantes",
|
||||
@@ -230,7 +216,7 @@ OC.L10N.register(
|
||||
"Invalid path selected" : "Ruta seleccionada no válida",
|
||||
"Upload new files" : "Subir nuevos archivos",
|
||||
"Share from Files" : "Compartir desde Archivos",
|
||||
"Pending share" : "Recurso compartido pendiente",
|
||||
"Pending share" : "Pendiente de compartir",
|
||||
"Add this attachment" : "Añadir este adjunto",
|
||||
"Show in Files" : "Mostrar en Archivos",
|
||||
"Download" : "Descargar",
|
||||
@@ -240,9 +226,9 @@ OC.L10N.register(
|
||||
"Modified" : "Modificado",
|
||||
"Created" : "Creado",
|
||||
"The title cannot be empty." : "El título no puede estar vacío.",
|
||||
"Cannot close unsaved card!" : "¡No se puede cerrar esta tarjeta no guardada!",
|
||||
"Open in sidebar view" : "Abrir en vista de barra lateral",
|
||||
"Open in bigger view" : "Abrir en vista más grande",
|
||||
"Attachments" : "Adjuntos",
|
||||
"Comments" : "Comentarios",
|
||||
"Failed to load comments" : "Fallo al cargar los comentarios",
|
||||
"No comments yet. Begin the discussion!" : "Todavía no hay comentarios. ¡Comienza la discusión!",
|
||||
@@ -255,7 +241,6 @@ OC.L10N.register(
|
||||
"Reply" : "Responder",
|
||||
"Update" : "Actualizar",
|
||||
"Write a description …" : "Escribe una descripción...",
|
||||
"Could not save description" : "No se pudo guardar la descripción",
|
||||
"Description" : "Descripción",
|
||||
"(Unsaved)" : "(Sin salvar)",
|
||||
"(Saving…)" : "(Guardando...)",
|
||||
@@ -273,12 +258,12 @@ OC.L10N.register(
|
||||
"Set due date for this weekend" : "Establecer este fin de semana como fecha de vencimiento",
|
||||
"Next week – {timeLocale}" : "Próxima semana – {timeLocale}",
|
||||
"Set due date for next week" : "Establecer la próxima semana como fecha de vencimiento",
|
||||
"Assign a due date to this card…" : "Asignar una fecha de vencimiento a esta tarjeta…",
|
||||
"Assign a due date to this card…" : "Asignar una fecha de caducidad a esta tarjeta…",
|
||||
"Set a due date" : "Fijar una fecha límite",
|
||||
"Add due date" : "Añadir fecha de vencimiento",
|
||||
"Choose a date" : "Elija una fecha",
|
||||
"Remove due date" : "Eliminar fecha límite",
|
||||
"Mark as done" : "Marcar como completado",
|
||||
"Mark as done" : "Marcar como hecho",
|
||||
"Due at:" : "Vence el:",
|
||||
"Not done" : "No está finalizado",
|
||||
"Unarchive card" : "Desarchivar tarjeta",
|
||||
@@ -342,7 +327,6 @@ OC.L10N.register(
|
||||
"An error occurred" : "Ocurrió un error",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "¿Está seguro de querer eliminar el tablero {title}? Esto eliminará todos los datos del tablero incluyendo las tarjetas archivadas.",
|
||||
"Delete the board?" : "¿Borrar el tablero?",
|
||||
"Exporting board..." : "Exportando tablero...",
|
||||
"Board details" : "Detalles del tablero",
|
||||
"Edit board" : "Editar tablero",
|
||||
"Clone board" : "Clonar tablero",
|
||||
@@ -355,38 +339,34 @@ OC.L10N.register(
|
||||
"Assigned cards" : "Tarjetas asignadas",
|
||||
"No notifications" : "No hay notificaciones",
|
||||
"Delete board" : "Eliminar tablero",
|
||||
"Importing board..." : "Importando tablero...",
|
||||
"Board imported successfully" : "Se importó el tablero exitosamente",
|
||||
"Import board" : "Importar tablero",
|
||||
"Clone {boardTitle}" : "Clonar {boardTitle}",
|
||||
"Clone cards" : "Clonar tarjetas",
|
||||
"Clone assignments" : "Clonar asignaciones",
|
||||
"Clone labels" : "Clonar etiquetas",
|
||||
"Clone due dates" : "Clonar fechas de vencimiento",
|
||||
"Clone due dates" : "Clonar fechas límite",
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Move all cards to the first list" : "Mover todas las tarjetas a la primera lista",
|
||||
"Restore archived cards" : "Restaurar tarjetas archivadas",
|
||||
"Clone" : "Clonar",
|
||||
"Export {boardTitle}" : "Exportar {boardTitle}",
|
||||
"Export as JSON" : "Exportar como JSON",
|
||||
"Export as CSV" : "Exportar como CSV",
|
||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Nota: Solo el formato JSON es soportar al importar de vuelta en la app Deck.",
|
||||
"Export" : "Exportar",
|
||||
"Loading filtered view" : "Cargando vista filtrada",
|
||||
"Search for {searchQuery} in other boards" : "Buscar {searchQuery} en otros tableros",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"No due" : "Sin finalizar",
|
||||
"Search for {searchQuery} in all boards" : "Buscar {searchQuery} en todos los tableros",
|
||||
"No results found" : "No se encontraron resultados",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Tablero Deck {name}\n* Se modificó por última vez el {lastMod}",
|
||||
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Creado en {created}\n* Se modificó por última vez el {lastMod}\n* {nbAttachments} adjuntos\n* {nbComments} comentarios",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Tablero Deck {name}\n* Última modificación en {lastMod}",
|
||||
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Creada en {created}\n* Ultima moficiación en {lastMod}\n* {nbAttachments} adjuntos\n* {nbComments} comentarios",
|
||||
"{nbCards} cards" : "{nbCards} tarjetas",
|
||||
"Due on {date}" : "Vence en {date}",
|
||||
"{stack} in {board}" : "{stack} en {board}",
|
||||
"Click to expand description" : "Haga clic para expandir la descripción",
|
||||
"Click to expand comment" : "Haga clic para expandir el comentario",
|
||||
"Click to expand description" : "Pulse para expandir la descripción",
|
||||
"Click to expand comment" : "Pulse para expandir el comentario",
|
||||
"Create card" : "Crear tarjeta",
|
||||
"Create a new card" : "Crear una tarjeta nueva",
|
||||
"Create a new card" : "Crear una nueva tarjeta",
|
||||
"Card title" : "Título de la tarjeta",
|
||||
"Creating the new card …" : "Creando una tarjeta nueva …",
|
||||
"Creating the new card …" : "Creando una nueva tarjeta …",
|
||||
"Card \"{card}\" was added to \"{board}\"" : "La tarjeta \"{card}\" fue añadida a \"{board}\"",
|
||||
"Open card" : "Abrir tarjeta",
|
||||
"Close" : "Cerrar",
|
||||
@@ -402,8 +382,7 @@ OC.L10N.register(
|
||||
"Something went wrong" : "Algo ha ido mal",
|
||||
"Failed to upload {name}" : "Error al subir {name}",
|
||||
"Maximum file size of {size} exceeded" : "Tamaño máximo de archivo de {size} excedido",
|
||||
"Assigned users" : "Usuarios asignados",
|
||||
"Due date" : "Fecha de vencimiento",
|
||||
"Due date" : "Fecha de fin",
|
||||
"Error creating the share" : "Error creando el recurso compartido",
|
||||
"Share with a Deck card" : "Compartir con una tarjeta de Deck",
|
||||
"Share {file} with a Deck card" : "Compartir {file} con una tarjeta de Deck",
|
||||
@@ -414,9 +393,6 @@ OC.L10N.register(
|
||||
"Example Task 3" : "Tarea de ejemplo 3",
|
||||
"Example Task 2" : "Tarea de ejemplo 2",
|
||||
"Example Task 1" : "Tarea de ejemplo 1",
|
||||
"Move card to another board" : "Mover la tarjeta a otro tablero",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"No due" : "Sin finalizar"
|
||||
"Move card to another board" : "Mover la tarjeta a otro tablero"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
||||
78
l10n/es.json
78
l10n/es.json
@@ -35,9 +35,9 @@
|
||||
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ha archivado la tarjeta {card} en la lista {stack} del tablero {board}",
|
||||
"You have unarchived card {card} in list {stack} on board {board}" : "Has desarchivado la tarjeta {card} en la lista {stack} del tablero {board}",
|
||||
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} ha desarchivado la tarjeta {card} en la lista {stack} del tablero {board}",
|
||||
"You have marked the card {card} as done in list {stack} on board {board}" : "Ud. ha marcado la tarjeta {card} como completada en la lista {stack} del tablero {board}",
|
||||
"You have marked the card {card} as done in list {stack} on board {board}" : "Has marcado la tarjeta {card} como completada en la lista {stack} del tablero {board}",
|
||||
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} ha marcado la tarjeta {card} como completada en la lista {stack} del tablero {board}",
|
||||
"You have marked the card {card} as undone in list {stack} on board {board}" : "Ud. ha marcado la tarjeta {card} como no completada en la lista {stack} del tablero {board}",
|
||||
"You have marked the card {card} as undone in list {stack} on board {board}" : "Has marcado la tarjeta {card} como no completada en la lista {stack} del tablero {board}",
|
||||
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} ha marcado la tarjeta {card} como no completada en la lista {stack} del tablero {board}",
|
||||
"You have removed the due date of card {card}" : "Has eliminado la fecha de vencimiento de {card}",
|
||||
"{user} has removed the due date of card {card}" : "{user} ha eliminado la fecha de vencimiento de {card}",
|
||||
@@ -79,14 +79,10 @@
|
||||
"Could not write file to disk" : "No se ha podido escribir el archivo al disco",
|
||||
"A PHP extension stopped the file upload" : "Una extensión de PHP ha detenido la subida del archivo",
|
||||
"No file uploaded or file size exceeds maximum of %s" : "No se ha subido ningún archivo, o el tamaño del archivo excede el máximo de %s",
|
||||
"Invalid file type. Only JSON files are allowed." : "Tipo de archivo inválido. Solo se permiten archivos JSON",
|
||||
"Invalid JSON data" : "Datos JSON inválidos",
|
||||
"Failed to import board" : "Fallo al importar tablero",
|
||||
"Cards due today" : "Tarjetas que vencen hoy",
|
||||
"Cards due tomorrow" : "Tarjetas que vencen mañana",
|
||||
"Upcoming cards" : "Próximas tarjetas",
|
||||
"Load more" : "Cargar más",
|
||||
"Welcome to Nextcloud Deck!" : "¡Bienvenido a Nextcloud Deck!",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "La tarjeta \"%s\" en \"%s\" te ha sido asignada por %s.",
|
||||
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} te ha asigando la tarjeta {deck-card} de {deck-board} a ti.",
|
||||
"The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alcanzado su fecha límite.",
|
||||
@@ -96,7 +92,7 @@
|
||||
"The board \"%s\" has been shared with you by %s." : "El tablero \"%s\" ha sido compartido contigo por %s.",
|
||||
"{user} has shared {deck-board} with you." : "{user} ha compartido {deck-board} contigo.",
|
||||
"Deck board" : "Tablero Deck",
|
||||
"Owned by %1$s" : "Propiedad de %1$s",
|
||||
"Owned by %1$s" : "Apropiado por %1$s",
|
||||
"Deck boards, cards and comments" : "Tableros Deck, tarjetas y comentarios",
|
||||
"From %1$s, in %2$s/%3$s, owned by %4$s" : "De %1$s, en %2$s/%3$s, propiedad de %4$s",
|
||||
"Create a new deck card" : "Crear una nueva tarjeta de tablero",
|
||||
@@ -109,25 +105,15 @@
|
||||
"Action needed" : "Acción necesaria",
|
||||
"Later" : "Después",
|
||||
"copy" : "copiar",
|
||||
"Read more inside" : "Lea más, adentro",
|
||||
"Custom lists - click to rename!" : "Listas personalizadas - ¡Haga clic para renombrar!",
|
||||
"To Do" : "Por hacer",
|
||||
"In Progress" : "En progreso",
|
||||
"Done" : "Hecho",
|
||||
"1. Open to learn more about boards and cards" : "1. Abra aquí para aprender más sobre los tableros y las tarjetas",
|
||||
"2. Drag cards left and right, up and down" : "2. Arrastre las tarjetas a la izquierda y derecha, arriba y abajo",
|
||||
"3. Apply rich formatting and link content" : "3. Aplique formato enriquecido y contenido a los enlaces",
|
||||
"4. Share, comment and collaborate!" : "4. ¡Comparta, comente y colabore!",
|
||||
"Create your first card!" : "¡Cree su primera tarjeta!",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentario tiene más de %s caracteres.\nSe ha añadido como adjunto a la tarjeta con el nombre %s.\nAccesible en la URL: %s.",
|
||||
"Attachments" : "Adjuntos",
|
||||
"File" : "Archivo",
|
||||
"date" : "fecha",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentario tiene más de %s caracteres.\nAñadido como adjunto a la tarjeta con el nombre %s.\nAccesible en la URL: %s.",
|
||||
"Card not found" : "Tarjeta no encontrada",
|
||||
"Path is already shared with this card" : "La ruta ya se ha compartido con esta tarjeta",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Fecha no válida, el formato de las fechas debe ser AAAA-MM-DD",
|
||||
"Personal planning and team project organization" : "Planificación personal y organización de proyecto de equipo",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck es una herramienta de organización de estilo kanban dirigida a la planificación personal y la organización de proyectos para equipos, integrada a Nextcloud.\n\n\n- 📥 Agregue sus tareas a las tarjetas y póngalas en orden.\n- 📄 Escriba notas adicionales en Markdown\n- 🔖 Asigne etiquetas para una organización mejor\n- 👥 Comparta con su equipo, amigos o familia.\n- 📎 Adjunte archivos e incruste los mismos en su descripción Markdown\n- 💬 Discuta con su equipo usando comentarios.\n- ⚡ Mantenga un registro de los cambios en el flujo de actividad\n- 🚀 Organice su proyecto",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck es una herramienta de organización de estilo kanban dirigida a la planificación personal y la organización de proyectos para equipos integrados con Nextcloud.\n\n\n- 📥 Agrega tus tareas a las tarjetas y ordénalas.\n- 📄 Escriba notas adicionales\n- 🔖 Asignar etiquetas para una organización mejor\n- 👥 Comparte con tu equipo, amigos o familia.\n- 📎 Adjuntar archivos e incrustarlos en su descripción\n- 💬 Discuta con su equipo usando comentarios.\n- ⚡ Mantenga un registro de los cambios en el flujo de actividad\n- 🚀 Organiza tu proyecto",
|
||||
"Add board" : "Añadir tablero",
|
||||
"Card details" : "Detalles de la tarjeta",
|
||||
"Select the board to link to a project" : "Selecciona el tablero que enlazar a un proyecto",
|
||||
@@ -175,8 +161,8 @@
|
||||
"Hide archived cards" : "Ocultar tarjetas archivadas",
|
||||
"Show archived cards" : "Mostrar tarjetas archivadas",
|
||||
"Toggle compact mode" : "Mostrar/ocultar modo compacto",
|
||||
"Hide card cover images" : "Ocultar la imagen de portada de las tarjetas",
|
||||
"Show card cover images" : "Mostrar la imagen de portada de las tarjetas",
|
||||
"Hide card cover images" : "Ocultar la imagen principal de las tarjetas",
|
||||
"Show card cover images" : "Mostrar la imagen principal de las tarjetas",
|
||||
"Open details" : "Abrir detalles",
|
||||
"Details" : "Detalles",
|
||||
"Currently present people" : "Personas presentes actualmente",
|
||||
@@ -191,11 +177,11 @@
|
||||
"Undo" : "Deshacer",
|
||||
"Deleted cards" : "Cartas eliminadas",
|
||||
"Failed to create share with {displayName}" : "Fallo al crear el recurso compartido denominado {displayName}",
|
||||
"Are you sure you want to transfer the board {title} to {user}?" : "¿Está seguro de que quiere transferir el tablero {title} a {user}?",
|
||||
"Transfer the board." : "Transfiera el tablero.",
|
||||
"Are you sure you want to transfer the board {title} to {user}?" : "¿Estás seguro de que quieres transferir el tablero {título} a {usuario}?",
|
||||
"Transfer the board." : "Transfiere el tablero.",
|
||||
"Transfer" : "Transferir",
|
||||
"The board has been transferred to {user}" : "El tablero ha sido transferido a {user}",
|
||||
"Failed to transfer the board to {user}" : "Fallo al transferir el tablero a {user}",
|
||||
"The board has been transferred to {user}" : "El tablero ha sido transferido a {usuario}",
|
||||
"Failed to transfer the board to {user}" : "Failed to transfer the board to {user}",
|
||||
"Share board with a user, group or team …" : "Compartir tablero con un usuario, grupo o equipo …",
|
||||
"Searching for users, groups and teams …" : "Buscando usuarios, grupos y equipos …",
|
||||
"No participants found" : "No se encontraron participantes",
|
||||
@@ -228,7 +214,7 @@
|
||||
"Invalid path selected" : "Ruta seleccionada no válida",
|
||||
"Upload new files" : "Subir nuevos archivos",
|
||||
"Share from Files" : "Compartir desde Archivos",
|
||||
"Pending share" : "Recurso compartido pendiente",
|
||||
"Pending share" : "Pendiente de compartir",
|
||||
"Add this attachment" : "Añadir este adjunto",
|
||||
"Show in Files" : "Mostrar en Archivos",
|
||||
"Download" : "Descargar",
|
||||
@@ -238,9 +224,9 @@
|
||||
"Modified" : "Modificado",
|
||||
"Created" : "Creado",
|
||||
"The title cannot be empty." : "El título no puede estar vacío.",
|
||||
"Cannot close unsaved card!" : "¡No se puede cerrar esta tarjeta no guardada!",
|
||||
"Open in sidebar view" : "Abrir en vista de barra lateral",
|
||||
"Open in bigger view" : "Abrir en vista más grande",
|
||||
"Attachments" : "Adjuntos",
|
||||
"Comments" : "Comentarios",
|
||||
"Failed to load comments" : "Fallo al cargar los comentarios",
|
||||
"No comments yet. Begin the discussion!" : "Todavía no hay comentarios. ¡Comienza la discusión!",
|
||||
@@ -253,7 +239,6 @@
|
||||
"Reply" : "Responder",
|
||||
"Update" : "Actualizar",
|
||||
"Write a description …" : "Escribe una descripción...",
|
||||
"Could not save description" : "No se pudo guardar la descripción",
|
||||
"Description" : "Descripción",
|
||||
"(Unsaved)" : "(Sin salvar)",
|
||||
"(Saving…)" : "(Guardando...)",
|
||||
@@ -271,12 +256,12 @@
|
||||
"Set due date for this weekend" : "Establecer este fin de semana como fecha de vencimiento",
|
||||
"Next week – {timeLocale}" : "Próxima semana – {timeLocale}",
|
||||
"Set due date for next week" : "Establecer la próxima semana como fecha de vencimiento",
|
||||
"Assign a due date to this card…" : "Asignar una fecha de vencimiento a esta tarjeta…",
|
||||
"Assign a due date to this card…" : "Asignar una fecha de caducidad a esta tarjeta…",
|
||||
"Set a due date" : "Fijar una fecha límite",
|
||||
"Add due date" : "Añadir fecha de vencimiento",
|
||||
"Choose a date" : "Elija una fecha",
|
||||
"Remove due date" : "Eliminar fecha límite",
|
||||
"Mark as done" : "Marcar como completado",
|
||||
"Mark as done" : "Marcar como hecho",
|
||||
"Due at:" : "Vence el:",
|
||||
"Not done" : "No está finalizado",
|
||||
"Unarchive card" : "Desarchivar tarjeta",
|
||||
@@ -340,7 +325,6 @@
|
||||
"An error occurred" : "Ocurrió un error",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "¿Está seguro de querer eliminar el tablero {title}? Esto eliminará todos los datos del tablero incluyendo las tarjetas archivadas.",
|
||||
"Delete the board?" : "¿Borrar el tablero?",
|
||||
"Exporting board..." : "Exportando tablero...",
|
||||
"Board details" : "Detalles del tablero",
|
||||
"Edit board" : "Editar tablero",
|
||||
"Clone board" : "Clonar tablero",
|
||||
@@ -353,38 +337,34 @@
|
||||
"Assigned cards" : "Tarjetas asignadas",
|
||||
"No notifications" : "No hay notificaciones",
|
||||
"Delete board" : "Eliminar tablero",
|
||||
"Importing board..." : "Importando tablero...",
|
||||
"Board imported successfully" : "Se importó el tablero exitosamente",
|
||||
"Import board" : "Importar tablero",
|
||||
"Clone {boardTitle}" : "Clonar {boardTitle}",
|
||||
"Clone cards" : "Clonar tarjetas",
|
||||
"Clone assignments" : "Clonar asignaciones",
|
||||
"Clone labels" : "Clonar etiquetas",
|
||||
"Clone due dates" : "Clonar fechas de vencimiento",
|
||||
"Clone due dates" : "Clonar fechas límite",
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Move all cards to the first list" : "Mover todas las tarjetas a la primera lista",
|
||||
"Restore archived cards" : "Restaurar tarjetas archivadas",
|
||||
"Clone" : "Clonar",
|
||||
"Export {boardTitle}" : "Exportar {boardTitle}",
|
||||
"Export as JSON" : "Exportar como JSON",
|
||||
"Export as CSV" : "Exportar como CSV",
|
||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Nota: Solo el formato JSON es soportar al importar de vuelta en la app Deck.",
|
||||
"Export" : "Exportar",
|
||||
"Loading filtered view" : "Cargando vista filtrada",
|
||||
"Search for {searchQuery} in other boards" : "Buscar {searchQuery} en otros tableros",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"No due" : "Sin finalizar",
|
||||
"Search for {searchQuery} in all boards" : "Buscar {searchQuery} en todos los tableros",
|
||||
"No results found" : "No se encontraron resultados",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Tablero Deck {name}\n* Se modificó por última vez el {lastMod}",
|
||||
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Creado en {created}\n* Se modificó por última vez el {lastMod}\n* {nbAttachments} adjuntos\n* {nbComments} comentarios",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Tablero Deck {name}\n* Última modificación en {lastMod}",
|
||||
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Creada en {created}\n* Ultima moficiación en {lastMod}\n* {nbAttachments} adjuntos\n* {nbComments} comentarios",
|
||||
"{nbCards} cards" : "{nbCards} tarjetas",
|
||||
"Due on {date}" : "Vence en {date}",
|
||||
"{stack} in {board}" : "{stack} en {board}",
|
||||
"Click to expand description" : "Haga clic para expandir la descripción",
|
||||
"Click to expand comment" : "Haga clic para expandir el comentario",
|
||||
"Click to expand description" : "Pulse para expandir la descripción",
|
||||
"Click to expand comment" : "Pulse para expandir el comentario",
|
||||
"Create card" : "Crear tarjeta",
|
||||
"Create a new card" : "Crear una tarjeta nueva",
|
||||
"Create a new card" : "Crear una nueva tarjeta",
|
||||
"Card title" : "Título de la tarjeta",
|
||||
"Creating the new card …" : "Creando una tarjeta nueva …",
|
||||
"Creating the new card …" : "Creando una nueva tarjeta …",
|
||||
"Card \"{card}\" was added to \"{board}\"" : "La tarjeta \"{card}\" fue añadida a \"{board}\"",
|
||||
"Open card" : "Abrir tarjeta",
|
||||
"Close" : "Cerrar",
|
||||
@@ -400,8 +380,7 @@
|
||||
"Something went wrong" : "Algo ha ido mal",
|
||||
"Failed to upload {name}" : "Error al subir {name}",
|
||||
"Maximum file size of {size} exceeded" : "Tamaño máximo de archivo de {size} excedido",
|
||||
"Assigned users" : "Usuarios asignados",
|
||||
"Due date" : "Fecha de vencimiento",
|
||||
"Due date" : "Fecha de fin",
|
||||
"Error creating the share" : "Error creando el recurso compartido",
|
||||
"Share with a Deck card" : "Compartir con una tarjeta de Deck",
|
||||
"Share {file} with a Deck card" : "Compartir {file} con una tarjeta de Deck",
|
||||
@@ -412,9 +391,6 @@
|
||||
"Example Task 3" : "Tarea de ejemplo 3",
|
||||
"Example Task 2" : "Tarea de ejemplo 2",
|
||||
"Example Task 1" : "Tarea de ejemplo 1",
|
||||
"Move card to another board" : "Mover la tarjeta a otro tablero",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"No due" : "Sin finalizar"
|
||||
"Move card to another board" : "Mover la tarjeta a otro tablero"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -14,7 +14,6 @@ OC.L10N.register(
|
||||
"Action needed" : "Acción requerida",
|
||||
"Later" : "Después",
|
||||
"Done" : "Terminado",
|
||||
"File" : "Archivo",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||
"Cancel" : "Cancelar",
|
||||
"File already exists" : "El archivo ya existe",
|
||||
@@ -62,11 +61,11 @@ OC.L10N.register(
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Export" : "Exportar",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Close" : "Cerrar",
|
||||
"Due date" : "Fecha de vencimiento",
|
||||
"Share" : "Compartir",
|
||||
"Personal" : "Personal",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana"
|
||||
"Personal" : "Personal"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
"Action needed" : "Acción requerida",
|
||||
"Later" : "Después",
|
||||
"Done" : "Terminado",
|
||||
"File" : "Archivo",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||
"Cancel" : "Cancelar",
|
||||
"File already exists" : "El archivo ya existe",
|
||||
@@ -60,11 +59,11 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Export" : "Exportar",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Close" : "Cerrar",
|
||||
"Due date" : "Fecha de vencimiento",
|
||||
"Share" : "Compartir",
|
||||
"Personal" : "Personal",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana"
|
||||
"Personal" : "Personal"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -42,8 +42,6 @@ OC.L10N.register(
|
||||
"copy" : "copiar",
|
||||
"In Progress" : "En progreso",
|
||||
"Done" : "Hecho",
|
||||
"Attachments" : "Adjuntos",
|
||||
"File" : "Archivo",
|
||||
"Card not found" : "Tarjeta no encontrada",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, favor de seguir el formato AAAA-MM-DD",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck es una herramienta de organización de estilo kanban dirigida a la planificación personal y la organización de proyectos para equipos integrados con Nextcloud.\n\n\n- 📥 Agrega tus tareas a las tarjetas y ordénalas.\n- 📄 Escriba notas adicionales\n- 🔖 Asignar etiquetas para una organización mejor\n- 👥 Comparte con tu equipo, amigos o familia.\n- 📎 Adjuntar archivos e incrustarlos en su descripción\n- 💬 Discuta con su equipo usando comentarios.\n- ⚡ Mantenga un registro de los cambios en el flujo de actividad\n- 🚀 Organiza tu proyecto",
|
||||
@@ -78,6 +76,7 @@ OC.L10N.register(
|
||||
"Download" : "Descargar",
|
||||
"Modified" : "Modificado",
|
||||
"Created" : "Creado",
|
||||
"Attachments" : "Adjuntos",
|
||||
"Comments" : "Comentarios",
|
||||
"Save" : "Guardar",
|
||||
"Created:" : "Creado:",
|
||||
@@ -104,6 +103,9 @@ OC.L10N.register(
|
||||
"Delete board" : "Eliminar Tablero",
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Export" : "Exportar",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"No due" : "Sin finalizar",
|
||||
"Create card" : "Crear tarjeta",
|
||||
"Create a new card" : "Crear una nueva tarjeta",
|
||||
"Card title" : "Título de la tarjeta",
|
||||
@@ -114,9 +116,6 @@ OC.L10N.register(
|
||||
"Share with a Deck card" : "Compartir con una tarjeta del Tablero",
|
||||
"Share {file} with a Deck card" : "Compartir {file} con una tarjeta del Tablero",
|
||||
"Share" : "Compartir",
|
||||
"Personal" : "Personal",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"No due" : "Sin finalizar"
|
||||
"Personal" : "Personal"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
||||
@@ -40,8 +40,6 @@
|
||||
"copy" : "copiar",
|
||||
"In Progress" : "En progreso",
|
||||
"Done" : "Hecho",
|
||||
"Attachments" : "Adjuntos",
|
||||
"File" : "Archivo",
|
||||
"Card not found" : "Tarjeta no encontrada",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, favor de seguir el formato AAAA-MM-DD",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck es una herramienta de organización de estilo kanban dirigida a la planificación personal y la organización de proyectos para equipos integrados con Nextcloud.\n\n\n- 📥 Agrega tus tareas a las tarjetas y ordénalas.\n- 📄 Escriba notas adicionales\n- 🔖 Asignar etiquetas para una organización mejor\n- 👥 Comparte con tu equipo, amigos o familia.\n- 📎 Adjuntar archivos e incrustarlos en su descripción\n- 💬 Discuta con su equipo usando comentarios.\n- ⚡ Mantenga un registro de los cambios en el flujo de actividad\n- 🚀 Organiza tu proyecto",
|
||||
@@ -76,6 +74,7 @@
|
||||
"Download" : "Descargar",
|
||||
"Modified" : "Modificado",
|
||||
"Created" : "Creado",
|
||||
"Attachments" : "Adjuntos",
|
||||
"Comments" : "Comentarios",
|
||||
"Save" : "Guardar",
|
||||
"Created:" : "Creado:",
|
||||
@@ -102,6 +101,9 @@
|
||||
"Delete board" : "Eliminar Tablero",
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Export" : "Exportar",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"No due" : "Sin finalizar",
|
||||
"Create card" : "Crear tarjeta",
|
||||
"Create a new card" : "Crear una nueva tarjeta",
|
||||
"Card title" : "Título de la tarjeta",
|
||||
@@ -112,9 +114,6 @@
|
||||
"Share with a Deck card" : "Compartir con una tarjeta del Tablero",
|
||||
"Share {file} with a Deck card" : "Compartir {file} con una tarjeta del Tablero",
|
||||
"Share" : "Compartir",
|
||||
"Personal" : "Personal",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"No due" : "Sin finalizar"
|
||||
"Personal" : "Personal"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -19,7 +19,6 @@ OC.L10N.register(
|
||||
"Later" : "Después",
|
||||
"In Progress" : "En progreso",
|
||||
"Done" : "Terminado",
|
||||
"File" : "Archivo",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||
"Cancel" : "Cancelar",
|
||||
"File already exists" : "El archivo ya existe",
|
||||
@@ -66,10 +65,11 @@ OC.L10N.register(
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Export" : "Exportar",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Close" : "Cerrar",
|
||||
"Due date" : "Fecha de vencimiento",
|
||||
"Share" : "Compartir",
|
||||
"Personal" : "Personal",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana"
|
||||
"Personal" : "Personal"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
"Later" : "Después",
|
||||
"In Progress" : "En progreso",
|
||||
"Done" : "Terminado",
|
||||
"File" : "Archivo",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||
"Cancel" : "Cancelar",
|
||||
"File already exists" : "El archivo ya existe",
|
||||
@@ -64,10 +63,11 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Export" : "Exportar",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Close" : "Cerrar",
|
||||
"Due date" : "Fecha de vencimiento",
|
||||
"Share" : "Compartir",
|
||||
"Personal" : "Personal",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana"
|
||||
"Personal" : "Personal"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -19,7 +19,6 @@ OC.L10N.register(
|
||||
"Later" : "Después",
|
||||
"copy" : "Copiar",
|
||||
"Done" : "Terminado",
|
||||
"File" : "Archivo",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||
"Cancel" : "Cancelar",
|
||||
"File already exists" : "El archivo ya existe",
|
||||
@@ -33,7 +32,6 @@ OC.L10N.register(
|
||||
"Tags" : "Etiquetas",
|
||||
"Activity" : "Actividad",
|
||||
"Undo" : "Deshacer",
|
||||
"Transfer" : "Transferencia",
|
||||
"Can edit" : "Puede editar",
|
||||
"Can share" : "Puede compartir",
|
||||
"Owner" : "Dueño",
|
||||
@@ -59,7 +57,6 @@ OC.L10N.register(
|
||||
"Search" : "Buscar",
|
||||
"Archived boards" : "Tableros archivados",
|
||||
"Shared with you" : "Compartido con usted",
|
||||
"Cancel edit" : "Cancelar edición",
|
||||
"Board details" : "Detalles del tablero",
|
||||
"Edit board" : "Editar el tablero",
|
||||
"Unarchive board" : "Desarchivar tablero",
|
||||
@@ -68,11 +65,11 @@ OC.L10N.register(
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Export" : "Exportar",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Close" : "Cerrar",
|
||||
"Due date" : "Fecha de vencimiento",
|
||||
"Share" : "Compartir",
|
||||
"Personal" : "Personal",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana"
|
||||
"Personal" : "Personal"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
"Later" : "Después",
|
||||
"copy" : "Copiar",
|
||||
"Done" : "Terminado",
|
||||
"File" : "Archivo",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||
"Cancel" : "Cancelar",
|
||||
"File already exists" : "El archivo ya existe",
|
||||
@@ -31,7 +30,6 @@
|
||||
"Tags" : "Etiquetas",
|
||||
"Activity" : "Actividad",
|
||||
"Undo" : "Deshacer",
|
||||
"Transfer" : "Transferencia",
|
||||
"Can edit" : "Puede editar",
|
||||
"Can share" : "Puede compartir",
|
||||
"Owner" : "Dueño",
|
||||
@@ -57,7 +55,6 @@
|
||||
"Search" : "Buscar",
|
||||
"Archived boards" : "Tableros archivados",
|
||||
"Shared with you" : "Compartido con usted",
|
||||
"Cancel edit" : "Cancelar edición",
|
||||
"Board details" : "Detalles del tablero",
|
||||
"Edit board" : "Editar el tablero",
|
||||
"Unarchive board" : "Desarchivar tablero",
|
||||
@@ -66,11 +63,11 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Export" : "Exportar",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Close" : "Cerrar",
|
||||
"Due date" : "Fecha de vencimiento",
|
||||
"Share" : "Compartir",
|
||||
"Personal" : "Personal",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana"
|
||||
"Personal" : "Personal"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -18,7 +18,6 @@ OC.L10N.register(
|
||||
"Action needed" : "Acción requerida",
|
||||
"Later" : "Después",
|
||||
"Done" : "Terminado",
|
||||
"File" : "Archivo",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||
"Cancel" : "Cancelar",
|
||||
"File already exists" : "El archivo ya existe",
|
||||
@@ -65,10 +64,11 @@ OC.L10N.register(
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Export" : "Exportar",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Close" : "Cerrar",
|
||||
"Due date" : "Fecha de vencimiento",
|
||||
"Share" : "Compartir",
|
||||
"Personal" : "Personal",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana"
|
||||
"Personal" : "Personal"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
"Action needed" : "Acción requerida",
|
||||
"Later" : "Después",
|
||||
"Done" : "Terminado",
|
||||
"File" : "Archivo",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||
"Cancel" : "Cancelar",
|
||||
"File already exists" : "El archivo ya existe",
|
||||
@@ -63,10 +62,11 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Export" : "Exportar",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Close" : "Cerrar",
|
||||
"Due date" : "Fecha de vencimiento",
|
||||
"Share" : "Compartir",
|
||||
"Personal" : "Personal",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana"
|
||||
"Personal" : "Personal"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -18,7 +18,6 @@ OC.L10N.register(
|
||||
"Action needed" : "Acción requerida",
|
||||
"Later" : "Después",
|
||||
"Done" : "Terminado",
|
||||
"File" : "Archivo",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||
"Cancel" : "Cancelar",
|
||||
"File already exists" : "El archivo ya existe",
|
||||
@@ -65,11 +64,11 @@ OC.L10N.register(
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Export" : "Exportar",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Close" : "Cerrar",
|
||||
"Due date" : "Fecha de vencimiento",
|
||||
"Share" : "Compartir",
|
||||
"Personal" : "Personal",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana"
|
||||
"Personal" : "Personal"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
"Action needed" : "Acción requerida",
|
||||
"Later" : "Después",
|
||||
"Done" : "Terminado",
|
||||
"File" : "Archivo",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||
"Cancel" : "Cancelar",
|
||||
"File already exists" : "El archivo ya existe",
|
||||
@@ -63,11 +62,11 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Export" : "Exportar",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Close" : "Cerrar",
|
||||
"Due date" : "Fecha de vencimiento",
|
||||
"Share" : "Compartir",
|
||||
"Personal" : "Personal",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana"
|
||||
"Personal" : "Personal"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -101,8 +101,6 @@ OC.L10N.register(
|
||||
"To Do" : "Por hacer",
|
||||
"Done" : "Terminado",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentario tiene más de %s caracteres.\n Añadido como un archivo adjunto a la tarjeta con el nombre %s.\n Accesible en la URL: %s.",
|
||||
"Attachments" : "Adjuntos",
|
||||
"File" : "Archivo",
|
||||
"Card not found" : "No se encontró la tarjeta",
|
||||
"Path is already shared with this card" : "La ruta ya está compartida con esta tarjeta",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||
@@ -207,6 +205,7 @@ OC.L10N.register(
|
||||
"The title cannot be empty." : "El título no puede estar vacío.",
|
||||
"Open in sidebar view" : "Abrir en vista de barra lateral",
|
||||
"Open in bigger view" : "Abrir en vista más grande",
|
||||
"Attachments" : "Adjuntos",
|
||||
"Comments" : "Comentarios",
|
||||
"Failed to load comments" : "Error al cargar los comentarios",
|
||||
"No comments yet. Begin the discussion!" : "Aún no hay comentarios. ¡Inicia la discusión!",
|
||||
@@ -285,6 +284,9 @@ OC.L10N.register(
|
||||
"Export as CSV" : "Exportar como CSV",
|
||||
"Export" : "Exportar",
|
||||
"Loading filtered view" : "Cargando vista filtrada",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"No due" : "Sin vencimiento",
|
||||
"Search for {searchQuery} in all boards" : "Buscar {searchQuery} en todos los tableros",
|
||||
"No results found" : "No se encontraron resultados",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Tablero de Deck {name}\n * Última modificación el {lastMod}",
|
||||
@@ -322,9 +324,6 @@ OC.L10N.register(
|
||||
"Example Task 3" : "Tarea de ejemplo 3",
|
||||
"Example Task 2" : "Tarea de ejemplo 2",
|
||||
"Example Task 1" : "Tarea de ejemplo 1",
|
||||
"Move card to another board" : "Mover tarjeta a otro tablero",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"No due" : "Sin vencimiento"
|
||||
"Move card to another board" : "Mover tarjeta a otro tablero"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
||||
@@ -99,8 +99,6 @@
|
||||
"To Do" : "Por hacer",
|
||||
"Done" : "Terminado",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentario tiene más de %s caracteres.\n Añadido como un archivo adjunto a la tarjeta con el nombre %s.\n Accesible en la URL: %s.",
|
||||
"Attachments" : "Adjuntos",
|
||||
"File" : "Archivo",
|
||||
"Card not found" : "No se encontró la tarjeta",
|
||||
"Path is already shared with this card" : "La ruta ya está compartida con esta tarjeta",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||
@@ -205,6 +203,7 @@
|
||||
"The title cannot be empty." : "El título no puede estar vacío.",
|
||||
"Open in sidebar view" : "Abrir en vista de barra lateral",
|
||||
"Open in bigger view" : "Abrir en vista más grande",
|
||||
"Attachments" : "Adjuntos",
|
||||
"Comments" : "Comentarios",
|
||||
"Failed to load comments" : "Error al cargar los comentarios",
|
||||
"No comments yet. Begin the discussion!" : "Aún no hay comentarios. ¡Inicia la discusión!",
|
||||
@@ -283,6 +282,9 @@
|
||||
"Export as CSV" : "Exportar como CSV",
|
||||
"Export" : "Exportar",
|
||||
"Loading filtered view" : "Cargando vista filtrada",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"No due" : "Sin vencimiento",
|
||||
"Search for {searchQuery} in all boards" : "Buscar {searchQuery} en todos los tableros",
|
||||
"No results found" : "No se encontraron resultados",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Tablero de Deck {name}\n * Última modificación el {lastMod}",
|
||||
@@ -320,9 +322,6 @@
|
||||
"Example Task 3" : "Tarea de ejemplo 3",
|
||||
"Example Task 2" : "Tarea de ejemplo 2",
|
||||
"Example Task 1" : "Tarea de ejemplo 1",
|
||||
"Move card to another board" : "Mover tarjeta a otro tablero",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"No due" : "Sin vencimiento"
|
||||
"Move card to another board" : "Mover tarjeta a otro tablero"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -19,7 +19,6 @@ OC.L10N.register(
|
||||
"Later" : "Después",
|
||||
"To Do" : "Por hacer",
|
||||
"Done" : "Terminado",
|
||||
"File" : "Archivo",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||
"Cancel" : "Cancelar",
|
||||
"File already exists" : "El archivo ya existe",
|
||||
@@ -66,10 +65,11 @@ OC.L10N.register(
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Export" : "Exportar",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Close" : "Cerrar",
|
||||
"Due date" : "Fecha de vencimiento",
|
||||
"Share" : "Compartir",
|
||||
"Personal" : "Personal",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana"
|
||||
"Personal" : "Personal"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
"Later" : "Después",
|
||||
"To Do" : "Por hacer",
|
||||
"Done" : "Terminado",
|
||||
"File" : "Archivo",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||
"Cancel" : "Cancelar",
|
||||
"File already exists" : "El archivo ya existe",
|
||||
@@ -64,10 +63,11 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Export" : "Exportar",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Close" : "Cerrar",
|
||||
"Due date" : "Fecha de vencimiento",
|
||||
"Share" : "Compartir",
|
||||
"Personal" : "Personal",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana"
|
||||
"Personal" : "Personal"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -14,7 +14,6 @@ OC.L10N.register(
|
||||
"Action needed" : "Acción requerida",
|
||||
"Later" : "Después",
|
||||
"Done" : "Terminado",
|
||||
"File" : "Archivo",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||
"Cancel" : "Cancelar",
|
||||
"File already exists" : "El archivo ya existe",
|
||||
@@ -61,11 +60,11 @@ OC.L10N.register(
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Export" : "Exportar",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Close" : "Cerrar",
|
||||
"Due date" : "Fecha de vencimiento",
|
||||
"Share" : "Compartir",
|
||||
"Personal" : "Personal",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana"
|
||||
"Personal" : "Personal"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
"Action needed" : "Acción requerida",
|
||||
"Later" : "Después",
|
||||
"Done" : "Terminado",
|
||||
"File" : "Archivo",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||
"Cancel" : "Cancelar",
|
||||
"File already exists" : "El archivo ya existe",
|
||||
@@ -59,11 +58,11 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Export" : "Exportar",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Close" : "Cerrar",
|
||||
"Due date" : "Fecha de vencimiento",
|
||||
"Share" : "Compartir",
|
||||
"Personal" : "Personal",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana"
|
||||
"Personal" : "Personal"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -97,8 +97,6 @@ OC.L10N.register(
|
||||
"To Do" : "Pendiente",
|
||||
"In Progress" : "En proceso",
|
||||
"Done" : "Terminado",
|
||||
"Attachments" : "Adjuntos",
|
||||
"File" : "Archivo",
|
||||
"Card not found" : "No se encontró la tarjeta",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||
"Add board" : "Añadir pizarra",
|
||||
@@ -148,6 +146,7 @@ OC.L10N.register(
|
||||
"Download" : "Descargar",
|
||||
"Modified" : "Modificado",
|
||||
"Created" : "Creado",
|
||||
"Attachments" : "Adjuntos",
|
||||
"Comments" : "Comentarios",
|
||||
"Save" : "Guardar",
|
||||
"Created:" : "Creado:",
|
||||
@@ -187,12 +186,12 @@ OC.L10N.register(
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Clone" : "Clonar",
|
||||
"Export" : "Exportar",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Close" : "Cerrar",
|
||||
"Due date" : "Fecha de vencimiento",
|
||||
"Error creating the share" : "Error creando el recurso compartido",
|
||||
"Share" : "Compartir",
|
||||
"Personal" : "Personal",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana"
|
||||
"Personal" : "Personal"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
||||
@@ -95,8 +95,6 @@
|
||||
"To Do" : "Pendiente",
|
||||
"In Progress" : "En proceso",
|
||||
"Done" : "Terminado",
|
||||
"Attachments" : "Adjuntos",
|
||||
"File" : "Archivo",
|
||||
"Card not found" : "No se encontró la tarjeta",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||
"Add board" : "Añadir pizarra",
|
||||
@@ -146,6 +144,7 @@
|
||||
"Download" : "Descargar",
|
||||
"Modified" : "Modificado",
|
||||
"Created" : "Creado",
|
||||
"Attachments" : "Adjuntos",
|
||||
"Comments" : "Comentarios",
|
||||
"Save" : "Guardar",
|
||||
"Created:" : "Creado:",
|
||||
@@ -185,12 +184,12 @@
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Clone" : "Clonar",
|
||||
"Export" : "Exportar",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Close" : "Cerrar",
|
||||
"Due date" : "Fecha de vencimiento",
|
||||
"Error creating the share" : "Error creando el recurso compartido",
|
||||
"Share" : "Compartir",
|
||||
"Personal" : "Personal",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana"
|
||||
"Personal" : "Personal"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -14,7 +14,6 @@ OC.L10N.register(
|
||||
"Action needed" : "Acción requerida",
|
||||
"Later" : "Después",
|
||||
"Done" : "Terminado",
|
||||
"File" : "Archivo",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||
"Cancel" : "Cancelar",
|
||||
"File already exists" : "El archivo ya existe",
|
||||
@@ -61,11 +60,11 @@ OC.L10N.register(
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Advanced options" : "Opciones avanzadas",
|
||||
"Export" : "Exportar",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Close" : "Cerrar",
|
||||
"Due date" : "Fecha de vencimiento",
|
||||
"Share" : "Compartir",
|
||||
"Personal" : "Personal",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana"
|
||||
"Personal" : "Personal"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user