Compare commits
122 Commits
v1.2.0
...
enh/attach
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
13d57f7a8d | ||
|
|
638e8c152e | ||
|
|
cbfee393fd | ||
|
|
90cf64481e | ||
|
|
d1db72fcf2 | ||
|
|
89efcdee62 | ||
|
|
96e9f8275f | ||
|
|
9082075949 | ||
|
|
9f708e54c9 | ||
|
|
84fbbafcfb | ||
|
|
da24176aec | ||
|
|
06a973ae02 | ||
|
|
2748b4a0b1 | ||
|
|
7d88535771 | ||
|
|
dd5f47cecd | ||
|
|
81c3a4ff60 | ||
|
|
7a53076b9b | ||
|
|
cb3403f659 | ||
|
|
60a6ed124f | ||
|
|
302bf52312 | ||
|
|
5940f3a353 | ||
|
|
f1845f1b09 | ||
|
|
165656f930 | ||
|
|
118dd5f424 | ||
|
|
b66326cdf3 | ||
|
|
4e92faa517 | ||
|
|
34f45d985f | ||
|
|
5ee2a07e49 | ||
|
|
2c8c895ee3 | ||
|
|
9d91d41a56 | ||
|
|
7cc9cf26ef | ||
|
|
1eabb3ee2a | ||
|
|
d0a4804143 | ||
|
|
acff4ae8c3 | ||
|
|
e22fbb7277 | ||
|
|
44a88069db | ||
|
|
1377f24442 | ||
|
|
9864feabec | ||
|
|
2d6de87f4f | ||
|
|
4f1cc9197c | ||
|
|
c48d29efdb | ||
|
|
7013e67e67 | ||
|
|
b1ee728acb | ||
|
|
d04eff6b46 | ||
|
|
5fa3b242b3 | ||
|
|
3a9298c6a1 | ||
|
|
267c7f4b46 | ||
|
|
779cfb818d | ||
|
|
3bb1775a1c | ||
|
|
1170ad71e9 | ||
|
|
848e700016 | ||
|
|
6d6740f998 | ||
|
|
b7a1420523 | ||
|
|
149078d585 | ||
|
|
03d4f073d8 | ||
|
|
423499b412 | ||
|
|
31cd6471ce | ||
|
|
8dcf5bd289 | ||
|
|
189a89cf6a | ||
|
|
e9a85f31f8 | ||
|
|
e65734f480 | ||
|
|
7a632de16a | ||
|
|
48908e6bc8 | ||
|
|
dde4c0e0b4 | ||
|
|
f4a52b51c4 | ||
|
|
b85309edf3 | ||
|
|
2164cd070c | ||
|
|
4fb2139bf0 | ||
|
|
5ed8cef229 | ||
|
|
c226187e78 | ||
|
|
8e0d237444 | ||
|
|
dea66fcfb7 | ||
|
|
c262e85fec | ||
|
|
6301eece75 | ||
|
|
e511ad01dc | ||
|
|
eea81b6a18 | ||
|
|
0e80c431f4 | ||
|
|
d3b763cadb | ||
|
|
21e00703e5 | ||
|
|
b314619039 | ||
|
|
4015b57025 | ||
|
|
26087f95af | ||
|
|
5c32133687 | ||
|
|
2972aa30f9 | ||
|
|
a429d61a29 | ||
|
|
7a4da3d2d3 | ||
|
|
91e931d82d | ||
|
|
2822f480f1 | ||
|
|
622106d5de | ||
|
|
af9abe1aa3 | ||
|
|
9af565b53b | ||
|
|
600a7a0786 | ||
|
|
f8a518a55b | ||
|
|
84e93c2798 | ||
|
|
61537b1dea | ||
|
|
d444686eb6 | ||
|
|
79d979561f | ||
|
|
238512104a | ||
|
|
392896efab | ||
|
|
b1fe3d9862 | ||
|
|
50d949e8be | ||
|
|
e3d72ac42b | ||
|
|
6983458169 | ||
|
|
480ec945d0 | ||
|
|
19b005ccfa | ||
|
|
6e979c5b86 | ||
|
|
ce3e969e34 | ||
|
|
d9a9a269b7 | ||
|
|
80f49360d6 | ||
|
|
f74ee6b151 | ||
|
|
012f3ea5dd | ||
|
|
6e5df95e0a | ||
|
|
6b41c80be4 | ||
|
|
64e72a92e3 | ||
|
|
858ccdc79b | ||
|
|
d7d8e707ca | ||
|
|
a155558e93 | ||
|
|
2c71529dd8 | ||
|
|
c2cbf00907 | ||
|
|
703abc09b7 | ||
|
|
ad84701f81 | ||
|
|
7692f51327 |
2
.github/workflows/app-code-check.yml
vendored
2
.github/workflows/app-code-check.yml
vendored
@@ -1,4 +1,4 @@
|
||||
name: PHP AppCode Check
|
||||
name: Nextcloud app code check
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
|
||||
2
.github/workflows/appbuild.yml
vendored
2
.github/workflows/appbuild.yml
vendored
@@ -1,4 +1,4 @@
|
||||
name: Build app package
|
||||
name: Package build
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
|
||||
89
.github/workflows/integration.yml
vendored
Normal file
89
.github/workflows/integration.yml
vendored
Normal file
@@ -0,0 +1,89 @@
|
||||
name: Integration tests
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- stable*
|
||||
|
||||
env:
|
||||
APP_NAME: deck
|
||||
|
||||
jobs:
|
||||
integration:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['7.4']
|
||||
databases: ['sqlite', 'mysql', 'pgsql']
|
||||
server-versions: ['master']
|
||||
|
||||
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres
|
||||
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
|
||||
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@v2
|
||||
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 app
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
tools: phpunit
|
||||
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql,
|
||||
coverage: none
|
||||
|
||||
- name: Set up PHPUnit
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: composer i
|
||||
|
||||
- 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 app:enable --force ${{ env.APP_NAME }}
|
||||
php -S localhost:8080 &
|
||||
|
||||
- name: Run behat
|
||||
working-directory: apps/${{ env.APP_NAME }}/tests/integration
|
||||
run: ./run.sh
|
||||
2
.github/workflows/nightly.yml
vendored
2
.github/workflows/nightly.yml
vendored
@@ -1,4 +1,4 @@
|
||||
name: Nightly build
|
||||
name: Package nightly
|
||||
|
||||
on:
|
||||
push:
|
||||
|
||||
5
.github/workflows/nodejs.yml
vendored
5
.github/workflows/nodejs.yml
vendored
@@ -22,5 +22,8 @@ jobs:
|
||||
npm ci
|
||||
- name: build
|
||||
run: |
|
||||
npm run build --if-present
|
||||
mkdir -p js
|
||||
npm run build --if-present -- --profile --json | tail -n +6 > js/webpack-stats.json
|
||||
npx relative-ci-agent
|
||||
|
||||
|
||||
|
||||
161
.github/workflows/phpunit.yml
vendored
161
.github/workflows/phpunit.yml
vendored
@@ -10,82 +10,30 @@ on:
|
||||
env:
|
||||
APP_NAME: deck
|
||||
|
||||
|
||||
jobs:
|
||||
php:
|
||||
integration:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
# do not stop on another job's failure
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['7.4']
|
||||
databases: ['sqlite']
|
||||
server-versions: ['master']
|
||||
|
||||
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@v2
|
||||
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 app
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@v1
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
tools: phpunit
|
||||
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite
|
||||
coverage: none
|
||||
|
||||
- name: Set up PHPUnit
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: composer i
|
||||
|
||||
- name: Set up Nextcloud
|
||||
env:
|
||||
DB_PORT: 4444
|
||||
run: |
|
||||
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 password
|
||||
./occ app:enable --force ${{ env.APP_NAME }}
|
||||
php -S localhost:8080 &
|
||||
|
||||
- name: PHPUnit
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: ./vendor/phpunit/phpunit/phpunit -c tests/phpunit.xml
|
||||
|
||||
- name: PHPUnit integration
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: ./vendor/phpunit/phpunit/phpunit -c tests/phpunit.integration.xml
|
||||
|
||||
mysql:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
# do not stop on another job's failure
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['7.3', '7.4']
|
||||
databases: ['mysql']
|
||||
databases: ['sqlite', 'mysql', 'pgsql']
|
||||
server-versions: ['master']
|
||||
|
||||
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres
|
||||
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
|
||||
ports:
|
||||
@@ -114,11 +62,11 @@ jobs:
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@v1
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
tools: phpunit
|
||||
extensions: mbstring, iconv, fileinfo, intl, mysql, pdo_mysql
|
||||
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql
|
||||
coverage: none
|
||||
|
||||
- name: Set up PHPUnit
|
||||
@@ -126,83 +74,14 @@ jobs:
|
||||
run: composer i
|
||||
|
||||
- name: Set up Nextcloud
|
||||
env:
|
||||
DB_PORT: 4444
|
||||
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 password
|
||||
./occ app:enable --force ${{ env.APP_NAME }}
|
||||
php -S localhost:8080 &
|
||||
|
||||
- name: PHPUnit
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: ./vendor/phpunit/phpunit/phpunit -c tests/phpunit.xml
|
||||
|
||||
- name: PHPUnit integration
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: ./vendor/phpunit/phpunit/phpunit -c tests/phpunit.integration.xml
|
||||
|
||||
pgsql:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
# do not stop on another job's failure
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['7.4']
|
||||
databases: ['pgsql']
|
||||
server-versions: ['master']
|
||||
|
||||
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres
|
||||
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: Checkout server
|
||||
uses: actions/checkout@v2
|
||||
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 app
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@v1
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
tools: phpunit
|
||||
extensions: mbstring, iconv, fileinfo, intl, pgsql, pdo_pgsql
|
||||
coverage: none
|
||||
|
||||
- name: Set up PHPUnit
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: composer i
|
||||
|
||||
- name: Set up Nextcloud
|
||||
env:
|
||||
DB_PORT: 4444
|
||||
run: |
|
||||
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 password
|
||||
./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 app:enable --force ${{ env.APP_NAME }}
|
||||
php -S localhost:8080 &
|
||||
|
||||
|
||||
31
.github/workflows/static-analysis.yml
vendored
Normal file
31
.github/workflows/static-analysis.yml
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
name: Static analysis
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- stable*
|
||||
|
||||
jobs:
|
||||
static-psalm-analysis:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
ocp-version: [ 'dev-master', 'v20.0.1' ]
|
||||
name: Nextcloud ${{ matrix.ocp-version }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@master
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@master
|
||||
with:
|
||||
php-version: 7.4
|
||||
tools: composer:v1
|
||||
coverage: none
|
||||
- name: Install dependencies
|
||||
run: composer i
|
||||
- name: Install dependencies
|
||||
run: composer require --dev christophwurst/nextcloud:${{ matrix.ocp-version }}
|
||||
- name: Run coding standards check
|
||||
run: composer run psalm
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -7,6 +7,5 @@ tests/integration/vendor/
|
||||
tests/integration/composer.lock
|
||||
tests/.phpunit.result.cache
|
||||
vendor/
|
||||
*.lock
|
||||
.php_cs.cache
|
||||
\.idea/
|
||||
|
||||
18
CHANGELOG.md
18
CHANGELOG.md
@@ -1,6 +1,24 @@
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 1.2.2 - 2020-11-24
|
||||
|
||||
### Fixed
|
||||
|
||||
* [#2584](https://github.com/nextcloud/deck/pull/2584) Fix updating checkbox state and avoid issues due to duplicate sidebar element
|
||||
* [#2586](https://github.com/nextcloud/deck/pull/2586) Fix card details button
|
||||
* [#2587](https://github.com/nextcloud/deck/pull/2587) Move modal top spacing to the header to avoid side-effect when scrolling
|
||||
* [#2588](https://github.com/nextcloud/deck/pull/2588) Do not render images in editor
|
||||
* [#2609](https://github.com/nextcloud/deck/pull/2609) Fix issue with depenendency causing newline comments to not show
|
||||
* [#2611](https://github.com/nextcloud/deck/pull/2611) Fix paragraph styling in comments
|
||||
|
||||
## 1.2.1 - 2020-11-18
|
||||
|
||||
### Fixed
|
||||
|
||||
* [#2570](https://github.com/nextcloud/deck/pull/2570) [#2571](https://github.com/nextcloud/deck/pull/2571) Fix error when deleting users @ksteinb
|
||||
* [#2573](https://github.com/nextcloud/deck/pull/2573) Fix issue where card description was changed on the wrong card when switching cards
|
||||
|
||||
## 1.2.0 - 2020-11-16
|
||||
|
||||
### Added
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
- 🚀 Get your project organized
|
||||
|
||||
</description>
|
||||
<version>1.2.0</version>
|
||||
<version>1.2.2</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Julius Härtl</author>
|
||||
<namespace>Deck</namespace>
|
||||
|
||||
@@ -13,11 +13,12 @@
|
||||
},
|
||||
"require-dev": {
|
||||
"roave/security-advisories": "dev-master",
|
||||
"christophwurst/nextcloud": "^17",
|
||||
"jakub-onderka/php-parallel-lint": "^1.0.0",
|
||||
"christophwurst/nextcloud": "^20",
|
||||
"phpunit/phpunit": "^8",
|
||||
"nextcloud/coding-standard": "^0.3.0",
|
||||
"symfony/event-dispatcher": "^4.0"
|
||||
"nextcloud/coding-standard": "^0.4.0",
|
||||
"symfony/event-dispatcher": "^4.0",
|
||||
"vimeo/psalm": "^4.3",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.2"
|
||||
},
|
||||
"config": {
|
||||
"optimize-autoloader": true,
|
||||
@@ -26,6 +27,8 @@
|
||||
"scripts": {
|
||||
"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"
|
||||
"cs:fix": "php-cs-fixer fix",
|
||||
"psalm": "psalm",
|
||||
"psalm:fix": "psalm --alter --issues=InvalidReturnType,InvalidNullableReturnType,MismatchingDocblockParamType,MismatchingDocblockReturnType,MissingParamType,InvalidFalsableReturnType"
|
||||
}
|
||||
}
|
||||
|
||||
4906
composer.lock
generated
Normal file
4906
composer.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -10,6 +10,7 @@
|
||||
@include icon-black-white('attach', 'deck', 1);
|
||||
@include icon-black-white('reply', 'deck', 1);
|
||||
@include icon-black-white('notifications-dark', 'deck', 1);
|
||||
@include icon-black-white('description', 'deck', 1);
|
||||
|
||||
.icon-toggle-compact-collapsed {
|
||||
@include icon-color('toggle-view-expand', 'deck', $color-black);
|
||||
|
||||
@@ -115,7 +115,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ------- | ---------------------------- |
|
||||
| options | Bool | **Optional** Enhance boards with details about labels, stacks and users |
|
||||
| details | Bool | **Optional** Enhance boards with details about labels, stacks and users |
|
||||
|
||||
#### Response
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" version="1.1" height="16"><path fill="#000" d="m2.5 1c-0.28 0-0.5 0.22-0.5 0.5v13c0 0.28 0.22 0.5 0.5 0.5h11c0.28 0 0.5-0.22 0.5-0.5v-10.5l-3-3h-8.5zm1.5 2h6v1h-6v-1zm0 3h5v1h-5v-1zm0 3h8v1h-8v-1zm0 3h4v1h-4v-1z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14,17L4,17v2h10v-2zM20,9L4,9v2h16L20,9zM4,15h16v-2L4,13v2zM4,5v2h16L20,5L4,5z"/></svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 292 B After Width: | Height: | Size: 180 B |
47
l10n/ca.js
47
l10n/ca.js
@@ -64,10 +64,10 @@ OC.L10N.register(
|
||||
"You have commented on card {card}" : "Heu comentat la targeta {card}",
|
||||
"{user} has commented on card {card}" : "{user} ha comentat la targeta {card}",
|
||||
"A <strong>card description</strong> inside the Deck app has been changed" : "S'ha canviat una <strong>descripció de targeta</strong> a l'aplicació Tauler",
|
||||
"Deck" : "Tauler",
|
||||
"Changes in the <strong>Deck app</strong>" : "Hi ha canvis a l'<strong>aplicació Tauler</strong>",
|
||||
"Deck" : "Targetes",
|
||||
"Changes in the <strong>Deck app</strong>" : "Canvis a l'<strong>aplicació Targetes</strong>",
|
||||
"A <strong>comment</strong> was created on a card" : "S'ha afegit un <strong>comentari</strong> a una targeta",
|
||||
"Upcoming cards" : "Properes targetes",
|
||||
"Upcoming cards" : "Pròximes targetes",
|
||||
"Personal" : "Personal",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "La targeta \"%s\" sobre \"%s\" se us ha assignat per %s.",
|
||||
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} us ha assignat la targeta \"%s\" sobre \"%s\".",
|
||||
@@ -81,26 +81,26 @@ OC.L10N.register(
|
||||
"To review" : "Per revisar",
|
||||
"Action needed" : "Acció necessària",
|
||||
"Later" : "Més tard",
|
||||
"copy" : "copia",
|
||||
"To do" : "Pendents",
|
||||
"copy" : "còpia",
|
||||
"To do" : "Pendent",
|
||||
"Doing" : "En procés",
|
||||
"Done" : "Finalitzades",
|
||||
"Done" : "Finalitzat",
|
||||
"Example Task 3" : "Tasca d'exemple 3",
|
||||
"Example Task 2" : "Tasca d'exemple 2",
|
||||
"Example Task 1" : "Tasca d'exemple 1",
|
||||
"The file was uploaded" : "S'ha carregat el fitxer",
|
||||
"The file was uploaded" : "S'ha pujat el fitxer",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El fitxer carregat excedeix la directiva upload_max_filesize dins de php.ini",
|
||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El fitxer carregat excedeix la directiva MAX_FILE_SIZE que hi ha especificada al formulari d'HTML",
|
||||
"The file was only partially uploaded" : "El fitxer s'ha carregat només parcialment",
|
||||
"No file was uploaded" : "No s'ha carregat cap fitxer",
|
||||
"No file was uploaded" : "No s'ha pujat cap fitxer",
|
||||
"Missing a temporary folder" : "Falta una carpeta temporal",
|
||||
"Could not write file to disk" : "No s’ha pogut escriure el fitxer al disc",
|
||||
"A PHP extension stopped the file upload" : "Una extensió del PHP ha aturat la carregada del fitxer",
|
||||
"No file uploaded or file size exceeds maximum of %s" : "No s'ha carregat cap fitxer o la mida del fitxer sobrepassa el màxim de %s",
|
||||
"Personal planning and team project organization" : "Planificació personal i organització de projectes en equip",
|
||||
"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" : "Tauler és una eina d'organització a l'estil kanban dirigida a la planificació personal i a l'organització de projectes per equips integrada a Nextcloud.\n\n\n- 📥 Afegiu les tasques en targetes i poseu-les en ordre\n- 📄 Apunteu notes addicionals en markdown\n- 🔖 Assigneu etiquetes per una organització encara millor\n- 👥 Compartiu amb el vostre equip, família o amics\n- 📎 Adjunteu fitxers i encasteu-los en la descripció en markdown\n- 💬 Debateu amb el vostre equip fent servir comentaris\n- ⚡ Mantingueu el seguiment de canvis al flux d'activitat\n- 🚀 Tingueu el vostre projecte organitzat",
|
||||
"Card details" : "Dades de la targeta",
|
||||
"Add board" : "Afegeix una taula",
|
||||
"Card details" : "Detalls de la targeta",
|
||||
"Add board" : "Afegeix un tauler",
|
||||
"Select the board to link to a project" : "Selecciona el tauler per enllaçar a un projecte",
|
||||
"Search by board title" : "Cerca per títol del tauler",
|
||||
"Select board" : "Selecciona un tauler",
|
||||
@@ -118,7 +118,7 @@ OC.L10N.register(
|
||||
"Drop your files to upload" : "Deixeu anar els fitxers per penjar-los",
|
||||
"Archived cards" : "Targetes arxivades",
|
||||
"Add list" : "Afegeix una llista",
|
||||
"List name" : "Nom de llista",
|
||||
"List name" : "Nom de la llista",
|
||||
"Apply filter" : "Aplica el filtre",
|
||||
"Filter by tag" : "Filtra per etiqueta",
|
||||
"Filter by assigned user" : "Filtra per usuari assignat",
|
||||
@@ -126,16 +126,16 @@ OC.L10N.register(
|
||||
"Filter by due date" : "Filtra per data de venciment",
|
||||
"Overdue" : "Endarrerit",
|
||||
"Next 24 hours" : "Pròximes 24 hores",
|
||||
"Next 7 days" : "Propers 7 dies",
|
||||
"Next 30 days" : "Propers 30 dies",
|
||||
"Next 7 days" : "Pròxims 7 dies",
|
||||
"Next 30 days" : "Pròxims 30 dies",
|
||||
"No due date" : "Sense venciment",
|
||||
"Clear filter" : "Neteja el filtre",
|
||||
"Clear filter" : "Esborra el filtre",
|
||||
"Hide archived cards" : "Amaga les targetes arxivades",
|
||||
"Show archived cards" : "Mostra les targetes arxivades",
|
||||
"Toggle compact mode" : "Commuta el mode compacte",
|
||||
"Details" : "Detalls",
|
||||
"Loading board" : "Carregant tauler",
|
||||
"No lists available" : "Cap llista disponible",
|
||||
"Loading board" : "S'està carregant el tauler",
|
||||
"No lists available" : "No hi ha cap llista disponible",
|
||||
"Create a new list to add cards to this board" : "Crea una llista nova per afegir targetes a aquest tauler",
|
||||
"Board not found" : "Tauler no trobat",
|
||||
"Sharing" : "Compartició",
|
||||
@@ -202,6 +202,7 @@ OC.L10N.register(
|
||||
"Edit description" : "Edita descripció",
|
||||
"View description" : "Veure descripció",
|
||||
"Add Attachment" : "Afegeix un adjunt",
|
||||
"Write a description …" : "Escriviu una descripció...",
|
||||
"Choose attachment" : "Triar adjunt",
|
||||
"(group)" : "(grup)",
|
||||
"(circle)" : "(cercle)",
|
||||
@@ -228,26 +229,26 @@ OC.L10N.register(
|
||||
"Clone board" : "Clonar tauler",
|
||||
"Unarchive board" : "Desarxiva el tauler",
|
||||
"Archive board" : "Arxiva el tauler",
|
||||
"Turn on due date reminders" : "Activa el recordatori de data de caducitat",
|
||||
"Turn off due date reminders" : "Desactiva el recordatori de data de caducitat",
|
||||
"Due date reminders" : "Recordatori de data de caducitat",
|
||||
"Turn on due date reminders" : "Activa els recordatoris de data de venciment",
|
||||
"Turn off due date reminders" : "Desactiva els recordatoris de data de venciment",
|
||||
"Due date reminders" : "Recordatoris de data de venciment",
|
||||
"All cards" : "Totes les targetes",
|
||||
"Assigned cards" : "Targetes assignades",
|
||||
"No notifications" : "No hi ha notificacions",
|
||||
"Delete board" : "Suprimeix el tauler",
|
||||
"Board {0} deleted" : "S’ha suprimit el tauler {0}",
|
||||
"Only assigned cards" : "Només targetes assignades",
|
||||
"Only assigned cards" : "Només les targetes assignades",
|
||||
"No reminder" : "Sense recordatoris",
|
||||
"An error occurred" : "S'ha produït un error",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Esteu segur que voleu suprimir el tauler {title}? Això eliminarà totes les dades d'aquest tauler.",
|
||||
"Delete the board?" : "Suprimir el tauler?",
|
||||
"Delete the board?" : "Voleu suprimir el tauler?",
|
||||
"Loading filtered view" : "S'està carregant la visualització filtrada",
|
||||
"Today" : "Avui",
|
||||
"Tomorrow" : "Demà",
|
||||
"This week" : "Aquesta setmana",
|
||||
"No due" : "Sense venciment",
|
||||
"No upcoming cards" : "No hi ha targetes futures",
|
||||
"upcoming cards" : "properes targetes",
|
||||
"No upcoming cards" : "No hi ha pròximes targetes",
|
||||
"upcoming cards" : "pròximes targetes",
|
||||
"Link to a board" : "Enllaça a un tauler",
|
||||
"Link to a card" : "Enllaç una targeta",
|
||||
"Something went wrong" : "Alguna cosa ha anat malament",
|
||||
|
||||
47
l10n/ca.json
47
l10n/ca.json
@@ -62,10 +62,10 @@
|
||||
"You have commented on card {card}" : "Heu comentat la targeta {card}",
|
||||
"{user} has commented on card {card}" : "{user} ha comentat la targeta {card}",
|
||||
"A <strong>card description</strong> inside the Deck app has been changed" : "S'ha canviat una <strong>descripció de targeta</strong> a l'aplicació Tauler",
|
||||
"Deck" : "Tauler",
|
||||
"Changes in the <strong>Deck app</strong>" : "Hi ha canvis a l'<strong>aplicació Tauler</strong>",
|
||||
"Deck" : "Targetes",
|
||||
"Changes in the <strong>Deck app</strong>" : "Canvis a l'<strong>aplicació Targetes</strong>",
|
||||
"A <strong>comment</strong> was created on a card" : "S'ha afegit un <strong>comentari</strong> a una targeta",
|
||||
"Upcoming cards" : "Properes targetes",
|
||||
"Upcoming cards" : "Pròximes targetes",
|
||||
"Personal" : "Personal",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "La targeta \"%s\" sobre \"%s\" se us ha assignat per %s.",
|
||||
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} us ha assignat la targeta \"%s\" sobre \"%s\".",
|
||||
@@ -79,26 +79,26 @@
|
||||
"To review" : "Per revisar",
|
||||
"Action needed" : "Acció necessària",
|
||||
"Later" : "Més tard",
|
||||
"copy" : "copia",
|
||||
"To do" : "Pendents",
|
||||
"copy" : "còpia",
|
||||
"To do" : "Pendent",
|
||||
"Doing" : "En procés",
|
||||
"Done" : "Finalitzades",
|
||||
"Done" : "Finalitzat",
|
||||
"Example Task 3" : "Tasca d'exemple 3",
|
||||
"Example Task 2" : "Tasca d'exemple 2",
|
||||
"Example Task 1" : "Tasca d'exemple 1",
|
||||
"The file was uploaded" : "S'ha carregat el fitxer",
|
||||
"The file was uploaded" : "S'ha pujat el fitxer",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El fitxer carregat excedeix la directiva upload_max_filesize dins de php.ini",
|
||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El fitxer carregat excedeix la directiva MAX_FILE_SIZE que hi ha especificada al formulari d'HTML",
|
||||
"The file was only partially uploaded" : "El fitxer s'ha carregat només parcialment",
|
||||
"No file was uploaded" : "No s'ha carregat cap fitxer",
|
||||
"No file was uploaded" : "No s'ha pujat cap fitxer",
|
||||
"Missing a temporary folder" : "Falta una carpeta temporal",
|
||||
"Could not write file to disk" : "No s’ha pogut escriure el fitxer al disc",
|
||||
"A PHP extension stopped the file upload" : "Una extensió del PHP ha aturat la carregada del fitxer",
|
||||
"No file uploaded or file size exceeds maximum of %s" : "No s'ha carregat cap fitxer o la mida del fitxer sobrepassa el màxim de %s",
|
||||
"Personal planning and team project organization" : "Planificació personal i organització de projectes en equip",
|
||||
"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" : "Tauler és una eina d'organització a l'estil kanban dirigida a la planificació personal i a l'organització de projectes per equips integrada a Nextcloud.\n\n\n- 📥 Afegiu les tasques en targetes i poseu-les en ordre\n- 📄 Apunteu notes addicionals en markdown\n- 🔖 Assigneu etiquetes per una organització encara millor\n- 👥 Compartiu amb el vostre equip, família o amics\n- 📎 Adjunteu fitxers i encasteu-los en la descripció en markdown\n- 💬 Debateu amb el vostre equip fent servir comentaris\n- ⚡ Mantingueu el seguiment de canvis al flux d'activitat\n- 🚀 Tingueu el vostre projecte organitzat",
|
||||
"Card details" : "Dades de la targeta",
|
||||
"Add board" : "Afegeix una taula",
|
||||
"Card details" : "Detalls de la targeta",
|
||||
"Add board" : "Afegeix un tauler",
|
||||
"Select the board to link to a project" : "Selecciona el tauler per enllaçar a un projecte",
|
||||
"Search by board title" : "Cerca per títol del tauler",
|
||||
"Select board" : "Selecciona un tauler",
|
||||
@@ -116,7 +116,7 @@
|
||||
"Drop your files to upload" : "Deixeu anar els fitxers per penjar-los",
|
||||
"Archived cards" : "Targetes arxivades",
|
||||
"Add list" : "Afegeix una llista",
|
||||
"List name" : "Nom de llista",
|
||||
"List name" : "Nom de la llista",
|
||||
"Apply filter" : "Aplica el filtre",
|
||||
"Filter by tag" : "Filtra per etiqueta",
|
||||
"Filter by assigned user" : "Filtra per usuari assignat",
|
||||
@@ -124,16 +124,16 @@
|
||||
"Filter by due date" : "Filtra per data de venciment",
|
||||
"Overdue" : "Endarrerit",
|
||||
"Next 24 hours" : "Pròximes 24 hores",
|
||||
"Next 7 days" : "Propers 7 dies",
|
||||
"Next 30 days" : "Propers 30 dies",
|
||||
"Next 7 days" : "Pròxims 7 dies",
|
||||
"Next 30 days" : "Pròxims 30 dies",
|
||||
"No due date" : "Sense venciment",
|
||||
"Clear filter" : "Neteja el filtre",
|
||||
"Clear filter" : "Esborra el filtre",
|
||||
"Hide archived cards" : "Amaga les targetes arxivades",
|
||||
"Show archived cards" : "Mostra les targetes arxivades",
|
||||
"Toggle compact mode" : "Commuta el mode compacte",
|
||||
"Details" : "Detalls",
|
||||
"Loading board" : "Carregant tauler",
|
||||
"No lists available" : "Cap llista disponible",
|
||||
"Loading board" : "S'està carregant el tauler",
|
||||
"No lists available" : "No hi ha cap llista disponible",
|
||||
"Create a new list to add cards to this board" : "Crea una llista nova per afegir targetes a aquest tauler",
|
||||
"Board not found" : "Tauler no trobat",
|
||||
"Sharing" : "Compartició",
|
||||
@@ -200,6 +200,7 @@
|
||||
"Edit description" : "Edita descripció",
|
||||
"View description" : "Veure descripció",
|
||||
"Add Attachment" : "Afegeix un adjunt",
|
||||
"Write a description …" : "Escriviu una descripció...",
|
||||
"Choose attachment" : "Triar adjunt",
|
||||
"(group)" : "(grup)",
|
||||
"(circle)" : "(cercle)",
|
||||
@@ -226,26 +227,26 @@
|
||||
"Clone board" : "Clonar tauler",
|
||||
"Unarchive board" : "Desarxiva el tauler",
|
||||
"Archive board" : "Arxiva el tauler",
|
||||
"Turn on due date reminders" : "Activa el recordatori de data de caducitat",
|
||||
"Turn off due date reminders" : "Desactiva el recordatori de data de caducitat",
|
||||
"Due date reminders" : "Recordatori de data de caducitat",
|
||||
"Turn on due date reminders" : "Activa els recordatoris de data de venciment",
|
||||
"Turn off due date reminders" : "Desactiva els recordatoris de data de venciment",
|
||||
"Due date reminders" : "Recordatoris de data de venciment",
|
||||
"All cards" : "Totes les targetes",
|
||||
"Assigned cards" : "Targetes assignades",
|
||||
"No notifications" : "No hi ha notificacions",
|
||||
"Delete board" : "Suprimeix el tauler",
|
||||
"Board {0} deleted" : "S’ha suprimit el tauler {0}",
|
||||
"Only assigned cards" : "Només targetes assignades",
|
||||
"Only assigned cards" : "Només les targetes assignades",
|
||||
"No reminder" : "Sense recordatoris",
|
||||
"An error occurred" : "S'ha produït un error",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Esteu segur que voleu suprimir el tauler {title}? Això eliminarà totes les dades d'aquest tauler.",
|
||||
"Delete the board?" : "Suprimir el tauler?",
|
||||
"Delete the board?" : "Voleu suprimir el tauler?",
|
||||
"Loading filtered view" : "S'està carregant la visualització filtrada",
|
||||
"Today" : "Avui",
|
||||
"Tomorrow" : "Demà",
|
||||
"This week" : "Aquesta setmana",
|
||||
"No due" : "Sense venciment",
|
||||
"No upcoming cards" : "No hi ha targetes futures",
|
||||
"upcoming cards" : "properes targetes",
|
||||
"No upcoming cards" : "No hi ha pròximes targetes",
|
||||
"upcoming cards" : "pròximes targetes",
|
||||
"Link to a board" : "Enllaça a un tauler",
|
||||
"Link to a card" : "Enllaç una targeta",
|
||||
"Something went wrong" : "Alguna cosa ha anat malament",
|
||||
|
||||
13
l10n/cs.js
13
l10n/cs.js
@@ -202,6 +202,7 @@ OC.L10N.register(
|
||||
"Edit description" : "Upravit popis",
|
||||
"View description" : "Zobrazit popis",
|
||||
"Add Attachment" : "Přidat přílohu",
|
||||
"Write a description …" : "Zadejte popis…",
|
||||
"Choose attachment" : "Zvolte přílohu",
|
||||
"(group)" : "(skupina)",
|
||||
"(circle)" : "(okruh)",
|
||||
@@ -225,7 +226,19 @@ OC.L10N.register(
|
||||
"Board name" : "Název tabule",
|
||||
"Board details" : "Podrobnosti o desce",
|
||||
"Edit board" : "Upravit tabuli",
|
||||
"Clone board" : "Klonovat tabuli",
|
||||
"Unarchive board" : "Vrátit tabuli zpět z archivu",
|
||||
"Archive board" : "Archivovat tabuli",
|
||||
"Turn on due date reminders" : "Zapnout upomínky termínů",
|
||||
"Turn off due date reminders" : "Vypnout upomínky termínů",
|
||||
"Due date reminders" : "Upomínky termínů",
|
||||
"All cards" : "Všechny karty",
|
||||
"Assigned cards" : "Přiřazené karty",
|
||||
"No notifications" : "Žádná upozornění",
|
||||
"Delete board" : "Smazat tabuli",
|
||||
"Board {0} deleted" : "Tabule {0} smazána",
|
||||
"Only assigned cards" : "Pouze přiřazené karty",
|
||||
"No reminder" : "Bez připomínky",
|
||||
"An error occurred" : "Došlo k chybě",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Opravdu chcete tabuly {title} smazat? Toto smaže veškerá data této tabule.",
|
||||
"Delete the board?" : "Smazat tabuli?",
|
||||
|
||||
13
l10n/cs.json
13
l10n/cs.json
@@ -200,6 +200,7 @@
|
||||
"Edit description" : "Upravit popis",
|
||||
"View description" : "Zobrazit popis",
|
||||
"Add Attachment" : "Přidat přílohu",
|
||||
"Write a description …" : "Zadejte popis…",
|
||||
"Choose attachment" : "Zvolte přílohu",
|
||||
"(group)" : "(skupina)",
|
||||
"(circle)" : "(okruh)",
|
||||
@@ -223,7 +224,19 @@
|
||||
"Board name" : "Název tabule",
|
||||
"Board details" : "Podrobnosti o desce",
|
||||
"Edit board" : "Upravit tabuli",
|
||||
"Clone board" : "Klonovat tabuli",
|
||||
"Unarchive board" : "Vrátit tabuli zpět z archivu",
|
||||
"Archive board" : "Archivovat tabuli",
|
||||
"Turn on due date reminders" : "Zapnout upomínky termínů",
|
||||
"Turn off due date reminders" : "Vypnout upomínky termínů",
|
||||
"Due date reminders" : "Upomínky termínů",
|
||||
"All cards" : "Všechny karty",
|
||||
"Assigned cards" : "Přiřazené karty",
|
||||
"No notifications" : "Žádná upozornění",
|
||||
"Delete board" : "Smazat tabuli",
|
||||
"Board {0} deleted" : "Tabule {0} smazána",
|
||||
"Only assigned cards" : "Pouze přiřazené karty",
|
||||
"No reminder" : "Bez připomínky",
|
||||
"An error occurred" : "Došlo k chybě",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Opravdu chcete tabuly {title} smazat? Toto smaže veškerá data této tabule.",
|
||||
"Delete the board?" : "Smazat tabuli?",
|
||||
|
||||
@@ -99,7 +99,7 @@ OC.L10N.register(
|
||||
"No file uploaded or file size exceeds maximum of %s" : "Keine Datei hochgeladen oder die Dateigröße überschreitet %s",
|
||||
"Personal planning and team project organization" : "Persönliche Planung und Teamprojektorganisation",
|
||||
"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 ist ein Organisationstool im Kanban-Stil für die persönliche Planung und Projektorganisation von Teams, die in Nextcloud integriert sind.\n\n\n- 📥 Füge Deine Aufgaben zu den Karten hinzu und ordne diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Zuweisen von Schlagworten für noch bessere Organisation\n- 👥 Teile mit Deinem Team, Freunden oder der Familie\n- 📎 Füge Dateien hinzu und verwende diese in Deinen Markdown-Beschreibungen\n- 💬 Diskutiere mit Deinem Team mit Kommentaren\n- ⚡ Behalte Überblick über Änderungen mit dem Aktivitäten-Stream\n- 🚀 Organisiere Dein Projekt",
|
||||
"Card details" : "Kartendetails",
|
||||
"Card details" : "Karten-Details",
|
||||
"Add board" : "Board hinzufügen",
|
||||
"Select the board to link to a project" : "Wähle ein Board aus, um dieses mit einem Projekt zu verknüpfen",
|
||||
"Search by board title" : "Nach einem Board suchen",
|
||||
@@ -222,7 +222,7 @@ OC.L10N.register(
|
||||
"Use modal card view" : "Modale Kartenansicht verwenden",
|
||||
"Show boards in calendar/tasks" : "Board in Kalender/Aufgaben anzeigen",
|
||||
"Limit deck usage of groups" : "Nutzung von Deck auf Gruppen einschränken",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Durch die Begrenzung von Deck werden Benutzer, die nicht Teil dieser Gruppen sind, daran gehindert, eigene Boards zu erstellen. Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden.",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Durch die Begrenzung von Deck werden Benutzer, die nicht Teil dieser Gruppen sind, daran gehindert, eigene Boards zu erstellen. Benutzer können weiterhin an Boards arbeiten, die mit ihnen geteilt wurden.",
|
||||
"Board name" : "Boardname",
|
||||
"Board details" : "Board-Details",
|
||||
"Edit board" : "Board bearbeiten",
|
||||
@@ -252,6 +252,7 @@ OC.L10N.register(
|
||||
"Link to a board" : "Mit einem Board verknüpfen",
|
||||
"Link to a card" : "Mit einer Karte verknüpfen",
|
||||
"Something went wrong" : "Etwas ist schiefgelaufen",
|
||||
"Failed to upload {name}" : "Fehler beim Hochladen von {name}",
|
||||
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
"No file uploaded or file size exceeds maximum of %s" : "Keine Datei hochgeladen oder die Dateigröße überschreitet %s",
|
||||
"Personal planning and team project organization" : "Persönliche Planung und Teamprojektorganisation",
|
||||
"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 ist ein Organisationstool im Kanban-Stil für die persönliche Planung und Projektorganisation von Teams, die in Nextcloud integriert sind.\n\n\n- 📥 Füge Deine Aufgaben zu den Karten hinzu und ordne diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Zuweisen von Schlagworten für noch bessere Organisation\n- 👥 Teile mit Deinem Team, Freunden oder der Familie\n- 📎 Füge Dateien hinzu und verwende diese in Deinen Markdown-Beschreibungen\n- 💬 Diskutiere mit Deinem Team mit Kommentaren\n- ⚡ Behalte Überblick über Änderungen mit dem Aktivitäten-Stream\n- 🚀 Organisiere Dein Projekt",
|
||||
"Card details" : "Kartendetails",
|
||||
"Card details" : "Karten-Details",
|
||||
"Add board" : "Board hinzufügen",
|
||||
"Select the board to link to a project" : "Wähle ein Board aus, um dieses mit einem Projekt zu verknüpfen",
|
||||
"Search by board title" : "Nach einem Board suchen",
|
||||
@@ -220,7 +220,7 @@
|
||||
"Use modal card view" : "Modale Kartenansicht verwenden",
|
||||
"Show boards in calendar/tasks" : "Board in Kalender/Aufgaben anzeigen",
|
||||
"Limit deck usage of groups" : "Nutzung von Deck auf Gruppen einschränken",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Durch die Begrenzung von Deck werden Benutzer, die nicht Teil dieser Gruppen sind, daran gehindert, eigene Boards zu erstellen. Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden.",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Durch die Begrenzung von Deck werden Benutzer, die nicht Teil dieser Gruppen sind, daran gehindert, eigene Boards zu erstellen. Benutzer können weiterhin an Boards arbeiten, die mit ihnen geteilt wurden.",
|
||||
"Board name" : "Boardname",
|
||||
"Board details" : "Board-Details",
|
||||
"Edit board" : "Board bearbeiten",
|
||||
@@ -250,6 +250,7 @@
|
||||
"Link to a board" : "Mit einem Board verknüpfen",
|
||||
"Link to a card" : "Mit einer Karte verknüpfen",
|
||||
"Something went wrong" : "Etwas ist schiefgelaufen",
|
||||
"Failed to upload {name}" : "Fehler beim Hochladen von {name}",
|
||||
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -222,7 +222,7 @@ OC.L10N.register(
|
||||
"Use modal card view" : "Modale Kartenansicht verwenden",
|
||||
"Show boards in calendar/tasks" : "Board in Kalender/Aufgaben anzeigen",
|
||||
"Limit deck usage of groups" : "Nutzung von Deck auf Gruppen einschränken",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Durch die Begrenzung von Deck werden Benutzer, die nicht Teil dieser Gruppen sind, daran gehindert, eigene Boards zu erstellen. Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden.",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Wenn Sie Deck einschränken, können Benutzer, die nicht zu diesen Gruppen gehören, keine eigenen Boards erstellen. Die Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden.",
|
||||
"Board name" : "Boardname",
|
||||
"Board details" : "Board-Details",
|
||||
"Edit board" : "Board bearbeiten",
|
||||
@@ -252,6 +252,7 @@ OC.L10N.register(
|
||||
"Link to a board" : "Mit einem Board verknüpfen",
|
||||
"Link to a card" : "Mit einer Karte verknüpfen",
|
||||
"Something went wrong" : "Etwas ist schiefgelaufen",
|
||||
"Failed to upload {name}" : "Fehler beim Hochladen von {name}",
|
||||
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -220,7 +220,7 @@
|
||||
"Use modal card view" : "Modale Kartenansicht verwenden",
|
||||
"Show boards in calendar/tasks" : "Board in Kalender/Aufgaben anzeigen",
|
||||
"Limit deck usage of groups" : "Nutzung von Deck auf Gruppen einschränken",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Durch die Begrenzung von Deck werden Benutzer, die nicht Teil dieser Gruppen sind, daran gehindert, eigene Boards zu erstellen. Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden.",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Wenn Sie Deck einschränken, können Benutzer, die nicht zu diesen Gruppen gehören, keine eigenen Boards erstellen. Die Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden.",
|
||||
"Board name" : "Boardname",
|
||||
"Board details" : "Board-Details",
|
||||
"Edit board" : "Board bearbeiten",
|
||||
@@ -250,6 +250,7 @@
|
||||
"Link to a board" : "Mit einem Board verknüpfen",
|
||||
"Link to a card" : "Mit einer Karte verknüpfen",
|
||||
"Something went wrong" : "Etwas ist schiefgelaufen",
|
||||
"Failed to upload {name}" : "Fehler beim Hochladen von {name}",
|
||||
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -202,6 +202,7 @@ OC.L10N.register(
|
||||
"Edit description" : "Editar descripción",
|
||||
"View description" : "Ver descripción",
|
||||
"Add Attachment" : "Añadir adjunto",
|
||||
"Write a description …" : "Escribe una descripción...",
|
||||
"Choose attachment" : "Escoger adjunto",
|
||||
"(group)" : "(grupo)",
|
||||
"(circle)" : "(circle)",
|
||||
|
||||
@@ -200,6 +200,7 @@
|
||||
"Edit description" : "Editar descripción",
|
||||
"View description" : "Ver descripción",
|
||||
"Add Attachment" : "Añadir adjunto",
|
||||
"Write a description …" : "Escribe una descripción...",
|
||||
"Choose attachment" : "Escoger adjunto",
|
||||
"(group)" : "(grupo)",
|
||||
"(circle)" : "(circle)",
|
||||
|
||||
@@ -202,6 +202,7 @@ OC.L10N.register(
|
||||
"Edit description" : "Modifier la description",
|
||||
"View description" : "Afficher la description",
|
||||
"Add Attachment" : "Ajouter une pièce jointe",
|
||||
"Write a description …" : "Écrire une description ...",
|
||||
"Choose attachment" : "Choisir une pièce jointe",
|
||||
"(group)" : "(groupe)",
|
||||
"(circle)" : "(cercle)",
|
||||
@@ -226,11 +227,17 @@ OC.L10N.register(
|
||||
"Board details" : "Détails du tableau",
|
||||
"Edit board" : "Modifier le tableau",
|
||||
"Clone board" : "Dupliquer le tableau",
|
||||
"Unarchive board" : "Désarchiver le tableau",
|
||||
"Archive board" : "Archiver le tableau",
|
||||
"Turn on due date reminders" : "Activer les rappels",
|
||||
"Turn off due date reminders" : "Désactiver les rappels",
|
||||
"Due date reminders" : "Rappels",
|
||||
"All cards" : "Toutes les cartes",
|
||||
"Assigned cards" : "Cartes assignées",
|
||||
"No notifications" : "Aucune notification",
|
||||
"Delete board" : "Supprimer le tableau",
|
||||
"Board {0} deleted" : "Tableau {0} supprimé",
|
||||
"Only assigned cards" : "Uniquement les cartes assignées",
|
||||
"No reminder" : "Aucun rappel",
|
||||
"An error occurred" : "Une erreur est survenue",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Êtes-vous certain de vouloir supprimer le tableau {title} ? Cela supprimera l'ensemble des données de ce tableau.",
|
||||
@@ -245,6 +252,7 @@ OC.L10N.register(
|
||||
"Link to a board" : "Relier à un tableau",
|
||||
"Link to a card" : "Relier à une carte",
|
||||
"Something went wrong" : "Quelque chose s'est mal passé",
|
||||
"Failed to upload {name}" : "Échec d'envoi de {name}",
|
||||
"Maximum file size of {size} exceeded" : "Taille de fichier maximale de {size} dépassée"
|
||||
},
|
||||
"nplurals=2; plural=(n > 1);");
|
||||
|
||||
@@ -200,6 +200,7 @@
|
||||
"Edit description" : "Modifier la description",
|
||||
"View description" : "Afficher la description",
|
||||
"Add Attachment" : "Ajouter une pièce jointe",
|
||||
"Write a description …" : "Écrire une description ...",
|
||||
"Choose attachment" : "Choisir une pièce jointe",
|
||||
"(group)" : "(groupe)",
|
||||
"(circle)" : "(cercle)",
|
||||
@@ -224,11 +225,17 @@
|
||||
"Board details" : "Détails du tableau",
|
||||
"Edit board" : "Modifier le tableau",
|
||||
"Clone board" : "Dupliquer le tableau",
|
||||
"Unarchive board" : "Désarchiver le tableau",
|
||||
"Archive board" : "Archiver le tableau",
|
||||
"Turn on due date reminders" : "Activer les rappels",
|
||||
"Turn off due date reminders" : "Désactiver les rappels",
|
||||
"Due date reminders" : "Rappels",
|
||||
"All cards" : "Toutes les cartes",
|
||||
"Assigned cards" : "Cartes assignées",
|
||||
"No notifications" : "Aucune notification",
|
||||
"Delete board" : "Supprimer le tableau",
|
||||
"Board {0} deleted" : "Tableau {0} supprimé",
|
||||
"Only assigned cards" : "Uniquement les cartes assignées",
|
||||
"No reminder" : "Aucun rappel",
|
||||
"An error occurred" : "Une erreur est survenue",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Êtes-vous certain de vouloir supprimer le tableau {title} ? Cela supprimera l'ensemble des données de ce tableau.",
|
||||
@@ -243,6 +250,7 @@
|
||||
"Link to a board" : "Relier à un tableau",
|
||||
"Link to a card" : "Relier à une carte",
|
||||
"Something went wrong" : "Quelque chose s'est mal passé",
|
||||
"Failed to upload {name}" : "Échec d'envoi de {name}",
|
||||
"Maximum file size of {size} exceeded" : "Taille de fichier maximale de {size} dépassée"
|
||||
},"pluralForm" :"nplurals=2; plural=(n > 1);"
|
||||
}
|
||||
86
l10n/he.js
86
l10n/he.js
@@ -17,14 +17,57 @@ OC.L10N.register(
|
||||
"{user} has archived the board {before}" : "הארכיון {before} הועבר לארכיון על ידי {user}",
|
||||
"You have unarchived the board {board}" : "הוצאת את הלוח {board} מהארכיון",
|
||||
"{user} has unarchived the board {before}" : "הלוח {before} הוצא מהארכיון על ידי {user}",
|
||||
"You have created a new list {stack} on board {board}" : "יצרת רשימה חדשה {stack} על הלוח {board}",
|
||||
"{user} has created a new list {stack} on board {board}" : "{user} יצר רשימה חדשה {stack} על הלוח {board}",
|
||||
"You have renamed list {before} to {stack} on board {board}" : "שינית את שם הרשימה {לפני} ל- {stack} על הלוח {board}",
|
||||
"{user} has renamed list {before} to {stack} on board {board}" : "{user} שינה את שם הרשימה {לפני} ל- {stack} על הלוח {board}",
|
||||
"You have deleted list {stack} on board {board}" : "מחקת את הרשימה {stack} על הלוח {board}",
|
||||
"{user} has deleted list {stack} on board {board}" : "{user} מחק את הרשימה {stack} על הלוח {board}",
|
||||
"You have created card {card} in list {stack} on board {board}" : "יצרת כרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"{user} has created card {card} in list {stack} on board {board}" : "{user} יצר כרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"You have deleted card {card} in list {stack} on board {board}" : "מחקת את הכרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} מחק את הכרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"You have renamed the card {before} to {card}" : "שינית את שם הכרטיס {before} ל- {card}",
|
||||
"{user} has renamed the card {before} to {card}" : "{user} שינה את שם הכרטיס {לפני} ל- {card}",
|
||||
"You have added a description to card {card} in list {stack} on board {board}" : "הוספת תיאור לכרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} הוסיף תיאור לכרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"You have updated the description of card {card} in list {stack} on board {board}" : "עדכנת את תיאור הכרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} עדכן את תיאור הכרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"You have archived card {card} in list {stack} on board {board}" : "שמרת כרטיס {card} בארכיון ברשימה {stack} על הלוח {board}",
|
||||
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ארכיב כרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"You have unarchived card {card} in list {stack} on board {board}" : "יש לך כרטיס {card} שלא הועבר לארכיון ברשימה {stack} על הלוח {board}",
|
||||
"{user} has unarchived card {card} in list {stack} on board {board}" : "ל-{user} יש כרטיס {card} שלא הועבר לארכיון ברשימה {stack} על הלוח {board}",
|
||||
"You have removed the due date of card {card}" : "הסרת את מועד היעד מהכרטיס {card}",
|
||||
"{user} has removed the due date of card {card}" : "מועד היעד של הכרטיס {card} הוסר על ידי {user}",
|
||||
"You have set the due date of card {card} to {after}" : "הגדרת את תאריך היעד של הכרטיס {card} ל- {after}",
|
||||
"{user} has set the due date of card {card} to {after}" : "{user} הגדיר את תאריך היעד של הכרטיס {card} ל- {after}",
|
||||
"You have updated the due date of card {card} to {after}" : "עדכנת את תאריך היעד של הכרטיס {card} ל- {after}",
|
||||
"{user} has updated the due date of card {card} to {after}" : "{user} עדכן את תאריך היעד של הכרטיס {card} ל- {after}",
|
||||
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "הוספת את התג {label} לכרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} הוסיף את התג {label} לכרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "הסרת את התג {label} מכרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} הסיר את התג {label} מכרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"You have assigned {assigneduser} to card {card} on board {board}" : "הקצית {assigneduser} לכרטיס {card} על הלוח {board}",
|
||||
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} הקצה את {assigneduser} לכרטיס {card} על הלוח {board}",
|
||||
"You have unassigned {assigneduser} from card {card} on board {board}" : "בטלת את הקצאת {assigneduser} מכרטיס {card} על הלוח {board}",
|
||||
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} ביטל את ההקצאה של {assigneduser} מכרטיס {card} על הלוח {board}",
|
||||
"You have moved the card {card} from list {stackBefore} to {stack}" : "העברת את הכרטיס {card} מהרשימה {stackBefore} ל- {stack}",
|
||||
"{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user} העביר את הכרטיס {card} מהרשימה {stackBefore} ל- {stack}",
|
||||
"You have added the attachment {attachment} to card {card}" : "הוספת את הקובץ המצורף {attachment} לכרטיס {card}",
|
||||
"{user} has added the attachment {attachment} to card {card}" : "{user} הוסיף את הקובץ המצורף {attachment} לכרטיס {card}",
|
||||
"You have updated the attachment {attachment} on card {card}" : "עדכנת את הקובץ המצורף {attachment} בכרטיס {card}",
|
||||
"{user} has updated the attachment {attachment} on card {card}" : "{user} עדכן את הקובץ המצורף {attachment} בכרטיס {card}",
|
||||
"You have deleted the attachment {attachment} from card {card}" : "מחקת את הקובץ המצורף {attachment} מכרטיס {card}",
|
||||
"{user} has deleted the attachment {attachment} from card {card}" : "{user} מחק את הקובץ המצורף {attachment} מכרטיס {card}",
|
||||
"You have restored the attachment {attachment} to card {card}" : "שחזרת את הקובץ המצורף {attachment} לכרטיס {card}",
|
||||
"{user} has restored the attachment {attachment} to card {card}" : "{user} שיחזר את הקובץ המצורף {attachment} לכרטיס {card}",
|
||||
"You have commented on card {card}" : "הגבת על הכרטיס {cart}",
|
||||
"{user} has commented on card {card}" : "נוספה תגובה מאת {user} על הכרטיס {card}",
|
||||
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>תיאור של כרטיס</strong> בתוך יישומון החבילה נערך",
|
||||
"Deck" : "חפיסה",
|
||||
"Changes in the <strong>Deck app</strong>" : "שינויים ל<strong>יישומון החבילה</strong>",
|
||||
"A <strong>comment</strong> was created on a card" : "נוצרה <strong>הערה</strong> על כרטיס",
|
||||
"Upcoming cards" : "כרטיסים עתידיים",
|
||||
"Personal" : "אישי",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "הכרטיס \"%s\" שב־„%s” הוקצה אליך על ידי %s.",
|
||||
"{user} has assigned the card \"%s\" on \"%s\" to you." : "הכרטיס „%s” שב„%s” הוקצה לך על ידי {user}.",
|
||||
@@ -55,6 +98,7 @@ OC.L10N.register(
|
||||
"A PHP extension stopped the file upload" : "הרחבת PHP עצרה את העלאת הקובץ",
|
||||
"No file uploaded or file size exceeds maximum of %s" : "לא הועלה אף קובץ או שגודל הקובץ חרג מהסף המרבי של %s",
|
||||
"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 הוא כלי ארגון בסגנון kanban המכוון לתכנון אישי ולארגון פרויקטים עבור צוותים המשולבים ב- Nextcloud.\n\n\n- 📥 הוסף את המשימות שלך לכרטיסים וסדר אותן\n- 📄 רשמו הערות נוספות ב-markdown\n- 🔖הקצה תוויות לארגון טוב עוד יותר\n- 👥 שתף עם הצוות שלך, חברים, או משפחה\n- 📎 צרף קבצים והטמע אותם בתיאור ה-markdown שלך\n- 💬 שוחח עם הצוות שלך באמצעות הערות\n- ⚡ עקוב אחר שינויים בזרם הפעילות\n- 🚀 ארגנו את הפרויקט שלכם",
|
||||
"Card details" : "פרטי הכרטיס",
|
||||
"Add board" : "הוספת לוח",
|
||||
"Select the board to link to a project" : "נא לבחור את הלוח לקישור למיזם",
|
||||
@@ -78,6 +122,7 @@ OC.L10N.register(
|
||||
"Apply filter" : "החלת מסנן",
|
||||
"Filter by tag" : "סינון לפי תגית",
|
||||
"Filter by assigned user" : "סינון לפי משתמש מוקצה",
|
||||
"Unassigned" : "לא הוקצה",
|
||||
"Filter by due date" : "סינון לפי תאריך יעד",
|
||||
"Overdue" : "באיחור",
|
||||
"Next 24 hours" : "ב־24 השעות הבאות",
|
||||
@@ -90,6 +135,8 @@ OC.L10N.register(
|
||||
"Toggle compact mode" : "החלפת מצב חסכוני",
|
||||
"Details" : "פרטים",
|
||||
"Loading board" : "הלוח נטען",
|
||||
"No lists available" : "אין רשימות זמינות",
|
||||
"Create a new list to add cards to this board" : "צור רשימה חדשה כדי להוסיף כרטיסים ללוח זה",
|
||||
"Board not found" : "הלוח לא נמצא",
|
||||
"Sharing" : "שיתוף",
|
||||
"Tags" : "תגיות",
|
||||
@@ -99,6 +146,8 @@ OC.L10N.register(
|
||||
"Undo" : "ביטול",
|
||||
"Deleted cards" : "כרטיסים שנמחקו",
|
||||
"Share board with a user, group or circle …" : "שיתוף לוח עם משתמש, קבוצה או מעגל…",
|
||||
"Searching for users, groups and circles …" : "מחפש משתמשים, קבוצות, ומעגלים ...",
|
||||
"No participants found" : "לא נמצאו משתתפים",
|
||||
"Board owner" : "בעלות על הלוח",
|
||||
"(Group)" : "(קבוצה)",
|
||||
"(Circle)" : "(מעגל)",
|
||||
@@ -106,9 +155,15 @@ OC.L10N.register(
|
||||
"Can share" : "Can share",
|
||||
"Can manage" : "הרשאת ניהול",
|
||||
"Delete" : "מחיקה",
|
||||
"Failed to create share with {displayName}" : "יצירת השיתוף עם {displayName} נכשלה",
|
||||
"Add a new list" : "הוסף רשימה חדשה",
|
||||
"Archive all cards" : "ארכיב את כל הכרטיסים",
|
||||
"Delete list" : "מחיקת רשימה",
|
||||
"Add card" : "הוספת כרטיס",
|
||||
"Archive all cards in this list" : "ארכיב את כל הכרטיסים ברשימה זו",
|
||||
"Add a new card" : "הוספת כרטיס חדש",
|
||||
"Card name" : "שם כרטיס",
|
||||
"List deleted" : "הרשימה נמחקה",
|
||||
"Edit" : "עריכה",
|
||||
"Add a new tag" : "הוספת תגית חדשה",
|
||||
"title and color value must be provided" : "יש לספק כותרת וערך צבע",
|
||||
@@ -118,16 +173,19 @@ OC.L10N.register(
|
||||
"Add this attachment" : "הוספת קובץ מצורף זה",
|
||||
"Delete Attachment" : "מחיקת קובץ מצורף",
|
||||
"Restore Attachment" : "שחזור קובץ מצורף",
|
||||
"Open in sidebar view" : "פתח בתצוגת סרגל הצד",
|
||||
"Open in bigger view" : "פתח בתצוגה גדולה יותר",
|
||||
"Attachments" : "קבצים מצורפים",
|
||||
"Comments" : "תגובות",
|
||||
"Modified" : "מועד שינוי",
|
||||
"Created" : "מועד היצירה",
|
||||
"The title cannot be empty." : "הכותרת לא יכולה להיות ריקה.",
|
||||
"No comments yet. Begin the discussion!" : "אין עדיין הערות. אפשר להתחיל לדון!",
|
||||
"Assign a tag to this card…" : "הקצאת תגית לכרטיס זה…",
|
||||
"Assign to users" : "הקצאה למשתמשים",
|
||||
"Assign to users/groups/circles" : "הקצאה למשתמשים/קבוצות/מעגלים",
|
||||
"Assign a user to this card…" : "הקצאת משתמש לכרטיס זה…",
|
||||
"Due date" : "מועד תפוגה",
|
||||
"Due date" : "מועד יעד",
|
||||
"Set a due date" : "הגדרת תאריך יעד",
|
||||
"Remove due date" : "הסרת מועד התפוגה",
|
||||
"Select Date" : "בחירת תאריך",
|
||||
@@ -137,40 +195,64 @@ OC.L10N.register(
|
||||
"In reply to" : "בתגובה אל",
|
||||
"Reply" : "תגובה",
|
||||
"Update" : "עדכון",
|
||||
"Description" : "תיאוג",
|
||||
"Description" : "תיאור",
|
||||
"(Unsaved)" : "(לא נשמר)",
|
||||
"(Saving…)" : "(מתבצעת שמירה…)",
|
||||
"Formatting help" : "עזרה בסידור בתבנית",
|
||||
"Edit description" : "עריכת תיאור",
|
||||
"View description" : "הצגת תיאור",
|
||||
"Add Attachment" : "הוספת קובץ מצורף",
|
||||
"Write a description …" : "כתוב תיאור ...",
|
||||
"Choose attachment" : "בחירת קובץ מצורף",
|
||||
"(group)" : "(קבוצה)",
|
||||
"(circle)" : "(מעגל)",
|
||||
"Assign to me" : "הקצאה אלי",
|
||||
"Unassign myself" : "לבטל את הקצאת עצמי",
|
||||
"Move card" : "העברת כרטיס",
|
||||
"Unarchive card" : "הוצאת הכרטיס מהארכיון",
|
||||
"Archive card" : "העברת כרטיס לארכיון",
|
||||
"Delete card" : "מחיקת כרטיס לארכיון",
|
||||
"Move card to another board" : "העברת כרטיס ללוח אחר",
|
||||
"Select a list" : "בחר רשימה",
|
||||
"Card deleted" : "הכרטיס נמחק",
|
||||
"seconds ago" : "לפני מספר שניות",
|
||||
"All boards" : "כל הלוחות",
|
||||
"Archived boards" : "לוחות שנשמרו בארכיון",
|
||||
"Shared with you" : "משותף אתך",
|
||||
"Use modal card view" : "השתמש בתצוגת כרטיס מודאלי",
|
||||
"Show boards in calendar/tasks" : "הצג הלוחות בלוח השנה/המשימות",
|
||||
"Limit deck usage of groups" : "הגבלת השימוש בחבילה לקבוצות",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "הגבלת חבילה תחסום משתמשים שאינם חלק מקבוצות אלו מיצירת לוחות משלהם. משתמשים עדיין יוכלו לעבור על לוחות ששותפו אתם.",
|
||||
"Board name" : "שם הלוח",
|
||||
"Board details" : "פרטי לוח",
|
||||
"Edit board" : "עריכת לוח",
|
||||
"Clone board" : "שכפל את הלוח",
|
||||
"Unarchive board" : "בטל ארכיון של הלוח",
|
||||
"Archive board" : "העבר את הלוח לארכיון",
|
||||
"Turn on due date reminders" : "הפעל תזכורות לתאריך היעד",
|
||||
"Turn off due date reminders" : "השבת תזכורות לתאריך היעד",
|
||||
"Due date reminders" : "תזכורות לתאריך יעד",
|
||||
"All cards" : "כל הכרטיסים",
|
||||
"Assigned cards" : "כרטיסים שהוקצו",
|
||||
"No notifications" : "אין התראות",
|
||||
"Delete board" : "מחק לוח",
|
||||
"Board {0} deleted" : "הלוח {0} נמחק",
|
||||
"Only assigned cards" : "רק כרטיסים שהוקצו",
|
||||
"No reminder" : "אין תזכורת",
|
||||
"An error occurred" : "אירעה שגיאה",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "למחוק את הלוח {title}? פעולה זו תמחק את כל הנתונים של הלוח הזה.",
|
||||
"Delete the board?" : "למחוק את הלוח הזה?",
|
||||
"Loading filtered view" : "טוען תצוגה מסוננת",
|
||||
"Today" : "היום",
|
||||
"Tomorrow" : "מחר",
|
||||
"This week" : "השבוע",
|
||||
"No due" : "אין תאריך יעד",
|
||||
"No upcoming cards" : "אין כרטיסים עתידיים",
|
||||
"upcoming cards" : "כרטיסים עתידיים",
|
||||
"Link to a board" : "קישור ללוח",
|
||||
"Link to a card" : "קישור לכרטיס",
|
||||
"Something went wrong" : "משהו השתבש",
|
||||
"Failed to upload {name}" : "העלאת {name} נכשלה",
|
||||
"Maximum file size of {size} exceeded" : "גודל הקבצים המרבי {size} הושג"
|
||||
},
|
||||
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;");
|
||||
|
||||
86
l10n/he.json
86
l10n/he.json
@@ -15,14 +15,57 @@
|
||||
"{user} has archived the board {before}" : "הארכיון {before} הועבר לארכיון על ידי {user}",
|
||||
"You have unarchived the board {board}" : "הוצאת את הלוח {board} מהארכיון",
|
||||
"{user} has unarchived the board {before}" : "הלוח {before} הוצא מהארכיון על ידי {user}",
|
||||
"You have created a new list {stack} on board {board}" : "יצרת רשימה חדשה {stack} על הלוח {board}",
|
||||
"{user} has created a new list {stack} on board {board}" : "{user} יצר רשימה חדשה {stack} על הלוח {board}",
|
||||
"You have renamed list {before} to {stack} on board {board}" : "שינית את שם הרשימה {לפני} ל- {stack} על הלוח {board}",
|
||||
"{user} has renamed list {before} to {stack} on board {board}" : "{user} שינה את שם הרשימה {לפני} ל- {stack} על הלוח {board}",
|
||||
"You have deleted list {stack} on board {board}" : "מחקת את הרשימה {stack} על הלוח {board}",
|
||||
"{user} has deleted list {stack} on board {board}" : "{user} מחק את הרשימה {stack} על הלוח {board}",
|
||||
"You have created card {card} in list {stack} on board {board}" : "יצרת כרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"{user} has created card {card} in list {stack} on board {board}" : "{user} יצר כרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"You have deleted card {card} in list {stack} on board {board}" : "מחקת את הכרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} מחק את הכרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"You have renamed the card {before} to {card}" : "שינית את שם הכרטיס {before} ל- {card}",
|
||||
"{user} has renamed the card {before} to {card}" : "{user} שינה את שם הכרטיס {לפני} ל- {card}",
|
||||
"You have added a description to card {card} in list {stack} on board {board}" : "הוספת תיאור לכרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} הוסיף תיאור לכרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"You have updated the description of card {card} in list {stack} on board {board}" : "עדכנת את תיאור הכרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} עדכן את תיאור הכרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"You have archived card {card} in list {stack} on board {board}" : "שמרת כרטיס {card} בארכיון ברשימה {stack} על הלוח {board}",
|
||||
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ארכיב כרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"You have unarchived card {card} in list {stack} on board {board}" : "יש לך כרטיס {card} שלא הועבר לארכיון ברשימה {stack} על הלוח {board}",
|
||||
"{user} has unarchived card {card} in list {stack} on board {board}" : "ל-{user} יש כרטיס {card} שלא הועבר לארכיון ברשימה {stack} על הלוח {board}",
|
||||
"You have removed the due date of card {card}" : "הסרת את מועד היעד מהכרטיס {card}",
|
||||
"{user} has removed the due date of card {card}" : "מועד היעד של הכרטיס {card} הוסר על ידי {user}",
|
||||
"You have set the due date of card {card} to {after}" : "הגדרת את תאריך היעד של הכרטיס {card} ל- {after}",
|
||||
"{user} has set the due date of card {card} to {after}" : "{user} הגדיר את תאריך היעד של הכרטיס {card} ל- {after}",
|
||||
"You have updated the due date of card {card} to {after}" : "עדכנת את תאריך היעד של הכרטיס {card} ל- {after}",
|
||||
"{user} has updated the due date of card {card} to {after}" : "{user} עדכן את תאריך היעד של הכרטיס {card} ל- {after}",
|
||||
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "הוספת את התג {label} לכרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} הוסיף את התג {label} לכרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "הסרת את התג {label} מכרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} הסיר את התג {label} מכרטיס {card} ברשימה {stack} על הלוח {board}",
|
||||
"You have assigned {assigneduser} to card {card} on board {board}" : "הקצית {assigneduser} לכרטיס {card} על הלוח {board}",
|
||||
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} הקצה את {assigneduser} לכרטיס {card} על הלוח {board}",
|
||||
"You have unassigned {assigneduser} from card {card} on board {board}" : "בטלת את הקצאת {assigneduser} מכרטיס {card} על הלוח {board}",
|
||||
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} ביטל את ההקצאה של {assigneduser} מכרטיס {card} על הלוח {board}",
|
||||
"You have moved the card {card} from list {stackBefore} to {stack}" : "העברת את הכרטיס {card} מהרשימה {stackBefore} ל- {stack}",
|
||||
"{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user} העביר את הכרטיס {card} מהרשימה {stackBefore} ל- {stack}",
|
||||
"You have added the attachment {attachment} to card {card}" : "הוספת את הקובץ המצורף {attachment} לכרטיס {card}",
|
||||
"{user} has added the attachment {attachment} to card {card}" : "{user} הוסיף את הקובץ המצורף {attachment} לכרטיס {card}",
|
||||
"You have updated the attachment {attachment} on card {card}" : "עדכנת את הקובץ המצורף {attachment} בכרטיס {card}",
|
||||
"{user} has updated the attachment {attachment} on card {card}" : "{user} עדכן את הקובץ המצורף {attachment} בכרטיס {card}",
|
||||
"You have deleted the attachment {attachment} from card {card}" : "מחקת את הקובץ המצורף {attachment} מכרטיס {card}",
|
||||
"{user} has deleted the attachment {attachment} from card {card}" : "{user} מחק את הקובץ המצורף {attachment} מכרטיס {card}",
|
||||
"You have restored the attachment {attachment} to card {card}" : "שחזרת את הקובץ המצורף {attachment} לכרטיס {card}",
|
||||
"{user} has restored the attachment {attachment} to card {card}" : "{user} שיחזר את הקובץ המצורף {attachment} לכרטיס {card}",
|
||||
"You have commented on card {card}" : "הגבת על הכרטיס {cart}",
|
||||
"{user} has commented on card {card}" : "נוספה תגובה מאת {user} על הכרטיס {card}",
|
||||
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>תיאור של כרטיס</strong> בתוך יישומון החבילה נערך",
|
||||
"Deck" : "חפיסה",
|
||||
"Changes in the <strong>Deck app</strong>" : "שינויים ל<strong>יישומון החבילה</strong>",
|
||||
"A <strong>comment</strong> was created on a card" : "נוצרה <strong>הערה</strong> על כרטיס",
|
||||
"Upcoming cards" : "כרטיסים עתידיים",
|
||||
"Personal" : "אישי",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "הכרטיס \"%s\" שב־„%s” הוקצה אליך על ידי %s.",
|
||||
"{user} has assigned the card \"%s\" on \"%s\" to you." : "הכרטיס „%s” שב„%s” הוקצה לך על ידי {user}.",
|
||||
@@ -53,6 +96,7 @@
|
||||
"A PHP extension stopped the file upload" : "הרחבת PHP עצרה את העלאת הקובץ",
|
||||
"No file uploaded or file size exceeds maximum of %s" : "לא הועלה אף קובץ או שגודל הקובץ חרג מהסף המרבי של %s",
|
||||
"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 הוא כלי ארגון בסגנון kanban המכוון לתכנון אישי ולארגון פרויקטים עבור צוותים המשולבים ב- Nextcloud.\n\n\n- 📥 הוסף את המשימות שלך לכרטיסים וסדר אותן\n- 📄 רשמו הערות נוספות ב-markdown\n- 🔖הקצה תוויות לארגון טוב עוד יותר\n- 👥 שתף עם הצוות שלך, חברים, או משפחה\n- 📎 צרף קבצים והטמע אותם בתיאור ה-markdown שלך\n- 💬 שוחח עם הצוות שלך באמצעות הערות\n- ⚡ עקוב אחר שינויים בזרם הפעילות\n- 🚀 ארגנו את הפרויקט שלכם",
|
||||
"Card details" : "פרטי הכרטיס",
|
||||
"Add board" : "הוספת לוח",
|
||||
"Select the board to link to a project" : "נא לבחור את הלוח לקישור למיזם",
|
||||
@@ -76,6 +120,7 @@
|
||||
"Apply filter" : "החלת מסנן",
|
||||
"Filter by tag" : "סינון לפי תגית",
|
||||
"Filter by assigned user" : "סינון לפי משתמש מוקצה",
|
||||
"Unassigned" : "לא הוקצה",
|
||||
"Filter by due date" : "סינון לפי תאריך יעד",
|
||||
"Overdue" : "באיחור",
|
||||
"Next 24 hours" : "ב־24 השעות הבאות",
|
||||
@@ -88,6 +133,8 @@
|
||||
"Toggle compact mode" : "החלפת מצב חסכוני",
|
||||
"Details" : "פרטים",
|
||||
"Loading board" : "הלוח נטען",
|
||||
"No lists available" : "אין רשימות זמינות",
|
||||
"Create a new list to add cards to this board" : "צור רשימה חדשה כדי להוסיף כרטיסים ללוח זה",
|
||||
"Board not found" : "הלוח לא נמצא",
|
||||
"Sharing" : "שיתוף",
|
||||
"Tags" : "תגיות",
|
||||
@@ -97,6 +144,8 @@
|
||||
"Undo" : "ביטול",
|
||||
"Deleted cards" : "כרטיסים שנמחקו",
|
||||
"Share board with a user, group or circle …" : "שיתוף לוח עם משתמש, קבוצה או מעגל…",
|
||||
"Searching for users, groups and circles …" : "מחפש משתמשים, קבוצות, ומעגלים ...",
|
||||
"No participants found" : "לא נמצאו משתתפים",
|
||||
"Board owner" : "בעלות על הלוח",
|
||||
"(Group)" : "(קבוצה)",
|
||||
"(Circle)" : "(מעגל)",
|
||||
@@ -104,9 +153,15 @@
|
||||
"Can share" : "Can share",
|
||||
"Can manage" : "הרשאת ניהול",
|
||||
"Delete" : "מחיקה",
|
||||
"Failed to create share with {displayName}" : "יצירת השיתוף עם {displayName} נכשלה",
|
||||
"Add a new list" : "הוסף רשימה חדשה",
|
||||
"Archive all cards" : "ארכיב את כל הכרטיסים",
|
||||
"Delete list" : "מחיקת רשימה",
|
||||
"Add card" : "הוספת כרטיס",
|
||||
"Archive all cards in this list" : "ארכיב את כל הכרטיסים ברשימה זו",
|
||||
"Add a new card" : "הוספת כרטיס חדש",
|
||||
"Card name" : "שם כרטיס",
|
||||
"List deleted" : "הרשימה נמחקה",
|
||||
"Edit" : "עריכה",
|
||||
"Add a new tag" : "הוספת תגית חדשה",
|
||||
"title and color value must be provided" : "יש לספק כותרת וערך צבע",
|
||||
@@ -116,16 +171,19 @@
|
||||
"Add this attachment" : "הוספת קובץ מצורף זה",
|
||||
"Delete Attachment" : "מחיקת קובץ מצורף",
|
||||
"Restore Attachment" : "שחזור קובץ מצורף",
|
||||
"Open in sidebar view" : "פתח בתצוגת סרגל הצד",
|
||||
"Open in bigger view" : "פתח בתצוגה גדולה יותר",
|
||||
"Attachments" : "קבצים מצורפים",
|
||||
"Comments" : "תגובות",
|
||||
"Modified" : "מועד שינוי",
|
||||
"Created" : "מועד היצירה",
|
||||
"The title cannot be empty." : "הכותרת לא יכולה להיות ריקה.",
|
||||
"No comments yet. Begin the discussion!" : "אין עדיין הערות. אפשר להתחיל לדון!",
|
||||
"Assign a tag to this card…" : "הקצאת תגית לכרטיס זה…",
|
||||
"Assign to users" : "הקצאה למשתמשים",
|
||||
"Assign to users/groups/circles" : "הקצאה למשתמשים/קבוצות/מעגלים",
|
||||
"Assign a user to this card…" : "הקצאת משתמש לכרטיס זה…",
|
||||
"Due date" : "מועד תפוגה",
|
||||
"Due date" : "מועד יעד",
|
||||
"Set a due date" : "הגדרת תאריך יעד",
|
||||
"Remove due date" : "הסרת מועד התפוגה",
|
||||
"Select Date" : "בחירת תאריך",
|
||||
@@ -135,40 +193,64 @@
|
||||
"In reply to" : "בתגובה אל",
|
||||
"Reply" : "תגובה",
|
||||
"Update" : "עדכון",
|
||||
"Description" : "תיאוג",
|
||||
"Description" : "תיאור",
|
||||
"(Unsaved)" : "(לא נשמר)",
|
||||
"(Saving…)" : "(מתבצעת שמירה…)",
|
||||
"Formatting help" : "עזרה בסידור בתבנית",
|
||||
"Edit description" : "עריכת תיאור",
|
||||
"View description" : "הצגת תיאור",
|
||||
"Add Attachment" : "הוספת קובץ מצורף",
|
||||
"Write a description …" : "כתוב תיאור ...",
|
||||
"Choose attachment" : "בחירת קובץ מצורף",
|
||||
"(group)" : "(קבוצה)",
|
||||
"(circle)" : "(מעגל)",
|
||||
"Assign to me" : "הקצאה אלי",
|
||||
"Unassign myself" : "לבטל את הקצאת עצמי",
|
||||
"Move card" : "העברת כרטיס",
|
||||
"Unarchive card" : "הוצאת הכרטיס מהארכיון",
|
||||
"Archive card" : "העברת כרטיס לארכיון",
|
||||
"Delete card" : "מחיקת כרטיס לארכיון",
|
||||
"Move card to another board" : "העברת כרטיס ללוח אחר",
|
||||
"Select a list" : "בחר רשימה",
|
||||
"Card deleted" : "הכרטיס נמחק",
|
||||
"seconds ago" : "לפני מספר שניות",
|
||||
"All boards" : "כל הלוחות",
|
||||
"Archived boards" : "לוחות שנשמרו בארכיון",
|
||||
"Shared with you" : "משותף אתך",
|
||||
"Use modal card view" : "השתמש בתצוגת כרטיס מודאלי",
|
||||
"Show boards in calendar/tasks" : "הצג הלוחות בלוח השנה/המשימות",
|
||||
"Limit deck usage of groups" : "הגבלת השימוש בחבילה לקבוצות",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "הגבלת חבילה תחסום משתמשים שאינם חלק מקבוצות אלו מיצירת לוחות משלהם. משתמשים עדיין יוכלו לעבור על לוחות ששותפו אתם.",
|
||||
"Board name" : "שם הלוח",
|
||||
"Board details" : "פרטי לוח",
|
||||
"Edit board" : "עריכת לוח",
|
||||
"Clone board" : "שכפל את הלוח",
|
||||
"Unarchive board" : "בטל ארכיון של הלוח",
|
||||
"Archive board" : "העבר את הלוח לארכיון",
|
||||
"Turn on due date reminders" : "הפעל תזכורות לתאריך היעד",
|
||||
"Turn off due date reminders" : "השבת תזכורות לתאריך היעד",
|
||||
"Due date reminders" : "תזכורות לתאריך יעד",
|
||||
"All cards" : "כל הכרטיסים",
|
||||
"Assigned cards" : "כרטיסים שהוקצו",
|
||||
"No notifications" : "אין התראות",
|
||||
"Delete board" : "מחק לוח",
|
||||
"Board {0} deleted" : "הלוח {0} נמחק",
|
||||
"Only assigned cards" : "רק כרטיסים שהוקצו",
|
||||
"No reminder" : "אין תזכורת",
|
||||
"An error occurred" : "אירעה שגיאה",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "למחוק את הלוח {title}? פעולה זו תמחק את כל הנתונים של הלוח הזה.",
|
||||
"Delete the board?" : "למחוק את הלוח הזה?",
|
||||
"Loading filtered view" : "טוען תצוגה מסוננת",
|
||||
"Today" : "היום",
|
||||
"Tomorrow" : "מחר",
|
||||
"This week" : "השבוע",
|
||||
"No due" : "אין תאריך יעד",
|
||||
"No upcoming cards" : "אין כרטיסים עתידיים",
|
||||
"upcoming cards" : "כרטיסים עתידיים",
|
||||
"Link to a board" : "קישור ללוח",
|
||||
"Link to a card" : "קישור לכרטיס",
|
||||
"Something went wrong" : "משהו השתבש",
|
||||
"Failed to upload {name}" : "העלאת {name} נכשלה",
|
||||
"Maximum file size of {size} exceeded" : "גודל הקבצים המרבי {size} הושג"
|
||||
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"
|
||||
}
|
||||
18
l10n/hr.js
18
l10n/hr.js
@@ -67,6 +67,7 @@ OC.L10N.register(
|
||||
"Deck" : "Deck",
|
||||
"Changes in the <strong>Deck app</strong>" : "Promjene u <strong>aplikaciji Deck</strong>",
|
||||
"A <strong>comment</strong> was created on a card" : "Na kartici je stvoren <strong>komentar</strong>",
|
||||
"Upcoming cards" : "Nadolazeće kartice",
|
||||
"Personal" : "Osobno",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Karticu „%s” na „%s” dodijelio vam je %s.",
|
||||
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} vam je dodijelio karticu „%s” na „%s”.",
|
||||
@@ -145,6 +146,7 @@ OC.L10N.register(
|
||||
"Undo" : "Poništi",
|
||||
"Deleted cards" : "Izbrisane kartice",
|
||||
"Share board with a user, group or circle …" : "Dijelite ploču s korisnikom, grupom ili krugom...",
|
||||
"No participants found" : "Nije pronađen nijedan sudionik",
|
||||
"Board owner" : "Vlasnik ploče",
|
||||
"(Group)" : "(Grupa)",
|
||||
"(Circle)" : "(Krug)",
|
||||
@@ -152,10 +154,15 @@ OC.L10N.register(
|
||||
"Can share" : "Dijeljenje moguće",
|
||||
"Can manage" : "Upravljanje moguće",
|
||||
"Delete" : "Izbriši",
|
||||
"Failed to create share with {displayName}" : "Dijeljenje s {displayName} nije uspjelo",
|
||||
"Add a new list" : "Dodaj novi popis",
|
||||
"Archive all cards" : "Arhiviraj sve kartice",
|
||||
"Delete list" : "Izbriši popis",
|
||||
"Add card" : "Dodaj karticu",
|
||||
"Archive all cards in this list" : "Arhiviraj sve kartice s ovog popisa",
|
||||
"Add a new card" : "Dodaj novu karticu",
|
||||
"Card name" : "Naziv kartice",
|
||||
"List deleted" : "Popis je izbrisan",
|
||||
"Edit" : "Uredi",
|
||||
"Add a new tag" : "Dodaj novu oznaku",
|
||||
"title and color value must be provided" : "potrebno je odabrati naziv i vrijednost boje",
|
||||
@@ -165,10 +172,13 @@ OC.L10N.register(
|
||||
"Add this attachment" : "Dodajte ovaj privitak",
|
||||
"Delete Attachment" : "Izbriši privitak",
|
||||
"Restore Attachment" : "Vrati privitak",
|
||||
"Open in sidebar view" : "Otvori u bočnom prikazu",
|
||||
"Open in bigger view" : "Otvori u većem prikazu",
|
||||
"Attachments" : "Privici",
|
||||
"Comments" : "Komentari",
|
||||
"Modified" : "Promijenjeno",
|
||||
"Created" : "Stvoreno",
|
||||
"The title cannot be empty." : "Naslov ne može biti prazan.",
|
||||
"No comments yet. Begin the discussion!" : "Nema komentara. Započnite raspravu!",
|
||||
"Assign a tag to this card…" : "Dodijeli oznaku ovoj kartici...",
|
||||
"Assign to users" : "Dodijeli korisnicima",
|
||||
@@ -202,21 +212,29 @@ OC.L10N.register(
|
||||
"Delete card" : "Izbriši karticu",
|
||||
"Move card to another board" : "Premjesti karticu na drugu ploču",
|
||||
"Select a list" : "Odaberi popis",
|
||||
"Card deleted" : "Kartica je izbrisana",
|
||||
"seconds ago" : "prije nekoliko sekundi",
|
||||
"All boards" : "Sve ploče",
|
||||
"Archived boards" : "Arhivirane ploče",
|
||||
"Shared with you" : "Podijeljeno s vama",
|
||||
"Use modal card view" : "Koristi modalni prikaz kartice",
|
||||
"Show boards in calendar/tasks" : "Prikaži ploče u kalendaru/zadacima",
|
||||
"Limit deck usage of groups" : "Ograniči uporabu decka grupama",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Ograničenjem Decka možete spriječiti korisnike koji ne sudjeluju u tim grupama da stvaraju vlastite ploče. Korisnici će i dalje moći raditi na pločama koje su dijeljene s njima.",
|
||||
"Board name" : "Naziv ploče",
|
||||
"Board details" : "Pojedinosti o ploči",
|
||||
"Edit board" : "Uredi ploču",
|
||||
"Board {0} deleted" : "Ploča {0} je izbrisana",
|
||||
"An error occurred" : "Došlo je do pogreške",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Jeste li sigurni da želite izbrisati ploču {title}? Time ćete izbrisati sve podatke ploče.",
|
||||
"Delete the board?" : "Želite li izbrisati ploču?",
|
||||
"Loading filtered view" : "Učitavanje filtriranog prikaza",
|
||||
"Today" : "Danas",
|
||||
"Tomorrow" : "Sutra",
|
||||
"This week" : "Ovaj tjedan",
|
||||
"No due" : "Nema nezavršenih",
|
||||
"No upcoming cards" : "Nema nadolazećih kartica",
|
||||
"upcoming cards" : "nadolazeće kartice",
|
||||
"Link to a board" : "Poveznica na ploču",
|
||||
"Link to a card" : "Poveznica na karticu",
|
||||
"Something went wrong" : "Nešto je pošlo po krivu",
|
||||
|
||||
18
l10n/hr.json
18
l10n/hr.json
@@ -65,6 +65,7 @@
|
||||
"Deck" : "Deck",
|
||||
"Changes in the <strong>Deck app</strong>" : "Promjene u <strong>aplikaciji Deck</strong>",
|
||||
"A <strong>comment</strong> was created on a card" : "Na kartici je stvoren <strong>komentar</strong>",
|
||||
"Upcoming cards" : "Nadolazeće kartice",
|
||||
"Personal" : "Osobno",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Karticu „%s” na „%s” dodijelio vam je %s.",
|
||||
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} vam je dodijelio karticu „%s” na „%s”.",
|
||||
@@ -143,6 +144,7 @@
|
||||
"Undo" : "Poništi",
|
||||
"Deleted cards" : "Izbrisane kartice",
|
||||
"Share board with a user, group or circle …" : "Dijelite ploču s korisnikom, grupom ili krugom...",
|
||||
"No participants found" : "Nije pronađen nijedan sudionik",
|
||||
"Board owner" : "Vlasnik ploče",
|
||||
"(Group)" : "(Grupa)",
|
||||
"(Circle)" : "(Krug)",
|
||||
@@ -150,10 +152,15 @@
|
||||
"Can share" : "Dijeljenje moguće",
|
||||
"Can manage" : "Upravljanje moguće",
|
||||
"Delete" : "Izbriši",
|
||||
"Failed to create share with {displayName}" : "Dijeljenje s {displayName} nije uspjelo",
|
||||
"Add a new list" : "Dodaj novi popis",
|
||||
"Archive all cards" : "Arhiviraj sve kartice",
|
||||
"Delete list" : "Izbriši popis",
|
||||
"Add card" : "Dodaj karticu",
|
||||
"Archive all cards in this list" : "Arhiviraj sve kartice s ovog popisa",
|
||||
"Add a new card" : "Dodaj novu karticu",
|
||||
"Card name" : "Naziv kartice",
|
||||
"List deleted" : "Popis je izbrisan",
|
||||
"Edit" : "Uredi",
|
||||
"Add a new tag" : "Dodaj novu oznaku",
|
||||
"title and color value must be provided" : "potrebno je odabrati naziv i vrijednost boje",
|
||||
@@ -163,10 +170,13 @@
|
||||
"Add this attachment" : "Dodajte ovaj privitak",
|
||||
"Delete Attachment" : "Izbriši privitak",
|
||||
"Restore Attachment" : "Vrati privitak",
|
||||
"Open in sidebar view" : "Otvori u bočnom prikazu",
|
||||
"Open in bigger view" : "Otvori u većem prikazu",
|
||||
"Attachments" : "Privici",
|
||||
"Comments" : "Komentari",
|
||||
"Modified" : "Promijenjeno",
|
||||
"Created" : "Stvoreno",
|
||||
"The title cannot be empty." : "Naslov ne može biti prazan.",
|
||||
"No comments yet. Begin the discussion!" : "Nema komentara. Započnite raspravu!",
|
||||
"Assign a tag to this card…" : "Dodijeli oznaku ovoj kartici...",
|
||||
"Assign to users" : "Dodijeli korisnicima",
|
||||
@@ -200,21 +210,29 @@
|
||||
"Delete card" : "Izbriši karticu",
|
||||
"Move card to another board" : "Premjesti karticu na drugu ploču",
|
||||
"Select a list" : "Odaberi popis",
|
||||
"Card deleted" : "Kartica je izbrisana",
|
||||
"seconds ago" : "prije nekoliko sekundi",
|
||||
"All boards" : "Sve ploče",
|
||||
"Archived boards" : "Arhivirane ploče",
|
||||
"Shared with you" : "Podijeljeno s vama",
|
||||
"Use modal card view" : "Koristi modalni prikaz kartice",
|
||||
"Show boards in calendar/tasks" : "Prikaži ploče u kalendaru/zadacima",
|
||||
"Limit deck usage of groups" : "Ograniči uporabu decka grupama",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Ograničenjem Decka možete spriječiti korisnike koji ne sudjeluju u tim grupama da stvaraju vlastite ploče. Korisnici će i dalje moći raditi na pločama koje su dijeljene s njima.",
|
||||
"Board name" : "Naziv ploče",
|
||||
"Board details" : "Pojedinosti o ploči",
|
||||
"Edit board" : "Uredi ploču",
|
||||
"Board {0} deleted" : "Ploča {0} je izbrisana",
|
||||
"An error occurred" : "Došlo je do pogreške",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Jeste li sigurni da želite izbrisati ploču {title}? Time ćete izbrisati sve podatke ploče.",
|
||||
"Delete the board?" : "Želite li izbrisati ploču?",
|
||||
"Loading filtered view" : "Učitavanje filtriranog prikaza",
|
||||
"Today" : "Danas",
|
||||
"Tomorrow" : "Sutra",
|
||||
"This week" : "Ovaj tjedan",
|
||||
"No due" : "Nema nezavršenih",
|
||||
"No upcoming cards" : "Nema nadolazećih kartica",
|
||||
"upcoming cards" : "nadolazeće kartice",
|
||||
"Link to a board" : "Poveznica na ploču",
|
||||
"Link to a card" : "Poveznica na karticu",
|
||||
"Something went wrong" : "Nešto je pošlo po krivu",
|
||||
|
||||
@@ -252,6 +252,7 @@ OC.L10N.register(
|
||||
"Link to a board" : "Collega a una lavagna",
|
||||
"Link to a card" : " Collega a una scheda",
|
||||
"Something went wrong" : "Qualcosa non ha funzionato",
|
||||
"Failed to upload {name}" : "Caricamenti di {name} non riuscito",
|
||||
"Maximum file size of {size} exceeded" : "Dimensione massima dei file di {size} superata"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -250,6 +250,7 @@
|
||||
"Link to a board" : "Collega a una lavagna",
|
||||
"Link to a card" : " Collega a una scheda",
|
||||
"Something went wrong" : "Qualcosa non ha funzionato",
|
||||
"Failed to upload {name}" : "Caricamenti di {name} non riuscito",
|
||||
"Maximum file size of {size} exceeded" : "Dimensione massima dei file di {size} superata"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -14,6 +14,9 @@ OC.L10N.register(
|
||||
"copy" : "복사",
|
||||
"To do" : "할 일",
|
||||
"Done" : "완료",
|
||||
"Example Task 3" : "작업 예제 3",
|
||||
"Example Task 2" : "작업 예제 2",
|
||||
"Example Task 1" : "작업 예제 1",
|
||||
"The file was uploaded" : "파일을 업로드함",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "업로드한 파일의 크기가 php.ini의 upload_max_filesize를 초과함",
|
||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "업로드한 파일의 크기가 HTML 폼에 지정한 MAX_FILE_SIZE를 초과함",
|
||||
|
||||
@@ -12,6 +12,9 @@
|
||||
"copy" : "복사",
|
||||
"To do" : "할 일",
|
||||
"Done" : "완료",
|
||||
"Example Task 3" : "작업 예제 3",
|
||||
"Example Task 2" : "작업 예제 2",
|
||||
"Example Task 1" : "작업 예제 1",
|
||||
"The file was uploaded" : "파일을 업로드함",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "업로드한 파일의 크기가 php.ini의 upload_max_filesize를 초과함",
|
||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "업로드한 파일의 크기가 HTML 폼에 지정한 MAX_FILE_SIZE를 초과함",
|
||||
|
||||
@@ -210,7 +210,12 @@ OC.L10N.register(
|
||||
"Board name" : "Lentos pavadinimas",
|
||||
"Board details" : "Išsamiau apie lentą",
|
||||
"Edit board" : "Taisyti lentą",
|
||||
"All cards" : "Visos kortelės",
|
||||
"Assigned cards" : "Priskirtos kortelės",
|
||||
"No notifications" : "Pranešimų nėra",
|
||||
"Delete board" : "Ištrinti lentą",
|
||||
"Board {0} deleted" : "Lenta {0} ištrinta",
|
||||
"Only assigned cards" : "Tik priskirtos kortelės",
|
||||
"An error occurred" : "Įvyko klaida",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Ar tikrai norite ištrinti lentą, pavadinimu {title}? Tai ištrins visus šios lentos duomenis.",
|
||||
"Delete the board?" : "Ištrinti lentą?",
|
||||
|
||||
@@ -208,7 +208,12 @@
|
||||
"Board name" : "Lentos pavadinimas",
|
||||
"Board details" : "Išsamiau apie lentą",
|
||||
"Edit board" : "Taisyti lentą",
|
||||
"All cards" : "Visos kortelės",
|
||||
"Assigned cards" : "Priskirtos kortelės",
|
||||
"No notifications" : "Pranešimų nėra",
|
||||
"Delete board" : "Ištrinti lentą",
|
||||
"Board {0} deleted" : "Lenta {0} ištrinta",
|
||||
"Only assigned cards" : "Tik priskirtos kortelės",
|
||||
"An error occurred" : "Įvyko klaida",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Ar tikrai norite ištrinti lentą, pavadinimu {title}? Tai ištrins visus šios lentos duomenis.",
|
||||
"Delete the board?" : "Ištrinti lentą?",
|
||||
|
||||
210
l10n/mk.js
210
l10n/mk.js
@@ -1,10 +1,93 @@
|
||||
OC.L10N.register(
|
||||
"deck",
|
||||
{
|
||||
"You have created a new board {board}" : "Креиравте нова табла {board}",
|
||||
"{user} has created a new board {board}" : "{user} креирање нова табла {board}",
|
||||
"You have deleted the board {board}" : "Избришавте табла {board}",
|
||||
"{user} has deleted the board {board}" : "{user} избриша табла {board}",
|
||||
"You have restored the board {board}" : "Вративте табла {board}",
|
||||
"{user} has restored the board {board}" : "{user} врати табла {board}",
|
||||
"You have shared the board {board} with {acl}" : "Ја споделивте таблата {board} со {acl}",
|
||||
"{user} has shared the board {board} with {acl}" : "{user} ја сподели таблата {board} со {acl}",
|
||||
"You have removed {acl} from the board {board}" : "Го избришавте {acl} од таблата {board}",
|
||||
"{user} has removed {acl} from the board {board}" : "{user} го избриша {acl} од таблата {board}",
|
||||
"You have renamed the board {before} to {board}" : "Ја преименувавте таблата {before} во {board}",
|
||||
"{user} has renamed the board {before} to {board}" : "{user} ја преименување таблата {before} во {board}",
|
||||
"You have archived the board {board}" : "Ја архивиравте таблата {board}",
|
||||
"{user} has archived the board {before}" : "{user} ја архивирање таблата {before}",
|
||||
"You have unarchived the board {board}" : "Ја вративте од архива таблата {board}",
|
||||
"{user} has unarchived the board {before}" : "{user} ја врати од архива таблата {before}",
|
||||
"You have created a new list {stack} on board {board}" : "Креиравте нова листа {stack} на таблата {board}",
|
||||
"{user} has created a new list {stack} on board {board}" : "{user} креирање нова листа {stack} на таблата {board}",
|
||||
"You have renamed list {before} to {stack} on board {board}" : "Ја преименувавте листа {before} во {stack} на таблата {board}",
|
||||
"{user} has renamed list {before} to {stack} on board {board}" : "{user} ја преименување листата {before} во {stack} на таблата {board}",
|
||||
"You have deleted list {stack} on board {board}" : "Ја избришавте листата {stack} од таблата {board}",
|
||||
"{user} has deleted list {stack} on board {board}" : "{user} ја избриша листата {stack} од таблата {board}",
|
||||
"You have created card {card} in list {stack} on board {board}" : "Креиравте картица {card} во листата {stack} на таблата {board}",
|
||||
"{user} has created card {card} in list {stack} on board {board}" : "{user} креираше картица {card} во листата {stack} на таблата {board}",
|
||||
"You have deleted card {card} in list {stack} on board {board}" : "Избришавте картица {card} во листата {stack} на таблата {board}",
|
||||
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} избриша картица {card} во листата {stack} на таблата {board}",
|
||||
"You have renamed the card {before} to {card}" : "Ја преименувавте картицата {before} во {card}",
|
||||
"{user} has renamed the card {before} to {card}" : "{user} ја преименување картицата {before} во {card}",
|
||||
"You have added a description to card {card} in list {stack} on board {board}" : "Додадовте опис на картицата {card} во листата {stack} на таблата {board}",
|
||||
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} додаде опис на картицата {card} во листата {stack} на таблата {board}",
|
||||
"You have updated the description of card {card} in list {stack} on board {board}" : "Го ажуриравте описот на картицата {card} во листата {stack} на таблата {board}",
|
||||
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} го ажурираше описот на картицата {card} во листата {stack} на таблата {board}",
|
||||
"You have archived card {card} in list {stack} on board {board}" : "Ја архивиравте картицата {card} во листата {stack} на таблата {board}",
|
||||
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ја архивираше картицата {card} во листата {stack} на таблата {board}",
|
||||
"You have unarchived card {card} in list {stack} on board {board}" : "Ја вративте од архива картицата {card} во листата {stack} на таблата {board}",
|
||||
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} ја врати од архива картицата {card} во листата {stack} на таблата {board}",
|
||||
"You have removed the due date of card {card}" : "Го избришавте датумот на истекување на картицата {card}",
|
||||
"{user} has removed the due date of card {card}" : "{user} го избриша датумот на истекување на картицата {card}",
|
||||
"You have set the due date of card {card} to {after}" : "Поставивте датум на истекување на картицата {card}",
|
||||
"{user} has set the due date of card {card} to {after}" : "{user} постави датум на истекување на картицата {card}",
|
||||
"You have updated the due date of card {card} to {after}" : "Го ажуриравте датумот на истекување на картицата {card} до {after}",
|
||||
"{user} has updated the due date of card {card} to {after}" : "{user} го ажурираше датумот на истекување на картицата {card} до {after}",
|
||||
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Додадовте ознака {label} на картицата {card} во листата {stack} на таблата {board}",
|
||||
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} додаде ознака {label} на картицата {card} во листата {stack} на таблата {board}",
|
||||
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Ја избришавте ознаката {label} од картицата {card} во листата {stack} на таблата {board}",
|
||||
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} ја избриша ознаката {label} од картицата {card} во листата {stack} на таблата {board}",
|
||||
"You have assigned {assigneduser} to card {card} on board {board}" : "Го додадовте {assigneduser} во картицата {card} на таблата {board}",
|
||||
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} го додада {assigneduser} во картицата {card} на таблата {board}",
|
||||
"You have unassigned {assigneduser} from card {card} on board {board}" : "Го отстранивте {assigneduser} од картицата {card} на таблата {board}",
|
||||
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} го отстрани {assigneduser} од картицата {card} на таблата {board}",
|
||||
"You have moved the card {card} from list {stackBefore} to {stack}" : "Ја преместивте картицата {card} од листата {stackBefore} во {stack}",
|
||||
"{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user} ја премести картицата {card} од листата {stackBefore} во {stack}",
|
||||
"You have added the attachment {attachment} to card {card}" : "Додадовте прилог {attachment} на картицата {card}",
|
||||
"{user} has added the attachment {attachment} to card {card}" : "{user} додадте прилог {attachment} на картицата {card}",
|
||||
"You have updated the attachment {attachment} on card {card}" : "Го ажуриравте прилогот {attachment} на картицата {card}",
|
||||
"{user} has updated the attachment {attachment} on card {card}" : "{user} го ажурираше прилогот {attachment} на картицата {card}",
|
||||
"You have deleted the attachment {attachment} from card {card}" : "Го избришавте прилогот {attachment} од картицата {card}",
|
||||
"{user} has deleted the attachment {attachment} from card {card}" : "{user} го избриша прилогот {attachment} од картицата {card}",
|
||||
"You have restored the attachment {attachment} to card {card}" : "Го вративте прилогот {attachment} на картицата {card}",
|
||||
"{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}",
|
||||
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Описот на картицата</strong> во апликацијата Deck е изменет",
|
||||
"Deck" : "Deck",
|
||||
"Changes in the <strong>Deck app</strong>" : "Промени во <strong>апликацијата Deck</strong>",
|
||||
"A <strong>comment</strong> was created on a card" : "<strong>Коментар</strong> е креиран на картица",
|
||||
"Upcoming cards" : "Престојни картици",
|
||||
"Personal" : "Лично",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Картицата \"%s\" на \"%s\" ти е доделена од %s.",
|
||||
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} ти ја додели картицата \"%s\" на \"%s\".",
|
||||
"The card \"%s\" on \"%s\" has reached its due date." : "Картицата \"%s\" на \"%s\" го достигна датумот на истекување.",
|
||||
"%s has mentioned you in a comment on \"%s\"." : "%s те спомна во коментар на \"%s\".",
|
||||
"{user} has mentioned you in a comment on \"%s\"." : "{user} те спомна во коментар на \"%s\".",
|
||||
"The board \"%s\" has been shared with you by %s." : "Таблата \"%s\" ја сподли со тебе %s.",
|
||||
"{user} has shared the board %s with you." : "{user} ја сподели таблата %s со тебе.",
|
||||
"No data was provided to create an attachment." : "Нема податоци за креирање на прилог.",
|
||||
"Finished" : "Завршено",
|
||||
"To review" : "На ревизија",
|
||||
"Action needed" : "Потребна е акција",
|
||||
"Later" : "Покасно",
|
||||
"copy" : "копирај",
|
||||
"To do" : "За работење",
|
||||
"Doing" : "Се работи",
|
||||
"Done" : "Готово",
|
||||
"Example Task 3" : "Пример задача 3",
|
||||
"Example Task 2" : "Пример задача 2",
|
||||
"Example Task 1" : "Пример задача 1",
|
||||
"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 формата",
|
||||
@@ -13,36 +96,161 @@ OC.L10N.register(
|
||||
"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",
|
||||
"Personal planning and team project organization" : "Персонален планер и тимски проект организер",
|
||||
"Card details" : "Детали за картица",
|
||||
"Add board" : "Додади табла",
|
||||
"Select the board to link to a project" : "Избери табла за поврзување со проект",
|
||||
"Search by board title" : "Барај по име на табла",
|
||||
"Select board" : "Избери табла",
|
||||
"Select the card to link to a project" : "Избери картица за поврзување со проект",
|
||||
"Select a board" : "Избери табла",
|
||||
"Select a card" : "Избери картица",
|
||||
"Link to card" : "Линк до картица",
|
||||
"Cancel" : "Откажи",
|
||||
"File already exists" : "Датотека веќе постои",
|
||||
"A file with the name {filename} already exists." : "Датотека со име {filename} веќе постои.",
|
||||
"Do you want to overwrite it?" : "Дали сакате да го пребришете?",
|
||||
"Overwrite file" : "Пребриши датотека",
|
||||
"Keep existing file" : "Зачувај ја постоечката датотека",
|
||||
"This board is read only" : "Оваа табла е само за читање",
|
||||
"Drop your files to upload" : "Повлечи датотеки за да прикачите",
|
||||
"Archived cards" : "Архивирани картици",
|
||||
"Add list" : "Додади листа",
|
||||
"List name" : "Име на листа",
|
||||
"Apply filter" : "Додади филтер",
|
||||
"Filter by tag" : "Филтрирај по ознака",
|
||||
"Filter by assigned user" : "Филтрирај по назначени корисници",
|
||||
"Unassigned" : "Неназначени",
|
||||
"Filter by due date" : "Филтрирај по краен рок",
|
||||
"Overdue" : "Заостанати",
|
||||
"Next 24 hours" : "Следни 24 часа",
|
||||
"Next 7 days" : "Следни 7 дена",
|
||||
"Next 30 days" : "Следни 30 дена",
|
||||
"No due date" : "Нема краен рок",
|
||||
"Clear filter" : "Исчисти филтри",
|
||||
"Hide archived cards" : "Сокриј ги архивираните картици",
|
||||
"Show archived cards" : "Прикажи ги архивираните картици",
|
||||
"Toggle compact mode" : "Вклучи компактен мод",
|
||||
"Details" : "Детали",
|
||||
"Loading board" : "Вчирување на табла",
|
||||
"No lists available" : "Нема достапни листи",
|
||||
"Create a new list to add cards to this board" : "Додадете нова листа за да додадете картици на таблата",
|
||||
"Board not found" : "Таблата не е пронајдена",
|
||||
"Sharing" : "Споделување",
|
||||
"Tags" : "Ознаки",
|
||||
"Deleted items" : "Избришани работи",
|
||||
"Timeline" : "Времеплов",
|
||||
"Deleted lists" : "Избришани листи",
|
||||
"Undo" : "Врати",
|
||||
"Deleted cards" : "Избришани картици",
|
||||
"Share board with a user, group or circle …" : "Сподели табла со корисник, група или круг ...",
|
||||
"Searching for users, groups and circles …" : "Пребарување на корисници, групи или кругови ...",
|
||||
"No participants found" : "Не се пронајдени учесници",
|
||||
"Board owner" : "Сопственик на таблата",
|
||||
"(Group)" : "(Група)",
|
||||
"(Circle)" : "(Круг)",
|
||||
"Can edit" : "Може да се уредува",
|
||||
"Can share" : "Can share",
|
||||
"Can manage" : "Може да ја менаџира",
|
||||
"Delete" : "Избриши",
|
||||
"Failed to create share with {displayName}" : "Неможе да се сподели со {displayName}",
|
||||
"Add a new list" : "Додади нова листа",
|
||||
"Archive all cards" : "Архивирај ги сите картици",
|
||||
"Delete list" : "Избриши листа",
|
||||
"Add card" : "Додади картица",
|
||||
"Archive all cards in this list" : "Архивирај ги сите картици во листата",
|
||||
"Add a new card" : "Додади нова картица",
|
||||
"Card name" : "Име на картицата",
|
||||
"List deleted" : "Листата е избришана",
|
||||
"Edit" : "Уреди",
|
||||
"Add a new tag" : "Додади нова ознака",
|
||||
"title and color value must be provided" : "наслов и боја мора да се приложи",
|
||||
"Title" : "Наслов",
|
||||
"Members" : "Членови",
|
||||
"Upload attachment" : "Прикачи прилог",
|
||||
"Add this attachment" : "Додади го овој прилог",
|
||||
"Delete Attachment" : "Избриши прилог",
|
||||
"Restore Attachment" : "Врати прилог",
|
||||
"Open in sidebar view" : "Отвори страничен поглед",
|
||||
"Open in bigger view" : "Отвори на голем екран",
|
||||
"Attachments" : "Прилози",
|
||||
"Comments" : "Коментари",
|
||||
"Modified" : "Изменето",
|
||||
"Created" : "Креирано",
|
||||
"The title cannot be empty." : "Насловот неможе да биде празен.",
|
||||
"No comments yet. Begin the discussion!" : "Сеуште нема коментари. Започни дискусија!",
|
||||
"Assign a tag to this card…" : "Додади ознака на оваа картица...",
|
||||
"Assign to users" : "Додели на корисници",
|
||||
"Assign to users/groups/circles" : "Додели на корисници/групи/кругови",
|
||||
"Assign a user to this card…" : "Додели корисник на оваа картица...",
|
||||
"Due date" : "До датум",
|
||||
"Set a due date" : "Постави краен рок",
|
||||
"Remove due date" : "Отстрани краен рок",
|
||||
"Select Date" : "Избери датум",
|
||||
"Save" : "Зачувај",
|
||||
"The comment cannot be empty." : "Коментарот неможе да биде празен.",
|
||||
"The comment cannot be longer than 1000 characters." : "Коментарот неможе да биде поголем од 1000 карактери.",
|
||||
"In reply to" : "Како одговор на",
|
||||
"Reply" : "Одговор",
|
||||
"Update" : "Ажурирај",
|
||||
"Description" : "Опис",
|
||||
"(Unsaved)" : "(Незачувано)",
|
||||
"(Saving…)" : "(Снимање…)",
|
||||
"Formatting help" : "Помош за форматирање",
|
||||
"Edit description" : "Измени опис",
|
||||
"View description" : "Види опис",
|
||||
"Add Attachment" : "Додади прилог",
|
||||
"Write a description …" : "Напиши опис ...",
|
||||
"Choose attachment" : "Избери прилог",
|
||||
"(group)" : "(group)",
|
||||
"(circle)" : "(круг)",
|
||||
"Assign to me" : "Доделени мене",
|
||||
"Unassign myself" : "Откажи се",
|
||||
"Move card" : "Премести картица",
|
||||
"Unarchive card" : "Врати картица од архива",
|
||||
"Archive card" : "Архивирај картица",
|
||||
"Delete card" : "Избриши картица",
|
||||
"Move card to another board" : "Премести ја картицата на друга табла",
|
||||
"Select a list" : "Избери листа",
|
||||
"Card deleted" : "Картицата е избришана",
|
||||
"seconds ago" : "пред неколку секунди",
|
||||
"All boards" : "Сите табли",
|
||||
"Archived boards" : "Архивирани табли",
|
||||
"Shared with you" : "Споделено со тебе",
|
||||
"Use modal card view" : "Користи модуларен преглед",
|
||||
"Show boards in calendar/tasks" : "Прикажи ги таблите во календарнот",
|
||||
"Limit deck usage of groups" : "Ограничи ја апликацијата на групи",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Ограничувањето на апликацијата ќе ги блокира корисниците кој не се дел од овие групи. Корсниците ќе можат да работат на апликацијата само доколку биде споделена табла со нив.",
|
||||
"Board name" : "Име на табла",
|
||||
"Board details" : "Детали за таблата",
|
||||
"Edit board" : "Измени табла",
|
||||
"Clone board" : "Клонирај табла",
|
||||
"Unarchive board" : "Врати табла од архива",
|
||||
"Archive board" : "Архивирај табла",
|
||||
"Turn on due date reminders" : "Вклучи потсетници за крајните рокови",
|
||||
"Turn off due date reminders" : "Исклучи потсетници за крајните рокови",
|
||||
"Due date reminders" : "Потсетници за крајните рокови",
|
||||
"All cards" : "Сите картици",
|
||||
"Assigned cards" : "Доделени картици",
|
||||
"No notifications" : "Нема известувања",
|
||||
"Delete board" : "Избриши табла",
|
||||
"Board {0} deleted" : "Таблата {0} е избришана",
|
||||
"Only assigned cards" : "Само доделени картици",
|
||||
"No reminder" : "Нема потсетник",
|
||||
"An error occurred" : "Настана грешка",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Дали сте сигурени дека сакате да ја избришете оваа табла {title}? Ова ќе ги избрише и сите податоци на таблата.",
|
||||
"Delete the board?" : "Бришење на таблата?",
|
||||
"Loading filtered view" : "Вчитување на филтриран поглед",
|
||||
"Today" : "Денес",
|
||||
"Tomorrow" : "Утре",
|
||||
"This week" : "Оваа недела"
|
||||
"This week" : "Оваа недела",
|
||||
"No due" : "Не истекува",
|
||||
"No upcoming cards" : "Нема престојни картици",
|
||||
"upcoming cards" : "престојни картици",
|
||||
"Link to a board" : "Линк до табла",
|
||||
"Link to a card" : "Линк до картица",
|
||||
"Something went wrong" : "Нешто не е во ред",
|
||||
"Maximum file size of {size} exceeded" : "Максималната големина на датотека од {size} е достигната"
|
||||
},
|
||||
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
|
||||
|
||||
210
l10n/mk.json
210
l10n/mk.json
@@ -1,8 +1,91 @@
|
||||
{ "translations": {
|
||||
"You have created a new board {board}" : "Креиравте нова табла {board}",
|
||||
"{user} has created a new board {board}" : "{user} креирање нова табла {board}",
|
||||
"You have deleted the board {board}" : "Избришавте табла {board}",
|
||||
"{user} has deleted the board {board}" : "{user} избриша табла {board}",
|
||||
"You have restored the board {board}" : "Вративте табла {board}",
|
||||
"{user} has restored the board {board}" : "{user} врати табла {board}",
|
||||
"You have shared the board {board} with {acl}" : "Ја споделивте таблата {board} со {acl}",
|
||||
"{user} has shared the board {board} with {acl}" : "{user} ја сподели таблата {board} со {acl}",
|
||||
"You have removed {acl} from the board {board}" : "Го избришавте {acl} од таблата {board}",
|
||||
"{user} has removed {acl} from the board {board}" : "{user} го избриша {acl} од таблата {board}",
|
||||
"You have renamed the board {before} to {board}" : "Ја преименувавте таблата {before} во {board}",
|
||||
"{user} has renamed the board {before} to {board}" : "{user} ја преименување таблата {before} во {board}",
|
||||
"You have archived the board {board}" : "Ја архивиравте таблата {board}",
|
||||
"{user} has archived the board {before}" : "{user} ја архивирање таблата {before}",
|
||||
"You have unarchived the board {board}" : "Ја вративте од архива таблата {board}",
|
||||
"{user} has unarchived the board {before}" : "{user} ја врати од архива таблата {before}",
|
||||
"You have created a new list {stack} on board {board}" : "Креиравте нова листа {stack} на таблата {board}",
|
||||
"{user} has created a new list {stack} on board {board}" : "{user} креирање нова листа {stack} на таблата {board}",
|
||||
"You have renamed list {before} to {stack} on board {board}" : "Ја преименувавте листа {before} во {stack} на таблата {board}",
|
||||
"{user} has renamed list {before} to {stack} on board {board}" : "{user} ја преименување листата {before} во {stack} на таблата {board}",
|
||||
"You have deleted list {stack} on board {board}" : "Ја избришавте листата {stack} од таблата {board}",
|
||||
"{user} has deleted list {stack} on board {board}" : "{user} ја избриша листата {stack} од таблата {board}",
|
||||
"You have created card {card} in list {stack} on board {board}" : "Креиравте картица {card} во листата {stack} на таблата {board}",
|
||||
"{user} has created card {card} in list {stack} on board {board}" : "{user} креираше картица {card} во листата {stack} на таблата {board}",
|
||||
"You have deleted card {card} in list {stack} on board {board}" : "Избришавте картица {card} во листата {stack} на таблата {board}",
|
||||
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} избриша картица {card} во листата {stack} на таблата {board}",
|
||||
"You have renamed the card {before} to {card}" : "Ја преименувавте картицата {before} во {card}",
|
||||
"{user} has renamed the card {before} to {card}" : "{user} ја преименување картицата {before} во {card}",
|
||||
"You have added a description to card {card} in list {stack} on board {board}" : "Додадовте опис на картицата {card} во листата {stack} на таблата {board}",
|
||||
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} додаде опис на картицата {card} во листата {stack} на таблата {board}",
|
||||
"You have updated the description of card {card} in list {stack} on board {board}" : "Го ажуриравте описот на картицата {card} во листата {stack} на таблата {board}",
|
||||
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} го ажурираше описот на картицата {card} во листата {stack} на таблата {board}",
|
||||
"You have archived card {card} in list {stack} on board {board}" : "Ја архивиравте картицата {card} во листата {stack} на таблата {board}",
|
||||
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ја архивираше картицата {card} во листата {stack} на таблата {board}",
|
||||
"You have unarchived card {card} in list {stack} on board {board}" : "Ја вративте од архива картицата {card} во листата {stack} на таблата {board}",
|
||||
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} ја врати од архива картицата {card} во листата {stack} на таблата {board}",
|
||||
"You have removed the due date of card {card}" : "Го избришавте датумот на истекување на картицата {card}",
|
||||
"{user} has removed the due date of card {card}" : "{user} го избриша датумот на истекување на картицата {card}",
|
||||
"You have set the due date of card {card} to {after}" : "Поставивте датум на истекување на картицата {card}",
|
||||
"{user} has set the due date of card {card} to {after}" : "{user} постави датум на истекување на картицата {card}",
|
||||
"You have updated the due date of card {card} to {after}" : "Го ажуриравте датумот на истекување на картицата {card} до {after}",
|
||||
"{user} has updated the due date of card {card} to {after}" : "{user} го ажурираше датумот на истекување на картицата {card} до {after}",
|
||||
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Додадовте ознака {label} на картицата {card} во листата {stack} на таблата {board}",
|
||||
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} додаде ознака {label} на картицата {card} во листата {stack} на таблата {board}",
|
||||
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Ја избришавте ознаката {label} од картицата {card} во листата {stack} на таблата {board}",
|
||||
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} ја избриша ознаката {label} од картицата {card} во листата {stack} на таблата {board}",
|
||||
"You have assigned {assigneduser} to card {card} on board {board}" : "Го додадовте {assigneduser} во картицата {card} на таблата {board}",
|
||||
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} го додада {assigneduser} во картицата {card} на таблата {board}",
|
||||
"You have unassigned {assigneduser} from card {card} on board {board}" : "Го отстранивте {assigneduser} од картицата {card} на таблата {board}",
|
||||
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} го отстрани {assigneduser} од картицата {card} на таблата {board}",
|
||||
"You have moved the card {card} from list {stackBefore} to {stack}" : "Ја преместивте картицата {card} од листата {stackBefore} во {stack}",
|
||||
"{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user} ја премести картицата {card} од листата {stackBefore} во {stack}",
|
||||
"You have added the attachment {attachment} to card {card}" : "Додадовте прилог {attachment} на картицата {card}",
|
||||
"{user} has added the attachment {attachment} to card {card}" : "{user} додадте прилог {attachment} на картицата {card}",
|
||||
"You have updated the attachment {attachment} on card {card}" : "Го ажуриравте прилогот {attachment} на картицата {card}",
|
||||
"{user} has updated the attachment {attachment} on card {card}" : "{user} го ажурираше прилогот {attachment} на картицата {card}",
|
||||
"You have deleted the attachment {attachment} from card {card}" : "Го избришавте прилогот {attachment} од картицата {card}",
|
||||
"{user} has deleted the attachment {attachment} from card {card}" : "{user} го избриша прилогот {attachment} од картицата {card}",
|
||||
"You have restored the attachment {attachment} to card {card}" : "Го вративте прилогот {attachment} на картицата {card}",
|
||||
"{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}",
|
||||
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Описот на картицата</strong> во апликацијата Deck е изменет",
|
||||
"Deck" : "Deck",
|
||||
"Changes in the <strong>Deck app</strong>" : "Промени во <strong>апликацијата Deck</strong>",
|
||||
"A <strong>comment</strong> was created on a card" : "<strong>Коментар</strong> е креиран на картица",
|
||||
"Upcoming cards" : "Престојни картици",
|
||||
"Personal" : "Лично",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Картицата \"%s\" на \"%s\" ти е доделена од %s.",
|
||||
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} ти ја додели картицата \"%s\" на \"%s\".",
|
||||
"The card \"%s\" on \"%s\" has reached its due date." : "Картицата \"%s\" на \"%s\" го достигна датумот на истекување.",
|
||||
"%s has mentioned you in a comment on \"%s\"." : "%s те спомна во коментар на \"%s\".",
|
||||
"{user} has mentioned you in a comment on \"%s\"." : "{user} те спомна во коментар на \"%s\".",
|
||||
"The board \"%s\" has been shared with you by %s." : "Таблата \"%s\" ја сподли со тебе %s.",
|
||||
"{user} has shared the board %s with you." : "{user} ја сподели таблата %s со тебе.",
|
||||
"No data was provided to create an attachment." : "Нема податоци за креирање на прилог.",
|
||||
"Finished" : "Завршено",
|
||||
"To review" : "На ревизија",
|
||||
"Action needed" : "Потребна е акција",
|
||||
"Later" : "Покасно",
|
||||
"copy" : "копирај",
|
||||
"To do" : "За работење",
|
||||
"Doing" : "Се работи",
|
||||
"Done" : "Готово",
|
||||
"Example Task 3" : "Пример задача 3",
|
||||
"Example Task 2" : "Пример задача 2",
|
||||
"Example Task 1" : "Пример задача 1",
|
||||
"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 формата",
|
||||
@@ -11,36 +94,161 @@
|
||||
"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",
|
||||
"Personal planning and team project organization" : "Персонален планер и тимски проект организер",
|
||||
"Card details" : "Детали за картица",
|
||||
"Add board" : "Додади табла",
|
||||
"Select the board to link to a project" : "Избери табла за поврзување со проект",
|
||||
"Search by board title" : "Барај по име на табла",
|
||||
"Select board" : "Избери табла",
|
||||
"Select the card to link to a project" : "Избери картица за поврзување со проект",
|
||||
"Select a board" : "Избери табла",
|
||||
"Select a card" : "Избери картица",
|
||||
"Link to card" : "Линк до картица",
|
||||
"Cancel" : "Откажи",
|
||||
"File already exists" : "Датотека веќе постои",
|
||||
"A file with the name {filename} already exists." : "Датотека со име {filename} веќе постои.",
|
||||
"Do you want to overwrite it?" : "Дали сакате да го пребришете?",
|
||||
"Overwrite file" : "Пребриши датотека",
|
||||
"Keep existing file" : "Зачувај ја постоечката датотека",
|
||||
"This board is read only" : "Оваа табла е само за читање",
|
||||
"Drop your files to upload" : "Повлечи датотеки за да прикачите",
|
||||
"Archived cards" : "Архивирани картици",
|
||||
"Add list" : "Додади листа",
|
||||
"List name" : "Име на листа",
|
||||
"Apply filter" : "Додади филтер",
|
||||
"Filter by tag" : "Филтрирај по ознака",
|
||||
"Filter by assigned user" : "Филтрирај по назначени корисници",
|
||||
"Unassigned" : "Неназначени",
|
||||
"Filter by due date" : "Филтрирај по краен рок",
|
||||
"Overdue" : "Заостанати",
|
||||
"Next 24 hours" : "Следни 24 часа",
|
||||
"Next 7 days" : "Следни 7 дена",
|
||||
"Next 30 days" : "Следни 30 дена",
|
||||
"No due date" : "Нема краен рок",
|
||||
"Clear filter" : "Исчисти филтри",
|
||||
"Hide archived cards" : "Сокриј ги архивираните картици",
|
||||
"Show archived cards" : "Прикажи ги архивираните картици",
|
||||
"Toggle compact mode" : "Вклучи компактен мод",
|
||||
"Details" : "Детали",
|
||||
"Loading board" : "Вчирување на табла",
|
||||
"No lists available" : "Нема достапни листи",
|
||||
"Create a new list to add cards to this board" : "Додадете нова листа за да додадете картици на таблата",
|
||||
"Board not found" : "Таблата не е пронајдена",
|
||||
"Sharing" : "Споделување",
|
||||
"Tags" : "Ознаки",
|
||||
"Deleted items" : "Избришани работи",
|
||||
"Timeline" : "Времеплов",
|
||||
"Deleted lists" : "Избришани листи",
|
||||
"Undo" : "Врати",
|
||||
"Deleted cards" : "Избришани картици",
|
||||
"Share board with a user, group or circle …" : "Сподели табла со корисник, група или круг ...",
|
||||
"Searching for users, groups and circles …" : "Пребарување на корисници, групи или кругови ...",
|
||||
"No participants found" : "Не се пронајдени учесници",
|
||||
"Board owner" : "Сопственик на таблата",
|
||||
"(Group)" : "(Група)",
|
||||
"(Circle)" : "(Круг)",
|
||||
"Can edit" : "Може да се уредува",
|
||||
"Can share" : "Can share",
|
||||
"Can manage" : "Може да ја менаџира",
|
||||
"Delete" : "Избриши",
|
||||
"Failed to create share with {displayName}" : "Неможе да се сподели со {displayName}",
|
||||
"Add a new list" : "Додади нова листа",
|
||||
"Archive all cards" : "Архивирај ги сите картици",
|
||||
"Delete list" : "Избриши листа",
|
||||
"Add card" : "Додади картица",
|
||||
"Archive all cards in this list" : "Архивирај ги сите картици во листата",
|
||||
"Add a new card" : "Додади нова картица",
|
||||
"Card name" : "Име на картицата",
|
||||
"List deleted" : "Листата е избришана",
|
||||
"Edit" : "Уреди",
|
||||
"Add a new tag" : "Додади нова ознака",
|
||||
"title and color value must be provided" : "наслов и боја мора да се приложи",
|
||||
"Title" : "Наслов",
|
||||
"Members" : "Членови",
|
||||
"Upload attachment" : "Прикачи прилог",
|
||||
"Add this attachment" : "Додади го овој прилог",
|
||||
"Delete Attachment" : "Избриши прилог",
|
||||
"Restore Attachment" : "Врати прилог",
|
||||
"Open in sidebar view" : "Отвори страничен поглед",
|
||||
"Open in bigger view" : "Отвори на голем екран",
|
||||
"Attachments" : "Прилози",
|
||||
"Comments" : "Коментари",
|
||||
"Modified" : "Изменето",
|
||||
"Created" : "Креирано",
|
||||
"The title cannot be empty." : "Насловот неможе да биде празен.",
|
||||
"No comments yet. Begin the discussion!" : "Сеуште нема коментари. Започни дискусија!",
|
||||
"Assign a tag to this card…" : "Додади ознака на оваа картица...",
|
||||
"Assign to users" : "Додели на корисници",
|
||||
"Assign to users/groups/circles" : "Додели на корисници/групи/кругови",
|
||||
"Assign a user to this card…" : "Додели корисник на оваа картица...",
|
||||
"Due date" : "До датум",
|
||||
"Set a due date" : "Постави краен рок",
|
||||
"Remove due date" : "Отстрани краен рок",
|
||||
"Select Date" : "Избери датум",
|
||||
"Save" : "Зачувај",
|
||||
"The comment cannot be empty." : "Коментарот неможе да биде празен.",
|
||||
"The comment cannot be longer than 1000 characters." : "Коментарот неможе да биде поголем од 1000 карактери.",
|
||||
"In reply to" : "Како одговор на",
|
||||
"Reply" : "Одговор",
|
||||
"Update" : "Ажурирај",
|
||||
"Description" : "Опис",
|
||||
"(Unsaved)" : "(Незачувано)",
|
||||
"(Saving…)" : "(Снимање…)",
|
||||
"Formatting help" : "Помош за форматирање",
|
||||
"Edit description" : "Измени опис",
|
||||
"View description" : "Види опис",
|
||||
"Add Attachment" : "Додади прилог",
|
||||
"Write a description …" : "Напиши опис ...",
|
||||
"Choose attachment" : "Избери прилог",
|
||||
"(group)" : "(group)",
|
||||
"(circle)" : "(круг)",
|
||||
"Assign to me" : "Доделени мене",
|
||||
"Unassign myself" : "Откажи се",
|
||||
"Move card" : "Премести картица",
|
||||
"Unarchive card" : "Врати картица од архива",
|
||||
"Archive card" : "Архивирај картица",
|
||||
"Delete card" : "Избриши картица",
|
||||
"Move card to another board" : "Премести ја картицата на друга табла",
|
||||
"Select a list" : "Избери листа",
|
||||
"Card deleted" : "Картицата е избришана",
|
||||
"seconds ago" : "пред неколку секунди",
|
||||
"All boards" : "Сите табли",
|
||||
"Archived boards" : "Архивирани табли",
|
||||
"Shared with you" : "Споделено со тебе",
|
||||
"Use modal card view" : "Користи модуларен преглед",
|
||||
"Show boards in calendar/tasks" : "Прикажи ги таблите во календарнот",
|
||||
"Limit deck usage of groups" : "Ограничи ја апликацијата на групи",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Ограничувањето на апликацијата ќе ги блокира корисниците кој не се дел од овие групи. Корсниците ќе можат да работат на апликацијата само доколку биде споделена табла со нив.",
|
||||
"Board name" : "Име на табла",
|
||||
"Board details" : "Детали за таблата",
|
||||
"Edit board" : "Измени табла",
|
||||
"Clone board" : "Клонирај табла",
|
||||
"Unarchive board" : "Врати табла од архива",
|
||||
"Archive board" : "Архивирај табла",
|
||||
"Turn on due date reminders" : "Вклучи потсетници за крајните рокови",
|
||||
"Turn off due date reminders" : "Исклучи потсетници за крајните рокови",
|
||||
"Due date reminders" : "Потсетници за крајните рокови",
|
||||
"All cards" : "Сите картици",
|
||||
"Assigned cards" : "Доделени картици",
|
||||
"No notifications" : "Нема известувања",
|
||||
"Delete board" : "Избриши табла",
|
||||
"Board {0} deleted" : "Таблата {0} е избришана",
|
||||
"Only assigned cards" : "Само доделени картици",
|
||||
"No reminder" : "Нема потсетник",
|
||||
"An error occurred" : "Настана грешка",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Дали сте сигурени дека сакате да ја избришете оваа табла {title}? Ова ќе ги избрише и сите податоци на таблата.",
|
||||
"Delete the board?" : "Бришење на таблата?",
|
||||
"Loading filtered view" : "Вчитување на филтриран поглед",
|
||||
"Today" : "Денес",
|
||||
"Tomorrow" : "Утре",
|
||||
"This week" : "Оваа недела"
|
||||
"This week" : "Оваа недела",
|
||||
"No due" : "Не истекува",
|
||||
"No upcoming cards" : "Нема престојни картици",
|
||||
"upcoming cards" : "престојни картици",
|
||||
"Link to a board" : "Линк до табла",
|
||||
"Link to a card" : "Линк до картица",
|
||||
"Something went wrong" : "Нешто не е во ред",
|
||||
"Maximum file size of {size} exceeded" : "Максималната големина на датотека од {size} е достигната"
|
||||
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
|
||||
}
|
||||
@@ -202,6 +202,7 @@ OC.L10N.register(
|
||||
"Edit description" : "Bewerk beschrijving",
|
||||
"View description" : "Bekijk beschrijving",
|
||||
"Add Attachment" : "Toevoegen bijlage",
|
||||
"Write a description …" : "Voeg een beschrijving toe ...",
|
||||
"Choose attachment" : "Kies bijlage",
|
||||
"(group)" : "(groep)",
|
||||
"(circle)" : "(kring)",
|
||||
@@ -236,7 +237,7 @@ OC.L10N.register(
|
||||
"No notifications" : "Geen meldingen",
|
||||
"Delete board" : "Verwijder bord",
|
||||
"Board {0} deleted" : "Bord {0} verwijderd",
|
||||
"Only assigned cards" : "Enkel toegewezen kaarten",
|
||||
"Only assigned cards" : "Uitsluitend toegewezen kaarten",
|
||||
"No reminder" : "Geen herinnering",
|
||||
"An error occurred" : "Er is een fout opgetreden",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Weet je zeker dat je bord {title} met wilt verwijderen? Dit verwijderd alle informatie van dit bord.",
|
||||
@@ -251,6 +252,7 @@ OC.L10N.register(
|
||||
"Link to a board" : "Verbind met een bord",
|
||||
"Link to a card" : "Koppel met een kaart",
|
||||
"Something went wrong" : "Er ging iets verkeerd",
|
||||
"Failed to upload {name}" : "Kon {name} niet uploaden",
|
||||
"Maximum file size of {size} exceeded" : "Maximale bestandsomvang van {size} overschreden"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -200,6 +200,7 @@
|
||||
"Edit description" : "Bewerk beschrijving",
|
||||
"View description" : "Bekijk beschrijving",
|
||||
"Add Attachment" : "Toevoegen bijlage",
|
||||
"Write a description …" : "Voeg een beschrijving toe ...",
|
||||
"Choose attachment" : "Kies bijlage",
|
||||
"(group)" : "(groep)",
|
||||
"(circle)" : "(kring)",
|
||||
@@ -234,7 +235,7 @@
|
||||
"No notifications" : "Geen meldingen",
|
||||
"Delete board" : "Verwijder bord",
|
||||
"Board {0} deleted" : "Bord {0} verwijderd",
|
||||
"Only assigned cards" : "Enkel toegewezen kaarten",
|
||||
"Only assigned cards" : "Uitsluitend toegewezen kaarten",
|
||||
"No reminder" : "Geen herinnering",
|
||||
"An error occurred" : "Er is een fout opgetreden",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Weet je zeker dat je bord {title} met wilt verwijderen? Dit verwijderd alle informatie van dit bord.",
|
||||
@@ -249,6 +250,7 @@
|
||||
"Link to a board" : "Verbind met een bord",
|
||||
"Link to a card" : "Koppel met een kaart",
|
||||
"Something went wrong" : "Er ging iets verkeerd",
|
||||
"Failed to upload {name}" : "Kon {name} niet uploaden",
|
||||
"Maximum file size of {size} exceeded" : "Maximale bestandsomvang van {size} overschreden"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -252,6 +252,7 @@ OC.L10N.register(
|
||||
"Link to a board" : "Link do tablicy",
|
||||
"Link to a card" : "Link do karty",
|
||||
"Something went wrong" : "Coś poszło nie tak",
|
||||
"Failed to upload {name}" : "Nie udało się wysłać {name}",
|
||||
"Maximum file size of {size} exceeded" : "Przekroczono maksymalny rozmiar pliku {size}"
|
||||
},
|
||||
"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);");
|
||||
|
||||
@@ -250,6 +250,7 @@
|
||||
"Link to a board" : "Link do tablicy",
|
||||
"Link to a card" : "Link do karty",
|
||||
"Something went wrong" : "Coś poszło nie tak",
|
||||
"Failed to upload {name}" : "Nie udało się wysłać {name}",
|
||||
"Maximum file size of {size} exceeded" : "Przekroczono maksymalny rozmiar pliku {size}"
|
||||
},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"
|
||||
}
|
||||
18
l10n/ru.js
18
l10n/ru.js
@@ -67,7 +67,7 @@ OC.L10N.register(
|
||||
"Deck" : "Карточки",
|
||||
"Changes in the <strong>Deck app</strong>" : "Изменения в <strong>приложении Карточки</strong>",
|
||||
"A <strong>comment</strong> was created on a card" : "Добавлен <strong>комментарий</strong> к карточке",
|
||||
"Upcoming cards" : "Ожидающие выполнения карточки",
|
||||
"Upcoming cards" : "Ожидающие выполнения",
|
||||
"Personal" : "Личное",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Вам назначена карточка «%s» с рабочей доски «%s» пользователем %s.",
|
||||
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} назначил Вам карточку «%s» из «%s».",
|
||||
@@ -146,6 +146,8 @@ OC.L10N.register(
|
||||
"Undo" : "Отменить",
|
||||
"Deleted cards" : "Карточки в корзине",
|
||||
"Share board with a user, group or circle …" : "Поделиться с пользователями, группами или кругами…",
|
||||
"Searching for users, groups and circles …" : "Поиск пользователей, групп или кругов...",
|
||||
"No participants found" : "Не удалось найти ни одного участника",
|
||||
"Board owner" : "Владелец доски",
|
||||
"(Group)" : "(Группа)",
|
||||
"(Circle)" : "(Круг)",
|
||||
@@ -153,6 +155,7 @@ OC.L10N.register(
|
||||
"Can share" : "Разрешить делиться с другими",
|
||||
"Can manage" : "Разрешить изменять",
|
||||
"Delete" : "Удалить",
|
||||
"Failed to create share with {displayName}" : "Не удалось предоставить общий доступ для {displayName}",
|
||||
"Add a new list" : "Создать список",
|
||||
"Archive all cards" : "Переместить все карточки в архив",
|
||||
"Delete list" : "Удалить список",
|
||||
@@ -199,6 +202,7 @@ OC.L10N.register(
|
||||
"Edit description" : "Редактировать описание",
|
||||
"View description" : "Просмотреть описание",
|
||||
"Add Attachment" : "Добавить вложение",
|
||||
"Write a description …" : "Добавьте описание...",
|
||||
"Choose attachment" : "Выберите вложение",
|
||||
"(group)" : "(группа)",
|
||||
"(circle)" : "(круг)",
|
||||
@@ -222,7 +226,19 @@ OC.L10N.register(
|
||||
"Board name" : "Название доски",
|
||||
"Board details" : "Свойства доски",
|
||||
"Edit board" : "Редактировать",
|
||||
"Clone board" : "Скопировать доску",
|
||||
"Unarchive board" : "Восстановить доску из архива",
|
||||
"Archive board" : "Переместить доску в архив",
|
||||
"Turn on due date reminders" : "Включить напоминания о сроке выполнения",
|
||||
"Turn off due date reminders" : "Отключить напоминания о сроке выполнения",
|
||||
"Due date reminders" : "Напоминания о сроке выполнения",
|
||||
"All cards" : "Для всех карточек",
|
||||
"Assigned cards" : "Назначенные карточки",
|
||||
"No notifications" : "Без уведомлений",
|
||||
"Delete board" : "Удалить доску",
|
||||
"Board {0} deleted" : "Доска {0} удалена",
|
||||
"Only assigned cards" : "Только для назначенных карточек",
|
||||
"No reminder" : "Не напоминать",
|
||||
"An error occurred" : "Произошла ошибка",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Подтвердите удаление доски «{title}»; это действие приведёт к удалению также все данных, принадлежащих этой доске.",
|
||||
"Delete the board?" : "Удалить доску?",
|
||||
|
||||
18
l10n/ru.json
18
l10n/ru.json
@@ -65,7 +65,7 @@
|
||||
"Deck" : "Карточки",
|
||||
"Changes in the <strong>Deck app</strong>" : "Изменения в <strong>приложении Карточки</strong>",
|
||||
"A <strong>comment</strong> was created on a card" : "Добавлен <strong>комментарий</strong> к карточке",
|
||||
"Upcoming cards" : "Ожидающие выполнения карточки",
|
||||
"Upcoming cards" : "Ожидающие выполнения",
|
||||
"Personal" : "Личное",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Вам назначена карточка «%s» с рабочей доски «%s» пользователем %s.",
|
||||
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} назначил Вам карточку «%s» из «%s».",
|
||||
@@ -144,6 +144,8 @@
|
||||
"Undo" : "Отменить",
|
||||
"Deleted cards" : "Карточки в корзине",
|
||||
"Share board with a user, group or circle …" : "Поделиться с пользователями, группами или кругами…",
|
||||
"Searching for users, groups and circles …" : "Поиск пользователей, групп или кругов...",
|
||||
"No participants found" : "Не удалось найти ни одного участника",
|
||||
"Board owner" : "Владелец доски",
|
||||
"(Group)" : "(Группа)",
|
||||
"(Circle)" : "(Круг)",
|
||||
@@ -151,6 +153,7 @@
|
||||
"Can share" : "Разрешить делиться с другими",
|
||||
"Can manage" : "Разрешить изменять",
|
||||
"Delete" : "Удалить",
|
||||
"Failed to create share with {displayName}" : "Не удалось предоставить общий доступ для {displayName}",
|
||||
"Add a new list" : "Создать список",
|
||||
"Archive all cards" : "Переместить все карточки в архив",
|
||||
"Delete list" : "Удалить список",
|
||||
@@ -197,6 +200,7 @@
|
||||
"Edit description" : "Редактировать описание",
|
||||
"View description" : "Просмотреть описание",
|
||||
"Add Attachment" : "Добавить вложение",
|
||||
"Write a description …" : "Добавьте описание...",
|
||||
"Choose attachment" : "Выберите вложение",
|
||||
"(group)" : "(группа)",
|
||||
"(circle)" : "(круг)",
|
||||
@@ -220,7 +224,19 @@
|
||||
"Board name" : "Название доски",
|
||||
"Board details" : "Свойства доски",
|
||||
"Edit board" : "Редактировать",
|
||||
"Clone board" : "Скопировать доску",
|
||||
"Unarchive board" : "Восстановить доску из архива",
|
||||
"Archive board" : "Переместить доску в архив",
|
||||
"Turn on due date reminders" : "Включить напоминания о сроке выполнения",
|
||||
"Turn off due date reminders" : "Отключить напоминания о сроке выполнения",
|
||||
"Due date reminders" : "Напоминания о сроке выполнения",
|
||||
"All cards" : "Для всех карточек",
|
||||
"Assigned cards" : "Назначенные карточки",
|
||||
"No notifications" : "Без уведомлений",
|
||||
"Delete board" : "Удалить доску",
|
||||
"Board {0} deleted" : "Доска {0} удалена",
|
||||
"Only assigned cards" : "Только для назначенных карточек",
|
||||
"No reminder" : "Не напоминать",
|
||||
"An error occurred" : "Произошла ошибка",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Подтвердите удаление доски «{title}»; это действие приведёт к удалению также все данных, принадлежащих этой доске.",
|
||||
"Delete the board?" : "Удалить доску?",
|
||||
|
||||
30
l10n/sk.js
30
l10n/sk.js
@@ -67,6 +67,7 @@ OC.L10N.register(
|
||||
"Deck" : "Nástenka",
|
||||
"Changes in the <strong>Deck app</strong>" : "Zmeny v apke <strong>Nástenka</strong>",
|
||||
"A <strong>comment</strong> was created on a card" : "Na karte bol vytvorený <strong>komentár</strong>. ",
|
||||
"Upcoming cards" : "Nadchádzajúce karty",
|
||||
"Personal" : "Osobné",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Používateľ %s vám priradil kartu „%s“ na „%s“.",
|
||||
"{user} has assigned the card \"%s\" on \"%s\" to you." : "Používateľ {user} vám priradil kartu „%s“ na „%s“.",
|
||||
@@ -145,6 +146,8 @@ OC.L10N.register(
|
||||
"Undo" : "Odvolať",
|
||||
"Deleted cards" : "Odstránené karty",
|
||||
"Share board with a user, group or circle …" : "Zdieľanie nástenky s použivateľom, skupinou alebo okruhom…",
|
||||
"Searching for users, groups and circles …" : "Vyhľadávanie v používateľoch, skupinách a kruhoch...",
|
||||
"No participants found" : "Nenašli sa žiadni účastníci",
|
||||
"Board owner" : "Vlastník nástenky",
|
||||
"(Group)" : "(Skupina)",
|
||||
"(Circle)" : "(Okruh)",
|
||||
@@ -152,12 +155,15 @@ OC.L10N.register(
|
||||
"Can share" : "Môže sprístupniť",
|
||||
"Can manage" : "Môže spravovať",
|
||||
"Delete" : "Zmazať",
|
||||
"Failed to create share with {displayName}" : "Nepodarilo sa vytvoriť sprístupnenie pre {displayName}",
|
||||
"Add a new list" : "Pridať nový zoznam",
|
||||
"Archive all cards" : "Archivovať všetky karty",
|
||||
"Delete list" : "Vymazať zoznam",
|
||||
"Add card" : "Pridať kartu",
|
||||
"Archive all cards in this list" : "Archivovať všetky karty v tomto zozname",
|
||||
"Add a new card" : "Pridať novú kartu",
|
||||
"Card name" : "Názov karty",
|
||||
"List deleted" : "Zoznam bol vymazaný",
|
||||
"Edit" : "Upraviť",
|
||||
"Add a new tag" : "Pridať nový štítok",
|
||||
"title and color value must be provided" : "je potrebné zadať nadpis a vybrať farbu",
|
||||
@@ -167,10 +173,13 @@ OC.L10N.register(
|
||||
"Add this attachment" : "Pridať túto prílohu",
|
||||
"Delete Attachment" : "Odstrániť prílohu",
|
||||
"Restore Attachment" : "Obnoviť prílohu",
|
||||
"Open in sidebar view" : "Otvoriť v zobrazení v bočnom paneli",
|
||||
"Open in bigger view" : "Otvoriť vo väčšom zobrazení",
|
||||
"Attachments" : "Prílohy",
|
||||
"Comments" : "Komentáre",
|
||||
"Modified" : "Upravené",
|
||||
"Created" : "Vytvorené",
|
||||
"The title cannot be empty." : "Nadpis nemôže byť prázdny.",
|
||||
"No comments yet. Begin the discussion!" : "Zatiaľ bez komentárov. Začnite diskusiu!",
|
||||
"Assign a tag to this card…" : "Tejto karte priradiť štítok…",
|
||||
"Assign to users" : "Priradiť používateľom",
|
||||
@@ -193,6 +202,7 @@ OC.L10N.register(
|
||||
"Edit description" : "Upraviť popis",
|
||||
"View description" : "Zobraziť popis",
|
||||
"Add Attachment" : "Pridať prílohu",
|
||||
"Write a description …" : "Napíšte popis...",
|
||||
"Choose attachment" : "Vybrať prílohu",
|
||||
"(group)" : "(skupina)",
|
||||
"(circle)" : "(okruh)",
|
||||
@@ -204,21 +214,41 @@ OC.L10N.register(
|
||||
"Delete card" : "Zmazať kartu",
|
||||
"Move card to another board" : "Presunúť kartu na inú nástenku",
|
||||
"Select a list" : "Vybrať zoznam",
|
||||
"Card deleted" : "Karta bola vymazaná",
|
||||
"seconds ago" : "pred niekoľkými sekundami",
|
||||
"All boards" : "Všetky nástenky",
|
||||
"Archived boards" : "Archivované nástenky",
|
||||
"Shared with you" : "Vám sprístupnené",
|
||||
"Use modal card view" : "Použiť modálne zobrazenie karty",
|
||||
"Show boards in calendar/tasks" : "Zobrazovať nástenky v kalendári/úlohách",
|
||||
"Limit deck usage of groups" : "Obmedziť použitie Deck na skupiny",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Obmedzenie Násteniek bráni používateľom, ktorí nie sú súčasťou týchto skupín, aby si vytvárali vlastné nástenky. Môžu však stále pracovať na nástenkách, ktoré im niekto sprístupní.",
|
||||
"Board name" : "Názov nástenky",
|
||||
"Board details" : "Podrobnosti o nástenke",
|
||||
"Edit board" : "Upraviť nástenku",
|
||||
"Clone board" : "Duplikovať nástenku",
|
||||
"Unarchive board" : "Zrušiť archiváciu nástenky",
|
||||
"Archive board" : "Archivovať nástenku",
|
||||
"Turn on due date reminders" : "Zapnúť pripomienky na termín dokončenia",
|
||||
"Turn off due date reminders" : "Vypnúť pripomienky na termín dokončenia",
|
||||
"Due date reminders" : "Pripomienky termínu dokončenia",
|
||||
"All cards" : "Všetky karty",
|
||||
"Assigned cards" : "Priradené karty",
|
||||
"No notifications" : "Žiadne upozornenia",
|
||||
"Delete board" : "Vymazať nástenku",
|
||||
"Board {0} deleted" : "Nástenka {0} vymazaná",
|
||||
"Only assigned cards" : "Len priradené karty",
|
||||
"No reminder" : "Žiadna pripomienka",
|
||||
"An error occurred" : "Vyskytla sa chyba",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Naozaj chcete chcete vymazať nástenku {title}? Toto zmaže všetky údaje o tejto nástenke.",
|
||||
"Delete the board?" : "Vymazať nástenku?",
|
||||
"Loading filtered view" : "Načítavanie filtrovaného pohľadu",
|
||||
"Today" : "Dnes",
|
||||
"Tomorrow" : "Zajtra",
|
||||
"This week" : "Tento týždeň",
|
||||
"No due" : "Žiadny termín dokončenia",
|
||||
"No upcoming cards" : "Žiadne nadchádzajúce karty",
|
||||
"upcoming cards" : "nadchádzajúce karty",
|
||||
"Link to a board" : "Odkaz na nástenku",
|
||||
"Link to a card" : "Prepojiť s kartou",
|
||||
"Something went wrong" : "Niečo sa pokazilo",
|
||||
|
||||
30
l10n/sk.json
30
l10n/sk.json
@@ -65,6 +65,7 @@
|
||||
"Deck" : "Nástenka",
|
||||
"Changes in the <strong>Deck app</strong>" : "Zmeny v apke <strong>Nástenka</strong>",
|
||||
"A <strong>comment</strong> was created on a card" : "Na karte bol vytvorený <strong>komentár</strong>. ",
|
||||
"Upcoming cards" : "Nadchádzajúce karty",
|
||||
"Personal" : "Osobné",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Používateľ %s vám priradil kartu „%s“ na „%s“.",
|
||||
"{user} has assigned the card \"%s\" on \"%s\" to you." : "Používateľ {user} vám priradil kartu „%s“ na „%s“.",
|
||||
@@ -143,6 +144,8 @@
|
||||
"Undo" : "Odvolať",
|
||||
"Deleted cards" : "Odstránené karty",
|
||||
"Share board with a user, group or circle …" : "Zdieľanie nástenky s použivateľom, skupinou alebo okruhom…",
|
||||
"Searching for users, groups and circles …" : "Vyhľadávanie v používateľoch, skupinách a kruhoch...",
|
||||
"No participants found" : "Nenašli sa žiadni účastníci",
|
||||
"Board owner" : "Vlastník nástenky",
|
||||
"(Group)" : "(Skupina)",
|
||||
"(Circle)" : "(Okruh)",
|
||||
@@ -150,12 +153,15 @@
|
||||
"Can share" : "Môže sprístupniť",
|
||||
"Can manage" : "Môže spravovať",
|
||||
"Delete" : "Zmazať",
|
||||
"Failed to create share with {displayName}" : "Nepodarilo sa vytvoriť sprístupnenie pre {displayName}",
|
||||
"Add a new list" : "Pridať nový zoznam",
|
||||
"Archive all cards" : "Archivovať všetky karty",
|
||||
"Delete list" : "Vymazať zoznam",
|
||||
"Add card" : "Pridať kartu",
|
||||
"Archive all cards in this list" : "Archivovať všetky karty v tomto zozname",
|
||||
"Add a new card" : "Pridať novú kartu",
|
||||
"Card name" : "Názov karty",
|
||||
"List deleted" : "Zoznam bol vymazaný",
|
||||
"Edit" : "Upraviť",
|
||||
"Add a new tag" : "Pridať nový štítok",
|
||||
"title and color value must be provided" : "je potrebné zadať nadpis a vybrať farbu",
|
||||
@@ -165,10 +171,13 @@
|
||||
"Add this attachment" : "Pridať túto prílohu",
|
||||
"Delete Attachment" : "Odstrániť prílohu",
|
||||
"Restore Attachment" : "Obnoviť prílohu",
|
||||
"Open in sidebar view" : "Otvoriť v zobrazení v bočnom paneli",
|
||||
"Open in bigger view" : "Otvoriť vo väčšom zobrazení",
|
||||
"Attachments" : "Prílohy",
|
||||
"Comments" : "Komentáre",
|
||||
"Modified" : "Upravené",
|
||||
"Created" : "Vytvorené",
|
||||
"The title cannot be empty." : "Nadpis nemôže byť prázdny.",
|
||||
"No comments yet. Begin the discussion!" : "Zatiaľ bez komentárov. Začnite diskusiu!",
|
||||
"Assign a tag to this card…" : "Tejto karte priradiť štítok…",
|
||||
"Assign to users" : "Priradiť používateľom",
|
||||
@@ -191,6 +200,7 @@
|
||||
"Edit description" : "Upraviť popis",
|
||||
"View description" : "Zobraziť popis",
|
||||
"Add Attachment" : "Pridať prílohu",
|
||||
"Write a description …" : "Napíšte popis...",
|
||||
"Choose attachment" : "Vybrať prílohu",
|
||||
"(group)" : "(skupina)",
|
||||
"(circle)" : "(okruh)",
|
||||
@@ -202,21 +212,41 @@
|
||||
"Delete card" : "Zmazať kartu",
|
||||
"Move card to another board" : "Presunúť kartu na inú nástenku",
|
||||
"Select a list" : "Vybrať zoznam",
|
||||
"Card deleted" : "Karta bola vymazaná",
|
||||
"seconds ago" : "pred niekoľkými sekundami",
|
||||
"All boards" : "Všetky nástenky",
|
||||
"Archived boards" : "Archivované nástenky",
|
||||
"Shared with you" : "Vám sprístupnené",
|
||||
"Use modal card view" : "Použiť modálne zobrazenie karty",
|
||||
"Show boards in calendar/tasks" : "Zobrazovať nástenky v kalendári/úlohách",
|
||||
"Limit deck usage of groups" : "Obmedziť použitie Deck na skupiny",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Obmedzenie Násteniek bráni používateľom, ktorí nie sú súčasťou týchto skupín, aby si vytvárali vlastné nástenky. Môžu však stále pracovať na nástenkách, ktoré im niekto sprístupní.",
|
||||
"Board name" : "Názov nástenky",
|
||||
"Board details" : "Podrobnosti o nástenke",
|
||||
"Edit board" : "Upraviť nástenku",
|
||||
"Clone board" : "Duplikovať nástenku",
|
||||
"Unarchive board" : "Zrušiť archiváciu nástenky",
|
||||
"Archive board" : "Archivovať nástenku",
|
||||
"Turn on due date reminders" : "Zapnúť pripomienky na termín dokončenia",
|
||||
"Turn off due date reminders" : "Vypnúť pripomienky na termín dokončenia",
|
||||
"Due date reminders" : "Pripomienky termínu dokončenia",
|
||||
"All cards" : "Všetky karty",
|
||||
"Assigned cards" : "Priradené karty",
|
||||
"No notifications" : "Žiadne upozornenia",
|
||||
"Delete board" : "Vymazať nástenku",
|
||||
"Board {0} deleted" : "Nástenka {0} vymazaná",
|
||||
"Only assigned cards" : "Len priradené karty",
|
||||
"No reminder" : "Žiadna pripomienka",
|
||||
"An error occurred" : "Vyskytla sa chyba",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Naozaj chcete chcete vymazať nástenku {title}? Toto zmaže všetky údaje o tejto nástenke.",
|
||||
"Delete the board?" : "Vymazať nástenku?",
|
||||
"Loading filtered view" : "Načítavanie filtrovaného pohľadu",
|
||||
"Today" : "Dnes",
|
||||
"Tomorrow" : "Zajtra",
|
||||
"This week" : "Tento týždeň",
|
||||
"No due" : "Žiadny termín dokončenia",
|
||||
"No upcoming cards" : "Žiadne nadchádzajúce karty",
|
||||
"upcoming cards" : "nadchádzajúce karty",
|
||||
"Link to a board" : "Odkaz na nástenku",
|
||||
"Link to a card" : "Prepojiť s kartou",
|
||||
"Something went wrong" : "Niečo sa pokazilo",
|
||||
|
||||
15
l10n/sl.js
15
l10n/sl.js
@@ -146,6 +146,7 @@ OC.L10N.register(
|
||||
"Undo" : "Razveljavi",
|
||||
"Deleted cards" : "Izbrisane naloge",
|
||||
"Share board with a user, group or circle …" : "Souporaba z uporabniki, skupinami ali krogi ...",
|
||||
"Searching for users, groups and circles …" : "Iskanje uporabnikov, skupin in krogov ...",
|
||||
"No participants found" : "Ni zaznanih udeleženev",
|
||||
"Board owner" : "Lastnik zbirke",
|
||||
"(Group)" : "(Skupina)",
|
||||
@@ -201,6 +202,7 @@ OC.L10N.register(
|
||||
"Edit description" : "Uredi opis",
|
||||
"View description" : "Pokaži opis",
|
||||
"Add Attachment" : "Dodaj prilogo",
|
||||
"Write a description …" : "Vpišite opis ...",
|
||||
"Choose attachment" : "Izbor priloge",
|
||||
"(group)" : "(skupina)",
|
||||
"(circle)" : "(krog)",
|
||||
@@ -224,7 +226,19 @@ OC.L10N.register(
|
||||
"Board name" : "Ime zbirke",
|
||||
"Board details" : "Podrobnosti zbirke",
|
||||
"Edit board" : "Uredi zbirko",
|
||||
"Clone board" : "Kloniraj zbirko",
|
||||
"Unarchive board" : "Povrni zbirko",
|
||||
"Archive board" : "Arhiviraj zbirko",
|
||||
"Turn on due date reminders" : "Omogoči opomnike o datumu zapadlosti ",
|
||||
"Turn off due date reminders" : "Onemogoči opomnike o datumu zapadlosti",
|
||||
"Due date reminders" : "Opomniki o datumu zapadlosti",
|
||||
"All cards" : "Vse naloge",
|
||||
"Assigned cards" : "Dodeljene naloge",
|
||||
"No notifications" : "Ni obvestil",
|
||||
"Delete board" : "Izbriši zbirko",
|
||||
"Board {0} deleted" : "Zbirka {0} je izbrisana",
|
||||
"Only assigned cards" : "Le dodeljene naloge",
|
||||
"No reminder" : "Ni vpisanih opomnikov",
|
||||
"An error occurred" : "Prišlo je do napake.",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Ali ste prepričani, da želite izbrisati zbirko »{title}«? S tem boste izbrisali tudi vse podatke zbirke.",
|
||||
"Delete the board?" : "Ali želite izbrisati zbirko?",
|
||||
@@ -238,6 +252,7 @@ OC.L10N.register(
|
||||
"Link to a board" : "Povezava do zbirke",
|
||||
"Link to a card" : "Povezava do naloge",
|
||||
"Something went wrong" : "Prišlo je do napake ...",
|
||||
"Failed to upload {name}" : "Pošiljanje {name} je spodletelo",
|
||||
"Maximum file size of {size} exceeded" : "Omejitev velikosti datoteke {size} je prekoračena."
|
||||
},
|
||||
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
|
||||
|
||||
15
l10n/sl.json
15
l10n/sl.json
@@ -144,6 +144,7 @@
|
||||
"Undo" : "Razveljavi",
|
||||
"Deleted cards" : "Izbrisane naloge",
|
||||
"Share board with a user, group or circle …" : "Souporaba z uporabniki, skupinami ali krogi ...",
|
||||
"Searching for users, groups and circles …" : "Iskanje uporabnikov, skupin in krogov ...",
|
||||
"No participants found" : "Ni zaznanih udeleženev",
|
||||
"Board owner" : "Lastnik zbirke",
|
||||
"(Group)" : "(Skupina)",
|
||||
@@ -199,6 +200,7 @@
|
||||
"Edit description" : "Uredi opis",
|
||||
"View description" : "Pokaži opis",
|
||||
"Add Attachment" : "Dodaj prilogo",
|
||||
"Write a description …" : "Vpišite opis ...",
|
||||
"Choose attachment" : "Izbor priloge",
|
||||
"(group)" : "(skupina)",
|
||||
"(circle)" : "(krog)",
|
||||
@@ -222,7 +224,19 @@
|
||||
"Board name" : "Ime zbirke",
|
||||
"Board details" : "Podrobnosti zbirke",
|
||||
"Edit board" : "Uredi zbirko",
|
||||
"Clone board" : "Kloniraj zbirko",
|
||||
"Unarchive board" : "Povrni zbirko",
|
||||
"Archive board" : "Arhiviraj zbirko",
|
||||
"Turn on due date reminders" : "Omogoči opomnike o datumu zapadlosti ",
|
||||
"Turn off due date reminders" : "Onemogoči opomnike o datumu zapadlosti",
|
||||
"Due date reminders" : "Opomniki o datumu zapadlosti",
|
||||
"All cards" : "Vse naloge",
|
||||
"Assigned cards" : "Dodeljene naloge",
|
||||
"No notifications" : "Ni obvestil",
|
||||
"Delete board" : "Izbriši zbirko",
|
||||
"Board {0} deleted" : "Zbirka {0} je izbrisana",
|
||||
"Only assigned cards" : "Le dodeljene naloge",
|
||||
"No reminder" : "Ni vpisanih opomnikov",
|
||||
"An error occurred" : "Prišlo je do napake.",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Ali ste prepričani, da želite izbrisati zbirko »{title}«? S tem boste izbrisali tudi vse podatke zbirke.",
|
||||
"Delete the board?" : "Ali želite izbrisati zbirko?",
|
||||
@@ -236,6 +250,7 @@
|
||||
"Link to a board" : "Povezava do zbirke",
|
||||
"Link to a card" : "Povezava do naloge",
|
||||
"Something went wrong" : "Prišlo je do napake ...",
|
||||
"Failed to upload {name}" : "Pošiljanje {name} je spodletelo",
|
||||
"Maximum file size of {size} exceeded" : "Omejitev velikosti datoteke {size} je prekoračena."
|
||||
},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"
|
||||
}
|
||||
13
l10n/sv.js
13
l10n/sv.js
@@ -202,6 +202,7 @@ OC.L10N.register(
|
||||
"Edit description" : "Ändra beskrivning",
|
||||
"View description" : "Visa beskrivning",
|
||||
"Add Attachment" : "Lägg till bilaga",
|
||||
"Write a description …" : "Ange en beskrivning ...",
|
||||
"Choose attachment" : "Välj bilaga",
|
||||
"(group)" : " (grupp)",
|
||||
"(circle)" : "(cirkel)",
|
||||
@@ -225,7 +226,19 @@ OC.L10N.register(
|
||||
"Board name" : "Tavlans namn",
|
||||
"Board details" : "Taveldetaljer",
|
||||
"Edit board" : "Ändra tavla",
|
||||
"Clone board" : "Kopiera tavla",
|
||||
"Unarchive board" : "Ta bort tavlan ur arkivet",
|
||||
"Archive board" : "Arkivera tavla",
|
||||
"Turn on due date reminders" : "Aktivera påminnelser om förfallodatum",
|
||||
"Turn off due date reminders" : "Inaktivera påminnelser om förfallodatum",
|
||||
"Due date reminders" : "Påminnelser om förfallodatum",
|
||||
"All cards" : "Alla kort",
|
||||
"Assigned cards" : "Tilldelade kort",
|
||||
"No notifications" : "Inga aviseringar",
|
||||
"Delete board" : "Radera tavla",
|
||||
"Board {0} deleted" : "Tavla {0} raderad",
|
||||
"Only assigned cards" : "Bara tilldelade kort",
|
||||
"No reminder" : "Ingen påminnelse",
|
||||
"An error occurred" : "Ett fel uppstod",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Är du säker på att du vill radera tavla {title}? Detta kommer att radera all information från denna tavla.",
|
||||
"Delete the board?" : "Ta bort tavlan?",
|
||||
|
||||
13
l10n/sv.json
13
l10n/sv.json
@@ -200,6 +200,7 @@
|
||||
"Edit description" : "Ändra beskrivning",
|
||||
"View description" : "Visa beskrivning",
|
||||
"Add Attachment" : "Lägg till bilaga",
|
||||
"Write a description …" : "Ange en beskrivning ...",
|
||||
"Choose attachment" : "Välj bilaga",
|
||||
"(group)" : " (grupp)",
|
||||
"(circle)" : "(cirkel)",
|
||||
@@ -223,7 +224,19 @@
|
||||
"Board name" : "Tavlans namn",
|
||||
"Board details" : "Taveldetaljer",
|
||||
"Edit board" : "Ändra tavla",
|
||||
"Clone board" : "Kopiera tavla",
|
||||
"Unarchive board" : "Ta bort tavlan ur arkivet",
|
||||
"Archive board" : "Arkivera tavla",
|
||||
"Turn on due date reminders" : "Aktivera påminnelser om förfallodatum",
|
||||
"Turn off due date reminders" : "Inaktivera påminnelser om förfallodatum",
|
||||
"Due date reminders" : "Påminnelser om förfallodatum",
|
||||
"All cards" : "Alla kort",
|
||||
"Assigned cards" : "Tilldelade kort",
|
||||
"No notifications" : "Inga aviseringar",
|
||||
"Delete board" : "Radera tavla",
|
||||
"Board {0} deleted" : "Tavla {0} raderad",
|
||||
"Only assigned cards" : "Bara tilldelade kort",
|
||||
"No reminder" : "Ingen påminnelse",
|
||||
"An error occurred" : "Ett fel uppstod",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Är du säker på att du vill radera tavla {title}? Detta kommer att radera all information från denna tavla.",
|
||||
"Delete the board?" : "Ta bort tavlan?",
|
||||
|
||||
@@ -45,6 +45,7 @@ OC.L10N.register(
|
||||
"Deck" : "看板",
|
||||
"Changes in the <strong>Deck app</strong>" : "<strong>看板应用</strong>中的改变",
|
||||
"A <strong>comment</strong> was created on a card" : "卡片上创建了一个 <strong>评论</strong>",
|
||||
"Upcoming cards" : "即将到来的卡片",
|
||||
"Personal" : "个人",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "%s已给您指派\"%s\" 中的卡片\"%s\"。",
|
||||
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} 已给您指派\"%s\" 中的卡片\"%s\"。",
|
||||
@@ -112,6 +113,8 @@ OC.L10N.register(
|
||||
"Toggle compact mode" : "切换简洁模式",
|
||||
"Details" : "详情",
|
||||
"Loading board" : "正在加载面板",
|
||||
"No lists available" : "无列表可用",
|
||||
"Create a new list to add cards to this board" : "创建一个新列表来添加卡片到这个看板",
|
||||
"Board not found" : "未找到面板",
|
||||
"Sharing" : "正在共享",
|
||||
"Tags" : "标签",
|
||||
@@ -121,6 +124,7 @@ OC.L10N.register(
|
||||
"Undo" : "撤消",
|
||||
"Deleted cards" : "已删除卡片",
|
||||
"Share board with a user, group or circle …" : "与一个用户,群组或圈子共享面板...",
|
||||
"Searching for users, groups and circles …" : "正在搜索用户、群组和圈子 ......",
|
||||
"No participants found" : "未找到参与者",
|
||||
"Board owner" : "面板拥有者",
|
||||
"(Group)" : "(群组)",
|
||||
@@ -129,10 +133,15 @@ OC.L10N.register(
|
||||
"Can share" : "可以共享",
|
||||
"Can manage" : "可以管理",
|
||||
"Delete" : "删除",
|
||||
"Failed to create share with {displayName}" : "用 {displayName} 创建分享失败",
|
||||
"Add a new list" : "添加一个新列表",
|
||||
"Archive all cards" : "存档所有卡片",
|
||||
"Delete list" : "删除列表",
|
||||
"Add card" : "添加卡片",
|
||||
"Archive all cards in this list" : "存档该列表的所有卡片",
|
||||
"Add a new card" : "添加一张新卡片",
|
||||
"Card name" : "卡片名",
|
||||
"List deleted" : "列表被删除",
|
||||
"Edit" : "编辑",
|
||||
"Add a new tag" : "新增一个标签",
|
||||
"title and color value must be provided" : "必须提供标题和颜色值",
|
||||
@@ -142,10 +151,13 @@ OC.L10N.register(
|
||||
"Add this attachment" : "添加此附件",
|
||||
"Delete Attachment" : "删除附件",
|
||||
"Restore Attachment" : "恢复附件",
|
||||
"Open in sidebar view" : "在侧边栏视图中打开",
|
||||
"Open in bigger view" : "在较大视图中打开",
|
||||
"Attachments" : "附件",
|
||||
"Comments" : "评论",
|
||||
"Modified" : "已修改",
|
||||
"Created" : "已创建",
|
||||
"The title cannot be empty." : "标题不能为空",
|
||||
"No comments yet. Begin the discussion!" : "还没有评论。 开始讨论吧!",
|
||||
"Assign a tag to this card…" : "为该卡片分配标签…",
|
||||
"Assign to users" : "指派给用户",
|
||||
@@ -168,33 +180,57 @@ OC.L10N.register(
|
||||
"Edit description" : "编辑描述",
|
||||
"View description" : "查看描述",
|
||||
"Add Attachment" : "添加附件",
|
||||
"Write a description …" : "写一段描述",
|
||||
"Choose attachment" : "选择附件",
|
||||
"(group)" : "(组)",
|
||||
"(circle)" : "(圈子)",
|
||||
"Assign to me" : "指派给我",
|
||||
"Unassign myself" : "自己解除分配",
|
||||
"Move card" : "移动卡片",
|
||||
"Unarchive card" : "恢复卡片存档",
|
||||
"Archive card" : "归档卡片",
|
||||
"Delete card" : "删除卡片",
|
||||
"Move card to another board" : "将卡片移到其他面板",
|
||||
"Select a list" : "选择一个列表",
|
||||
"Card deleted" : "卡片被删除",
|
||||
"seconds ago" : "几秒前",
|
||||
"All boards" : "全部面板",
|
||||
"Archived boards" : "已归档面板",
|
||||
"Shared with you" : "收到的共享",
|
||||
"Use modal card view" : "使用模式卡片视图",
|
||||
"Show boards in calendar/tasks" : "在日历/任务中显示看板",
|
||||
"Limit deck usage of groups" : "限制群组的看板使用",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "非面板创建用户组的用户将不能使用受限看板。但用户仍然能够使用已共享给他们的面板工作。",
|
||||
"Board name" : "看板名",
|
||||
"Board details" : "面板详情",
|
||||
"Edit board" : "编辑面板",
|
||||
"Clone board" : "克隆看板",
|
||||
"Unarchive board" : "取消对看板的存档",
|
||||
"Archive board" : "存档看板",
|
||||
"Turn on due date reminders" : "打开到期日期提醒 ",
|
||||
"Turn off due date reminders" : "关闭到期日提醒",
|
||||
"Due date reminders" : "到期日期提醒",
|
||||
"All cards" : "所有卡片",
|
||||
"Assigned cards" : "分配的卡片",
|
||||
"No notifications" : "无通知",
|
||||
"Delete board" : "删除看板",
|
||||
"Board {0} deleted" : "面板{0} 被删除",
|
||||
"Only assigned cards" : "仅分配的卡片",
|
||||
"No reminder" : "无提醒",
|
||||
"An error occurred" : "发生错误",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "你确定你要删除 {title}面板吗?面板内所有数据都将因此被删除。",
|
||||
"Delete the board?" : "是否删除面板?",
|
||||
"Loading filtered view" : "正在加载已过滤视图",
|
||||
"Today" : "今天",
|
||||
"Tomorrow" : "明天",
|
||||
"This week" : "本周",
|
||||
"No due" : "没有到期的",
|
||||
"No upcoming cards" : "没有即将到来的卡片",
|
||||
"upcoming cards" : "即将到来的卡片",
|
||||
"Link to a board" : "链接到一个面板",
|
||||
"Link to a card" : "链接到一张卡片",
|
||||
"Something went wrong" : "有地方出错了",
|
||||
"Failed to upload {name}" : "未能上传 {name}",
|
||||
"Maximum file size of {size} exceeded" : "文件大小 {size} 超出最大限制"
|
||||
},
|
||||
"nplurals=1; plural=0;");
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
"Deck" : "看板",
|
||||
"Changes in the <strong>Deck app</strong>" : "<strong>看板应用</strong>中的改变",
|
||||
"A <strong>comment</strong> was created on a card" : "卡片上创建了一个 <strong>评论</strong>",
|
||||
"Upcoming cards" : "即将到来的卡片",
|
||||
"Personal" : "个人",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "%s已给您指派\"%s\" 中的卡片\"%s\"。",
|
||||
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} 已给您指派\"%s\" 中的卡片\"%s\"。",
|
||||
@@ -110,6 +111,8 @@
|
||||
"Toggle compact mode" : "切换简洁模式",
|
||||
"Details" : "详情",
|
||||
"Loading board" : "正在加载面板",
|
||||
"No lists available" : "无列表可用",
|
||||
"Create a new list to add cards to this board" : "创建一个新列表来添加卡片到这个看板",
|
||||
"Board not found" : "未找到面板",
|
||||
"Sharing" : "正在共享",
|
||||
"Tags" : "标签",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Undo" : "撤消",
|
||||
"Deleted cards" : "已删除卡片",
|
||||
"Share board with a user, group or circle …" : "与一个用户,群组或圈子共享面板...",
|
||||
"Searching for users, groups and circles …" : "正在搜索用户、群组和圈子 ......",
|
||||
"No participants found" : "未找到参与者",
|
||||
"Board owner" : "面板拥有者",
|
||||
"(Group)" : "(群组)",
|
||||
@@ -127,10 +131,15 @@
|
||||
"Can share" : "可以共享",
|
||||
"Can manage" : "可以管理",
|
||||
"Delete" : "删除",
|
||||
"Failed to create share with {displayName}" : "用 {displayName} 创建分享失败",
|
||||
"Add a new list" : "添加一个新列表",
|
||||
"Archive all cards" : "存档所有卡片",
|
||||
"Delete list" : "删除列表",
|
||||
"Add card" : "添加卡片",
|
||||
"Archive all cards in this list" : "存档该列表的所有卡片",
|
||||
"Add a new card" : "添加一张新卡片",
|
||||
"Card name" : "卡片名",
|
||||
"List deleted" : "列表被删除",
|
||||
"Edit" : "编辑",
|
||||
"Add a new tag" : "新增一个标签",
|
||||
"title and color value must be provided" : "必须提供标题和颜色值",
|
||||
@@ -140,10 +149,13 @@
|
||||
"Add this attachment" : "添加此附件",
|
||||
"Delete Attachment" : "删除附件",
|
||||
"Restore Attachment" : "恢复附件",
|
||||
"Open in sidebar view" : "在侧边栏视图中打开",
|
||||
"Open in bigger view" : "在较大视图中打开",
|
||||
"Attachments" : "附件",
|
||||
"Comments" : "评论",
|
||||
"Modified" : "已修改",
|
||||
"Created" : "已创建",
|
||||
"The title cannot be empty." : "标题不能为空",
|
||||
"No comments yet. Begin the discussion!" : "还没有评论。 开始讨论吧!",
|
||||
"Assign a tag to this card…" : "为该卡片分配标签…",
|
||||
"Assign to users" : "指派给用户",
|
||||
@@ -166,33 +178,57 @@
|
||||
"Edit description" : "编辑描述",
|
||||
"View description" : "查看描述",
|
||||
"Add Attachment" : "添加附件",
|
||||
"Write a description …" : "写一段描述",
|
||||
"Choose attachment" : "选择附件",
|
||||
"(group)" : "(组)",
|
||||
"(circle)" : "(圈子)",
|
||||
"Assign to me" : "指派给我",
|
||||
"Unassign myself" : "自己解除分配",
|
||||
"Move card" : "移动卡片",
|
||||
"Unarchive card" : "恢复卡片存档",
|
||||
"Archive card" : "归档卡片",
|
||||
"Delete card" : "删除卡片",
|
||||
"Move card to another board" : "将卡片移到其他面板",
|
||||
"Select a list" : "选择一个列表",
|
||||
"Card deleted" : "卡片被删除",
|
||||
"seconds ago" : "几秒前",
|
||||
"All boards" : "全部面板",
|
||||
"Archived boards" : "已归档面板",
|
||||
"Shared with you" : "收到的共享",
|
||||
"Use modal card view" : "使用模式卡片视图",
|
||||
"Show boards in calendar/tasks" : "在日历/任务中显示看板",
|
||||
"Limit deck usage of groups" : "限制群组的看板使用",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "非面板创建用户组的用户将不能使用受限看板。但用户仍然能够使用已共享给他们的面板工作。",
|
||||
"Board name" : "看板名",
|
||||
"Board details" : "面板详情",
|
||||
"Edit board" : "编辑面板",
|
||||
"Clone board" : "克隆看板",
|
||||
"Unarchive board" : "取消对看板的存档",
|
||||
"Archive board" : "存档看板",
|
||||
"Turn on due date reminders" : "打开到期日期提醒 ",
|
||||
"Turn off due date reminders" : "关闭到期日提醒",
|
||||
"Due date reminders" : "到期日期提醒",
|
||||
"All cards" : "所有卡片",
|
||||
"Assigned cards" : "分配的卡片",
|
||||
"No notifications" : "无通知",
|
||||
"Delete board" : "删除看板",
|
||||
"Board {0} deleted" : "面板{0} 被删除",
|
||||
"Only assigned cards" : "仅分配的卡片",
|
||||
"No reminder" : "无提醒",
|
||||
"An error occurred" : "发生错误",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "你确定你要删除 {title}面板吗?面板内所有数据都将因此被删除。",
|
||||
"Delete the board?" : "是否删除面板?",
|
||||
"Loading filtered view" : "正在加载已过滤视图",
|
||||
"Today" : "今天",
|
||||
"Tomorrow" : "明天",
|
||||
"This week" : "本周",
|
||||
"No due" : "没有到期的",
|
||||
"No upcoming cards" : "没有即将到来的卡片",
|
||||
"upcoming cards" : "即将到来的卡片",
|
||||
"Link to a board" : "链接到一个面板",
|
||||
"Link to a card" : "链接到一张卡片",
|
||||
"Something went wrong" : "有地方出错了",
|
||||
"Failed to upload {name}" : "未能上传 {name}",
|
||||
"Maximum file size of {size} exceeded" : "文件大小 {size} 超出最大限制"
|
||||
},"pluralForm" :"nplurals=1; plural=0;"
|
||||
}
|
||||
@@ -25,7 +25,6 @@
|
||||
|
||||
namespace OCA\Deck\Activity;
|
||||
|
||||
use cogpowered\FineDiff\Diff;
|
||||
use OCA\Deck\Db\Acl;
|
||||
use OCP\Activity\IEvent;
|
||||
use OCP\Activity\IProvider;
|
||||
@@ -290,7 +289,7 @@ class DeckProvider implements IProvider {
|
||||
try {
|
||||
$comment = $this->commentsManager->get((int)$subjectParams['comment']);
|
||||
$event->setParsedMessage($comment->getMessage());
|
||||
$params['comment'] =[
|
||||
$params['comment'] = [
|
||||
'type' => 'highlight',
|
||||
'id' => $subjectParams['comment'],
|
||||
'name' => $comment->getMessage()
|
||||
@@ -326,11 +325,9 @@ class DeckProvider implements IProvider {
|
||||
* @return mixed
|
||||
*/
|
||||
private function parseParamForChanges($subjectParams, $params, $event) {
|
||||
if (array_key_exists('diff', $subjectParams) && $subjectParams['diff']) {
|
||||
$diff = new Diff();
|
||||
if (array_key_exists('diff', $subjectParams) && $subjectParams['diff'] && !empty($subjectParams['after'])) {
|
||||
// Don't add diff as message since we are limited to 255 chars here
|
||||
$event->setParsedMessage($subjectParams['after']);
|
||||
//$event->setParsedMessage('<pre class="visualdiff">' . $diff->render($subjectParams['before'], $subjectParams['after']) . '</pre>');
|
||||
return $params;
|
||||
}
|
||||
if (array_key_exists('before', $subjectParams)) {
|
||||
|
||||
@@ -133,7 +133,7 @@ class Application20 extends App implements IBootstrap {
|
||||
}
|
||||
// delete existing user assignments
|
||||
$assignmentMapper = $container->query(AssignmentMapper::class);
|
||||
$assignments = $assignmentMapper->findByUserId($user->getUID());
|
||||
$assignments = $assignmentMapper->findByParticipant($user->getUID());
|
||||
foreach ($assignments as $assignment) {
|
||||
$assignmentMapper->delete($assignment);
|
||||
}
|
||||
@@ -214,7 +214,7 @@ class Application20 extends App implements IBootstrap {
|
||||
}
|
||||
);
|
||||
$eventDispatcher->addListener(
|
||||
'\OCA\Deck\Board::onShareNew', function (Event $e) {
|
||||
'\OCA\Deck\Board::onShareNew', function (Event $e) use ($server) {
|
||||
$fullTextSearchService = $server->get(FullTextSearchService::class);
|
||||
$fullTextSearchService->onBoardShares($e);
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ class ApplicationLegacy extends App {
|
||||
}
|
||||
// delete existing user assignments
|
||||
$assignmentMapper = $container->query(AssignmentMapper::class);
|
||||
$assignments = $assignmentMapper->findByUserId($user->getUID());
|
||||
$assignments = $assignmentMapper->findByParticipant($user->getUID());
|
||||
foreach ($assignments as $assignment) {
|
||||
$assignmentMapper->delete($assignment);
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ class CardDescriptionActivity extends Job {
|
||||
private $cardMapper;
|
||||
|
||||
public function __construct(ActivityManager $activityManager, CardMapper $cardMapper) {
|
||||
$this->activityManager = $activityManager;
|
||||
$this->activityManager = $activityManager;
|
||||
$this->cardMapper = $cardMapper;
|
||||
}
|
||||
|
||||
|
||||
@@ -204,7 +204,7 @@ class Calendar extends ExternalCalendar {
|
||||
public function getProperties($properties) {
|
||||
return [
|
||||
'{DAV:}displayname' => 'Deck: ' . ($this->board ? $this->board->getTitle() : 'no board object provided'),
|
||||
'{http://apple.com/ns/ical/}calendar-color' => '#' . $this->board->getColor(),
|
||||
'{http://apple.com/ns/ical/}calendar-color' => '#' . $this->board->getColor(),
|
||||
'{' . Plugin::NS_CALDAV . '}supported-calendar-component-set' => new SupportedCalendarComponentSet(['VTODO']),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ class AssignmentMapper extends QBMapper implements IPermissionMapper {
|
||||
* Check if user exists before assigning it to a card
|
||||
*
|
||||
* @param Entity $entity
|
||||
* @return null|Assignment
|
||||
* @return Assignment
|
||||
* @throws NotFoundException
|
||||
*/
|
||||
public function insert(Entity $entity): Entity {
|
||||
|
||||
@@ -215,6 +215,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
|
||||
->andWhere($qb->expr()->isNotNull('c.duedate'))
|
||||
->andWhere($qb->expr()->eq('c.archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
|
||||
->andWhere($qb->expr()->eq('c.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)))
|
||||
->andWhere($qb->expr()->eq('s.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)))
|
||||
->andWhere($qb->expr()->eq('b.archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
|
||||
->andWhere($qb->expr()->eq('b.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)));
|
||||
return $this->findEntities($qb);
|
||||
@@ -233,6 +234,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
|
||||
// Filter out archived/deleted cards and board
|
||||
->andWhere($qb->expr()->eq('c.archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
|
||||
->andWhere($qb->expr()->eq('c.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)))
|
||||
->andWhere($qb->expr()->eq('s.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)))
|
||||
->andWhere($qb->expr()->eq('b.archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
|
||||
->andWhere($qb->expr()->eq('b.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)));
|
||||
return $this->findEntities($qb);
|
||||
@@ -261,6 +263,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
|
||||
public function search($boardIds, $term, $limit = null, $offset = null) {
|
||||
$qb = $this->queryCardsByBoards($boardIds);
|
||||
$qb->andWhere($qb->expr()->eq('c.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)));
|
||||
$qb->andWhere($qb->expr()->eq('s.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)));
|
||||
$qb->andWhere(
|
||||
$qb->expr()->orX(
|
||||
$qb->expr()->iLike('c.title', $qb->createNamedParameter('%' . $this->db->escapeLikeParameter($term) . '%')),
|
||||
|
||||
@@ -49,7 +49,7 @@ class ChangeHelper {
|
||||
$time = time();
|
||||
$etag = md5($time . microtime());
|
||||
$this->cache->set(self::TYPE_BOARD . '-' . $boardId, $etag);
|
||||
$sql = 'UPDATE `*PREFIX*deck_boards` SET `last_modified` = ? WHERE `id` = ?';
|
||||
$sql = 'UPDATE `*PREFIX*deck_boards` SET `last_modified` = ? WHERE `id` = ?';
|
||||
$this->db->executeUpdate($sql, [$time, $boardId]);
|
||||
}
|
||||
|
||||
|
||||
@@ -39,9 +39,8 @@ class StackMapper extends DeckMapper implements IPermissionMapper {
|
||||
|
||||
/**
|
||||
* @param $id
|
||||
* @return \OCP\AppFramework\Db\Entity if not found
|
||||
* @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException
|
||||
* @throws \OCP\AppFramework\Db\DoesNotExistException
|
||||
* @throws MultipleObjectsReturnedException
|
||||
* @throws DoesNotExistException
|
||||
*/
|
||||
public function find($id): Stack {
|
||||
$sql = 'SELECT * FROM `*PREFIX*deck_stacks` ' .
|
||||
|
||||
@@ -128,10 +128,8 @@ class DeckProvider implements IFullTextSearchProvider {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return ISearchTemplate
|
||||
*/
|
||||
public function getSearchTemplate(): ISearchTemplate {
|
||||
/** @psalm-var ISearchTemplate */
|
||||
$template = new SearchTemplate('icon-deck', 'icons');
|
||||
|
||||
return $template;
|
||||
@@ -204,6 +202,7 @@ class DeckProvider implements IFullTextSearchProvider {
|
||||
* @throws MultipleObjectsReturnedException
|
||||
*/
|
||||
public function updateDocument(IIndex $index): IIndexDocument {
|
||||
/** @psalm-var IIndexDocument */
|
||||
$document = new IndexDocument(DeckProvider::DECK_PROVIDER_ID, $index->getDocumentId());
|
||||
$document->setIndex($index);
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
namespace OCA\Deck\Service;
|
||||
|
||||
use OC\EventDispatcher\SymfonyAdapter;
|
||||
use OCA\Deck\Activity\ActivityManager;
|
||||
use OCA\Deck\Activity\ChangeSet;
|
||||
use OCA\Deck\AppInfo\Application;
|
||||
@@ -46,7 +47,6 @@ use OCA\Deck\Db\BoardMapper;
|
||||
use OCA\Deck\Db\LabelMapper;
|
||||
use OCP\IUserManager;
|
||||
use OCA\Deck\BadRequestException;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||
use Symfony\Component\EventDispatcher\GenericEvent;
|
||||
|
||||
class BoardService {
|
||||
@@ -64,7 +64,6 @@ class BoardService {
|
||||
private $groupManager;
|
||||
private $userId;
|
||||
private $activityManager;
|
||||
/** @var EventDispatcherInterface */
|
||||
private $eventDispatcher;
|
||||
private $changeHelper;
|
||||
|
||||
@@ -84,7 +83,7 @@ class BoardService {
|
||||
IUserManager $userManager,
|
||||
IGroupManager $groupManager,
|
||||
ActivityManager $activityManager,
|
||||
EventDispatcherInterface $eventDispatcher,
|
||||
SymfonyAdapter $eventDispatcher,
|
||||
ChangeHelper $changeHelper,
|
||||
$userId
|
||||
) {
|
||||
|
||||
@@ -161,6 +161,7 @@ class FullTextSearchService {
|
||||
* @return IIndexDocument
|
||||
*/
|
||||
public function generateIndexDocumentFromCard(Card $card): IIndexDocument {
|
||||
/** @psalm-var IIndexDocument */
|
||||
$document = new IndexDocument(DeckProvider::DECK_PROVIDER_ID, (string)$card->getId());
|
||||
|
||||
return $document;
|
||||
@@ -193,6 +194,7 @@ class FullTextSearchService {
|
||||
public function generateDocumentAccessFromCardId(int $cardId): IDocumentAccess {
|
||||
$board = $this->getBoardFromCardId($cardId);
|
||||
|
||||
/** @psalm-var IDocumentAccess */
|
||||
return new DocumentAccess($board->getOwner());
|
||||
}
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ class PermissionService {
|
||||
/**
|
||||
* Get current user permissions for a board
|
||||
*
|
||||
* @param Board|Entity $board
|
||||
* @param Board $board
|
||||
* @return array|bool
|
||||
* @internal param $boardId
|
||||
*/
|
||||
@@ -170,10 +170,9 @@ class PermissionService {
|
||||
try {
|
||||
$board = $this->boardMapper->find($boardId);
|
||||
return $board && $userId === $board->getOwner();
|
||||
} catch (DoesNotExistException $e) {
|
||||
} catch (MultipleObjectsReturnedException $e) {
|
||||
return false;
|
||||
} catch (DoesNotExistException | MultipleObjectsReturnedException $e) {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
namespace OCA\Deck\Service;
|
||||
|
||||
use OC\EventDispatcher\SymfonyAdapter;
|
||||
use OCA\Deck\Activity\ActivityManager;
|
||||
use OCA\Deck\Activity\ChangeSet;
|
||||
use OCA\Deck\BadRequestException;
|
||||
@@ -36,7 +37,6 @@ use OCA\Deck\Db\LabelMapper;
|
||||
use OCA\Deck\Db\Stack;
|
||||
use OCA\Deck\Db\StackMapper;
|
||||
use OCA\Deck\StatusException;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||
use Symfony\Component\EventDispatcher\GenericEvent;
|
||||
|
||||
class StackService {
|
||||
@@ -50,8 +50,7 @@ class StackService {
|
||||
private $assignedUsersMapper;
|
||||
private $attachmentService;
|
||||
private $activityManager;
|
||||
/** @var EventDispatcherInterface */
|
||||
private $eventDispatcher;
|
||||
private $symfonyAdapter;
|
||||
private $changeHelper;
|
||||
|
||||
public function __construct(
|
||||
@@ -65,7 +64,7 @@ class StackService {
|
||||
AssignmentMapper $assignedUsersMapper,
|
||||
AttachmentService $attachmentService,
|
||||
ActivityManager $activityManager,
|
||||
EventDispatcherInterface $eventDispatcher,
|
||||
SymfonyAdapter $eventDispatcher,
|
||||
ChangeHelper $changeHelper
|
||||
) {
|
||||
$this->stackMapper = $stackMapper;
|
||||
@@ -78,7 +77,7 @@ class StackService {
|
||||
$this->assignedUsersMapper = $assignedUsersMapper;
|
||||
$this->attachmentService = $attachmentService;
|
||||
$this->activityManager = $activityManager;
|
||||
$this->eventDispatcher = $eventDispatcher;
|
||||
$this->symfonyAdapter = $eventDispatcher;
|
||||
$this->changeHelper = $changeHelper;
|
||||
}
|
||||
|
||||
@@ -226,7 +225,7 @@ class StackService {
|
||||
);
|
||||
$this->changeHelper->boardChanged($boardId);
|
||||
|
||||
$this->eventDispatcher->dispatch(
|
||||
$this->symfonyAdapter->dispatch(
|
||||
'\OCA\Deck\Stack::onCreate',
|
||||
new GenericEvent(null, ['id' => $stack->getId(), 'stack' => $stack])
|
||||
);
|
||||
@@ -260,7 +259,7 @@ class StackService {
|
||||
$this->changeHelper->boardChanged($stack->getBoardId());
|
||||
$this->enrichStackWithCards($stack);
|
||||
|
||||
$this->eventDispatcher->dispatch(
|
||||
$this->symfonyAdapter->dispatch(
|
||||
'\OCA\Deck\Stack::onDelete', new GenericEvent(null, ['id' => $id, 'stack' => $stack])
|
||||
);
|
||||
|
||||
@@ -315,7 +314,7 @@ class StackService {
|
||||
);
|
||||
$this->changeHelper->boardChanged($stack->getBoardId());
|
||||
|
||||
$this->eventDispatcher->dispatch(
|
||||
$this->symfonyAdapter->dispatch(
|
||||
'\OCA\Deck\Stack::onUpdate', new GenericEvent(null, ['id' => $id, 'stack' => $stack])
|
||||
);
|
||||
|
||||
|
||||
3902
package-lock.json
generated
3902
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
37
package.json
37
package.json
@@ -17,7 +17,7 @@
|
||||
"license": "agpl",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "NODE_ENV=production webpack --progress --hide-modules --config webpack.js",
|
||||
"build": "NODE_ENV=production webpack --progress --config webpack.js",
|
||||
"dev": "NODE_ENV=development webpack --progress --config webpack.js",
|
||||
"watch": "NODE_ENV=development webpack --progress --watch --config webpack.js",
|
||||
"lint": "eslint --ext .js,.vue src",
|
||||
@@ -30,7 +30,7 @@
|
||||
"dependencies": {
|
||||
"@babel/polyfill": "^7.12.1",
|
||||
"@babel/runtime": "^7.12.5",
|
||||
"@juliushaertl/vue-richtext": "^1.0.0",
|
||||
"@juliushaertl/vue-richtext": "^1.0.1",
|
||||
"@nextcloud/auth": "^1.3.0",
|
||||
"@nextcloud/axios": "^1.5.0",
|
||||
"@nextcloud/dialogs": "^3.1.1",
|
||||
@@ -40,25 +40,25 @@
|
||||
"@nextcloud/l10n": "^1.4.1",
|
||||
"@nextcloud/moment": "^1.1.1",
|
||||
"@nextcloud/router": "^1.2.0",
|
||||
"@nextcloud/vue": "^2.9.0",
|
||||
"@nextcloud/vue": "^3.3.2",
|
||||
"@nextcloud/vue-dashboard": "^1.0.1",
|
||||
"blueimp-md5": "^2.18.0",
|
||||
"dompurify": "^2.2.2",
|
||||
"dompurify": "^2.2.6",
|
||||
"lodash": "^4.17.20",
|
||||
"markdown-it": "^12.0.2",
|
||||
"markdown-it": "^12.0.4",
|
||||
"markdown-it-task-lists": "^2.1.1",
|
||||
"moment": "^2.29.1",
|
||||
"nextcloud-vue-collections": "^0.8.1",
|
||||
"nextcloud-vue-collections": "^0.9.0",
|
||||
"p-queue": "^6.6.2",
|
||||
"url-search-params-polyfill": "^8.1.0",
|
||||
"vue": "^2.6.12",
|
||||
"vue-at": "^2.5.0-beta.2",
|
||||
"vue-click-outside": "^1.1.0",
|
||||
"vue-easymde": "^1.3.0",
|
||||
"vue-easymde": "^1.3.2",
|
||||
"vue-infinite-loading": "^2.4.5",
|
||||
"vue-router": "^3.4.9",
|
||||
"vue-smooth-dnd": "^0.8.1",
|
||||
"vuex": "^3.5.1",
|
||||
"vuex": "^3.6.0",
|
||||
"vuex-router-sync": "^5.0.0"
|
||||
},
|
||||
"browserslist": [
|
||||
@@ -68,23 +68,24 @@
|
||||
"node": ">=10.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.12.3",
|
||||
"@babel/core": "^7.12.10",
|
||||
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
||||
"@babel/preset-env": "^7.12.1",
|
||||
"@babel/preset-env": "^7.12.11",
|
||||
"@nextcloud/browserslist-config": "^1.0.0",
|
||||
"@nextcloud/eslint-config": "^2.1.0",
|
||||
"@nextcloud/eslint-config": "^2.2.0",
|
||||
"@nextcloud/eslint-plugin": "^1.5.0",
|
||||
"@nextcloud/webpack-vue-config": "^1.4.1",
|
||||
"@vue/test-utils": "^1.1.1",
|
||||
"@relative-ci/agent": "^1.4.0",
|
||||
"@vue/test-utils": "^1.1.2",
|
||||
"acorn": "^8.0.4",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"babel-jest": "^26.6.3",
|
||||
"babel-loader": "^8.2.1",
|
||||
"babel-loader": "^8.2.2",
|
||||
"css-loader": "^4.3.0",
|
||||
"eslint": "^6.8.0",
|
||||
"eslint-config-standard": "^12.0.0",
|
||||
"eslint-config-standard": "^14.1.1",
|
||||
"eslint-friendly-formatter": "^4.0.1",
|
||||
"eslint-loader": "^3.0.4",
|
||||
"eslint-loader": "^4.0.2",
|
||||
"eslint-plugin-import": "^2.22.1",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint-plugin-promise": "^4.2.1",
|
||||
@@ -98,19 +99,19 @@
|
||||
"raw-loader": "^4.0.2",
|
||||
"sass-loader": "^10.1.0",
|
||||
"style-loader": "^1.3.0",
|
||||
"stylelint": "^13.7.2",
|
||||
"stylelint": "^13.8.0",
|
||||
"stylelint-config-recommended": "^3.0.0",
|
||||
"stylelint-config-recommended-scss": "^4.2.0",
|
||||
"stylelint-scss": "^3.18.0",
|
||||
"stylelint-webpack-plugin": "^2.1.1",
|
||||
"url-loader": "^4.1.1",
|
||||
"vue-jest": "^3.0.7",
|
||||
"vue-loader": "^15.9.5",
|
||||
"vue-loader": "^15.9.6",
|
||||
"vue-template-compiler": "^2.6.12",
|
||||
"webpack": "^4.44.2",
|
||||
"webpack-cli": "^3.3.12",
|
||||
"webpack-dev-server": "^3.11.0",
|
||||
"webpack-merge": "^5.4.0"
|
||||
"webpack-merge": "^5.7.3"
|
||||
},
|
||||
"jest": {
|
||||
"moduleFileExtensions": [
|
||||
|
||||
54
psalm.xml
Normal file
54
psalm.xml
Normal file
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0"?>
|
||||
<psalm
|
||||
errorLevel="4"
|
||||
resolveFromConfigFile="true"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="https://getpsalm.org/schema/config"
|
||||
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
|
||||
errorBaseline="tests/psalm-baseline.xml"
|
||||
>
|
||||
<projectFiles>
|
||||
<directory name="lib" />
|
||||
<ignoreFiles>
|
||||
<directory name="vendor" />
|
||||
</ignoreFiles>
|
||||
</projectFiles>
|
||||
<extraFiles>
|
||||
<directory name="vendor" />
|
||||
<ignoreFiles>
|
||||
<directory name="vendor/phpunit/php-code-coverage" />
|
||||
<directory name="vendor/vimeo" />
|
||||
</ignoreFiles>
|
||||
</extraFiles>
|
||||
<issueHandlers>
|
||||
<UndefinedMagicMethod>
|
||||
<errorLevel type="suppress">
|
||||
<referencedMethod name="/Db\\.*::.*/" />
|
||||
</errorLevel>
|
||||
</UndefinedMagicMethod>
|
||||
<UndefinedInterfaceMethod>
|
||||
<errorLevel type="suppress">
|
||||
<!-- FIXME Deprecated event handling -->
|
||||
<referencedMethod name="OCP\IUserManager::listen" />
|
||||
<referencedMethod name="OCP\IGroupManager::listen" />
|
||||
</errorLevel>
|
||||
</UndefinedInterfaceMethod>
|
||||
<UndefinedClass>
|
||||
<errorLevel type="suppress">
|
||||
<referencedClass name="OC\*" />
|
||||
<referencedClass name="OC" />
|
||||
<referencedClass name="OC\Security\CSP\ContentSecurityPolicyNonceManager" />
|
||||
</errorLevel>
|
||||
</UndefinedClass>
|
||||
<UndefinedDocblockClass>
|
||||
<errorLevel type="suppress">
|
||||
<referencedClass name="OC\*" />
|
||||
<referencedClass name="Doctrine\DBAL\Schema\Schema" />
|
||||
<referencedClass name="Doctrine\DBAL\Schema\SchemaException" />
|
||||
<referencedClass name="Doctrine\DBAL\Driver\Statement" />
|
||||
<referencedClass name="Doctrine\DBAL\Schema\Table" />
|
||||
<referencedClass name="OC\Security\CSP\ContentSecurityPolicyNonceManager" />
|
||||
</errorLevel>
|
||||
</UndefinedDocblockClass>
|
||||
</issueHandlers>
|
||||
</psalm>
|
||||
8
relativeci.config.js
Normal file
8
relativeci.config.js
Normal file
@@ -0,0 +1,8 @@
|
||||
module.exports = {
|
||||
// Allow the agent to pick up the current commit message
|
||||
includeCommitMessage: true,
|
||||
webpack: {
|
||||
// Path to Webpack stats JSON file
|
||||
stats: './js/webpack-stats.json'
|
||||
}
|
||||
};
|
||||
@@ -37,7 +37,7 @@
|
||||
</div>
|
||||
</Modal>
|
||||
|
||||
<router-view v-show="!cardDetailsInModal || !$route.params.cardId" name="sidebar" />
|
||||
<router-view name="sidebar" :visible="!cardDetailsInModal || !$route.params.cardId" />
|
||||
</Content>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ export default {
|
||||
components: {
|
||||
RichText,
|
||||
},
|
||||
mixins: [ relativeDate ],
|
||||
mixins: [relativeDate],
|
||||
props: {
|
||||
activity: {
|
||||
type: Object,
|
||||
|
||||
@@ -79,7 +79,7 @@ try {
|
||||
export default {
|
||||
name: 'AttachmentDragAndDrop',
|
||||
components: { Modal },
|
||||
mixins: [ attachmentUpload ],
|
||||
mixins: [attachmentUpload],
|
||||
props: {
|
||||
cardId: {
|
||||
type: Number,
|
||||
|
||||
@@ -58,14 +58,14 @@
|
||||
</form>
|
||||
</div>
|
||||
<div class="board-action-buttons">
|
||||
<Popover>
|
||||
<Popover @show="filterVisible=true" @hide="filterVisible=false">
|
||||
<Actions slot="trigger" :title="t('deck', 'Apply filter')">
|
||||
<ActionButton v-if="isFilterActive" icon="icon-filter_set" />
|
||||
<ActionButton v-else icon="icon-filter" />
|
||||
</Actions>
|
||||
|
||||
<template>
|
||||
<div class="filter">
|
||||
<div v-if="filterVisible" class="filter">
|
||||
<h3>{{ t('deck', 'Filter by tag') }}</h3>
|
||||
<div v-for="label in labelsSorted" :key="label.id" class="filter--item">
|
||||
<input
|
||||
@@ -170,7 +170,7 @@
|
||||
</template>
|
||||
</Popover>
|
||||
|
||||
<Actions :style="archivedOpacity">
|
||||
<Actions>
|
||||
<ActionButton
|
||||
icon="icon-archive"
|
||||
@click="toggleShowArchived">
|
||||
@@ -206,7 +206,7 @@ export default {
|
||||
components: {
|
||||
Actions, ActionButton, Popover, Avatar,
|
||||
},
|
||||
mixins: [ labelStyle ],
|
||||
mixins: [labelStyle],
|
||||
props: {
|
||||
board: {
|
||||
type: Object,
|
||||
@@ -223,6 +223,7 @@ export default {
|
||||
return {
|
||||
newStackTitle: '',
|
||||
stack: '',
|
||||
filterVisible: false,
|
||||
showArchived: false,
|
||||
isAddStackVisible: false,
|
||||
filter: { tags: [], users: [], due: '', unassigned: false },
|
||||
@@ -242,12 +243,6 @@ export default {
|
||||
name: 'board.details',
|
||||
}
|
||||
},
|
||||
archivedOpacity() {
|
||||
if (this.showArchived) {
|
||||
return 'opacity: 1;'
|
||||
}
|
||||
return 'opacity: .5;'
|
||||
},
|
||||
isFilterActive() {
|
||||
if (this.filter.tags.length !== 0 || this.filter.users.length !== 0 || this.filter.due !== '') {
|
||||
return true
|
||||
|
||||
@@ -21,12 +21,18 @@
|
||||
-->
|
||||
|
||||
<template>
|
||||
<router-view name="sidebar" />
|
||||
<router-view v-if="visible" name="sidebar" />
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'Sidebar',
|
||||
props: {
|
||||
visible: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
closeSidebar() {
|
||||
this.$router.push({ name: 'board' })
|
||||
|
||||
@@ -38,7 +38,7 @@ import relativeDate from '../../mixins/relativeDate'
|
||||
|
||||
export default {
|
||||
name: 'DeletedTabSidebar',
|
||||
mixins: [ relativeDate ],
|
||||
mixins: [relativeDate],
|
||||
props: {
|
||||
board: {
|
||||
type: Object,
|
||||
|
||||
@@ -279,24 +279,32 @@ export default {
|
||||
z-index: 100;
|
||||
padding-left: $card-spacing;
|
||||
cursor: grab;
|
||||
min-height: 44px;
|
||||
|
||||
// Smooth fade out of the cards at the top
|
||||
&:before {
|
||||
content: ' ';
|
||||
display: block;
|
||||
position: absolute;
|
||||
background-image: linear-gradient(180deg, var(--color-main-background) 3px, transparent 100%);
|
||||
width: 100%;
|
||||
height: 25px;
|
||||
top: 35px;
|
||||
right: 6px;
|
||||
height: 20px;
|
||||
top: 30px;
|
||||
right: 10px;
|
||||
z-index: 99;
|
||||
transition: top var(--animation-slow);
|
||||
|
||||
background-image: linear-gradient(180deg, var(--color-main-background) 3px, rgba(255, 255, 255, 0) 100%);
|
||||
body.theme--dark & {
|
||||
background-image: linear-gradient(180deg, var(--color-main-background) 3px, rgba(0, 0, 0, 0) 100%);
|
||||
}
|
||||
}
|
||||
|
||||
&--add:before {
|
||||
height: 80px;
|
||||
background-image: linear-gradient(180deg, var(--color-main-background) 68px, transparent 100%);
|
||||
background-image: linear-gradient(180deg, var(--color-main-background) 68px, rgba(255, 255, 255, 0) 100%);
|
||||
body.theme--dark & {
|
||||
background-image: linear-gradient(180deg, var(--color-main-background) 68px, rgba(0, 0, 0, 0) 100%);
|
||||
}
|
||||
}
|
||||
|
||||
& > * {
|
||||
@@ -323,7 +331,9 @@ export default {
|
||||
}
|
||||
|
||||
.stack__card-add {
|
||||
height: 52px;
|
||||
width: $stack-width;
|
||||
height: 44px;
|
||||
flex-shrink: 0;
|
||||
z-index: 100;
|
||||
display: flex;
|
||||
margin-left: 12px;
|
||||
@@ -336,10 +346,10 @@ export default {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
margin-right: 6px;
|
||||
box-shadow: 0 0 3px var(--color-box-shadow);
|
||||
border-radius: var(--border-radius-large);
|
||||
overflow: hidden;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
&.icon-loading-small:after,
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<div class="board-list-bullet" />
|
||||
</div>
|
||||
<div class="board-list-title-cell">
|
||||
{{ t('deck', 'Title') }}
|
||||
{{ t('deck', 'Board name') }}
|
||||
</div>
|
||||
<div class="board-list-avatars-cell">
|
||||
{{ t('deck', 'Members') }}
|
||||
|
||||
@@ -21,58 +21,65 @@
|
||||
-->
|
||||
|
||||
<template>
|
||||
<AttachmentDragAndDrop :card-id="cardId" class="drop-upload--sidebar">
|
||||
<button class="icon-upload" @click="clickAddNewAttachmment()">
|
||||
{{ t('deck', 'Upload attachment') }}
|
||||
</button>
|
||||
<input ref="localAttachments"
|
||||
type="file"
|
||||
style="display: none;"
|
||||
multiple
|
||||
@change="handleUploadFile">
|
||||
<ul class="attachment-list">
|
||||
<li v-for="attachment in uploadQueue" :key="attachment.name" class="attachment">
|
||||
<a class="fileicon" :style="mimetypeForAttachment('none')" />
|
||||
<div class="details">
|
||||
<a>
|
||||
<div class="filename">
|
||||
<span class="basename">{{ attachment.name }}</span>
|
||||
</div>
|
||||
<progress :value="attachment.progress" max="100" />
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
<li v-for="attachment in attachments"
|
||||
:key="attachment.id"
|
||||
class="attachment">
|
||||
<a class="fileicon" :style="mimetypeForAttachment(attachment.extendedData.mimetype)" :href="attachmentUrl(attachment)" />
|
||||
<div class="details">
|
||||
<a :href="attachmentUrl(attachment)" target="_blank">
|
||||
<div class="filename">
|
||||
<span class="basename">{{ attachment.data }}</span>
|
||||
</div>
|
||||
<span class="filesize">{{ formattedFileSize(attachment.extendedData.filesize) }}</span>
|
||||
<span class="filedate">{{ relativeDate(attachment.createdAt*1000) }}</span>
|
||||
<span class="filedate">{{ attachment.createdBy }}</span>
|
||||
</a>
|
||||
</div>
|
||||
<Actions v-if="selectable">
|
||||
<ActionButton icon="icon-confirm" @click="$emit('selectAttachment', attachment)">
|
||||
{{ t('deck', 'Add this attachment') }}
|
||||
</ActionButton>
|
||||
</Actions>
|
||||
<Actions v-if="removable">
|
||||
<ActionButton v-if="attachment.deletedAt === 0" icon="icon-delete" @click="$emit('deleteAttachment', attachment)">
|
||||
{{ t('deck', 'Delete Attachment') }}
|
||||
</ActionButton>
|
||||
<div>
|
||||
<h5>
|
||||
{{ t('deck', 'Attachments') }}
|
||||
<Actions>
|
||||
<ActionButton icon="icon-upload" @click="clickAddNewAttachmment()">
|
||||
{{ t('deck', 'Upload attachment') }}
|
||||
</ActionButton>
|
||||
</Actions>
|
||||
</h5>
|
||||
<AttachmentDragAndDrop :card-id="cardId" class="drop-upload--sidebar">
|
||||
<input ref="localAttachments"
|
||||
type="file"
|
||||
style="display: none;"
|
||||
multiple
|
||||
@change="handleUploadFile">
|
||||
<ul class="attachment-list">
|
||||
<li v-for="attachment in uploadQueue" :key="attachment.name" class="attachment">
|
||||
<a class="fileicon" :style="mimetypeForAttachment('none')" />
|
||||
<div class="details">
|
||||
<a>
|
||||
<div class="filename">
|
||||
<span class="basename">{{ attachment.name }}</span>
|
||||
</div>
|
||||
<progress :value="attachment.progress" max="100" />
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
<li v-for="attachment in attachments"
|
||||
:key="attachment.id"
|
||||
class="attachment">
|
||||
<a class="fileicon" :style="mimetypeForAttachment(attachment.extendedData.mimetype)" :href="attachmentUrl(attachment)" />
|
||||
<div class="details">
|
||||
<a :href="attachmentUrl(attachment)" target="_blank">
|
||||
<div class="filename">
|
||||
<span class="basename">{{ attachment.data }}</span>
|
||||
</div>
|
||||
<span class="filesize">{{ formattedFileSize(attachment.extendedData.filesize) }}</span>
|
||||
<span class="filedate">{{ relativeDate(attachment.createdAt*1000) }}</span>
|
||||
<span class="filedate">{{ attachment.createdBy }}</span>
|
||||
</a>
|
||||
</div>
|
||||
<Actions v-if="selectable">
|
||||
<ActionButton icon="icon-confirm" @click="$emit('selectAttachment', attachment)">
|
||||
{{ t('deck', 'Add this attachment') }}
|
||||
</ActionButton>
|
||||
</Actions>
|
||||
<Actions v-if="removable">
|
||||
<ActionButton v-if="attachment.deletedAt === 0" icon="icon-delete" @click="$emit('deleteAttachment', attachment)">
|
||||
{{ t('deck', 'Delete Attachment') }}
|
||||
</ActionButton>
|
||||
|
||||
<ActionButton v-else icon="icon-history" @click="$emit('restoreAttachment', attachment)">
|
||||
{{ t('deck', 'Restore Attachment') }}
|
||||
</ActionButton>
|
||||
</Actions>
|
||||
</li>
|
||||
</ul>
|
||||
</AttachmentDragAndDrop>
|
||||
<ActionButton v-else icon="icon-history" @click="$emit('restoreAttachment', attachment)">
|
||||
{{ t('deck', 'Restore Attachment') }}
|
||||
</ActionButton>
|
||||
</Actions>
|
||||
</li>
|
||||
</ul>
|
||||
</AttachmentDragAndDrop>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@@ -171,6 +178,21 @@ export default {
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
h5 {
|
||||
border-bottom: 1px solid var(--color-border);
|
||||
margin-top: 20px;
|
||||
margin-bottom: 5px;
|
||||
color: var(--color-text-maxcontrast);
|
||||
|
||||
.icon-upload {
|
||||
background-size: 16px;
|
||||
float: right;
|
||||
margin-top: -14px;
|
||||
opacity: .7;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.icon-upload {
|
||||
padding-left: 35px;
|
||||
background-position: 10px center;
|
||||
|
||||
@@ -46,13 +46,6 @@
|
||||
<CardSidebarTabDetails :card="currentCard" />
|
||||
</AppSidebarTab>
|
||||
|
||||
<AppSidebarTab id="attachments"
|
||||
:order="1"
|
||||
:name="t('deck', 'Attachments')"
|
||||
icon="icon-attach">
|
||||
<CardSidebarTabAttachments :card="currentCard" />
|
||||
</AppSidebarTab>
|
||||
|
||||
<AppSidebarTab
|
||||
id="comments"
|
||||
:order="2"
|
||||
@@ -75,7 +68,6 @@
|
||||
import { ActionButton, AppSidebar, AppSidebarTab } from '@nextcloud/vue'
|
||||
import { mapState, mapGetters } from 'vuex'
|
||||
import CardSidebarTabDetails from './CardSidebarTabDetails'
|
||||
import CardSidebarTabAttachments from './CardSidebarTabAttachments'
|
||||
import CardSidebarTabComments from './CardSidebarTabComments'
|
||||
import CardSidebarTabActivity from './CardSidebarTabActivity'
|
||||
import relativeDate from '../../mixins/relativeDate'
|
||||
@@ -90,7 +82,6 @@ export default {
|
||||
AppSidebar,
|
||||
AppSidebarTab,
|
||||
ActionButton,
|
||||
CardSidebarTabAttachments,
|
||||
CardSidebarTabComments,
|
||||
CardSidebarTabActivity,
|
||||
CardSidebarTabDetails,
|
||||
@@ -168,12 +159,13 @@ export default {
|
||||
left: 0;
|
||||
right: 0;
|
||||
max-width: calc(100% - #{$modal-padding*2});
|
||||
padding: 14px;
|
||||
max-height: calc(100% - #{$modal-padding*2});
|
||||
padding: 0 14px;
|
||||
max-height: 100%;
|
||||
&::v-deep {
|
||||
.app-sidebar-header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
padding-top: $modal-padding;
|
||||
z-index: 100;
|
||||
background-color: var(--color-main-background);
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ export default {
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
'card': {
|
||||
card: {
|
||||
immediate: true,
|
||||
handler() {
|
||||
this.loadComments()
|
||||
|
||||
@@ -117,7 +117,13 @@
|
||||
type="deck-card" />
|
||||
</div>
|
||||
|
||||
<Description :card="card" />
|
||||
<AttachmentList
|
||||
:card-id="card.id"
|
||||
:removable="true"
|
||||
@deleteAttachment="deleteAttachment"
|
||||
@restoreAttachment="restoreAttachment" />
|
||||
|
||||
<Description :key="card.id" :card="card" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -125,7 +131,7 @@
|
||||
import { mapState, mapGetters } from 'vuex'
|
||||
import moment from '@nextcloud/moment'
|
||||
import { Avatar, Actions, ActionButton, Multiselect, DatetimePicker } from '@nextcloud/vue'
|
||||
|
||||
import AttachmentList from './AttachmentList'
|
||||
import { CollectionList } from 'nextcloud-vue-collections'
|
||||
import Color from '../../mixins/color'
|
||||
import {
|
||||
@@ -146,6 +152,7 @@ export default {
|
||||
ActionButton,
|
||||
Avatar,
|
||||
CollectionList,
|
||||
AttachmentList,
|
||||
},
|
||||
mixins: [Color],
|
||||
props: {
|
||||
@@ -234,6 +241,12 @@ export default {
|
||||
this.initialize()
|
||||
},
|
||||
methods: {
|
||||
deleteAttachment(attachment) {
|
||||
this.$store.dispatch('deleteAttachment', attachment)
|
||||
},
|
||||
restoreAttachment(attachment) {
|
||||
this.$store.dispatch('restoreAttachment', attachment)
|
||||
},
|
||||
async initialize() {
|
||||
if (!this.card) {
|
||||
return
|
||||
|
||||
@@ -60,7 +60,7 @@ const AtMention = {
|
||||
const { user, displayName } = context.props
|
||||
return createElement(
|
||||
'span',
|
||||
{ attrs: { 'data-at-embedded': true, 'contenteditable': false } },
|
||||
{ attrs: { 'data-at-embedded': true, contenteditable: false } },
|
||||
[createElement(UserBubble, { props: { user, displayName }, attrs: { 'data-mention-id': user } })]
|
||||
)
|
||||
},
|
||||
@@ -76,7 +76,7 @@ export default {
|
||||
CommentForm,
|
||||
RichText,
|
||||
},
|
||||
mixins: [ relativeDate ],
|
||||
mixins: [relativeDate],
|
||||
props: {
|
||||
comment: {
|
||||
type: Object,
|
||||
@@ -196,7 +196,13 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
.comment--content::v-deep a {
|
||||
text-decoration: underline;
|
||||
.comment--content::v-deep {
|
||||
a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -113,6 +113,7 @@ export default {
|
||||
autosave: { enabled: false, uniqueId: 'unique' },
|
||||
toolbar: false,
|
||||
placeholder: t('deck', 'Write a description …'),
|
||||
previewImagesInEditor: false,
|
||||
},
|
||||
descriptionSaveTimeout: null,
|
||||
descriptionSaving: false,
|
||||
@@ -180,7 +181,7 @@ export default {
|
||||
const clickedIndex = [...document.querySelector('#description-preview').querySelectorAll('input')].findIndex((li) => li.id === e.target.id)
|
||||
const reg = /\[(X|\s|_|-)\]/ig
|
||||
let nth = 0
|
||||
const updatedDescription = this.description.replace(reg, (match, i, original) => {
|
||||
const updatedDescription = this.card.description.replace(reg, (match, i, original) => {
|
||||
let result = match
|
||||
if ('' + nth++ === '' + clickedIndex) {
|
||||
if (match.match(/^\[\s\]/i)) {
|
||||
@@ -297,6 +298,10 @@ h5 {
|
||||
color: var(--color-text-maxcontrast);
|
||||
}
|
||||
|
||||
.CodeMirror-cursor {
|
||||
border-left: 1px solid var(--color-main-text);
|
||||
}
|
||||
|
||||
.editor-preview,
|
||||
.editor-statusbar {
|
||||
display: none;
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
<div v-if="card.description && checkListCount > 0" class="card-tasks icon icon-checkmark">
|
||||
{{ checkListCheckedCount }}/{{ checkListCount }}
|
||||
</div>
|
||||
<div v-else-if="card.description.trim() && checkListCount == 0" class="icon icon-description" />
|
||||
|
||||
<div v-if="card.attachmentCount > 0" class="icon-attach icon icon-attach-dark">
|
||||
{{ card.attachmentCount }}
|
||||
|
||||
@@ -24,22 +24,31 @@
|
||||
<div v-if="card">
|
||||
<div @click.stop.prevent>
|
||||
<Actions v-if="canEdit && !isArchived">
|
||||
<ActionButton v-if="showArchived === false && !isCurrentUserAssigned" icon="icon-user" @click="assignCardToMe()">
|
||||
<ActionButton v-if="showArchived === false && !isCurrentUserAssigned"
|
||||
icon="icon-user"
|
||||
:close-after-click="true"
|
||||
@click="assignCardToMe()">
|
||||
{{ t('deck', 'Assign to me') }}
|
||||
</ActionButton>
|
||||
<ActionButton v-if="showArchived === false && isCurrentUserAssigned" icon="icon-user" @click="unassignCardFromMe()">
|
||||
<ActionButton v-if="showArchived === false && isCurrentUserAssigned"
|
||||
icon="icon-user"
|
||||
:close-after-click="true"
|
||||
@click="unassignCardFromMe()">
|
||||
{{ t('deck', 'Unassign myself') }}
|
||||
</ActionButton>
|
||||
<ActionButton icon="icon-external" @click.stop="modalShow=true">
|
||||
<ActionButton icon="icon-external" :close-after-click="true" @click="modalShow=true">
|
||||
{{ t('deck', 'Move card') }}
|
||||
</ActionButton>
|
||||
<ActionButton icon="icon-settings-dark" @click="openCard">
|
||||
<ActionButton icon="icon-settings-dark" :close-after-click="true" @click="openCard">
|
||||
{{ t('deck', 'Card details') }}
|
||||
</ActionButton>
|
||||
<ActionButton icon="icon-archive" @click="archiveUnarchiveCard()">
|
||||
<ActionButton icon="icon-archive" :close-after-click="true" @click="archiveUnarchiveCard()">
|
||||
{{ showArchived ? t('deck', 'Unarchive card') : t('deck', 'Archive card') }}
|
||||
</ActionButton>
|
||||
<ActionButton v-if="showArchived === false" icon="icon-delete" @click="deleteCard()">
|
||||
<ActionButton v-if="showArchived === false"
|
||||
icon="icon-delete"
|
||||
:close-after-click="true"
|
||||
@click="deleteCard()">
|
||||
{{ t('deck', 'Delete card') }}
|
||||
</ActionButton>
|
||||
</Actions>
|
||||
@@ -127,7 +136,8 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
openCard() {
|
||||
this.$router.push({ name: 'card', params: { cardId: this.id } })
|
||||
const boardId = this.card?.boardId ? this.card.boardId : this.$route.params.id
|
||||
this.$router.push({ name: 'card', params: { id: boardId, cardId: this.card.id } }).catch(() => {})
|
||||
},
|
||||
deleteCard() {
|
||||
this.$store.dispatch('deleteCard', this.card)
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
type="checkbox"
|
||||
class="checkbox">
|
||||
<label for="toggle-modal">
|
||||
{{ t('deck', 'Use modal card view') }}
|
||||
{{ t('deck', 'Use bigger card view') }}
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ export default {
|
||||
async onLocalAttachmentSelected(file) {
|
||||
if (this.maxUploadSize > 0 && file.size > this.maxUploadSize) {
|
||||
showError(
|
||||
t('deck', `Failed to upload {name}`, { name: file.name }) + ' - '
|
||||
t('deck', 'Failed to upload {name}', { name: file.name }) + ' - '
|
||||
+ t('deck', 'Maximum file size of {size} exceeded', { size: formatFileSize(this.maxUploadSize) })
|
||||
)
|
||||
event.target.value = ''
|
||||
@@ -49,7 +49,8 @@ export default {
|
||||
bodyFormData.append('file', file)
|
||||
await queue.add(async() => {
|
||||
try {
|
||||
await this.$store.dispatch('createAttachment', { cardId: this.cardId,
|
||||
await this.$store.dispatch('createAttachment', {
|
||||
cardId: this.cardId,
|
||||
formData: bodyFormData,
|
||||
onUploadProgress: (e) => {
|
||||
const percentCompleted = Math.round((e.loaded * 100) / e.total)
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
import Color from './color'
|
||||
|
||||
export default {
|
||||
mixins: [ Color ],
|
||||
mixins: [Color],
|
||||
computed: {
|
||||
labelStyle() {
|
||||
return (label) => {
|
||||
|
||||
@@ -31,7 +31,7 @@ export class CardApi {
|
||||
}
|
||||
|
||||
addCard(card) {
|
||||
return axios.post(this.url(`/cards`), card)
|
||||
return axios.post(this.url('/cards'), card)
|
||||
.then(
|
||||
(response) => {
|
||||
return Promise.resolve(response.data)
|
||||
|
||||
@@ -31,7 +31,7 @@ export class CommentApi {
|
||||
}
|
||||
|
||||
async loadComments({ cardId, limit, offset }) {
|
||||
const api = await axios.get(generateOcsUrl(`apps/deck/api/v1.0/cards`, 2) + `${cardId}/comments`, {
|
||||
const api = await axios.get(generateOcsUrl('apps/deck/api/v1.0/cards', 2) + `${cardId}/comments`, {
|
||||
params: { limit, offset },
|
||||
headers: { 'OCS-APIRequest': 'true' },
|
||||
})
|
||||
@@ -39,7 +39,7 @@ export class CommentApi {
|
||||
}
|
||||
|
||||
async createComment({ cardId, comment, replyTo }) {
|
||||
const api = await axios.post(generateOcsUrl(`apps/deck/api/v1.0/cards`, 2) + `${cardId}/comments`, {
|
||||
const api = await axios.post(generateOcsUrl('apps/deck/api/v1.0/cards', 2) + `${cardId}/comments`, {
|
||||
message: `${comment}`,
|
||||
parentId: replyTo ? replyTo.id : null,
|
||||
})
|
||||
@@ -47,14 +47,14 @@ export class CommentApi {
|
||||
}
|
||||
|
||||
async updateComment({ cardId, id, comment }) {
|
||||
const api = await axios.put(generateOcsUrl(`apps/deck/api/v1.0/cards`, 2) + `${cardId}/comments/${id}`, {
|
||||
const api = await axios.put(generateOcsUrl('apps/deck/api/v1.0/cards', 2) + `${cardId}/comments/${id}`, {
|
||||
message: `${comment}`,
|
||||
})
|
||||
return api.data.ocs.data
|
||||
}
|
||||
|
||||
async deleteComment({ cardId, id }) {
|
||||
const api = await axios.delete(generateOcsUrl(`apps/deck/api/v1.0/cards`, 2) + `${cardId}/comments/${id}`)
|
||||
const api = await axios.delete(generateOcsUrl('apps/deck/api/v1.0/cards', 2) + `${cardId}/comments/${id}`)
|
||||
return api.data.ocs.data
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ import { generateOcsUrl } from '@nextcloud/router'
|
||||
export class OverviewApi {
|
||||
|
||||
url(url) {
|
||||
return generateOcsUrl(`apps/deck/api/v1.0`) + url
|
||||
return generateOcsUrl('apps/deck/api/v1.0') + url
|
||||
}
|
||||
|
||||
get(filter) {
|
||||
|
||||
@@ -81,7 +81,7 @@ export class StackApi {
|
||||
* @returns {Promise}
|
||||
*/
|
||||
createStack(stack) {
|
||||
return axios.post(this.url(`/stacks`), stack)
|
||||
return axios.post(this.url('/stacks'), stack)
|
||||
.then(
|
||||
(response) => {
|
||||
return Promise.resolve(response.data)
|
||||
|
||||
@@ -53,7 +53,7 @@ export default {
|
||||
if (state.comments[cardId] === undefined) {
|
||||
Vue.set(state.comments, cardId, {
|
||||
hasMore: comments.length > 0,
|
||||
comments: [ ...comments ],
|
||||
comments: [...comments],
|
||||
})
|
||||
} else {
|
||||
const newComments = comments.filter((comment) => {
|
||||
|
||||
@@ -312,7 +312,7 @@ export default new Vuex.Store({
|
||||
async setConfig({ commit }, config) {
|
||||
for (const key in config) {
|
||||
try {
|
||||
await axios.post(generateOcsUrl(`apps/deck/api/v1.0/config`) + key, {
|
||||
await axios.post(generateOcsUrl('apps/deck/api/v1.0/config') + key, {
|
||||
value: config[key],
|
||||
})
|
||||
commit('SET_CONFIG', { key, value: config[key] })
|
||||
|
||||
@@ -62,7 +62,7 @@ export default {
|
||||
DueDate,
|
||||
DashboardWidget,
|
||||
},
|
||||
mixins: [ labelStyle ],
|
||||
mixins: [labelStyle],
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
|
||||
@@ -1,22 +1,17 @@
|
||||
{
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.6",
|
||||
"behat/behat": "^3.0",
|
||||
"guzzlehttp/guzzle": "~5.0",
|
||||
"phpunit/phpunit": "~6.5",
|
||||
"behat/behat": "~3.8.0",
|
||||
"guzzlehttp/guzzle": "6.5.2",
|
||||
"jarnaiz/behat-junit-formatter": "^1.3",
|
||||
"sabre/dav": "3.2"
|
||||
"sabre/dav": "3.2.3",
|
||||
"symfony/event-dispatcher": "~4.4"
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"../../../../build/integration/features/bootstrap/Auth.php",
|
||||
"../../../../build/integration/features/bootstrap/Provisioning.php",
|
||||
"../../../../build/integration/features/bootstrap/Sharing.php",
|
||||
"../../../../build/integration/features/bootstrap/WebDav.php",
|
||||
"../../../../build/integration/features/bootstrap/Trashbin.php"
|
||||
],
|
||||
"psr-0": {
|
||||
"": [
|
||||
"features/bootstrap/"
|
||||
"features/bootstrap/",
|
||||
"../../../../build/integration/features/bootstrap/"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,451 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @author Christoph Wurst <christoph@owncloud.com>
|
||||
* @author Joas Schilling <coding@schilljs.com>
|
||||
* @author Lukas Reschke <lukas@statuscode.ch>
|
||||
* @author Sergio Bertolin <sbertolin@solidgear.es>
|
||||
* @author Thomas Müller <thomas.mueller@tmit.eu>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
use GuzzleHttp\Client;
|
||||
use GuzzleHttp\Cookie\CookieJar;
|
||||
use GuzzleHttp\Exception\ClientException;
|
||||
use GuzzleHttp\Message\ResponseInterface;
|
||||
|
||||
require __DIR__ . '/../../vendor/autoload.php';
|
||||
|
||||
trait BasicStructure {
|
||||
use Auth;
|
||||
|
||||
/** @var string */
|
||||
private $currentUser = '';
|
||||
|
||||
/** @var string */
|
||||
private $currentServer = '';
|
||||
|
||||
/** @var string */
|
||||
private $baseUrl = '';
|
||||
|
||||
/** @var int */
|
||||
private $apiVersion = 1;
|
||||
|
||||
/** @var ResponseInterface */
|
||||
private $response = null;
|
||||
|
||||
/** @var CookieJar */
|
||||
private $cookieJar;
|
||||
|
||||
/** @var string */
|
||||
private $requestToken;
|
||||
|
||||
public function __construct($baseUrl, $admin, $regular_user_password) {
|
||||
|
||||
// Initialize your context here
|
||||
$this->baseUrl = $baseUrl;
|
||||
$this->adminUser = $admin;
|
||||
$this->regularUser = $regular_user_password;
|
||||
$this->localBaseUrl = $this->baseUrl;
|
||||
$this->remoteBaseUrl = $this->baseUrl;
|
||||
$this->currentServer = 'LOCAL';
|
||||
$this->cookieJar = new CookieJar();
|
||||
|
||||
// in case of ci deployment we take the server url from the environment
|
||||
$testServerUrl = getenv('TEST_SERVER_URL');
|
||||
if ($testServerUrl !== false) {
|
||||
$this->baseUrl = $testServerUrl;
|
||||
$this->localBaseUrl = $testServerUrl;
|
||||
}
|
||||
|
||||
// federated server url from the environment
|
||||
$testRemoteServerUrl = getenv('TEST_SERVER_FED_URL');
|
||||
if ($testRemoteServerUrl !== false) {
|
||||
$this->remoteBaseUrl = $testRemoteServerUrl;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @Given /^using api version "(\d+)"$/
|
||||
* @param string $version
|
||||
*/
|
||||
public function usingApiVersion($version) {
|
||||
$this->apiVersion = (int) $version;
|
||||
}
|
||||
|
||||
/**
|
||||
* @Given /^As an "([^"]*)"$/
|
||||
* @param string $user
|
||||
*/
|
||||
public function asAn($user) {
|
||||
$this->currentUser = $user;
|
||||
}
|
||||
|
||||
/**
|
||||
* @Given /^Using server "(LOCAL|REMOTE)"$/
|
||||
* @param string $server
|
||||
* @return string Previous used server
|
||||
*/
|
||||
public function usingServer($server) {
|
||||
$previousServer = $this->currentServer;
|
||||
if ($server === 'LOCAL') {
|
||||
$this->baseUrl = $this->localBaseUrl;
|
||||
$this->currentServer = 'LOCAL';
|
||||
return $previousServer;
|
||||
} else {
|
||||
$this->baseUrl = $this->remoteBaseUrl;
|
||||
$this->currentServer = 'REMOTE';
|
||||
return $previousServer;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @When /^sending "([^"]*)" to "([^"]*)"$/
|
||||
* @param string $verb
|
||||
* @param string $url
|
||||
*/
|
||||
public function sendingTo($verb, $url) {
|
||||
$this->sendingToWith($verb, $url, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses the xml answer to get ocs response which doesn't match with
|
||||
* http one in v1 of the api.
|
||||
* @param ResponseInterface $response
|
||||
* @return string
|
||||
*/
|
||||
public function getOCSResponse($response) {
|
||||
return $response->xml()->meta[0]->statuscode;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function is needed to use a vertical fashion in the gherkin tables.
|
||||
* @param array $arrayOfArrays
|
||||
* @return array
|
||||
*/
|
||||
public function simplifyArray($arrayOfArrays) {
|
||||
$a = array_map(function ($subArray) {
|
||||
return $subArray[0];
|
||||
}, $arrayOfArrays);
|
||||
return $a;
|
||||
}
|
||||
|
||||
/**
|
||||
* @When /^sending "([^"]*)" to "([^"]*)" with$/
|
||||
* @param string $verb
|
||||
* @param string $url
|
||||
* @param \Behat\Gherkin\Node\TableNode $body
|
||||
*/
|
||||
public function sendingToWith($verb, $url, $body) {
|
||||
$fullUrl = $this->baseUrl . "v{$this->apiVersion}.php" . $url;
|
||||
$client = new Client();
|
||||
$options = [];
|
||||
if ($this->currentUser === 'admin') {
|
||||
$options['auth'] = $this->adminUser;
|
||||
} else {
|
||||
$options['auth'] = [$this->currentUser, $this->regularUser];
|
||||
}
|
||||
$options['headers'] = [
|
||||
'OCS_APIREQUEST' => 'true'
|
||||
];
|
||||
if ($body instanceof \Behat\Gherkin\Node\TableNode) {
|
||||
$fd = $body->getRowsHash();
|
||||
$options['body'] = $fd;
|
||||
}
|
||||
|
||||
// TODO: Fix this hack!
|
||||
if ($verb === 'PUT' && $body === null) {
|
||||
$options['body'] = [
|
||||
'foo' => 'bar',
|
||||
];
|
||||
}
|
||||
|
||||
try {
|
||||
$this->response = $client->send($client->createRequest($verb, $fullUrl, $options));
|
||||
} catch (ClientException $ex) {
|
||||
$this->response = $ex->getResponse();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @When /^sending "([^"]*)" with exact url to "([^"]*)"$/
|
||||
* @param string $verb
|
||||
* @param string $url
|
||||
*/
|
||||
public function sendingToDirectUrl($verb, $url) {
|
||||
$this->sendingToWithDirectUrl($verb, $url, null);
|
||||
}
|
||||
|
||||
public function sendingToWithDirectUrl($verb, $url, $body) {
|
||||
$fullUrl = substr($this->baseUrl, 0, -5) . $url;
|
||||
$client = new Client();
|
||||
$options = [];
|
||||
if ($this->currentUser === 'admin') {
|
||||
$options['auth'] = $this->adminUser;
|
||||
} else {
|
||||
$options['auth'] = [$this->currentUser, $this->regularUser];
|
||||
}
|
||||
if ($body instanceof \Behat\Gherkin\Node\TableNode) {
|
||||
$fd = $body->getRowsHash();
|
||||
$options['body'] = $fd;
|
||||
}
|
||||
|
||||
try {
|
||||
$this->response = $client->send($client->createRequest($verb, $fullUrl, $options));
|
||||
} catch (ClientException $ex) {
|
||||
$this->response = $ex->getResponse();
|
||||
}
|
||||
}
|
||||
|
||||
public function isExpectedUrl($possibleUrl, $finalPart) {
|
||||
$baseUrlChopped = substr($this->baseUrl, 0, -4);
|
||||
$endCharacter = strlen($baseUrlChopped) + strlen($finalPart);
|
||||
return (substr($possibleUrl,0,$endCharacter) == "$baseUrlChopped" . "$finalPart");
|
||||
}
|
||||
|
||||
/**
|
||||
* @Then /^the OCS status code should be "([^"]*)"$/
|
||||
* @param int $statusCode
|
||||
*/
|
||||
public function theOCSStatusCodeShouldBe($statusCode) {
|
||||
PHPUnit_Framework_Assert::assertEquals($statusCode, $this->getOCSResponse($this->response));
|
||||
}
|
||||
|
||||
/**
|
||||
* @Then /^the HTTP status code should be "([^"]*)"$/
|
||||
* @param int $statusCode
|
||||
*/
|
||||
public function theHTTPStatusCodeShouldBe($statusCode) {
|
||||
PHPUnit_Framework_Assert::assertEquals($statusCode, $this->response->getStatusCode());
|
||||
}
|
||||
|
||||
/**
|
||||
* @Then /^the Content-Type should be "([^"]*)"$/
|
||||
* @param string $contentType
|
||||
*/
|
||||
public function theContentTypeShouldbe($contentType) {
|
||||
PHPUnit_Framework_Assert::assertEquals($contentType, $this->response->getHeader('Content-Type'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ResponseInterface $response
|
||||
*/
|
||||
private function extracRequestTokenFromResponse(ResponseInterface $response) {
|
||||
$this->requestToken = substr(preg_replace('/(.*)data-requesttoken="(.*)">(.*)/sm', '\2', $response->getBody()->getContents()), 0, 89);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Given Logging in using web as :user
|
||||
* @param string $user
|
||||
*/
|
||||
public function loggingInUsingWebAs($user) {
|
||||
$loginUrl = substr($this->baseUrl, 0, -5) . '/login';
|
||||
// Request a new session and extract CSRF token
|
||||
$client = new Client();
|
||||
$response = $client->get(
|
||||
$loginUrl,
|
||||
[
|
||||
'cookies' => $this->cookieJar,
|
||||
]
|
||||
);
|
||||
$this->extracRequestTokenFromResponse($response);
|
||||
|
||||
// Login and extract new token
|
||||
$password = ($user === 'admin') ? 'admin' : '123456';
|
||||
$client = new Client();
|
||||
$response = $client->post(
|
||||
$loginUrl,
|
||||
[
|
||||
'body' => [
|
||||
'user' => $user,
|
||||
'password' => $password,
|
||||
'requesttoken' => $this->requestToken,
|
||||
],
|
||||
'cookies' => $this->cookieJar,
|
||||
]
|
||||
);
|
||||
$this->extracRequestTokenFromResponse($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* @When Sending a :method to :url with requesttoken
|
||||
* @param string $method
|
||||
* @param string $url
|
||||
*/
|
||||
public function sendingAToWithRequesttoken($method, $url) {
|
||||
$baseUrl = substr($this->baseUrl, 0, -5);
|
||||
|
||||
$client = new Client();
|
||||
$request = $client->createRequest(
|
||||
$method,
|
||||
$baseUrl . $url,
|
||||
[
|
||||
'cookies' => $this->cookieJar,
|
||||
]
|
||||
);
|
||||
$request->addHeader('requesttoken', $this->requestToken);
|
||||
try {
|
||||
$this->response = $client->send($request);
|
||||
} catch (ClientException $e) {
|
||||
$this->response = $e->getResponse();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @When Sending a :method to :url without requesttoken
|
||||
* @param string $method
|
||||
* @param string $url
|
||||
*/
|
||||
public function sendingAToWithoutRequesttoken($method, $url) {
|
||||
$baseUrl = substr($this->baseUrl, 0, -5);
|
||||
|
||||
$client = new Client();
|
||||
$request = $client->createRequest(
|
||||
$method,
|
||||
$baseUrl . $url,
|
||||
[
|
||||
'cookies' => $this->cookieJar,
|
||||
]
|
||||
);
|
||||
try {
|
||||
$this->response = $client->send($request);
|
||||
} catch (ClientException $e) {
|
||||
$this->response = $e->getResponse();
|
||||
}
|
||||
}
|
||||
|
||||
public static function removeFile($path, $filename) {
|
||||
if (file_exists("$path" . "$filename")) {
|
||||
unlink("$path" . "$filename");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @Given User :user modifies text of :filename with text :text
|
||||
* @param string $user
|
||||
* @param string $filename
|
||||
* @param string $text
|
||||
*/
|
||||
public function modifyTextOfFile($user, $filename, $text) {
|
||||
self::removeFile("../../data/$user/files", "$filename");
|
||||
file_put_contents("../../data/$user/files" . "$filename", "$text");
|
||||
}
|
||||
|
||||
public function createFileSpecificSize($name, $size) {
|
||||
$file = fopen("work/" . "$name", 'w');
|
||||
fseek($file, $size - 1 ,SEEK_CUR);
|
||||
fwrite($file,'a'); // write a dummy char at SIZE position
|
||||
fclose($file);
|
||||
}
|
||||
|
||||
public function createFileWithText($name, $text) {
|
||||
$file = fopen("work/" . "$name", 'w');
|
||||
fwrite($file, $text);
|
||||
fclose($file);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Given file :filename of size :size is created in local storage
|
||||
* @param string $filename
|
||||
* @param string $size
|
||||
*/
|
||||
public function fileIsCreatedInLocalStorageWithSize($filename, $size) {
|
||||
$this->createFileSpecificSize("local_storage/$filename", $size);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Given file :filename with text :text is created in local storage
|
||||
* @param string $filename
|
||||
* @param string $text
|
||||
*/
|
||||
public function fileIsCreatedInLocalStorageWithText($filename, $text) {
|
||||
$this->createFileWithText("local_storage/$filename", $text);
|
||||
}
|
||||
|
||||
/**
|
||||
* @When Sleep for :seconds seconds
|
||||
* @param int $seconds
|
||||
*/
|
||||
public function sleepForSeconds($seconds) {
|
||||
sleep((int)$seconds);
|
||||
}
|
||||
|
||||
/**
|
||||
* @BeforeSuite
|
||||
*/
|
||||
public static function addFilesToSkeleton() {
|
||||
for ($i=0; $i<5; $i++) {
|
||||
file_put_contents("../../core/skeleton/" . "textfile" . "$i" . ".txt", "Nextcloud test text file\n");
|
||||
}
|
||||
if (!file_exists("../../core/skeleton/FOLDER")) {
|
||||
mkdir("../../core/skeleton/FOLDER", 0777, true);
|
||||
}
|
||||
if (!file_exists("../../core/skeleton/PARENT")) {
|
||||
mkdir("../../core/skeleton/PARENT", 0777, true);
|
||||
}
|
||||
file_put_contents("../../core/skeleton/PARENT/" . "parent.txt", "Nextcloud test text file\n");
|
||||
if (!file_exists("../../core/skeleton/PARENT/CHILD")) {
|
||||
mkdir("../../core/skeleton/PARENT/CHILD", 0777, true);
|
||||
}
|
||||
file_put_contents("../../core/skeleton/PARENT/CHILD/" . "child.txt", "Nextcloud test text file\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* @AfterSuite
|
||||
*/
|
||||
public static function removeFilesFromSkeleton() {
|
||||
for ($i=0; $i<5; $i++) {
|
||||
self::removeFile("../../core/skeleton/", "textfile" . "$i" . ".txt");
|
||||
}
|
||||
if (is_dir("../../core/skeleton/FOLDER")) {
|
||||
rmdir("../../core/skeleton/FOLDER");
|
||||
}
|
||||
self::removeFile("../../core/skeleton/PARENT/CHILD/", "child.txt");
|
||||
if (is_dir("../../core/skeleton/PARENT/CHILD")) {
|
||||
rmdir("../../core/skeleton/PARENT/CHILD");
|
||||
}
|
||||
self::removeFile("../../core/skeleton/PARENT/", "parent.txt");
|
||||
if (is_dir("../../core/skeleton/PARENT")) {
|
||||
rmdir("../../core/skeleton/PARENT");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @BeforeScenario @local_storage
|
||||
*/
|
||||
public static function removeFilesFromLocalStorageBefore() {
|
||||
$dir = "./work/local_storage/";
|
||||
$di = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS);
|
||||
$ri = new RecursiveIteratorIterator($di, RecursiveIteratorIterator::CHILD_FIRST);
|
||||
foreach ($ri as $file) {
|
||||
$file->isDir() ? rmdir($file) : unlink($file);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @AfterScenario @local_storage
|
||||
*/
|
||||
public static function removeFilesFromLocalStorageAfter() {
|
||||
$dir = "./work/local_storage/";
|
||||
$di = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS);
|
||||
$ri = new RecursiveIteratorIterator($di, RecursiveIteratorIterator::CHILD_FIRST);
|
||||
foreach ($ri as $file) {
|
||||
$file->isDir() ? rmdir($file) : unlink($file);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -28,23 +28,7 @@ class FeatureContext implements Context {
|
||||
* @When Sending a :method to :url with JSON
|
||||
*/
|
||||
public function sendingAToWithJSON($method, $url, \Behat\Gherkin\Node\PyStringNode $data) {
|
||||
$baseUrl = substr($this->baseUrl, 0, -5);
|
||||
|
||||
$client = new Client;
|
||||
$request = $client->createRequest(
|
||||
$method,
|
||||
$baseUrl . $url,
|
||||
[
|
||||
'cookies' => $this->cookieJar,
|
||||
'json' => json_decode($data)
|
||||
]
|
||||
);
|
||||
$request->addHeader('requesttoken', $this->requestToken);
|
||||
try {
|
||||
$this->response = $client->send($request);
|
||||
} catch (ClientException $e) {
|
||||
$this->response = $e->getResponse();
|
||||
}
|
||||
$this->sendJSONrequest($method, $url, json_decode($data));
|
||||
}
|
||||
|
||||
|
||||
@@ -149,17 +133,18 @@ class FeatureContext implements Context {
|
||||
$baseUrl = substr($this->baseUrl, 0, -5);
|
||||
|
||||
$client = new Client;
|
||||
$request = $client->createRequest(
|
||||
$method,
|
||||
$baseUrl . $url,
|
||||
[
|
||||
'cookies' => $this->cookieJar,
|
||||
'json' => $data
|
||||
]
|
||||
);
|
||||
$request->addHeader('requesttoken', $this->requestToken);
|
||||
try {
|
||||
$this->response = $client->send($request);
|
||||
$this->response = $client->request(
|
||||
$method,
|
||||
$baseUrl . $url,
|
||||
[
|
||||
'cookies' => $this->cookieJar,
|
||||
'json' => $data,
|
||||
'headers' => [
|
||||
'requesttoken' => $this->requestToken
|
||||
]
|
||||
]
|
||||
);
|
||||
} catch (ClientException $e) {
|
||||
$this->response = $e->getResponse();
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user